Extensible IDEs?
Whatever Fits queries: "We are trying to integrate our own specialized development environment. We are currently using Visual Studio and the add-in feature of that, but would like to get away from the Microsoft tax and have had to rewrite our software from scratch for reasons outside this scope. The current project includes adding specialized features to the IDE to handle our project types, extra tool-windows for user interaction, and an external process to run the compiled code. The compiled language is even open for debate right now, but would have to be something rather common or easy to learn. I really want to try to run Perl with SOAP for our backend. This is going to run on Windows systems but I am hoping to go for something cross platform for future extensibility if possible. What IDEs can be recommended that offer this kind of extensibility and keep the price per copy reasonable? I have a small list already built, but I have no experience with any of these but Visual Studio and would like to hear both success and horror stories of integration."
and the netbeans platform.
What about Eclipse @ eclipse.org -- open source IDE designed for you or other developers to extend via plugin technology.
at www.eclipse.org has a extensible IDE, with a plugin toolkit. Out of the box it supports Java, and I think there is a late beta C++ plugin. I remember someone was working on a Perl plugin as well, but I'm not sure where that project went.
I has everything you would expect for a Java IDE right out of the box.
Supposedly IBM is going to put the Eclipse IDE at the center of their apache based application server, so expect to see JSP, J2EE, etc highlighted for this app.
Download is free, but you need a Java interpreter. This app is written in Java but uses a native widget toolkit to speed up the GUI. On my Pentuim III 600 The speed is more than enough to get my work done.
BTW, this editor has got the have the best diff+history system I have ever seen. You can diff the current version against snapshots, based on the undo buffer, I think, or diff any two snapshots against each other.
They also have a plug in developer kit and samples, but I don't have any experience with it.
Hope this helps!
Peace, or Not?
IDE's are just text editors with smarts. Check out jEdit.org. Its small, extensible, and runs anywhere there is a java runtime. Oh, and it's free.
my other sig sucks less
I have to recommend Forte for Java (now Sun ONE IDE). The modularity is great, you can find a lot of plugins or modules around the web, along with source code.
I wrote a simple UML-like modelling tool in one or two days (spare time) and the integration is smooth, plus you get a simple and robust language for your projects: Java.
Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow.
I think Eclipse has things going for it right now. Its open source and quite a lot of people seem to be extending the core Java IDE functionality. The C/C++ plugin is supposedly a very mature beta, but uses linux stuff and needs cygwin to run on windows. Mentioned extensions to the IDE are
.NET/.gnu/mono (planned)
C/C++ (supported by the eclipse project, will be released later this summer)
Ruby (works, I think)
C# (works, supposedly)
Perl (planned)
Have a look at
http://www.eclipse.com
and
http://eclipse-plugins.2y.net
EMACS
cost: $0
flexibility: priceless
I've got to agree here. Smalltalk is flexible to the nTh degrees and a lot of fun. The IDE, the parser, the compiler, the window management code, and even the configuration management utilities are written in Smalltalk. All the source is right there for you to look at and modify.
Smalltalk is really only compiled at the method level, so you can code in the debugger and restart the current method to keep going. Although it is pretty dynamic, it scales well to large apps. The project I'm on has 20,000+ end users across the country and runs all of a bank's branch funtionality in an environment with dozens of developers and 30 MB of source code.
http://www.whysmalltalk.com/
This is primarily a Java IDE, but has a plugin architechture which allows (in theory) to plug other languages/compilers. It is written entirely in Java (only the application startup code is native, so that the IDE can kill process trees) - works in Windows and Linux, and I hope other systems as well (I think the native code will cause some problems - you can do without it, but you will not be able to run the projects). You cannot extend the editor with new syntax highlightings (we will have to look into this for future versions :-) without hacking some things, but the editor already supports enough languages - c, c++, java, html, javacript, xml, manifest, sql, tex.. (and the IDE only supports Java)
:). It comes without the debugger and the profiler, and without the TeamWork version control client/server, but is a good download (that is what I use at home for all my Java homewoks at the university of Sofia)
:) But it is worth a try.
It has projects, jar file generation, class browser, search in files, new file wizard, code complete, word complete, indentation, comment/uncomment block, other cool features. It also runs the compiler as a TCP-IP server, so that only one java compiler process is started - this speeds up java language compilation. I do not know whether that can be done for other languages as well (it seems pointless for native compilers - the java compiler is *not* native)
www.prosyst.com
You will have to register in the development community to be able to download the free version - I believe it is free for any non-commercial use - and it is Java so it would not be hard to de-compile some of it, if necessary
I work for ProSyst Bulgaria (a German company, btw) and used to work on the project before I moved to one of the other products, so I *am* biased
I wrote a very simple GCC plugin some time ago - to prove that other languages can be plugged in, but the plugin system has changed since then, and the plugin never made it to the final product (it was for personal use)
I hope this will help.
I just wanted to second some of the thoughts brought up already. First off, as mentioned before, chosing your language before your tools is probably a BETTER idea. However, assuming your going to be working in several different languages, then here's some options:
1. Eclipse -- I would look at this one first. Still somewhat new on the block, it's probably got the most potential to it right now considering the community backing (not to mention IBM).
2. NetBeans (ie- Sun's Forte) Also very extensible, but you're going to be pulled more in a java direction with these tools. That may or may not be the right way to go.
3. Emacs -- After the initial investment of setting up your environment, emacs is a great tool to use. A huge user base, plenty of ability to extend. Runs of *nix, OS X, and Win32 (don't forget those cygwin tools though!).
Whatever tool you use, remember if you're taking advantage of the Open Source / Free Software tools available try to give something back. That's how these tool come into existance.
Who said Freedom was Fair?
Its the IDE that all the other ones are pretending that they can achieve after a few more years in development.
Its friggin' great. It uses XWindow, I run mine on my slackware box in the office and have my GUI on my TiBook so I can wander around with my AirPort and code in the cack yard.
(Okay, I also do that with ZendStudio for php but VisualAge is a lot better in most respect. It just doesn't have the market penetration it deserves.)
Full code check-out, check-in, versioning, releases, dependencies, packaging, built-in GUI (and if you use it for delivering an app, you're a total ass-hole [or a unilingual and very lonely programmer.] but you can build/buy a framework around it to build multilingual, multi-national apps.)
Need to build multi-tasking, multi-threading apps, you can. It has a mature, tested all-to-Hell-and-back, enormous class library that will have you coding-by-exception in no time.
Need to have code that sits on a socket and waits for events? No problem.
Complete, reflexive, extensible and running the debugger in the development environment lets you fix crashes for most things by editing the code and in the runtime environment, the object & stack captures after a crash you didn't plan to recover from are amazing.
There IS NOTHING better.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
ActiveState has their Komodo Perl IDE out I think. I think it's also based on the Mozilla code so you can either extend it very easily or do some deal with them in the licencing to do it. I would in any case assume that the Moz code is very easy to extend with XUL and RDF's.
This still has attribute of being a *plugin* of Visual Studio -- something the original author wanted to get away from.
:-(
I've thought about VP, but bawked at the requirment of buying a MS.NET product.
As you work on Windows systems, you might look at #develop which is a very flexible open source IDE for .NET. I presume you are running .NET anyway by now, as that is where VS is at now. It has among other nifty features a completely plugin-based architecture (see the SODA document for details) and user-definable backends, i.e. you can switch the compiler (and language of course) to whatever you like. Currently the MS.NET compilers and the SUN Java engine are implemented as backends, but if you want to use MONO for Windows, GCC or whatever, you can do it. And as you might guess from the last bit, porting to Linux is planned as soon as dotGNU and/or MONO are up and running :-)
Eclipse does use the SWT. However, the SWT is not all Java. The basic idea is that SWT provides a java interface to a set platform widgets, a la IBM's Smalltalk (both developed by OTI I beleive). Therefore when running eclipse you are using platform based widgets, usually written in C++, and hence the performance increase over the likes of Swing and the AWT.
There are most notably win32, motif, and GTK+ implementations, and I beleive there is a an OS X one on the way as well.
I think the licensing prevents you from deploying SWT based apps outside of the eclipse environment (which is not to say you can't do it) but this may change and it is still a very good system for developing eclipse plugins.
Go check out eclipse.org for the downloads, and eclipse-workbench for a community type page that has a good list of the plugins available.
I have been using the environment since november and I can't fault it.