

CoffeeScript Means Giving Up on JavaScript - mwbiz
http://www.w2lessons.com/2011/11/coffeescript-means-giving-up-on.html

======
jashkenas
It's very gratifying to see how overwhelmingly the comments are both positive
and in disagreement with Michael's blog post.

If you'd like to see the most complete explanation of why CoffeeScript is all
about working with and embracing JavaScript -- not giving up on it -- the best
resource is probably Brendan Eich's and my joint talk at this year's JSConf:

<http://blip.tv/jsconf/jsconf2011-jeremy-ashkenas-5258082>

But the other interesting thing here is how many of the comments point to the
fact that most people who write posts about fears of CoffeeScript have never
actually tried it. Having experienced a good deal of this myself, I have a pet
theory about why this is the case...

First, the caveat that CoffeeScript is just a fun little thought experiment: I
have no vested interest in whether you use it or avoid it for your project --
whatever suits you best.

Most esoteric programming languages are non-threatening. As a hypothetical
programmer working on web applications, I can feel safe and comfortable in my
ignorance of Haskell, Erlang, D, Io, Arc, and so on. They're far enough
outside of the realm of possibility of adoption for my company that I can
shrug them off with an "oh, that sounds interesting", and little more. Wanting
to adopt one of them would require a whole new development and deployment
stack, a new or ported codebase, and new integration costs with the rest of
our system. You wouldn't expect to see an article talking about how people
using Erlang are creating a "knowledge gap" for Java programmers.

CoffeeScript feels threatening precisely because it _is_ so close to
JavaScript, because the code can run with identical performance as hand-
optimized JS anywhere that JavaScript can run, because any CoffeeScript
library can interoperate seamlessly with any JavaScript library, and vice
versa. It forces you, as a reasonable JavaScript programmer, to answer the
harder question: Why haven't you tried it yet? Posts like these happen when
folks try to rationalize an answer for themselves.

~~~
fooandbarify
_Why haven't you tried it yet?_

