re: What are the worst programming languages that nobody should learn? VIEW POST


CoffeeScript. It's obsolete and will never return. And you can migrate existing RoR projects to modern JS.


As long as one considers CoffeeScript2 to be different from CoffeeScript, then I'd have to agree that CoffeeScript is obsolete.


Ah that's an interesting one, because you have really good reasons to never return to CoffeeScript.

Could it be the case though that nobody else would never be right to learn CoffeeScript?


The evil advocate has found this scenario:

Alice wants to learn programming. Specifically front-end programming. Her friend Thorsten tell her that the standard of the industry today is JavaScript, and probably TypeScript if you care about better productivity. And he is right.
But Thorsten lives in a different country or is too busy to help her. On the other hand, they have a friend called Charlie. Charlie is not a professional developer, he teaches programming concepts at the university. Charlie really doesn't like JavaScript, whose design was rushed in just ten days before it was shipped in the Netscape 1.0 monopoly. True, JavaScript is the industry standard, but that doesn't matter a lot for Charlie because he teaches programming concepts. And he is really good at that.
Charlie is ready to help Alice. As an academic, he is a fan of Ruby. He was hoping that CoffeeScript would clear up the JavaScript mess. That didn't happen for the industry at large, but CoffeeScript is good enough for Charlie's needs. And he is eager to share what he knows..
Thorsten thinks a bit. Learning front-end programming is tough when you are alone. The hard part is to learn the concepts. Charlie is great at that. He would love to help Alice with learning front-end concepts, if he is allowed to do it with CoffeeScript. Heck isn't that the most important part right now for Alice? Once she knows the concepts, she can switch to TypeScript really easily.

What advice would you tell Alice in this case?

  • Learn CoffeeScript with Charlie
  • ..or learn the right programming language alone?

To be fair, your argument sounds to me like someone might like or use it. If accepted, this argument trumps anything, so it's pointless to propose any language in this discussion because someone might like it.

Will learning CoffeeScript be a terrible mistake that will set Alice years back in her learning path? Most probably not. She will even learn useful concepts and have fun with her friend.

Are there any employment opportunities with CoffeeScript? I'm pretty sure that at leas one or two companies still use it in some product.

Will she have to learn alone if she doesn't learn CoffeeScript with Charlie? That's her choice, but there are plenty of online communities and meetup groups where she can find other people to learn with.

Is CoffeeScript a reasonably good choice if the goal is to become a professional developer? Not really.

This, of course, begs the question of what is the context of the challenge. If we are trying to find the worst language that nobody should ever learn we either must define some constraints (the worst language for what?) or accept that no such language exists because I just want to have fun is as a valid argument to choose a language as any other.

Hello @avalander I agree with all your points.

To be fair, your argument sounds to me like someone might like or use it. If accepted, this argument trumps anything, so it's pointless to propose any language in this discussion because someone might like it.

To be clear, my own answer to What are the worst programming languages that nobody should learn? is ... 42.

You cannot answer that question unless you can be in the context of everyone... which you can't do unless you are God.

My point was people are wasting energy because they would really like to know the correct answer to the reverse question.

What is the best programming language that all developers should learn?

And the bleak truth again here is... again 42.

It's the wrong question to ask.

Pick one that sounds fine in your context and get started.


That's a tough scenario. ;-)

But challenge accepted. Avalander already has very good arguments in her reply. I'd like to add that Coffeescript has a rather unique history. It's not so much a programming language of its own, but rather a syntactic sugar version of Javascript. It was created by Ruby-on-Rails developers specifically "in an effort to enhance Javascript's brevity and readability" (Wikipedia), to make it more Ruby-like. You've got to know that his was in a time when you didn't have separate developers for frontend and backend and there was no ES2015.

In other words: Coffeescript is the product of backend developers, who hated Javascript (but had to use it as the output of their transpiler), and thought that the frontend is just a tiny part of their web app.

Do you think a good programming language can be the result of such a mindset? I don't. And there are lots of articles out there describing Coffeescript's shortcomings like its ambiguous syntax or how hard it is to debug. So we have good reason to say that by Coffeescript is not a well-crafted programming language.

Sometimes technology doesn't need to be good to succeed, it just needs mainstream adoption. So you could argue that it's good to learn Coffeescript in order to get a job. But that's not the case. Frontend development has changed dramatically during the past 10 years and JS is not less important (~Coffeescript mindset), but more important than ever before! So from a practical point of view it's also not advisable to learn Coffeescript.

You have really good points, but the evil advocate has found something to reply.

Well, if everything you say is true, then learning Coffescript and the story behind it is super valuable for a programming language designer who would like to know which basic mistakes to avoid when designing a new programming language. Don't try to pretend to replace something you hate and don't really understand.

Indeed. There is nothing so bad that it couldn't at least be a bad example.

Code of Conduct Report abuse