Imagine Language Consolidation

I started programming in BASIC on a Commodore 64. From there it was GW-BASIC on an 8086 PC, Pascal, C on AIX/Linux, Perl, minimal Java, and for the last 11 years good chunk of Python. I don’t really consider myself that advanced in the field, frankly. It’s not my full-time day job.

However, if you told me tomorrow that everyone currently working in Perl, Python, or Ruby was going to standardize on one and only one of them, make it rock solid with a phenomenal standard library, and have a major feature release ever year, I would happily ditch the Python I enjoy so much and join the crowd.

I haven’t started the World Scripting Language Standardization Consortium or something, so don’t take all of this too seriously, but I tweeted this today as something for folks to consider that they might never have:

Can you imagine the benefits possible to everyone if everyone agreed to do dev only in ONE of #perl #python #ruby ? ENORMOUS.

The first responder stated:

very little actually because of the lack of diversity

Let’s put that in direct context and make a full sentence from it so we’re clear what he’s saying: “There would be very little benefit to everyone doing scripting development in 1 language because of the lack of language diversity.”

To me, that makes no sense whatsoever.

While your language of choice is a religious or emotional topic to you, it really shouldn’t be to the extent you take it (whomever). But Perl allows me to parse X. And in Ruby I have blocks and hoo-hahs! And Python has a nice way of Y! Who cares? It’s really all the same shit, folks. It’s all Smalltalk, Pascal, Lisp, awk, sed, and 20 other things, and the 3 languages all do the same damn thing in the end. We all have our preferences, but my point is that we pay an astounding cost for that small freedom of preference. Is it really worth it here?

What if 3 versions of TCP/IP had grown up with the internet, all with the same real end result to 95% accuracy?

Standards bodies exist for a very very good reason, and it’s not to be The Man keeping you down.

Consider how ridiculous it is that the US still doesn’t use the metric system and consider how much time and money is wasted dealing directly and indirectly with imperial units.

Now, I wouldn’t consider myself a web developer, because it sure isn’t what I do for my day job, but I’ve been there every part of the way since installing NCSA httpd 0.9, writing HTML in 1994, and having wrapped up a Django 1.3 app last week… but I don’t think I need to remind you all of the absolutely hell on earth that was web development from 1998-2010 due to waffling standards and shoddy adherence to the standards that existed during that time.

How many tens of thousands of hours have been wasted by developers implementing the same functionality in new language X that existed in last year’s language Y? I wish I knew, but I have to guess it’s a staggering amount of effort that could have made a single fantasticly stable and thorough language.

How do we practically weigh the value of language choice freedom in the face of global familiarity and standardization for the sake of productivity?

And here we also get into the “artistic expression” side of programming and whether that’s sufficient enough ground to warrant myriad language choices to tickle each developer. That’s a huge can of worms. Are you really that phenomenal an artist that your masterpiece must have Blue shade 102 and not Blue shade 103 only offered by MasterPaintCo? No, you’re not.

Oh how we like to feel special and part of something cool.

TID[1] pointed out that an analogy to all of this can be made in the situation of Esperanto which went nowhere (and I was ALL FOR, BTW). It’s a similar situation, but only on the surface. I don’t think it’s fair to consider the failure of changing the spoken and written language of everyone on the planet, in the face of thousands of years of history… to Jimmy who chose write his applications in Python since 2001.

If you’re a programmer’s programmer, I’m pretty sure you wouldn’t stop programming because the language you like was no longer an option. You’d bitch and moan, learn it because your livelihood depended on it, become very proficient with it, forget what seemed so enticing about the previous language in a year, and ultimately (the goal) continue to create cool applications that made you happy.

So is the world a better, more productive, and more progressive place with a 5%-new-ideas language every year? I think it’s pretty clear where I stand. We don’t need another divisive general purpose programming language with a new syntax, and we didn’t need the last one we got, or probably the one before that, or…

I’d be super happy with everyone on the same team using a single amazingly solid and amazingly documented general purpose language. The language would grow to meet changing needs in the world and all of the time everyone spent previously implementing a new language, learning a new language, or reinventing wheels in some new language, would be spent doing something actually innovative.

I dunno. Just something to think about. Or not.

[1] Thanks to The Insane Dreamer (who may totally disagree with all of the above). We had a thoughtful exchange via twitter on this subject.