The Insecurities of Software Development
July 8th, 2012 by ravi

Warning: this post is not about the merits and demerits of programming languages. It’s a polemic about periodic outbreaks of hating on this or that programming language and what might motivate it.

If you frequent popular tech watering holes like Hacker News, sooner or later you are bound to witness a discussion of the differences between some subset of the terms coder, programmer, software developer and software engineer. There really is none. The discussion nevertheless is unsurprising considering that the urge to construct complex theories and artificial hierarchies has been a reliable constant in human history. Software development (like economics), a craft in search of a science, is particularly vulnerable to insecure navel-gazing. All that energy piled up from sophisticated coursework on compiler design, the lambda calculus and finite automata theory has to be expended somewhere, if not in the making of things. And like economics, that energy finds its outlet in punditry.

On that front, these days, par for the hand-wringing and teeth-gnashing course, perhaps its 18th hole, is ado over programming languages. There has been recently a rash of new programming languages and interest in old ones. Don’t like Java or JavaScript. There’s CoffeeScript. And Clojure. Not arcane enough? How about Haskell, Scala, Erlang. Not low level enough? Try Go. Need more cruft? Possibly Java or Microsoft’s C#. Coolness? Definitely Ruby. And then you have Python which, visually, seems to be the COBOL of modern scripting languages. There’s also Lua, Rhino, Limbo… the list goes on. Makes you yearn for the days when all “scripting” languages were dismissed as beneath serious use. Each language has its adherents and deep theory to encourage wider adoption. The cries abound from each corner: mine’s expressive, but mine’s functional, it’s reflective, I got some fine functions as first-class objects right here, check out my concurrency and lazy evaluation, let’s go prototypal… someone more talented could mix an impressive rap song out of this jargon soup.

Read the rest of this entry »

The false seductiveness of obfuscation and language overuse
October 20th, 2010 by ravi

Douglas Crockford, in the intro to Javascript: The Good Parts:

When I was a young journeyman programmer, I would learn about every feature of the languages I was using, and I would attempt to use all of those features when I wrote. I suppose it was a way of showing off, and I suppose it worked because I was the guy you went to if you wanted to know how to use a particular feature.

Eventually I figured out that some of those features were more trouble than they were worth. Some of them were poorly specified, and so were more likely to cause portability problems. Some resulted in code that was difficult to read or modify. Some induced me to write in a manner that was too tricky and error-prone. And some of those features were design errors. Sometimes language designers make mistakes.

David Foster Wallace on Perl Programmers
August 15th, 2010 by ravi

Okay fine, he is talking about a particular kind of tennis trainee, but it seems worrisomely applicable to those (like me) who are unable to part ways with Perl:

You’ve got the Complacent type, who improves radically until he hits a plateau, and is content with the radical improvement he’s made to get to the plateau, and doesn’t mind staying at the plateau because it’s comfortable and familiar, and he doesn’t worry about getting off it, and pretty soon you find he’s designed a whole game around compensating for the weaknesses and chinks in the armor the given plateau represents in his game, still — his whole game is based on the plateau now. And little by little, guys he used to beat start beating him, locating the chinks of the plateau, and his rank starts to slide, but he’ll say he doesn’t care, he says he’s in it for the love of the game, and he always smiles but there gets to be something sort of tight and hangdog about his smile[.]

But still, how is it possible to easily bid adieu to an unpretentious language that provides a construction as tight as: $x ||= 5;

»  Substance: WordPress  »  Style: Ahren Ahimsa