The JavaScript blog.


community surveys

JavaScript Developer Survey 2014

Posted on .

Here is the JavaScript Developer Survey for 2014! You have two weeks from now to complete the survey (the 15th of December).

I asked for help with the questions last year, and collected pull requests and issues to improve the survey. You can view the survey repository at alexyoung/dailyjs-survey. Many thanks to everyone who has helped so far.

Please fill out the survey and share it with your fellow JavaScript programmers! I make sure the data is open so it's not just used for planning DailyJS content, you can use it as well.

Here's the survey link again: JavaScript Developer Survey for 2014

The survey is now closed.


community node

The Node Advisory Board

Posted on .

The Node.js Advisory Board has been announced, and it aims to be an "open governance model" that helps advise Node's development. That doesn't mean it will take control of Node, but help Node's core team with certain key decisions.

Node's leadership has changed several times over the years, but having a single leader has so far kept the project tightly focused. I love the choices for things that go into the core modules, the source code is actually generally readable, and the API style is consistent.

Now our benevolent dictatorship may be changing, if not ending. There are many reasons why this should be taken seriously:

  • Will power be taken away from the more altruistic members of the community?
  • Will Node suffer the negative symptoms of "design by committee"?
  • Will the board members put economic interests ahead of less commercial projects?

Conversely, Node itself has issues that such an organization could help solve:

  • The core team has had turnover that has slowed development
  • In some ways Node is held back by JavaScript, and industry pressure could encourage the development and adoption of new JavaScript standards

What Joyent has proposed reads like a group that will help figure out long term goals, deal with community issues, and handle the legal requirements of a popular open source project. Therefore, I don't think it's comparable to Python's PEP or the W3C.

The only area that sounds PEP-like is section 7 of the Advisory Board document:

Open design: Roadmaps are discussed in the open, and designs receive input from all committers and contributors.

Some people have interpreted this move by Joyent as a knee-jerk reaction to criticism over Node's leadership and the development of Node Forward. Node Forward is a community project that aims to help people learn Node, build and test it, and develop the roadmap.

I'm not unduly concerned about the Advisory Board, and Node Forward seems like a healthy development. However, the Node.js Advisory Board refers to Node as a "language of choice" -- this post is written by Scott Hammond, Joyent's CEO. I'm not sure if it's acceptable for Node's "official" Advisory Board to get this kind of detail wrong. I hope Scott changes "language" to "platform" to restore Node's ambiguous and nebulous status that we've grown to love.


community surveys

JavaScript Developer Survey 2013: Results

Posted on .

The JavaScript Developer Survey has now closed. As always the results are available to the community for further analysis:

Most people write client-side code.

51% of readers write client-side code, while 28% said they write server-side code. Last year client-side was at 98%, so I imagine this is partly due to a changing audience on DailyJS, but it's interesting how strong server-side development is becoming.

Where do you write JavaScript? 54% said "at work", and 45% said "side projects". This is probably a case of people doing both -- I find it's common for programmers to be both hobbyists and professionals.

The majority of readers have been writing JavaScript for three to five years (34%). I can't help but feel this is thanks to the growth of Node -- people rediscovering JavaScript after using other languages for server-side web development, or the growth of client-side frameworks like AngularJS and Backbone.js. I can't imagine doing design without some JavaScript skills.

78% of readers said they don't use a language that compiles to JavaScript. I've noticed some of the influential members of the Node community are vocal about these languages, so it seems like our readers agree. I try to keep some coverage of these languages on the blog, but in general the focus is on JavaScript.

CoffeeScript was the most popular "compile-to" language (64%), and TypeScript was up from last year to 19%.

The style question caused much confusion. Semicolons, commas at the end, and methods with one space were popular options. It's interesting to see 9% using tabs and 11% using spaces. Unlike some languages, JavaScript can survive a little bit of variance in tab size, so I'm not too bothered either way. Client-side veterans seem to use four spaces, though, and 8% of respondents selected this option.

The results for testing amused me:

  • Yes: 25%
  • No: 26%
  • Sometimes / Not enough / Not too much / When needed: 50%

I like your honesty. "Not enough" could be just modesty, so I'm going to read this as "a lot of readers write tests but think they could be doing better".

Jasmine is hugely popular, with 30%. I still think tap is the best approach, but it only received 2% of your clicks. Mocha's doing well with 27%, and QUnit is down to 16%. I think this is more evidence of a large number of Node developers doing the survey, but it could also be the fact that people see Mocha as a browser/Node module, and QUnit as something just for jQuery (which it isn't really).

CI servers? 36% said yes. Node is definitely CI server friendly -- I've recently been setting up a TeamCity server for Objective-C projects and it's surprisingly hard work. Compared to switching on Travis CI for an open source Node project it's a joke. However, Jenkins is the most popular CI server (44%), and TeamCity got 13%, so perhaps people find it easy to slot client-side or Node tests into an existing CI server in companies that use multiple languages.

AMD is extremely popular.

It turns out people like AMD! However, if we break down the stats for CommonJS, we see 17% using CommonJS and 12% using Browserify. For a long time I advocated CommonJS, but substack's Browserify argument is convincing...

Grunt is winning at build scripts (60%). Fortunately, "npm scripts" had a good response (17%), which is encouraging because I feel like lots of tasks are simple enough to work that way, rather than needing a confusing 200 line Gruntfile.

I was surprised to see AngularJS and Backbone.js both get 25% for client-side frameworks. They have mindshare, but I can't help but feel they solve very different problems.

The common wisdom seems to be IE support should start at IE 8 (37%). I'm going to guess that's to support corporates, which has been the bane of my web development existence for over a decade now.

Do you use ES6 features? 85% said "No", so you're OK if you don't. I probably only do to write DailyJS articles, but we'll see this start to grow over the next year.

PHP is the most popular primary development language (24%), and C# got 17%. Hello .Net folks!

Thanks to everyone who took part in the survey! If you can use the data for something cool, I'd love to hear about it.


community surveys

JavaScript Developer Survey 2013

Posted on .

Here is the JavaScript Developer Survey for 2013! You have two weeks from now to complete the survey (the 12th of December).

I asked for help with the questions last week, and the response was incredible! I really appreciate the suggestions, and I've made a list of the pull requests that I accepted. Any that weren't accepted were either due to a clash with another suggestion, or lack of time on my part.


community surveys

JavaScript Developer Survey 2013: RFC

Posted on .

Every year I like to run a survey for the readers of DailyJS. It helps me figure out what I should write about, but I also share the results with the community so you can use the data however you wish.

This year I've decided to change the approach. A draft of the survey questions can be found on GitHub, here: alexyoung / dailyjs-survey. You can fork it and send pull requests for questions you'd like to add or change.

After a week or so I'll compile the changes into a Google Drive form and announce the survey has gone live so people can submit their responses.

I'd really appreciate input on the survey before publishing it, because it helps us get a better idea about what's going on in the world of client-side and server-side JavaScript development.