Friday, October 19, 2012

A simple quantitative metric for comparing programming languages

Try this: pick up a copy of JavaSript: The Good Parts ($30; 176pp) in one hand and a copy of The C++ Programming Language ($75; 1040pp) in the other. Now: not knowing anything else about them, which language would you rather use? Which language would you suspect has more sharp edges that you'll have to arduously learn to avoid as you cut yourself on them, one by one, over the course of months or years?

The C++PL is a great book - comprehensive, well organized, clearly and enjoyably written - but surely the heft of the user's manual says something about a gadget. And before you argue that the JS book doesn't have any I/O complexity to deal with, I'll throw in the entire Node.js manual for free - and I'll bet the difference in word count is still an order of magnitude. In UI design, the goal is to not need a manual at all - shouldn't that hold true for programming languages as well? What would Tony Hoare say?

He would say this:

"Programmers are always surrounded by complexity; we cannot avoid it. Our applications are complex because we are ambitious to use our computers in ever more sophisticated ways. Programming is complex because of the large number of conflicting objectives for each of our programming projects. If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather than part of its solution."

No comments:

Post a Comment