A Response to 'Web Applications Should Be Compiled'
2009.06.06
I came across Joel Hayhurst's post Web Applications Should Be Compiled on Hacker News the other day. While part of the thesis is interesting, a full-stack Rails-style web application framework written in C for high performance reasons, I find Hayhurt's arguments superficial and baseless.
Primarily, I take issue with Hayhurst's builder analogy while referring to Ruby:
You use the best tool for the job to [make the machine work]. You don’t choose some pretty language that “brings back the joy of coding” or equivalent hippy shit. This is analogous to hiring someone to build a house and having him tell you he’s not going to use conventional materials like wood and steel because they aren’t as fun to use as Play-doh. Grow the fuck up.
The point here being that anybody who programs a web application in Ruby is a fool, and it's analogous to a builder who uses Play-doh to make a house. This is absurd, and the comparison is inapt. When a developer uses a language like Ruby, it's because he can work in a more efficient, joyful environment, and achieve a quicker, better result. Of course the result, at the fundamental level, is still the same: 0s and 1s being interpreted by a machine. Whether that's through compiled, machine level code or an interpreter is irrelevant here.
Hayhurst's bulder analogy needs to be modified:
You use the best tool for the job, the job being the cohesive whole of the endeavor. Choosing a language because of its expressiveness, ease and joy of use over some other is like building a house with a set of nice power tools over a hammer and saw. You're still using the same materials, wood and steel, but your construction and manipulation of them is empowered.
In Ruby's case, part of the joy is the language's elegance, and another part is the successful results one can return via a framework like Rails. The most painless way to build something of high quality is to use high quality tools. This is common engineering sense, not "hippy shit."