Saturday, July 07, 2007

REST rules

I am a software architect who also writes a lot of code. I very much like using different programming languages for different system modules based on language features and available libraries. In other words, I have moved past trying to write everything in C++ or Java.

For my current project, I need to do a lot of development in both Ruby (small utilities, database, text utilities, Rails) and back end Common Lisp AI processes. After decades of building custom socket interfaces, CORBA, SOAP, JMS, etc. the simplicity of REST is just right for most of what I need to do that consists of stateless service requests. REST services can return plain text, JSON, XML, etc., depending on what makes sense for any given service.

Implementing Ruby REST clients is simple (what isn't in Ruby :-), and writing generic REST services in Lisp is simple enough using any of the common Lisp web servers (I use Portable AllegroServe, but any that you like will do).

5 comments:

RichOnRails said...

Mark, I find your mixing of Lisp services with the Ruby Restful interfaces very interesting. I do not have Lisp experience. Can you describe an example. Maybe this may pull me into learning Lisp or some dialect. Have you read the new RESTful Web Services book?

Mark Watson, author and consultant said...

I would not get caught up in learning Lisp unless it is the best language for one of your projects. Implementing REST on the client or server side is easy for most programming languages. Since you like Ruby, experiment with REST services using Ruby's WEBrick, with separate Ruby clients.

RichOnRails said...

Mark, I guess I was not clear in what interested me with your Ruby-Lisp combo. I enjoy languages like Smalltalk and Ruby, for this I have not pursued different languages. What is it with Lisp that so many that know it love it? Maybe I am missing something.

Mark Watson, author and consultant said...

Rich, for me, Lisp is just a great language for some types of applications. Sometimes Java or Ruby works better for me. Squeak Smalltalk is awesome, but I don't think that anyone will ever pay me to do a project in Squeak. My customers always ask for Java, Lisp, or Ruby. As to your question: Lisp is especially good for building applications from bottom to top, basically expanding the language up into your application domain.

RichOnRails said...

Hi Mark, I can guess that customers ask for Java or Ruby by their popularity but to the public why would they ask for Lisp? Do you any idea? Perhaps your customers have more insight than most.