I have tried it, and I love it (same goes for Backbone and Underscore, by the
way - you are the developer who's work has impacted me the most positively in
the past year) _but_ I haven't used it for anything serious yet, and here's
why: the workflow is more complicated than "make change, refresh". Until very
recently, my programming time was split about equally between the three major
operating systems (I have since managed to phase out Windows almost entirely)
and it's way more trouble than it's worth to set each of them to autocompile
changes to .coffees. I know that I could import the compiler and use script
type="text/coffeescript", I know about LiveReload for Mac (even though I
couldn't get it working in the few minutes I tried it) but the bottom line is
that I already know how to write Javascript, and it works great. Learning a
new language is the sort of thing I like doing, but wasting time futzing
around with build systems is not.

Anyway, I didn't mean to rant. I could easily love CoffeeScript - I don't feel
threatened by it a bit. But there are some serious barriers to adoption, and
Javascript isn't nearly painful enough for me to deal with them.

~~~
stdbrouw
If that's truly all that's stopping you, try out Middleman
(<http://middlemanapp.com/>) or my own Draughtsman
(<https://github.com/stdbrouw/draughtsman>). Taking two minutes to install an
app hopefully does not constitute "wasting time futzing around with build
systems" :-)

Also, I think your problem is very particular to front-end devs and designers-
that-code. If you're already doing back-end in your framework of choice,
adding CoffeeScript or any kind of precompilation into the mix is usually just
a one-liner in a config file away.

~~~
fooandbarify
Cool, I will take a look!

And not every back-end dev is lucky enough to be working in their framework of
choice ;) (I would actually call myself more of a front-end guy, but I do
plenty of back-end work and the only time I get to use frameworks I enjoy -
Django, Flask, etc - is for my side projects.)

------
stdbrouw
> More importantly, [languages like CoffeeScript] all fail by requiring that
> you be an expert in two languages.

Why does this mean they fail?

> learning CoffeeScript and its idiosyncrasies

Which idiosyncrasies?

> The problem is that many programmers are turned-off by the lax nature of
> JavaScript

Maybe true of Dart, not of CoffeeScript

> but I urge you to ask yourself whether a move to CoffeeScript is sign that
> you've given up on learning it properly?

It isn't.

> we rarely have problems caused by the very things that CoffeeScript aims to
> eliminate

CoffeeScript is generally more readable and concise than JavaScript. It's just
more pleasant to work with. Does it solve any problems for a narrow definition
of "problem"? Probably not, but who cares?

I've noticed that most people who don't like CoffeeScript simply have a
negative gut feeling about it, but have never really tried it. Or are trying
to prove that they're better at JavaScript than you are (see
<http://stdout.be/2011/08/23/macho-programming/>). I don't mind that: everyone
is free to choose his/her own tools, and if one of the hot new tools everybody
else seems to be using just looks ugly or stupid to you, whatever. I probably
make my own fair share of weird toolkit choices. But I don't try to
rationalize them with arguments that don't make sense.

------
dmethvin
CoffeeScript _will_ mean giving up on JavaScript. The more popular
CoffeeScript becomes, the less proficient the overall developer population
will be at JavaScript,especially if they spend most of their time writing CS
over JS. The problem at the moment is that the world still works in
JavaScript, not CoffeeScript.

He rightly draws the analogy between jQuery and JS. I spend a lot of my time
working on jQuery core, and we have definitely seen the phenomenon described
in that blog. Five years ago when jQuery was created, just about every web
developer knew JS quite well and understood the quirks of every browser and JS
implementation. Now, they just assume that if something doesn't work
consistently in IE6 then it must be a jQuery bug, because you know, _jQuery is
cross browser_. People are now programming in jQuery and have given up on
JavaScript.

If you're a CoffeeScript pioneer you don't see this. You already know the hard
and ugly JS things that CS makes easy and beautiful, just like the early
jQuery adopters. A few years from now if browsers haven't created native CS
implementations but CS is popular, novice programmers will be dealing with the
same jQuery-vs-JS dilemma. For example, programmers with weak JS skills will
write CS and be baffled by the errors thrown from the bowels of the JS code
they are forced to debug.

~~~
politician
"In a few years," Chrome and Firefox will have support for source maps. The
average CS developer will be debugging in CoffeeScript, not JavaScript. The
original author's argument is much weaker when this feature is considered.

~~~
Isofarro
The original author's argument will be much weaker when this feature is
implemented. But not today.

Promises of future solutions don't help fix the problems that exist today
today.

~~~
showell30
The author of the people-will-forget-JS-in-the-future premise is specifically
referring to the future. CS specifically solves a present-day problem--ugly JS
syntax.

------
phzbOx
To quote the author: "For the extra effort you'll make learning CoffeeScript
and its idiosyncrasies, why not put it towards really learning JavaScript?"

There are so many wrong saying in this statement.

First, understand that CoffeeScript _is_ JavaScript - but without its
idiosyncrasies. If you know JavaScript really well, learning coffeescript
takes minutes. CoffeeScript embraces closures and prototype inheritence; it
just makes it less cumbersome to use.

Second, who said that programming in CoffeeScript means you don't _really_
know JavaScript? CoffeeScript let you write better code in less line. (By
better I mean easier to maintain and read). Furthermore, CoffeeScript
programmers tend to choose it because they enjoy coding in Javascript and want
to keep using it. What is way more scary is maintaining codes of designers who
use jQuery without understanding Javascript.

Third, I hate the "For the extra effort" part. It's like saying, either you
learn Python or C++; you can't learn both so better spend the time learning
C++. It's just totally wrong. Good programmers tend to enjoy learning new
technologies and paradigms. I'd even go further by saying that learning
CoffeeScript will make you a better JavaScript programmer.

~~~
wheels
> _Good programmers tend to enjoy learning new technologies and paradigms._

You've stumbled onto a pet peeve of mine. I think it's rather that people who
like learning new programming languages like labeling people like them as
"good".

The flip side of the coin is that there's a huge intersecting set of
attention-deficit afflicted dabblers who play with a large number of
technologies and master none of them. I enjoyed learning programming languages
when I was 14. I'm 31 now, and now I like solving actual problems. If I need
to learn a new technology to do so, so be it, but there's rarely much joy in
such.

I believe you'd find the opposite true if you surveyed more mature fields:
master craftsmen tend to be stubborn about the tools they use, but know them
inside out.

~~~
SoftwareMaven
I think software developers would be wise to be a little more flexible. The
field is new enough that ideas change all the time. The worst projects I've
worked on we're stilted by "we'll bring in a new tech if we need it (but we
can always work around needing it)".

Conversely, the second worst projects I've worked on suffer from ADD: "Look, a
shiney, new tech. We must embrace it!"

My philosophy is to continually learn new stuff for its own sake (I've focused
on languages in the past, but I think it's time to switch to algorithms). I
may never use something I've learned, but my tool chest is much more broad
(and that Erlang tinkering is coming in handy now!).

I don't think I'm a better developer that a highly-focused compiler writer
that knows YACC inside and out. We have different skills for different needs.
But I still think the compiler writer would benefit from broadened education.

------
mythz
This article screams of: "I dont want to learn CoffeeScript, Don't use it!"

His basis of not having to learn CoffeeScript is that he uses structural js
frameworks? Like somehow CoffeeScript prevents you from doing that?

I'm all for sound reasoning showing pitfalls of certain languages - which
despite its wordiness, the article demonstrates a severe lack of. IMO the
biggest reason not to use CoffeeScript is the lack of a good debugging
experience. Although that's about to get better with soon being able to write
source debug symbols in js for transpiled languages.

At the same time the JavaScript language is constantly improving (albeit
slowly), which ideally would mitigate the need for CoffeeScript / Dart / etc.
But that's not going to be available in mainstream client js programming for
years to come. In the meantime feel free to use what language you feel more
productive in - and stop trying to impose your personal taste onto others.

------
wickedchicken
I really hope that we can finally end the tyranny of Javascript and allow
programmer freedom. This is why PNaCl is so exciting -- just send LLVM
bytecode which can be executed more directly and efficiently. You can choose
whatever language you'd like! Imagine if every server (every. server.) had to
run PHP on the backend and Java, Ruby, OCaml, even C just compiled to PHP. You
would go insane. We don't have that situation on servers, but we have it on
browsers.

It would not be so bad if the underlying language was more direct -- after
all, we mostly run on the x86 ABI which is _also_ insane, but much less so. I
don't use Javascript that much, but it appears to be a hacked-up version of
Self that you need to include weird modules to do anything with?

~~~
voidfiles
Whoa, JavaScript is so much better then PHP.

~~~
wickedchicken
From what I understand, working in Javascript is by default a terrible
situation, and you have to go out of your way to do anything good (hence the
plethora of structural frameworks). This is why you never see a book like "C:
the good parts" or "Ruby: the good parts." And from my limited knowledge of
it, the good parts of Javascript are Self (or, I guess, Coffeescript).

It's like people living near Albany NY who are "so close to Boston, NYC, and
Montreal!" Yeah you may be close to "there," but you aren't _there_. I can
assure you the people living in Boston, NYC and Montreal are never excited to
visit Albany.

~~~
Karellen
Working with the Javascript HTML DOM API is a terrible situation, and you have
to go out of your way to work around that brokenness to do anything good with
the DOM.

Javascript the language, and most libraries/APIs written for Javascript using
Javascript idioms, are very pleasant.

~~~
showell30
I 100% agree that the DOM API is a terrible situation. I don't agree that JS
is pleasant. When you run a marathon, your legs ache, and that's the DOM API
(and all the other concerns of web programming). JS is the little blister on
your foot. It hurts too. CS is the vaseline on that little blister. Sure, you
still have to run the marathon, and it's gonna suck. But at least the blister
is no longer a problem, so you can focus on the bigger issues.

------
thibaut_barrere
As someone who was never completely comfortable with JavaScript, let me say
that since I started using CoffeeScript and Jasmine with Guard, I have
probably written more js features in two months than ever before.

I understand the point though, but for me it's about shipping, and really:
CoffeeScript has made me write a lot more client-side code and make it with
confidence, with fewer "wtf" moments.

I'm fairly sure at some point I'll need the help of someone who is really
proficient with JS, but the benefits are still so obvious to me I'm really
more than ok with it.

EDIT: someone on twitter asked what are recommended resources to learn
CoffeeScript - I made a gist of what worked for me here:
<https://gist.github.com/1343059>

------
esmooov
I'm not sure that this conclusion follows nor am I sure that discussions like
this accomplish anything. CoffeeScript makes it easier to write "correct" JS
and patches an institutional bug: Javascript's development crawls along. Even
if it didn't the browser-as-environment handcuffs developers from taking
advantage of new language features. (Have you used JS array comprehensions?
No, because browser support is spotty, unreliable). And even in the best of
development climates -- a thousand genius hackers ardently updating the code
base -- these environmental restrictions would persist, drawn over the frame
of IE-Mozilla-Google conflict and competition.

So we have languages that compile to JS that let the language evolve. I use
CoffeeScript sometimes and JS sometimes. I'm not going to waste the time in
the write-compile CoffeeScript loop for 100 lines of JS that I can write
correctly. However, I no longer have to work on a 2k LOC, complex JS app
without all the niceties of CoffeeScript. Furthermore, if I'm doing something
that benefits from the special expressivity of a Lisp, I'll use clojurescript.
If I'm very adventurous (and I need to write, say, an H.264 decoder), I'll use
emscripten after any language that compiles to LLVM first.

But these are all for different uses, often things you would never have used
POJS for anyway. It's not a discussion of plain ol' JS versions of H.264
encoders vs those made originally with Emscripten. It's a discussion of them
not existing at all before, and now having the ability to express them and
compile to JS. It's not a question of the old enormous apps we built in JS to
the new, simpler ones we express in CoffeeScript. It's a question of not being
able to build/maintain 5k LOC in POJS across many developers (whereas this
task is less substantial in CoffeeScript). Live and let live and everyone
benefits.

------
pashields
I like having things like list comprehensions. I like having a sane scoping
system (as opposed to jsl and "best practices"). I'm also pretty fond of the
syntactic sugar being offered (the existential operator in particular).

Coffeescript just gives syntax to common patterns being used in js. For the
most part, it feels like a bunch of really nice macros that encapsulate those
patterns, making them less error-prone, easier to read, and easier to
maintain. I'm not really sure what the concern here is, since most of the post
seems to assert that people who use coffeescript don't know js, or that these
shortcomings could be addressed equally as well by a large framework system. I
can't imagine anyone actually believes the former, and while the latter may be
true I don't know why that framework will be so much easier to learn, use, and
maintain than the equivalent coffeescript.

------
Cushman
You can't write a program in C without knowledge of assembly, unless you're
willing to defer debugging to someone who does.

You can't write a line of code in any language if you don't know, on some
level, what it's doing in the machine (whether physical or virtual). Sure, you
_can_ , but you're not a programmer, you're a tinkerer. To really program, you
need to know assembly.

But at some scale, your application becomes large enough that no one person,
no matter how well they know the assembly it's compiled to, can hold the whole
thing in their head at once. At that point, reliably adding a new feature
isn't hard, it's _impossible_. There _will_ be side effects you can't predict.

Abstraction isn't there for making hard things easy. It does, and that's nice,
but that's not what we need it for. We need it to make impossible things
possible.

~~~
gnaritas
> To really program, you need to know assembly.

That's just an absurdly untrue statement.

~~~
thedufer
All abstractions are leaky to some degree. There will be problems you don't
understand if you don't know what's happening one layer down. This is not to
say there's something wrong with being a tinkerer - but it is saying that
there is a difference between a tinkerer and a professional.
[http://www.joelonsoftware.com/articles/LeakyAbstractions.htm...](http://www.joelonsoftware.com/articles/LeakyAbstractions.html)
for better writing on this topic.

------
TrevorBurnham
It's a false choice that's been presented many times: Learn CoffeeScript, or
learn to do JavaScript _right_.

When I wrote the PragProg book on CoffeeScript
(<http://pragprog.com/book/tbcoffee/coffeescript>), my aim from the start was
to fill common gaps in JavaScripters' knowledge while introducing them to the
new language. Brendan Eich himself said in his blurb for the book: "It helps
readers become better JavaScripters in the process of learning CoffeeScript."

Far from distracting people from learning JavaScript properly, CoffeeScript is
a terrific learning tool.

------
voidfiles
Seriously, there needs to be something that shows the way to the future. The
people working on the next version of ECMAScript look to languages like
CoffeeScript as archetypes of the future.

More then anything CoffeeScript shows us what Javascript might look like
someday.

We get to actually try out new idioms and see if they work for us. If they
don't we have ample time to voice concerns. This is a huge departure from the
past.

If anything CoffeeScript will make Javascript better.

------
kvnn
> CoffeScript Means Giving Up on Javascript

It absolutely does not.

There is one good point from this article :

"Anyone who uses a Javascript library should know Javascript well or they will
run into problems with large applications"

The rest of the post is an attempt at instilling a granny-state fear for the
Javascript scene.

There will always be people using technology they don't understand. Why are
you so concerned about it?

------
Jach
As much as I don't like the analogy of JavaScript as the assembly for the web,
this feels like a fully general argument against learning any language besides
Blub, where Blub is some 'base'.

"C means giving up on x86 assembly."

"If we're already willing to learn both languages and then spend time reading
and debugging assembly code, why not just write good assembly code from the
start? For the extra effort you'll make learning C and its and its compiler's
idiosyncrasies, why not put it towards really learning assembly?"

I'll tell you why. Because while the initial cost of learning CoffeeScript (or
my own preference, ClojureScript) may be high, once that barrier is passed the
benefits of those languages mean at minimum that you're writing more-likely-
to-be-correct code faster. A master C programmer beats a master assembly
programmer.

One nice thing about ClojureScript is it lets you hook up a REPL with a
browser window which is great for many debugging needs, you can't do that in
JS without something like Firebug (which has its own quirks). The interesting
note there is that ClojureScript, and I imagine CoffeeScript, are marching
steadily toward the place where you don't need to know JS anymore, and
learning it is something you only do if you want to.

At one point you did need to know at least some assembly to really do C,
especially because you'd have to help the compiler out when it generated
stupid code. That age is long gone (except in the microcontroller world but
Arduino is making headway on that), many programmers learn C and never learn
any assembly. (Not to mention the matter of _which_ assembly.) You might have
to learn a bit about computers like the concept of memory and pointers to do
C, but those aren't fundamentally assembly features, just like needing to
learn about the DOM and browser events in ClojureScript/CoffeeScript isn't a
fundamental JavaScript feature. (As anyone who has done anything with RhinoJS
knows.)

------
jscheel
I too was a crotchety old, "get of my javascript lawn", type guy. I thought
coffeescript was for lazy developers who just didn't want to write good
javascript. Then I decided to use it when I was evaluating a framework,
because that framework had chosen to dive fully into coffeescript. All of
their examples were cs, so I figured, "what the heck." Even though I didn't
stay with that framework, I am so glad I gave cs a try. It has been a huge
blessing in rapid development. Having used it for five weeks now, I can
definitely sing it's praises. You still need to have a good understanding of
javascript, and there are obviously a few gotchas, but it has really changed
my who coding experience. I'm in the minority in my office, in that I actually
love javascript, but for those who hate it with a passion, introducing them to
coffeescript has gotten them on the js train.

------
nateberkopec
This is like saying "JRuby is like giving up on Ruby's performance" or
"learning Scheme means giving up on Lisp."

If you can write Coffeescript faster and better than you can write Javascript,
why _wouldn't_ you write Coffeescript?

~~~
paulbjensen
Posted a response:

Article: [http://paulbjensen.co.uk/blog/2011/11/06/my-response-to-
coff...](http://paulbjensen.co.uk/blog/2011/11/06/my-response-to-coffeescript-
means-giving-up-on-javascript) HN Link:
<http://news.ycombinator.com/item?id=3203181>

------
joelmichael
Everyone who uses CoffeeScript knows JavaScript. CoffeeScript is there for our
pleasure.

------
armandososa
I don't understand atl all his "you have to learn a new language" complaint.
If you know JavaScript you'll know CoffeeScript almost instantly.

I "learned" CoffeeScript in, like, half an hour and I'm not even a good
programmer.

------
spacefungus
There are a lot of fair points here, but I know personally for me that I was
using jQuery for a lot of websites, then saw the beauty of some .coffee files
and got into it. Since then, I've cared more about just plain ol' JavaScript
and have stopped using frameworks (most of the time).

So while the syntax of CoffeeScript may mean giving up on the syntax of
JavaScript, it's brought me closer to vanilla JavaScript and made me more
aware of it, without being in the context of a framework like jQuery or
Prototype.

Just my two cents...

------
orthecreedence
I understand the gravitation for languages that compile to javascript, but
personally I've really come to enjoy programming JS. One thing that I don't
really get is the fact that most compile-to-js languages are seemingly just
switching out the syntax and not actually improving what can be done with the
language.

The only useful (as in, I would actually use it) project I've come across in
this realm is parenscript (<http://common-lisp.net/project/parenscript/>)
which compiles a variant of lisp into javascript. It seems to me the best way
to go from language X to JS is to make sure X is actually a better language.
From my (admittedly small) experience with CoffeeScript, I haven't really seen
much of the benefit, and I tend to _NOT_ like CS syntax. Also, javascript is a
superbly powerful language in my experience, and trying to replace it would
take some real thought and work.

It seems to me that taking an extremely powerful (and terse) language and
compiling it to javascript would be more useful than switching out JS' syntax
and adding a few easily-replicable features. Then again, maybe I'm just
ignorant.

I don't really see what's to replace, though. JS ain't that bad.

------
acraciun
We felt also the limits of Javascript especially for bigger projects. As we
come from a Java background, we created the STJS project (Strongly-Typed
Javascript : <http://st-js.sourceforge.net>). But as the author of the
article, we felt that other frameworks doing similar job create a too big gap
between the code in the source language and the generated code, so debugging
directly in the browser becomes way too complicated. We want so far in our
approach to stay as close as possible to Javascript that, for example, we
forbid name of variables that are Javascript keywords, but not Java keywords
(like var or prototype). What we needed was not to write less code (we don’t
use Notepad – in Eclipse Ctrl+Space and a lot of code comes from IDE), but to
have more help from modern IDE . We do believe in the importance of
continually refactoring our code, eliminating dead code, controlling
executions paths, things that seem to be unattainable by Javascript or some
similar source languages translating to Javascript (Coffescript for example)

------
js2
Let me try a little experiment here:

 _While many of you will probably disagree with me, I find the trend towards
writing in languages that compile to machine language somewhat alarming. The
most notable of these languages C, and it's one that has gained a good degree
of traction over the last year or so.

While I like and applaud the intention of these languages, I question their
necessity and worry about the knowledge gap they create. More importantly,
they all fail by requiring that you be an expert in two languages. Let's face
it, you can't just program C without knowing machine language, unless you're
willing to defer debugging to someone who does. If we're already willing to
learn both languages and then spend time reading and debugging compiled C, why
not just write good machine language from the start? For the extra effort
you'll make learning C and its idiosyncrasies, why not put it towards really
learning machine language?_

Hmm?

------
sodiumphosphate
I think it's a good tool. It allows you to produce better code faster. Writing
CoffeeScript while reading the resulting JavaScript can probably help you to
learn "the good parts" faster. (I'm not saying you shouldn't learn JavaScript
'properly', if you need to deliver a significant quantity of it.)

I've been spending a lot of time writing Boo and reading C#. My intention was
to put off learning C# for awhile, at least until after I ship my current
project. I'm working on finishing my first game with Unity3D (and quickly
developed an aversion to UnityScript).

Boo is an absolute joy to use, btw.

The funny thing is that I'm kind of learning C# by accident, by reading it
(and the BCL docs) and writing Boo.

Will I at some point switch to C#? I strongly doubt it. Boo allows me to move
much faster, produces cleaner, nicer-looking code, and compiles to equivalent
CIL. It's all win, as I see it.

------
franze
programming languages are a way of thinking (among other things)

whenever i think in coffeescript i think the same thoughts like i would think
in javascript, but in a much cleaner, straightforward, more beautiful, less
forward/backward jumping way.

coffeescript is just javascript.

------
suyash
I DON'T LIKE CoffeeScript either, it's more Ruby like, why can't people just
love JavaScript for what it is. Please read the good parts by Crockford or
listen to his talks!

~~~
tjholowaychuk
it's a big fat "meh" for a lot of people, if you look at the coffeescript
source even it looks like complete ass with the exception of the parser, which
looks pretty nice and declarative. Some things are certainly nice to have, but
those are neither unique nor necessary. The best thing to come out of
coffeescript is the glaring "dont use me, I dont understand JavaScript" it
places on libraries written with it, I like that.

~~~
nestlequ1k
I'm so waiting for your eventual "I was wrong, CoffeeScript is awesome" post.
Someday TJ! Someday

------
DanielRibeiro
The compiled Javascript is very sensible. If you want to go back, just delete
your coffee files, and you are good to go.

------
rdtsc
Did C mean giving up on assembler? Maybe so. Some people still use assembler
but it is good to have a choice.

JavaScript is just an 'ok' language. It has serious warts and it might have
been great in 1998, but not now. But we are stuck with it. There are JIT
compilers for it, it is on every browser out there so.

------
pkulak
Oh no, you have to learn two languages. The horror! If you know JS it takes
about 10 minutes to learn CS, and all of that 10 minutes is learning about all
the typing you don't have to do anymore. function function function
function... I'm getting sick of it already.

