- Strange type coercision and overloading of
- Strange results for equality testing
- Prototypal inheritance vs. class based object orientation
- Noisy syntax, lots of curly braces, function keywords, and semicolons
- Global variables are as easy a missing a
- Lack of any sort of design aesthetic
- Awesomely dynamic (basically you can do anything you want, type safety and common sense be damned)
- Top-notch functional programming
- Largest community of developers
- Largest install base on the planet
- No corporate ownership of the standard
Well, it turns out that it’s not that simple. Here’s an excellent rant/explanation of why coffeescript is not so great.
The Subjective Argument against Coffeescript
The subjective argument against coffeescript can be summed up pretty easily:
Do you like C-style syntax or Ruby/Python-style syntax?
Coffeescript was designed in the vein of Python and Ruby, so if you hate those languages then you will probably hate coffeescript. As far as programming languages go, I believe that a developer will usually be more productive in the language that they like programming in. This may seem like a no-brainer, but there are quite a few articles out there trying to argue the objective truth of and vs &&.
The Hard Objective Arguments against Coffeescript
Here are what I consider the most pertinent arguments against coffeescript.
- Added debugging complexity
- Added compile complexity
- Smaller development community
How to Decide which language for your Project
If you are working on a project by yourself, then I would pick whichever language you prefer working in. It’s totally subjective, but you are going to be more productive coding in a language that you like coding in vs. one that you hate coding in.
Now, for the tricky part. What if you’re working on a team?
Coffeescript ate my Homework
This is where coffeescript can be a huge problem. If you are working with a tight group of skilled engineers, and you decide to work in coffeescript, and everyone is on board, then my opinion is that you might very well end up being more productive. Especially with programmers that have a Ruby or Python background.
In short… it depends 🙂