Live data from Hacker News

CoffeeScript is not a language worth learning

github.com

11–20 of 132 posts

Re: CoffeeScript is not a language worth learning

#12

Quite 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

#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…

[deleted]

Re: CoffeeScript is not a language worth learning

#14

I'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.

[deleted]

Re: CoffeeScript is not a language worth learning

#15

Quite 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?

The intrinsic quirks and behavior of CoffeeScript and JavaScript are the same. You cannot think of CoffeeScript as a kind of Python. It's a better (but with caveats) syntax for JavaScript.

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

#16
> You don't "Think in CoffeeScript," you "Think in JavaScript." Only you think in well-crafted JavaScript.

Not 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…

Updated. I hope this reflects your feelings properly. If not, I’m willing to remove your name and link, I don’t want to misrepresent your concerns.

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…

> Good CoffeeScript is better than good JavaScript.

Bold statement, explanation?

Re: CoffeeScript is not a language worth learning

#19

Quite 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.

Do you think C is a dialect of Assembly?

Re: CoffeeScript is not a language worth learning

#20
TL;DR: Coffeescript should be seen as a way to enforce good Javascript style, and as such it does a decent job.

That'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.

Post reply on HN