Joe Morrison

Some of my projects and articles:

August 2008: How to Be a Good IT Customer. A short article co-authored with Ross Hamilton on how developers and customers can work together more effectively. Brief version also published in ComputerWeekly.

May 2008: The Rise of Functional Programming. Java Developer's Journal co-authored with Kalani Thielen. Functional programming has been around for a long time, but it's now becoming mainstream. This article explains what it is, and why it's important.

Dec 2007: Will Enterprise Architects Get Any REST in 2008? David Carr from Baseline Magazine interviewed several of us to explore the question of whether the SOAP standard will be displaced by REST.

Mar 2007: Brief introduction to four programming language concepts. A whirlwind introduction to four widely misunderstood concepts in programming languages: closures, classes, callbacks, and continuations.

2003-2005: The Eleven programming language. An open source project I started to explore advanced ideas in web application state management. In conventional programming it's considered obvious to avoid global variables and use subroutines and local variables to abstract away stack-based storage management, but in web development we constantly put application state in globally accessible places like databases and cookies. Eleven (though very "web 0.8" and in need of AJAXification) shows how this problem can be solved.

1998-2003: The Linux distribution formerly known as e-smith. In 1998 Kim Morrison and I started a company called e-smith to commercialize a simplified Linux server distribution for small business, offering virus scanner updates, management, and other network services by subscription. We sold the company in 2001 and the distribution changed hands several times, but it's still maintained and available for download. Some of the history can be found here.

Recent blog entries:

Presentations:

Half-baked ideas:

Could we extend the Spring framework to be a proper programming language? It seems to me a Spring configuration file is a lot like a program written in an awkward syntax that defines a set of global variables. What if we tried to create a notion of Spring procedures, including support for local variables? A local variable could be accessible to particular parts of the Spring configuration file, but not elsewhere. An objection might be that Spring doesn't make any commitments about order of evaluation (e.g. if you use lazy object creation) but some programming languages also have that property. This idea would dovetail well with functional programming.

Have half-baked ideas of your own? Interested in working with a like-minded community of talented software developers? Then come work for us at Lab49!