Wednesday, November 28, 2012

The Universal Language

What if you could use the same language anywhere you go?  Server/clientside, desktop, mobile, game dev, physics simulators, EBook readers, etc.  This sounds like a pipe dream, and it is in a way.  If it was possible, what would we want the language to look like?  It would have to be:
  • Fast
  • Open and Extensible
  • Simple, yet powerful
  • Easy to debug  (If it's appropriate to yell "HEEEEY MACARENA" at the end of your message, it might be too complicated).
  • Language nesting (You can write the language in the language)
  • Well-documented
(An argument could be made for rapid prototyping, but this usually relies more on libraries than the language).

Slightly off-topic, my roommates had a brilliant idea: "Why don't we make a video game?"  After an excited afternoon of guffaws they had several pages of scribbles.  Then, to my surprise, they actually started work using the Unity game engine.  One of the language options for writing code is UnityScript.  While it's not pure JavaScript, it's pretty close.  Most JavaScript developers should feel comfortable in the UnityScript environment.

It's about this time that I first started experimenting with Node.  Node is a powerful server-side platform using (you guessed it) JavaScript.  It's ridiculously fast, posting times comparable to compiled languages (this is all thanks to Google's open V8 engine).

Astute readers will see where I'm going with this.  Can JavaScript become the universal language?  It's certainly fast (or certain implementations are).  The ECMA standard is open.  JavaScript's flexible enough to be used in all of the above examples.  It's also easy to create powerful libraries for JavaScript to use.  The documentation and errors could use some help.  Overall, JavaScript seems like our universal language.

However, this ignores all of the other languages out there.  C/C++ is fast.  Java's "cross-platform."  Python is extensible.  Why is JavaScript so special?

Javascript is unique in that it is the de facto language for client-side scripting.  Thus, anyone with a web browser (i.e. everyone reading this right now) has access to a JavaScript environment.  Secondly, it means that anyone involved in web development (a large segment of developers) should have a working knowledge of JavaScript.  This means it's much easier for a PHP guy to move to Node.js than Ruby.

JavaScript isn't perfect (seriously, who thought it was a good idea to have "with"?).  I'm also not suggesting that we should use one language for everything.  However, if there's a universal language, it's JavaScript.  Learning and improving your JavaScript skills will be a net gain for your career.

No comments:

Post a Comment