Stuart Halloway
CEO of Relevance
Blog
The Relevant Bits - Labor Day 2010 Edition
Posted Sunday, September 5, 2010
The big result of our "20% time" this week is the release of the clojure-conj web site. That, and other bits, are detail more »Notes on Remote Pairing
Posted Wednesday, September 1, 2010
Here at Relevance, we're committed to the idea of working in pairs. But as the company grows beyond its Durham headquarters, we have more and more people working outside of the office. Pairin more »Come to Relevance and Be Excellent
Posted Monday, August 30, 2010
Earlier, we posted that we were seeking some new PMs for the Relevance team. At that time, I mentioned that we were always looking for great tech more »The Relevant Bits - 08/30/2010 Edition
Posted Sunday, August 29, 2010
New point releases, new projects, and more info about the first clojure-conj. Here are The Relevant Bits from last week's "20%" time: Lots of planning and organization on the (first clojure-co more »Introducing Errbit
Posted Monday, August 23, 2010
Here at Relevance, we use Hoptoad for tracking exceptions in our Rails apps. It's great because it gives us a heads up when something goes wrong but it doesn't bury us with tons of email. So, when we more »Presentations
Clojure
In recent years, the Java community has embraced a variety of new languages that target the JVM, but also offer productivity advantages over traditional Java coding. more »Concurrent Programming with Clojure
Clojure is dynamic language for the Java Virtual Machine with several powerful features for building concurrent applications. more »In recent years, the Java community has embraced a variety of new languages that target the JVM, but also offer productivity advantages over traditional Java coding.
One of the most interesting of these languages is Clojure, a "Lisp unconstrained by backward compatibility." In this talk, you will see why Clojure deserves serious consideration as the next big JVM language:
* Clojure provides all the low-ceremony goodness you know and love from dynamic languages such as Ruby and Python.
* Clojure includes Lisp's signature feature: Treating code as data through macros.
* Clojure's emphasis on immutability and support for software transactional memory make it a viable option for taking advantage of massively parallel hardware.
Clojure is dynamic language for the Java Virtual Machine with several powerful features for building concurrent applications.
In this talk you will learn about:
* Functional programming. Clojure's immutable data structures encourage side-effect free programming that can easily be shared across multiple processor cores.
* Software Transactional Memory (STM). STM provides a mechanism for managing references and updates across threads that is easier to use and less error-prone than lock-based concurrency.
* Direct access to Java. Clojure calls Java directly, and can emit the same byte code that a handcrafted Java program would. So, you can easily access the java.util.concurrent library.
Books
by Stuart Halloway
-
Clojure is a dynamic language for the Java Virtual Machine, with a compelling combination of features:
Clojure is elegant. Clojure's clean, careful design lets you write programs that get right to the essence of a problem, without a lot of clutter and ceremony.
Clojure is Lisp reloaded. Clojure has the power inherent in Lisp, but is not constrained by the history of Lisp.
Clojure is a functional language. Data structures are immutable, and functions tend to be side-effect free. This makes it easier to write correct programs, and to compose large programs from smaller ones.
Clojure is concurrent. Rather than error-prone locking, Clojure provides software transactional memory.
Clojure embraces Java. Calling from Clojure to Java is direct, and goes through no translation layer.
Clojure is fast. Wherever you need it, you can get the exact same performance that you could get from hand-written Java code.
Many other languages offer some of these features, but the combination of them all makes Clojure sparkle. Programming Clojure shows you why these features are so important, and how you can use Clojure to build powerful programs quickly.
by Stuart Halloway and Justin Gehtland
-
Many Java developers are now looking at Ruby, and the Ruby on Rails web framework. If you are one of them, this book is your guide. Written by experienced developers who love both Java and Ruby, this book will show you, via detailed comparisons and commentary, how to translate your hard-earned Java knowledge and skills into the world of Ruby and Rails.
If you are a Java programmer, you shouldn't have to start at the very beginning! You already have deep experience with the design issues that inspired Rails, and can use this background to quickly learn Ruby and Rails. But Ruby looks a lot different from Java, and some of those differences support powerful abstractions that Java lacks. We'll be your guides to this new, but not strange, territory.
In each chapter, we build a series of parallel examples to demonstrate some facet of web development. Because the Rails examples sit next to Java examples, you can start this book in the middle, or anywhere else you want. You can use the Java version of the code, plus the analysis, to quickly grok what the Rails version is doing. We have carefully cross-referenced and indexed the book to facilitate jumping around as you need to.
Thanks to your background in Java, this one short book can cover a half-dozen books' worth of ideas:
Programming Ruby Building MVC (Model/View/Controller) Applications Unit and Functional Testing Security Project Automation Configuration Web Services
by Stuart Dabbs Halloway
- Reveals both the potential and pitfalls of developing components using the Java platform. Delves into the component-oriented features of the Java platform, thoroughly discussing class loading, reflection, serialization, native interoperation, and code generation. Softcover.