Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?
share|improve this question

closed as off-topic by Thomas Owens Apr 8 at 15:10

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Thomas Owens
If this question can be reworded to fit the rules in the help center, please edit the question.

8  
jsfiddle.net –  davidk01 Mar 17 '11 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. –  XHR Jun 7 '11 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/… –  Czarek Tomczak Jul 21 '12 at 19:23

10 Answers 10

My list would be:

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

share|improve this answer
7  
On to that I'd also add the mozilla doc center in the reference section. –  Trezoid Mar 17 '11 at 2:26
2  
+1, that's pretty much my list, but I'd also add YUI Compressor (or Google's Closure compiler). –  Demian Brecht Jun 1 '11 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 Woodcock Jun 1 '11 at 13:16
2  
@RDL - which, if any javascript plug-ins for vim do you use? –  Mike H Jul 11 '11 at 13:30
    
I notice that no unit testing tools / frameworks have been recommended here, despite being so highly upvoted... –  NT3RP Oct 13 '11 at 14:37

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/

share|improve this answer
    
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 '11 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. –  Nathan Osman Jul 5 '11 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. –  Nathan Osman Jul 11 '11 at 18:39
    
any new developments on this front? –  Noctis Dec 9 '13 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. –  Nathan Osman Dec 9 '13 at 8:08

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
share|improve this answer
    
same question as I just posed for RDL: which (if any) vim plug-ins do you use for javascript? –  Mike H Jul 11 '11 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 –  Duncan Grant Jul 20 '11 at 7:11

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

share|improve this answer
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 Woodcock Jun 1 '11 at 13:19
1  
jQuery is a library for a lot more than UI, jQueryUI is a completely separate library. –  StuperUser Jun 7 '11 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 '11 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 '11 at 9:12
    
@StuperUser: I suppose he really meant jQuery UI –  Lie Ryan Jul 21 '11 at 14:22

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.

share|improve this answer

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.

share|improve this answer

What communities exist that discuss recent advents in JavaScript?

Most things have been covered but no-one mentioned

share|improve this answer

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.

share|improve this answer
    
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. –  Tikhon Jelvis Jul 21 '12 at 19:41

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.
share|improve this answer

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.

share|improve this answer
    
Can someone explain the downvote? –  niels Jul 21 '12 at 18:56

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