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."
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
Emacs. After all it does include the kitchen sink :-)
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
You may or may not want to go with something as "different" as SmallTalk - but with ST, the IDE itself runs in the same heavyweight proc as the code you're writing (different lightweight procs). As you develop, you actually "mold" the process image itself into the application you are building. It's VERY powerful as far as extensibility (because you can mold the runtime process image to anything you want it to be, and that includes the IDE).
It's VERY portable. Object Engines (similar in concept to the Java Virtual Machine...and actually a precursor to the JVM) are available for virtually any platform (Win, Mac, all kinds of *nixes, BeOS, Palm, PocketPC, etc, etc, etc). With a tiny bit of careful development, your app will run on any platform for which there is an OE.
Cincom has a non-commerical version of their SmallTalk VisualWorks, which is quite cool.
EMACS
cost: $0
flexibility: priceless
I use emacs, but I am far from satisfied. It only runs cross-platform under protest, many of the tools are poor approximations of what else is out there, and in general it is showing its age. Xemacs is not much better.
Has anyone given any thought to creating a text editor based on the principles of emacs? i.e. a toolkit for building editors? It seems to me that with the advances that have been made, time is ripe for a new level of text editor. Something taking the best from the IDE world, as well as the best tools from the older text editors.
My wish list (off the top of my head):
1. Easily and fully extensible, (MVC architecture)
2. Good support for projects of all types
3. Fast to start-up, edit, etc. (I've run into several IDE's that I like, but feel to sluggish to use)
4. Fully cross platform. (wxWindows?)
5. Full drawing capability for RAD GUI's, Bitmaps, etc.
6. Better GUI than emacs or Xemacs! (The speedbar is a poor man's explorer view!)
7. Good shell integration.
8. Easily scriptable in multiple languages.
9. Something akin to Komodo's Rx Toolkit
10. Coherent enough that if you only use a feature every month or two, you don't have to read the manual each time.
11. Easily manageable modules, tools, etc.
Has anybody heard of anything like this? Is anyone interesting in taking it one? I'd be willing to contribute, but I don't have the experience to work up the high level design...
Cooledit is extensible in Python and has a builtin interface to gdb.
Nothing else comes close.
I don't code in C++, just Java or for simpler stuff PHP. But anjuta seems to be getting usefull for C/C++ users. Whish there was some nice IDE for PHP without all the compile/build stuff incorporated.
http://anjuta.sourceforge.net
Fede
unfinished: (adj.)
Ok. Let the flaming begin.
You're really making a very stupid, and potentially very costly, mistake. You NEVER dictate the language you use based on the tools. Thats a sure way to make a project come in over-budget and late. You base the language off two things- developer familiarity, and ease of use for the application. If the developers are not familiar with the language, no matter what whiz-bang features your tool has, they will be slow at writing it, and come up with ugly, inefficient, buggy code. The other factor is how good the language is for the job. Perl is great for scripting, if you dont need bleeding edge speed. C if you need every last bit of speed you can get. C++ if you want to lose a little speed for its OO features. Java if you need multiplatform capability. And so on. No matter how great the tool is, it will not turn C into a scripting language, or make perl as fast at math as C.
Here's what you ought to do. Pick a language. Make the decision off of what the program needs to do, its speed/memory requirements, and developer familiarity to pick the best language for your progra and team. THEN research tools. Remember, a tool can help ease a process, but it won't make anywhere near as big a difference as using the right language for the job, or as big as programmer experience. Trust me, your project will run smoother for it.
I still have more fans than freaks. WTF is wrong with you people?
I'm just finishing programming a GPLed IDE/interpreter of some power, which you're welcome to. At the moment it's just for Aleph, a language of my own invention, which is an extension of BrainFuck. There are only thirteen commands, so its really easy to learn:
> pointer forward
pointer back
+ increment at pointer
- decrement at pointer
_ Assign char at pointer
= Assign int at pointer
, Read char from input stream
; Read int from input
. Write char to output
: Write int to output
[ and ] loop; skip if element at pointer holds 0
# Dump all values to output
It's Turing-complete, and intended to go head to head with Visual Basic. ActiveX support coming soon.
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.
I've worked with several good IDEs, and plenty of mediocre ones. Most of them have already been mentioned on here, so I won't bother. But I have noticed that the "best" IDE generally depends on your preferred language and environment. Things like runtime debugging or source control integration can really make a big difference. For example, I've used Visual Cafe at my last two jobs, not because I particularly like it, but because it integrates with Weblogic.
:(
That said, I find I often need more than one editor, even if only one is really an IDE. So I suggest taking a look at a program called Textpad. It's essentially just a text editor, but it has a ton of features, and it's extensible. I like to use it for xml and html (good syntax highlighting), even while I use my other IDE for java. It's pretty inexpensive, and you can download a fully functional free trial (nagware - works indefinitely). The website is www.textpad.com.
The downside is that, unfortunately, it is only available for windows.
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.
AFAIK, Eclipse uses IBM's own SWT toolkit, which is basically an alternative to Swing. It's a little more Windows-like than Swing, and indeed it's supposedly faster. But it's all Java.
However, I'm sure part of the reason for Eclipse and SWT is to lure people into programming Java "the IBM way," so IBM can sell them SWT tools, training, and code in the future. In fact, IBM and Sun had a little spat about this awhile back, as reported in Slashdot. I'm not sure about the licensing of SWT, but I think it's similar to the rest of Java.
I am trying Perl Factory which may be useless for you, since it has a Japanese interface, but it could solve some other people's problems. EditPlus is a simple editor that does some things but not everything you want.
And Komodo of course if you already are doing Visual Studio - but for programmability I'd spend more time looking at xemacs and eclipse if I were you. If you need to start now with Perl and don't need Japanese, xemacs.
Some more than others.
This is key to thinking about development, otherwise you're prey to continually building new extensible systems on top of old inextensible systems.
c
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 :-)
Check it out - quite extensible, and if you have the hardware on your desktop to run an IDE written in Java, a nice interface IMHO.
pr0n - keeping monitor glass spotless since 1981.
Without want to rant,
Borland produce the Best and most consistant IDE's I've ever used. just pop along to there web site and order/download a trial CD.
They also have far more compliant C++ , and are developing linux tools.
There's a great plugin API,
Full RAD development, (makes visuial C look a bit well not visuial).
Borland have a strong history of producing great tools and great IDE's anyone that ever since the days of Turbo Pascal.
If your a little sceptical about Borlands credability in the modern market then the fact that JBuilder accounts for 40% of the Java house market should give you a bit of peace.
thank God the internet isn't a human right.