Stuff like this makes me sad:

Also, the github issue where TJ requests that everything gets rewritten in plain JavaScript:


We’ve been here before
Language discussions aren’t new (nor is vim vs. emacs). In the GNOME community we’ve seen a ton of them. Just recently there was a huge one at the DX Hackfest.

GNOME/Mono developers have certainly received their dose of crap thrown at them. But so have GNOME developers that preferred Vala, Python, JavaScript, or even just GObject/C. Whatever you seem to be using, it’s never the right thing for someone.

Have all these years of shedding words over it solved anything? Frankly: no. We are still seeing a large combination of languages being used and all of those projects have good reasons to do so.

I get TJ’s point though: by using CoffeeScript, the rethinkdb people are making it harder for the wider JS community to contribute to their project. But…


It really doesn’t matter
Most open-source projects (or modules) don’t have a ton of contributors. It’s usually a modest team of core maintainers/developers that do the bulk of the work. And that’s fine: the success of a project should not be measured by the number of contributors, but by the quality of the software it produces.

This smallish team of core developers will have their own good reasons for picking up a certain language. They’ll use the language that they feel most productive with for the task at hand. And that’s a good thing, they are mostly the people that move the project forward.

The biggest barrier to contributing on a project is not the language, there are plenty of projects written in unproductive languages that get a ton of contributions. Any good programmer can pick up a new language up quickly (and TJ is more than just a good programmer, he’s a fantastic one, much respect). The bigger hurdle is the specific domain knowledge involved.

Let’s all agree to disagree and have some respect for each other’s opinions, they are all valid anyway.


PS: I’ll be heavily moderating comments that try to turn this into a flame-war. I’m writing this to find some more respect and understanding.

  • Marius

    I personally skipped couple of libraries because they were written in coffeescript. I do not want to wrap javascript into another layer unless I know javascript really well. In reality some of the folks who jump on the coffeescript have not coded javascript one day. And they think they skipped the ugly part of writting ugly js.

    • Ruben

      And lots of them who do use Coffeescript have written tons of Javascript, so that point really doesn’t matter (Jeremy Ashkenas, who wrote Coffeescript, also wrote Backbone.js and Underscore.js, he knows both sides of the story).

      Also, this is not a post about Javascript versus CoffeeScript. It’s about respecting the choices of the maintainers and core developers of a project.

  • xr09

    KDE is written in an unproductive language? C++ & Qt unproductive? Are you for real?

    • Ruben

      For an outsider who never used C++, it most certainly is. But that doesn’t mean that it’s not productive for the people that are actually working on the project (quite the opposite). It also doesn’t give him/her the right to demand that it all gets rewritten in another language.

      What I meant was that whether or not a language is productive really just depends on who’s looking at it. What may seem unusable to some might make a huge difference to others. Just have some respect for people if they don’t agree with your own visions.

  • lmm

    If you’re saying any language is productive to someone who’s familiar with it, then what do you actually mean when you say “there are plenty of projects written in unproductive languages that get a ton of contributions”? I don’t understand.

  • Zeljko Dakic

    I didn’t see the post on twitter, but I completely agree with you, a lot of time gets wasted on useless discussions.
    On that note, RethinkDB is awesome and I am looking forward using it in my next project.

  • lmm

    I meant the question as a reply to that comment. (It seems like your comments don’t have a “reply” button on them)

  • mark

    And some people use Jade and Style (both written by TJ) #FAIL!

  • Liam

    Don’t like coffeescript? You’re gonna hate ecmascript 6:-!
    The thing with coffeescript is that it’s not really an abstraction so there are no slow downs that I’ve ever seen. I’m not a massive fan of it but given that a lot of it is being officially adopted I must admit they’re doing something right.

  • Travis Reitter

    One related problem, though, is that the language choice for a lot of open source projects started in one’s spare time is based upon it being new to the developer. The only real way to learn a new language is to build a medium-to-large-scale project in it. Unfortunately, if it’s an obscure language and it turns out to be a bad choice for that project, the project is stuck with it anyhow.
    I fully encourage people to try out new languages (I would do so even more myself, if I had that ample spare time I hear so much about) and I’m the last person who wants to dictate what people do with their spare time but it can be frustrating to see a lot of energy go into projects that other developers can’t contribute to due to artificial hurdles (like a language they would have to learn).
    I’m basing this in part on my own project maintenance experience.