Ruby is not Rails

September 18th, 2006

Or, why James Gosling defines the problem

This article is actually what is prompting the creation of this blog. Every once in a while something clicks in my head: that lisp really isn’t that great (I dig ML’s static typing), that politics doesn’t make good dinner conversation, and that language popularity is defined not by how great the language is, but rather who farts loudest.

When James Gosling, the original designer of the Java language is asked if he’s actually ever tried Ruby, he responds as follows (emphasis mine):

“I guess I’d call myself moderately familiar [with Ruby]. I haven’t used it a lot. I have somewhat. As a language it’s fine. The interesting bit is the Rails framework. The Rails framework, if what you want to do fits with what the Rails framework wants to do, it’s actually pretty slick. But people use all the methodology of the Rails framework in Java all the time.”

Now, I understand that a lot of what Sun is doing with Java revolves around them being the top dog in the web/enterprise language space. In some fashion, it makes sense that other languages with up-and-coming web application frameworks and methodologies (ruby with rails, smalltalk with seaside) are sort of making folks up here sort of nervous. But, coming from a language designer, I would have expected more discussion of what he doesn’t like about Ruby and not that Rails is possible in Java. He completely disregarded the language and locked onto the framework, defending his language by arguing that a library could easily be implemented in it. Well, no offense intended sir, and I understand that you are much smarter than I am, but, well, Duh. The differences between Rails and Java don’t exist, because Rails is a a library and a philosophy, and Java is a language. Yes, there are some cool features of Ruby utilized by the Rails framework, but there are cool features in Java too, and a different set of cool features doesn’t rule out the existance or possibility of a philosophy in a library for a language. There are plenty of legitimate topics for discussion in the Java/Ruby (or Python, or Smalltalk, or Haskell, or Erlang, or, or, or) debate: static/dynamic typing and all the cruft that brings along, open classes, script vs. compiled bytecode.

What this all means is that what Mr. Gosling (and I think this is indicative of a lot of people in the big language camps) saw when he looked at Ruby wasn’t a new way to think about programming; what he saw was hype around a framework. He saw a framework that works really well and the utilizes features of a language and decided (like a lot of folks) that Rails == Ruby, and that since Rails is possible in Java, Java > Ruby.

I don’t really know where this is going, except that it sort of clicked in my head today that the popularity of a language has a lot more to do with perceived value than better design or implementation. The perceived value of big languages like Java or C# is that a) those languages are massively supported, and b) there is a lot of software being developed in them, so they must be capable. The point beinging defended here is (b). Since the philosophy that makes Rails unique is possible in Java, there must be capable of everything Ruby is.

Alright - my rant is over for now. I may have more to say on this subject later. Night everyone.

Why Hello There …

September 16th, 2006

To blog, or not to blog; that is the question.

I really want to blog; I have things that I want to say, things I feel should be heard. I have questions to ask, and answers to give, philosophies to invent and digest. It’s time that as a member of a connected society I took hold of the means which I was given to make my voice known. It’s sort of late in the game, maybe, but I’m coming out playing hard nonetheless. The question for me then is less whether or not to do it, but rather, what.

What is the point? What do I want to say, what will I tell the world? I don’t pretend that anyone but me cares about my Guitar Hero scores; I know that the daily exertions of work, or my dog, or the neat birds that live in the tree outside my bedroom window very rarely will get people excited. In all honesty, I don’t think I could make myself write about things like that very often.

Instead, I’m going to write on a topic. Granted, it’s a broad topic; that’s subtle tricky to make my job easier. I am going to write on the confluence of technology, philosophy and culture. WHat this actually means is in flux. I just want to document my view of the world of technology and how society (mal)adjusts to it. I won’t pretend I have an authoritative voice on the subject; I can’t even begin to say things in the realm of importance that others can. I simply feel that, given the opportunity, my voice could, would and should be heard.

The purpose of this post is to give me a focus; to mold my vision of what this space is supposed to be, and to assign myself a mission statement.

Untitled’s mission is as follows: be insightful, brave and honest. Have integrity and be candid. Don’t be stupid, and make sure that feet stay out of mouths. as much as possible. Most of all, make this space one which I am proud to call my own.