What you do use to code JavaScript?
JavaScript is such an interesting language isn’t it? If we keep it to the books and have lots of global variables and functions it makes it really easy to write an intelligent JavaScript editor (I’m thinking of Aptana and Eclipse’s native JavaScript Editor). If you’re of the “IDE’s are cool” mindset, these editors are incredibly valuable because they can show you nicely structured outlines of your application — complete with collapsing menus for nested objects.
Where this seems to completely break down is when you start doing something even remotely interesting with JavaScript. For example, if I wrap my application in a self-invoking function — poof! my outline is gone. Heaven forbid I do anything requiring closure.
Do the developers in the audience have their preferred editors? I’ve since just found myself using Textmate for all my JavaScript development as it doesn’t pretend to be anything more than it is (don’t mistake that statement for it being just a text editor though).
What about folks who use other dynamic languages? How do your IDE’s cope with the complexity of giving accurate outlines? Is it really that hard to write an advanced editor for a dynamic language?
Python folks… Ruby folks… I’d love to hear your thoughts.


I’ve struggled with this for years! Most IDE’s get some things right but then fail to include others. Worse, I’ve now been writing with jQuery for a few years, and I’ve never found an IDE that comes close.
Most of the time I’m writing web sites with PHP now, so I use PDT (a.k.a. Eclipse) and just sort of deal with how it shows me HTML and Javascript. Once in a while I try a new one, but am never happy.
This is one of the many reasons I’ve stuck to vim for all my editing. I find that while IDE features are nice, they usually break down when you do anything of interest. with vim I can write custom plugins for whatever I need using vimscript.
Yes, JS is hard – I use vim and colorization works fine, but only for standalone files – try using HTML/PHP/JS mix in one file and it’s no longer reliable.
But JS development requires more stuff like autocompletion (intelli-sense in MS-speak), JSLint, profiler, minifier, and many more.