22

I am interested in doing some projects that involve heavy use of JavaScript. Namely HTML5 based canvas games, potentially using node.js as well. I am interested in learning modern best practices, tools and resources for JavaScript.

JavaScript is tough to research because you end up wading through a lot of really outdated material, hailing from the times that "JavaScript" was a four letter word.

If you are heavily involved in JavaScript programming...

  • What text editor or IDE do you use?
  • What unit testing framework do you use?
  • Do you use Selenium, or something else?
  • What other tools do you use?
  • What communities exist that discuss recent advents in JavaScript?
  • What books do you read/refer to?
  • What blogs do you read?
4
  • 8
    jsfiddle.net
    – user7146
    Mar 17, 2011 at 0:26
  • A couple great blogs that I read: dailyjs.com - Some great posts regarding new libraries and frameworks in the JS arena with a heavy focus on Node.js. perfectionkills.com - Not updated very often but when Kangax writes an article, he goes really in depth, you will realize just how much JS you don't know. Jun 7, 2011 at 17:13
  • Adobe Brackets web editor: github.com/adobe/brackets - written mostly in javascript using chromium embedded framework. Also an interesting article on how they built that Brackets editor (talking about tools, frameworks used): ec2-174-129-28-157.compute-1.amazonaws.com/2012/06/26/… Jul 21, 2012 at 19:23
  • Wow could this question use an update. May 23, 2016 at 20:26

10 Answers 10

19

My list would be:

Books are outdated as soon as they hit the shelves (typically).

