CoffeeScript is not a language worth learning
11–20 of 132 posts
Re: CoffeeScript is not a language worth learning
#12Quite honestly the premise is rubbish. "CoffeeScript isn't a language worth learning because it isn't a language. It doesn't make you think about programming in a new way" How is that a definition of a language? It compiles down to another language sure - but what doesn't?
Re: CoffeeScript is not a language worth learning
#13> Ryan Florence argues that if people use CoffeeScript to write JavaScript programs, maintenance will be a nightmare: I posted that article a little prematurely and more as a rant for my co-workers. It was a bit misunderstood (and it blew up online before I even knew it so I didn't bother editing). My point in that quote was that bad CoffeeScript is worse than bad JavaScript. Good CoffeeScript is better than good Jav…
Re: CoffeeScript is not a language worth learning
#14I'm not particularly sold on CoffeeScript, however this article seems to imply we'll someday have to maintain the generated files? As long as you keep the source near the generated files (which should be easy with version control -- you shouldn't even be checking in the generated source, in my opinion), I don't see the problem.
Re: CoffeeScript is not a language worth learning
#15Quite honestly the premise is rubbish. "CoffeeScript isn't a language worth learning because it isn't a language. It doesn't make you think about programming in a new way" How is that a definition of a language? It compiles down to another language sure - but what doesn't?
There's a 1-1 mapping of CoffeeScript syntax to JavaScript syntax. This is really useful when you are debugging. But it cannot introduce much useful new behavior.
That's why I'd agree its more appropriate to see CoffeeScript as a new syntax for JavaScript, than as a new programming language.
Re: CoffeeScript is not a language worth learning
#16Not true, if only because CoffeeScript includes classes as a language feature. In JavaScript it is a hack. This might change with EmcaScript.next, but for now that creates a significantly different way to design your code.
Try writing a Batman.js app in JavaScript and you'll see what I mean. With await/defer possibly being merged into CS, we're going to see the languages diverge further in the future.
Re: CoffeeScript is not a language worth learning
#17> Ryan Florence argues that if people use CoffeeScript to write JavaScript programs, maintenance will be a nightmare: I posted that article a little prematurely and more as a rant for my co-workers. It was a bit misunderstood (and it blew up online before I even knew it so I didn't bother editing). My point in that quote was that bad CoffeeScript is worse than bad JavaScript. Good CoffeeScript is better than good Jav…
Re: CoffeeScript is not a language worth learning
#18> Ryan Florence argues that if people use CoffeeScript to write JavaScript programs, maintenance will be a nightmare: I posted that article a little prematurely and more as a rant for my co-workers. It was a bit misunderstood (and it blew up online before I even knew it so I didn't bother editing). My point in that quote was that bad CoffeeScript is worse than bad JavaScript. Good CoffeeScript is better than good Jav…
Bold statement, explanation?
Re: CoffeeScript is not a language worth learning
#19Quite honestly the premise is rubbish. "CoffeeScript isn't a language worth learning because it isn't a language. It doesn't make you think about programming in a new way" How is that a definition of a language? It compiles down to another language sure - but what doesn't?
In spoken languages, there is a difference between a language, a dialect, and a specialized vocabulary. My premise is that CoffeeScript is a jargon of JavaScript. Maybe you could say it’s a dialect of JavaScript. But my premise is that notation alone does not make it a distinct language.
Re: CoffeeScript is not a language worth learning
#20That's an interesting and very defensible PoV. However, even considered as such, it has some serious warts:
* It has no clearly-defined semantics: it's an accretion of rewriting tricks, and as such, it's often very hard to predict how two tricks will interact together, especially when they involve indentation and line-breaks.
* It tries to support too many cute idioms, which leads to too many ways to do things. There ought to be one obviously best way to do each thing, for the sake of maintenance and readability.
Now, if we consider CS as a presentation layer for JS, then its proper place is in an IDE, not as a compiler. Ideally, files should be stored as JS and converted back to CS transparently when editing. Mixes of real JS and CS->JS code should mesh together gracefully. When a piece of CS is highlighted, the corresponding JS should be shown as a tooltip. And of course, when a backtrace is produced, it should be translated from JS lines to CS lines transparently.
Today, CS fancies itself as a compiler, i.e. something which produces object code which should never be dealt with by the programmer. As such, it fails. If it presented itself as a representation/refactoring abstraction, it would be much easier to embrace. Of course, the implementation/integration with an IDE would be an order of magnitude harder than a text->text processor, and would make the language^Wtool liable to editor wars.