I’ve been interested in languages ever since I was little and I first learned how to read. I’ve taken French in High School and German in college, I just love being able to find similarities and difference in languages (one of the reasons I’m toying with taking some linguistics classes for my upper-division credits). I also really love programming languages, for some reason I actually bought a book on Modula-2 just based on an article I read on Dr. Dobb’s Journal waaaay back when. In my short time as a programmer I’ve looked at PostScript, Objective-C, Smalltalk (just a little), Java, C, Ruby, Groovy, etc. if it seemed at all interesting I picked it up and shook it to see what fell out.
This summer I went to NFJS (No Fluff Just Stuff) in Phoenix and got to hear Neal Ford talk about Domain Specific Languages (DSLs for short). He went through a number of examples of how to do a DSL inside of a language like Ruby, or Java and also talked about Lisp and how after a time you rose above the language and were in a domain-space.
I listened to this raptly and began to understand where some of my earlier research had led me. A few years ago I picked up a book called Generative Programming, which actually talked about some of the same technologies that Neal was talking about now. Of course to me alot of the book was over my head, but still very interesting. I think that we are now in this space, there is no magic bullet to solve every project, and if the domain is big enough you should be writing something “in that domain” not in Java, Struts, Tapestry, etc. Those are the tools you use when you deploy, but not when you write an app for your domain.
This is what RoR gets, this is what RoR is about, it is about a tool that will help you build an app for a domain. I think in the next year or so we are going to see alot of DSLs pop up that work on very specific domains, or allow you to tweak, and add-on to change for your domain.