5
  • 7
    On to that I'd also add the mozilla doc center in the reference section.
    – Trezoid
    Mar 17, 2011 at 2:26
  • 2
    +1, that's pretty much my list, but I'd also add YUI Compressor (or Google's Closure compiler). Jun 1, 2011 at 7:20
  • Pagespeed is also a good one for the "Profile Deferrable Javascript" option. Not strictly a JS coding tool, but still very useful.
    – Ed James
    Jun 1, 2011 at 13:16
  • 2
    @RDL - which, if any javascript plug-ins for vim do you use?
    – Mike H
    Jul 11, 2011 at 13:30
  • I notice that no unit testing tools / frameworks have been recommended here, despite being so highly upvoted...
    – NT3RP
    Oct 13, 2011 at 14:37
9

What text editor or IDE do you use?

All have support for complete web app development features (javascript, HTML, CSS etc). Choose Aptana, if you are looking for freeware solution.

What unit testing framework do you use?

  • Selenium

    1. Has multi browser supoort [ IE, Firefox, Chrome, Safari, Opera and Konqueror ] on multiple platforms [Windows, Linux, Macintosh etc.].
    2. Support for many programming languages to write test cases [HTML, Java, C#, Perl, PHP, Python, Ruby etc.].
    3. Remote execution (test cases reside on one machine and execution on browser can happen in a different machine).
    4. You can run regressions even in browser minimized mode also

What other tools do you use?

  • Firebug, IE Dev Tool Bar etc, browser in-built tools for debugging
  • You can Use some UI Library frameworks like JQuery, YUI, ExtJS etc for quick development.
  • Fiddler/HTTP Watch for debugging HTTP request and responses.
  • JSLint to verify some javascript syntax issues.
  • YUICompressor for minification of HTML, CSS and Javascript code.
  • DynaTrace/YSlow/Page Speed - for performance testing
  • sIEve for detecting memory leaks
  • IE Tester for testing your application on different IE versions.

What books do you read/refer to?

More

5
  • 1
    Selenium is an integration testing tool, not unit testing! The rest of this is pretty much spot on in my opinion though :D
    – Ed James
    Jun 1, 2011 at 13:19
  • 1
    jQuery is a library for a lot more than UI, jQueryUI is a completely separate library.
    – StuperUser
    Jun 7, 2011 at 16:22
  • @StuperUser lies. jQuery is a library for DOM manipulation, anything else is using it as a big hammer and a "golden tool that solves all problems"
    – Raynos
    Jul 11, 2011 at 3:49
  • @Raynos, jQuery is a big hammer when it's used for DOM manipulation when JavaScript will do. It's certainly gained meme-worthy status for its reputation as a panacea. As we've both said, calling it a "UI Library" is inaccurate.
    – StuperUser
    Jul 11, 2011 at 9:12
  • @StuperUser: I suppose he really meant jQuery UI
    – Lie Ryan
    Jul 21, 2011 at 14:22
6

I still feel like the tools available for serious JavaScript development are way behind where they should be but here are a few of the one's that I use.

  • For development I use VIM but you might find netbeans worth a try.
  • For unit testing jasmine is good but not perfect.
  • EnvJs can give you a nice way of running your unit tests on the command line
  • I highly recommend the webdriver part of selenium 2
  • The full google closure suite is very useful
  • I'd also recommend you know how to use google chrome and IE for debugging along side firebug as they all have their idiosyncrasies that can send you down all sorts of blind alleys.
  • There are some excellent libraries for JavaScript that are pretty much essential for serious development. I'd recommend you start with jQuery but there are plenty of others that are as good.
  • also jQuery's author John Resig has a useful blog
2
  • same question as I just posed for RDL: which (if any) vim plug-ins do you use for javascript?
    – Mike H
    Jul 11, 2011 at 13:32
  • @Mike I don't use any javascript specific plugins for vim. I would recommend jsctags which will integrate with any plugins that use ctags e.g. taglist-plus Jul 20, 2011 at 7:11
5

Well... although far from complete, I am currently the lead developer for a new cross-platform open source project:

JS Studio

Here is a screenshot:

Some of the features are more complete than others... but here are the intended goals:

  • Syntax highlighting (pretty much complete)
  • Project organization (partially implemented)
  • Auto complete (including completion for common JS frameworks like jQuery, etc.)
  • Build system (for combining files, minification, etc.)
  • Extensible GUI (via JavaScript extensions)
  • Line numbering (sort of complete), word-wrap, configurable colors for syntax highlighting

I have set up daily builds for Windows and you can find the most recent build here: http://files.quickmediasolutions.com/jsstudio/

7
  • This looks interesting. I have been looking for a good JavaScript IDE. Is there any binary that can be downloaded? I didn't see any on the web page.
    – Jonas
    Jul 5, 2011 at 20:11
  • @Jonas: Unfortunately, at this early stage, there is only a binary for Ubuntu. But hopefully I'll have time to create a Windows binary further down the road. Jul 5, 2011 at 20:13
  • @Jonas: Very early Windows build here - some things don't work yet, but you can at least open / save files and a few other things. Jul 11, 2011 at 18:39
  • any new developments on this front?
    – Noctis
    Dec 9, 2013 at 5:28
  • @Noctis: Sadly, no. I ran into some complications implementing code completion and the project has essentially sat idle for the last year or two. Dec 9, 2013 at 8:08
4

In the category 'other tools', i use CoffeeScript (a language that compiles to JavaScript), because it takes away the pains Javascript's syntax imposes on me.

list.sort (a, b) -> a.isSmaller(b)

versus

list.sort(function(a, b) { return a.isSmaller(b) });

One could argue, technically that is not javascript anymore, but the "feeling" of coffescript is, that it is just a thin layer.

3

The API for the jQuery library http://api.jquery.com/ and a well thumbed, highlighted copy of jQuery In Action. Read it cover to cover and then follow http://twitter.com/jquery to get the updates in the new releases.

You've said books get out of date, but you'll need to get a baseline level of knowledge to build on, then once you're up to speed, keep up to date.

Qunit for unit testing and Firebug and a JavaScript syntax highlight for Firebug for debugging.

2

What communities exist that discuss recent advents in JavaScript?

Most things have been covered but no-one mentioned

0

Hopefully won't get flamed too much for this, but if things like IDEs and tooling are important to you, then I strongly recommend looking at Google Web Toolkit. You write your code in Java in Eclipse, which really helps write your code. It provides highly effective code completion, refactoring utilities and help to debug and navigate through your codebase.

You can still go into raw Javascript when you need to.

Your code then gets compiled into optimised, minified JS. I have used this approach successfully in a node.js-like DOMless JS environment.

For HTML5 games, check out PlayN which is a library that uses GWT for exactly that.

1
  • If you're going to compile to JavaScript from a different language anyhow, there are plenty of choices--you don't have to use Java at all! For example, we're using js_of_ocaml at work right so we can write our code in OCaml and run it on the browser. Jul 21, 2012 at 19:41
0

I do a lot of JavaScript development. A lot of these are mentioned but, here is what I use:

  • Notepad++
  • Firebug
  • IE debugger (F12) and Chrome debugger (F12 on Windows)
  • I use Stack Overflow mainly for questions. Coming here has proven helpful as well.
  • The first book I used was JavaScript: The Definitive Guide way back when. Currently I don't use books as much as I use sites like MDN or MSDN docs.
  • We use some jQuery in places where it makes our life easier as well.
  • For unit testing we build our own test harnesses.
0

I can recommend the JavasScript Weekly newsletter. It's

A free, once–weekly e-mail round-up of JavaScript news and articles.

I haven't read John Resig's books, but I have heard and read good feedback. His new book Secrets of the JavaScript Ninja will be published soon.

1
  • Can someone explain the downvote?
    – user59682
    Jul 21, 2012 at 18:56

Not the answer you're looking for? Browse other questions tagged or ask your own question.