Clementson's Blog

Bits and pieces (mostly Lisp-related) that I collect from the ether.

May 2007
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Apr  Jun

Farm Where the Fertilizer is Thickest

Wednesday, May 23, 2007

I didn't go to POPL 2007; however, some of the presentations from the conference have now started to appear. One that struck some chords with me was one given by Chet Murthy of IBM titled "Advanced Programming Languages in Enterprise Software: A lambda-calculus theorist wanders into an enterprise datacenter" in which he describes how one can introduce advanced programming language techniques to Enterprise Software. A while back, I wrote a fairly popular (based on the number of hits it got) post titled "How to make money with Lisp" in which I described a number of strategies one could use in order to make a living writing Lisp code. Well, Chet Murthy's presentation focuses on one specific technique: using the technical advantages of an advanced programming language to replace/supplant specific functionality in an Enterprise System (using the inherent negatives of Enterprise System designs to add specific, key improvements).

The two key points in his presentation are:

  1. Advanced Programming Language technology is a secret weapon in enterprise computing
  2. Farm where the fertilizer is thickest: Enterprise Systems
In the presentation, he talks about Enterprise Software systems, which he notes: He sites specific examples (with names changed to protect paying customers. ;-) - but anyone who has either worked in this space or has dealt with Fortune 500 companies won't have trouble associating his examples with some real-life companies). Then, he describes some of the problems/characteristics associated with this type of software: Due to the "silo-like" nature of enterprise development (given the above characteristics), specific transactional components can be viewed as functional programs that read from a persistent store, write back to the persistent store, and produce some functional data structure. This can be visualized as follows:

POPL07 Slide

Oftentimes, there can be good reasons (and opportunities) to "swap out" a specific component with a faster, more functional, more efficient, and/or more interoperable equivalent. The example he gives is replacing an XSL subsystem with ML to improve XML transformation performance. Although he doesn't talk about web services, these same characteristics have been drivers behind the push for the support of web services in the enterprise as Enterprise Software vendors have attempted to accommodate customer demands for more flexibility and interoperability. So, an enterprising developer (pun intended!) can often make a strong (and valid) case for replacing existing enterprise functionality with a completely different technology solution.

His talk is available as an abstract and as a presentation (either PPT or PDF or ODP) and is another example of how one can incorporate non-mainstream languages and techniques into something as mainstream as Enterprise Software by thinking different!

emacs Copyright © 2007 by Bill Clementson