Hacker News new | past | comments | ask | show | jobs | submit login

Suddenly CoffeeScript makes a lot more sense to me:

"the language itself is held hostage by browser vendors, some of whom have shown a strong inclination to not give a fuck about owning up to and fixing their egregious mistakes"

So true. The JavaScript we've got now is the assembly language of the client-side. We can't easily change it, but we have to start building better tools on top of it.

A pretty decent part of the CoffeeScript MO is to start implementing things proposed for future versions of JavaScript ... but that we won't be able to use cross-browser for years and years. For example:

* Destructuring Assignment.

* Splats (Variadic Arguments).

* Lexical "this".

* Array and Object comprehensions.

* Classes (As sugar for prototype wrangling).

* String interpolation.

... to name the bigger ones. Many of these can be found in draft form on the ECMAScript Harmony wiki: http://wiki.ecmascript.org/doku.php?id=strawman:strawman

This reminds me of Scala X expecting Java 7 discussion. I like the fact that we, as more agile communities (Scala's and Coffeescript's), decided that we should not wait for committees, and we should control the languages we want to use it. And we won't wait 2/3 years. We are doing it now.

I still think Javascript is a pretty elegant language. None of it's features are unique to only it, but it's the combination of the prototype model, the completely dynamic nature, the ability to easily convert objects to and from strings, the callback nature... all of that together makes it as elegant as any language I can think of. At the same time I welcome CoffeeScript and the many DSLs appearing on top of Javascript (Mobl, for example).

Indeed. When you consider the alternatives at the time, Java and VBScript, JavaScript doesn't look so bad...

>So true. The JavaScript we've got now is the assembly language of the client-side.


Javascript is a high-level, dynamic language with very nice metaprogramming capabilites (compared to Ruby: http://fingernailsinoatmeal.com/post/292301859/metaprogrammi...). Totally bizarre to compare it to assembly.

I made the comparison in the sense that if you want to use another language on the client-side (like CoffeeScript, for example) you end up compiling down to JavaScript as the low-level implementation.

Machine language, then. Assembler is compiled, too.

It's an appropriate comparison. Javascript was designed as a helper language, not what it's become - the level we code guis at. We need something more dynamic than html and less programmatic than javascript.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact