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."
Check out tcl/tk. Its very easy to use as well as being enomously powerful. Its also supported on Windows, Linux and Solaris as well any flavor of Unix you want.
and the netbeans platform.
What about Eclipse @ eclipse.org -- open source IDE designed for you or other developers to extend via plugin technology.
Only two comments. Btw, I have something to tell you: Russ Nelson's glasses where made in 1918!
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?
we use eclipse, too, for java servlets, and it is great. plus, it has a tomcat plugin and cvs integration, which makes it that much better... I would definitely recommend it.
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 :-)
my account.. oh wait. I DONT FUCKING HAVE ONE! maybe you could stop being lame and post a link that doesn't require a login.
i've tried a year ago to use an IDE called komodo
which can be used to at least highlight
your code text.
don't know what is its actual state
may be this link can help
http://www.activestate.com/Products/Komodo/
Have a look at Visual SlickEdit - www.slickedit.com. Works great with Development projects in Java, Perl, C, HTML... on and on.
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.
NetBeans is a Java-based IDE that is very extensible. It requires more of a beefy development system than Eclipse (sluggish with a K6-500/128Mb), but it's been around longer. The IDE is set up for Java development, but can be easily extended. It has a C plugin right now.
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.
Any company that imposes an IDE (or for worse extends an IDE) for their people is doomed to be irrelevant, wrong and full of bad ideas.
Having worked for several years in several software projects, I cannot imagine a good reason why I would want to impose some kind of IDE to people.
Call me inflexible, old, or retarded, but I would not want to work for a company that imposes its IDE (for 'christ' sake! an IDE! IDEs are religion! (emacs? vim? vi?))
koen
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.
Quanta is starting to get there for webdev stuff, version 2.2 is out now, and if you pay for it, it is cross platform, free for *nix. Take a look I don't think it's too hard to extend.
$$$ version http://www.thekompany.com
OSS version http://quanta.sf.net
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'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/
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.
You may want to check out Borland's C++ Builder if you are a C++ person (as I am) or Borland's Delphi if you can do Pascal (as I used to but gave up for C++.)
Both allow their IDE's to be modified and to have tools integrated into them. (I have never done it myself however.)
Their IDE's are quite easy to use though perhaps not quite as fancy as "Visual Studio" though they are both more visual and allow you to do interfaces as easily in C++/Pascal as VB developers do in VB. (Perhaps even easier since they were able to learn from M$'s mistakes and improve things a bit.)
As far as cross platformability, they have a Linux version of Delphi (Kylix) and will have a C++ Builder on Linux sometime in the not too distant future. (Sorry, I don't know what the time frame is on that.) So you get Windows and Linux easy enough. (Also, they have a cross platform interface library.)
I don't know the scope of your project (as with everyone else here) but this would definitely be a good place to start if you want to do Windows/Linux.
Visual Studio.NET has the best (and most extensible) IDE on the market, as long as your happy doing primarily Windows development.
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?
http://www.gnat.com/texts/news/news_gps.htm GPS can be tailored by users to integrate their preferred tools, such as editors, use their favorite configuration management, add additional tools such as change tracking, or add support for additional programming languages.
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.
Enter the NY Times Random Login Generator! http://www.majcher.com/nytview.html
Both have extensible IDEs and using both you can build nice cross platform code.
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.
I like Visual SlickEdit for every coding language. It has a good macro language and is easily modified. Of course, this does come with a cost.
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.
Since you were thinking about using Perl I just wanted to make sure you knew about Visual Perl over at Activestate. Perl integrated into Visual Studio with full graphical debugger.
I'm not a perl guru so maybe this stuff already exists in other places but something like that would seem like a godsend if you do decide to go with perl.
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
The discussion is about IDE meaning: Integrated Development Enviornment.
I also have to state that Emacs is my absolutely favourite development environment. I played around with Netbeans, Eclipse and IDEA (a really cool Java IDE), but in the end I always came back to Emacs.
About Eclipse I didn't like that it wants the source directories below its working directory, nowhere else. Since I don't want to move my source directories, Eclipse wasn't acceptable for me.
Netbeans is quite okay, especially the debugger I like very much, but for daily development I think I don't see enough of the code (I have a 1024x768 screen) since the window decorations are soo huge, and the class browser also takes too much space of the screen if I don't want to use the mouse every minute.
Intellij IDEA instead is a really cool IDE, it has many features and is focused on programmers like me who don't like to use the mouse frequently and who want to see as much code as possible at the same time. What I like very much is that the class browser, project browser and all the other views hide when they are not used.
I think in the future I will again give IDEA a chance, but Emacs is *the* universal development platform for me.
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.
I am currently using the Visual Studio IDE for C++ programming.
The feature that I like the most is that I don't need to start another application for debugging my code.
Is there a better IDE that runs under Windows and has an integrated debugger that is at least as powerful and easy to use as the built-in MSVC++ debugger (and can debug code generated by MSVC++)?
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.
I've modded the IDE before and it quite easy to do, I added sourcesafe support ,and some auto formmating .
Good examples of what can be done are Class explorer and code compleation, they were once propritatry mods that Borland has now licenced.
Also,
The IDE is far easier than Visuial studios, (though file management isn't that great) Visuial studio was once owned by someone else and Microsoft brought them up.
Borland have been producing Greate IDE's ever since the days of DOS.
JBuilder is also a borland product and accounts for 40% of the Java houses, it's IDE is simila to CBuilder and Delphies.
thank God the internet isn't a human right.
It does just-in-time compiling so you can change you code.
Code compleation is strong-typed so you get less bugs.
Memmory leak and buffer overruns and null pointers are checked.
Full graphical object browsing is supported so you can easly navigate, eval and change stuff.
Thread support is good,
and the dissasemblers not to bad either.
Debugging code produced by somthing else, well if it's a binary file you need to have the symbol information attached.
If it's code then CBuilder will compile it up fine (hell you won't want to go back to MSVC++ anyway)
Go get a free trail copy today!
thank God the internet isn't a human right.
I really have to say thanks for all the pointers. I just might have a viable open source solution that I can "sell" to my project manager. It looks really good. I am still reading through all the links that were provided in addition to what came up on my Google searching. If I am able to use an OSS solution then I will probably start hacking that project on my own time to get the features I want.
My name fits again.
/me still has to see the first ide which is as exetenssible as emacs ...
Yeh they used to have a 'use it loke a book' license, i noticed they'd changed it to.
Entry/pro level Borland products are reasonably prices in my opinoin (very entry level is free).
There Enterprise product are very 'Enterprise', and have a price to match, unfortuntly there pro products aren't pro enough (DB conictivy in Kylix-pro is crap!)
thank God the internet isn't a human right.