Are there any JavaScriptIdes? Or even better, any WebsiteIdes?
I've tried
- MicrosoftFrontPage
- MacromediaStudio (MacromediaDreamweaver)
- AdobeGoLive
None seem to provide what I would expect. Like any other IDE, here's what I look for in a "reasonable" JavaScriptIde:
- Class/Method based browsing (like Smalltalk or VisualAge)
- Integrated debugger
- Dynamic code evaluation (select and attempt to execute as JavaScript any text fragment)
- Variable monitoring
- Incremental Compilation (ability to change and recompile method without restarting)
- Dynamic cross-references:
- Senders of the selected method
- Senders of methods invoked by the selected method
- Implementers of the selected method
- Implementers of methods invoked by the selected method
- References to the selected instance variable
- References to the selected class variable
- Automated File Management (I think about objects and methods, the JavaScriptIde takes care of exporting and importing whatever files are needed)
- Reliable Browser Targeting (Allow me to specify browsers and browser versions, flag code that isn't supported or doesn't work)
Nice-to have's (cool but perhaps not absolutely necessary) include:
- Language-based version management (EnvyDeveloper-style)
- Integrated dependency/prerequisite management
- VisualAge-style team development features
- Automated configuration management
Meanwhile, it seems that it would be not too difficult for such a JavaScriptIde to include a Smalltalk-style reflective metastructure, to ease the burden of typing all the extra stuff required to conform to the JavaScript 1.2 object stuff.
It occurs to me that EclipseIde might provide a good starting point for such a tool, but I say that with very little exposure to either EclipseIde or other JavaScriptIdes that might exist.
Can anyone point towards some reasonable tools? The Mozilla people should be able to help, they seem to use JavaScript a lot.
An IDE related to tracing Javascript
http://formentry.sourceforge.net
SCREENSHOT:
A JavaScript based project working with Javascript
http://xml.apache.org/xang/ http://jakarta.apache.org/bsf
I think that beyond any GUI gadgetry (i.e. Eclipse) it would be adviceable that a projects on Javascript IDE should have a look over:
http://www.lugrin.ch/fesi/index.html
as long the facto standard:
http://www.ecma-international.org
- Nes Loyola
RhinoInterpreter (http://www.mozilla.org/rhino/) is a full JavaScript version 1.5 compatible Java implementation. It seems like it would be the best starting point for an Eclipse plugin that grokked JavaScript. Also, most of the JUnit extensions that test web pages use this as their JS engine including HttpUnit, HtmlUnit, JwebUnit, or anything else that requires something called "js.jar." --Adam Sroka
IDE related: PhpIde
If you get a chance, could you perhaps describe it? It would be especially helpful if you might address the above bullets.
Writing JavaScript/XUL using Borland CodeWright is actually not too bad (tried many, that's what I settled on). CodeWright is a "programmer's editor" where you can specify project files and mix and match languages. It is not a full-featured IDE for any language, but it has decent support for most. It also has a "vi" mode which I like. Here are the levels of JavaScript support from your list (anything not mentioned is not available AFAIK):
- Class/Method based browsing:
There is a generic browser called "Outline" which can be "coerced" to display prototype information using Regular Expressions. For example, I have been able to get JavaScript function names on the browser (of the type "Class.prototype.functionName = function()") by entering a regular expression that is matched to each line.
- Integrated debugger
None. But I use MozillaBrowser and VenkmanDebugger. JavaScript debugging would be tricky because of the many differences in implementations. I can't live without Venkman.
- Dynamic code evaluation (select and attempt to execute as JavaScript any text fragment)
None. But there's a Perl and a Basic-like API language and evaluator. It is used to create macros for the language itself and works very well.
- Dynamic cross-references
I know it's not the same, but when you right-click on a symbol on Codewright you get a "Find in (Project Files, Project Space, Open files...). The find is very fast and I find it sufficient to do that type of work.
- Language-based version management (EnvyDeveloper-style)
It supports
Here's some stuff I have also found useful and it's not on your list:
-
Syntax Highlighting: Full support on JavaScript files. XUL files can be mapped as "XML" with some modifications (see below).
-
Embedded languages: I use MozillaXul and XBL, which is like an XML with embedded JavaScript. Using the very strong regex support I was able to tell CodeWright that an XML file "in my world" can have JavaScript embedded in <script> tags. It will colorize the JavaScript inside my XUL files - it will even slightly change the background color on the JavaScript sections so I know what sections are which language.
-
Code Completion:
I cheated and mapped the code completion to C language. The similarities make it good enough to get some measure of code completion.
One thing I also like is that symbols on other open files (say, a XUL file with a bunch of elements) are also taken into account for your code completion. So if I have an open XUL file with an element with an id of id="myNeatoWidget", I can do on another JavaScript file (or in a JavaScript section on the same XUL file) document.getElementById("my<Ctrl-Space) and I will get it filled in. It has saved me a lot of time and possible element bugs.
To be honest on this, a gaping hole is that because the code completion is C and not "real" JavaScript, it can't do code completion when I want to type myClass.myPrototypeFunction() even if there is a MyClass.prototype.myPrototypeFunction(). But the class browsing (and being able to right-click and search on my entire project) makes this not that big of a deal. Regular functions are of course completed just fine.
Here is Harish Kataria's JavaScript Plug-in Homepage:
http://www.ee.ryerson.ca/~hkataria/
There's a nice JavaScript Plugin for EclipseIde.
- Andre
I use Topstyle Pro for DocumentObjectModel Javascript Development, as it's choice of the two rendering engines is practical.
MyIE has the coolest tool, its called "Simple Collector"; If you put JavaScript code in it (in <script> tags), it is evaluated in the open page's context, which is very useful.
FireFox DOM Explorer is good. As is IEDocMon for IE.
- Patrick
As of 26Feb2004, there don't seem to be any great JavaScript IDEs.
I've looked at:
- The Cardinal JavaScript IDE beta 1.0 (the top link on Google for JavaScript IDE")
- http://home.earthlink.net/~mafriedman/ide/
- Web based, entering text into text boxes. Seems long abandoned. Most sophisticated functionality is being able to balance brackets.
- Harish Kataria's JavaScript Plug-in
- http://www.ee.ryerson.ca/~hkataria/
- A plugin for Eclipse. Has syntax highlighting, code formatting, method list. Limited autocomplete - it seems to complete standard JavaScript keywords, and variable and function names that you've already entered in the same file. Doesn't do intelligent autocompletion - ie I created a JavaScript object with some attributes, but the autocomplete didn't offer me those attributes when I accessed an instance of that object. Doesn't have any refactoring.
- Arachnophilia
- http://www.arachnoid.com/arachnophilia/
- Standalone Java app. Has syntax highlighting, regexes, macros. However, it doesn't have autocomplete - a must for me. Doesn't have any refactoring.
- ActiveState Komodo
- http://www.activestate.com/Products/Komodo/
- Mozilla-based commercial product. Primarily a Python/PHP/Perl IDE, also claims some support for JavaScript. This seems limited to just syntax highlighting, though.
- Dreamweaver MX (MacromediaDreamweaver)
- http://www.macromedia.com/software/dreamweaver/
- Still downloading the 100MB of trial, so I don't know what it's like, yet. Last time I used Dreamweaver the only support for JavaScript editing was syntax highlighting, but it may do more now.
- Update: Dreamweaver MX 2004 still offers little more than syntax highlighting. Some basic autocompletion of standard JavaScript methods, but not as good as Harish Kataria's Eclipse plugin. Disappointing, especially given the price.
I'm going back to VimTextEditor, VenkmanDebugger and MozillaBrowser for doing JS development (not a bad combination, but I do really want smart code completion and refactoring).
HI! Please refer to Microsoft Visual Studio.NET they have all features specified
- Integrated debugger -- Yes -- No, only if you use InternetExplorer, and the debugger is very buggy.
- Dynamic code evaluation -- I dont found but in debug mode you can use quick watch and watches.
- Variable monitoring -- in debug mode Yes
- Incremental Compilation (ability to change and recompile method without restarting) -- Yes -- No, you have to save the file and restart the process, there is no edit and continue.
- Dynamic cross-references: -- I think all of this you can implement with add-in architecture. --Not a chance, the add in architecture is very limited.
- Automated File Management -- Yes -- NO, what file management?
- Reliable Browser Targeting -- Yes -- Hell no, all browser specific code must be hand written.
Now microsoft released Express Studio, this is low cost version of the Application, you can freely try it on their site. I'am only starter in some questions, so my aticle can have some errors. -- MikeChaliy
I LOVE javascript. And I *love* the .NET framework for its powerful RAD features and useful class libraries. And I *love* Visual Studio, because it's the best all-around IDE on the planet; most people will agree with this (although I use Eclipse for everything that I can, which is basically just Java right now).
And having said that, .NET has almost none of the features you're looking for. Personally, I write all JS code in anything with syntax highlighting, and only resort to VenkmanDebugger if I get stuck. Otherwise, I have the same attitude towards Javascript that I do towards Lisp and Ruby -- if you stick to solid mostly-functional style, you don't need to do very much debugging other than very simple interactive debugging (which Venkman provides).
I think that the idea of doing the kinds of things you're mentioning isn't likely to be that useful for a lot of js development, because a lot of js development takes advantage of the things that js offers that less dynamic languages (like C# and Java) do not -- and one of the biggest differences is that JS is NOT an object-oriented language. Correct me if I'm wrong, but aren't objects just closures (functions) in JS? Ie first-class functions that can close over other objects. So class/method browsing seems a little less useful there, or at any rate, it would look very different than what most compiled-language folks would expect (hey, I still do most of my work in compiled languages, more's the pity...).
The most useful feature I want is something akin to Ruby's ability to reflect over EVERY object in memory, because for long-running javascript (ie really dynamic interfaces that use remoting calls and may not be actually refreshed in hours) you can generate a surprising amount of garbage if you're careless, even a noticeable amount. I would like to be able to reflect over the entire object space; I guess VenkmanDebugger does this, but I'm confounded by the interface for it. --- mr_luc
Good thing to know that now you can compile javascript with microsoft tools ! There is a plugin for eclipse : search jseditor on sourceforge.net
I've just found this plugin for eclipse
* http://www.myeclipseide.com/ContentExpress-display-ceid-58.html
it seems to be the first real javascript IDE... with code completion, full W3 DOM, outline window and program preview (it doesn't launch an external browser, it runs the script itself).
Unfortunately, it is not open source nor free.
Does anybody know something similar which one doesn't have to pay for?
FireBug seems to be a very popular JavaScript plugin for Firefox.
CategoryJavaScript CategorySoftwareTool