Extensible IDEs? 87
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."
tcl/tk (Score:1)
Modding the ide. (Score:1)
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.
netbeans (Score:1, Informative)
Open Source (Score:1, Informative)
Re:Open Source (Score:1)
Works with JAVA (Been using it for that for awhile now), and I think C++ now.
IBM Eclipse Project (Score:5, Informative)
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!
Re:IBM Eclipse Project (Score:1)
Not even in 2 weeks when 2.0 final will hopefully be out.
I use it extensively, and I find that what it does, it does well. but:
You can integrate what you want, if your vendor integrate it for you, or if you are ready to put some ressources on the project.
If you come from visualX, you have to learn java, and a special java, for that (eclipse is based on swt which is neither awt nor swing).
As an integration platform, it is quite open.
As a java IDE, the great is next to the worst(no swing support, no javadoc wizard like netbeans...).
As a C++ ide, I have no experience, but they seems to go nicely, except, in your case, they especially target Linux.
So eclipse is very promising and very interesting.
But I would'nt impose it TODAY to developpers that don't choose it themselves.
Re:IBM Eclipse Project (Score:2)
Eclipse is not as featurefull as Forte (aka Netbeans) or Visual Studio, but the community is growing fast. I expect it to easly outclass Forte very soon, and I expect it to be a better IDE than Visual Studio in the long run because the plugin interface is so nice and easy to use.
Forte is painfull to use on most average computers. I'd only recommend it if you're doing SWING apps and need the GUI building tools. I haven't looked at the plugin interfaces, I'm sure you can do a lot, but bleah... using forte feels like you're programming in sludge. No thanks.
Bryan
Eclipse not native, uses SWT (Score:2)
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.
Re:Eclipse not native, uses SWT (Score:2, Informative)
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 [eclipse.org] for the downloads, and eclipse-workbench [eclipse-workbench.com] 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.
eclipse (Score:1)
jEdit (Score:5, Informative)
Re:jEdit (Score:2, Informative)
jEdit is one of the most modular software I've ever encountered.
It is/has:
1. Excellent documentation
2. Insanely customizable: syntax coloring, keyboard shortcuts, macros, abbreviations (the standards), as well as the powerful plugin subsystem, dockable user-defined toolbar/expandable view
3. Active community that contributed boatloads of useful plugins (I'm developing one currently).
4. Interactive Console subsystem (it even runs system commands)
5. Grep-like Hypersearch facility
6. Excellent file browser
Re:jEdit (Score:2, Informative)
Re:jEdit (Score:1)
Re:jEdit (Score:1)
Re:jEdit (Score:1, Insightful)
Re:jEdit (Score:1)
Anonymous Coward, meet tj8 [slashdot.org]!
Re:jEdit (Score:1)
One note though - I've only used it for Java. I don't see any reason why it wouldn't work well for just about any language.
Obviously (Score:3, Funny)
Re:Obviously (Score:2)
This is its great advantage and disadvantage. The advantage is that you can program it. The disadvantage is that programming emacs is usually not what you are getting paid for.
Re:It's an old technology, and it's already there (Score:1)
Forte for Java (NetBeans) (Score:3, Informative)
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.
Re:Forte for Java (NetBeans) (Score:2)
* Modularity. Many IDEs are modular these days, but from the level of integration I've seen from third party ISVs, the level of support for external modules is extensive (able to modify and enhance every aspect of the IDE).
* Support for various languages. Despite what some might say, Netbeans doesn't support Java exclusively. There are Java editors, C++, XML, plain, etc. It would be a straight forward task to add Perl support, both in external compiler and editor support. It doesn't come out of the box, but the extensibility is quite there.
* Speed. Many people have complained that Netbeans is slow. Sure I wish it would load a little faster, but once loaded runs fine on my PII 450 system. Speed is a fundemental interative problem. Enhancements in JVMs and architecture will yield speed improvements. Improved computer system will yield speed improvements. So if the current speed is acceptable to you, having it go faster but giving up something else is a drawback.
So to sum up. I like Netbeans. I think a pure Java IDE impl is good. Netbeans modularity and ISV support is great and the speed is acceptable. Check out Eclipse too and let the community know down the road which route you decided to go, and why. I for one would be interested in knowing.
Extensible IDE == NetBeans (Score:1)
Eclipse (Score:2, Informative)
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
Re:Eclipse (Score:1)
CORRECTION: http://www.eclipse.ORG/ [eclipse.org]
SmallTalk.... (Score:3, Interesting)
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 [cincom.com] has a non-commerical version of their SmallTalk VisualWorks, which is quite cool.
Why Smalltalk.... (Score:1, Informative)
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/
Re:SmallTalk.... (Score:2, Interesting)
One word (Score:2, Informative)
cost: $0
flexibility: priceless
Emacs vs. other IDEs (Score:1)
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.
emacs is great, but it is showing it's age (Score:2, Interesting)
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...
Re:emacs is great, but it is showing it's age (Score:1)
I think that all of your listed points are good but I want more. I am very interested in a development environment that stretches the capabilities of the current cream of the crop IDE's. How about:
A truly incremental development environment which can recognize and highlight syntax or logic errors before I compile, sort of like mispelled words in modern wordprocessors. And no I don't want to have to run a seperate app to get these features. I want them to work dynamically as I type without a noticable delay.
Advanced programming features like slicing which can help you understand unfamiliar code. I want to know where a given variable is used and modified. Which lines of code might be affected by a change in variable XYZ? I need help digesting huge quantities of code written by someone who's style I detest and find hard to follow.
Completely extendable via a modern component system and a modern and popular interpreted language like Python.
Serious support for documenting code, complete word-processing features within comment blocks, support for documentation generators like Doxygen, automatic template support for parameter documentation, automatic documentation updates when types change, etc...
Primarily written in cross platform modular C++ so that it can be f****** fast. I'm sick of 5+ second start-ups on todays machines.
Distributed and background compiling support for when I'm working at low levels on a large project. No more include file changes and then a 10 minute compile while I've got about 5 machines sitting idle.
Flexable project and build support where there are lots of files that are spread across multiple directories. How about project support that helps me maintain cross platform source code?
I want a development environment which can be a testbed for solving hard problems and implementing experimental features that haven't been done at all before. I suspect that this will require an environment that can completely break down the language that I'm programming in to a tree form so that it can be examined for coherency by language agents. There are a couple of interesting online documents that describe how such a system might be constructed.
I have been working on a text processing engine in my spare time for the last year or so that I plan on using as a base for something like this but I'm not quite far enough along to show it yet.
Re:emacs is great, but it is showing it's age (Score:1)
other features I forgot to mention:
* support for tooltips, function info, member lists, etc.
* generator to create forms
* strong support for unit testing (test, debug, release) instead of (debug, release) in Visual Studio
Cooledit (Score:2, Interesting)
Nothing else comes close.
For webdev Quanta is not a bad pick at all. (Score:1)
$$$ version http://www.thekompany.com
OSS version http://quanta.sf.net
What about anjuta? (Score:2)
http://anjuta.sourceforge.net
Fede
Re:What about anjuta? (Score:1)
Re:What about anjuta? (Score:2)
Unix people always like "unbloated" vim or smething like that. I'm missing some gtk app that can at last do UNDOs without breaking the code, s. highlighting, show line numbers and the usual text editing everyone needs.
Ok, there are some alternatives. But they are ugly. I know to use vim, i just found it uncorfortable, unpleasant when not doing something as strict as c/c++...i use it complex tasks only.
You're doing it backwards (Score:4, Insightful)
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.
Re:You're doing it backwards (Score:1)
Re:You're doing it backwards (Score:2, Insightful)
I know these things get religious quickly, but I say this as someone who used to love Perl and write lots of it. Eventually I looked at Python and now I just can't stand the mountain of misfeatures and backwards design that Perl is. Fine for impressing people with cryptic 3-liners which do lots, absolutely useless for implementing large, clean, maintainable systems. Yes, I know full well that it _can_ be done in Perl, but you have to fight at every line to get there.
OTOH, you can obviously also write bad code in Python (or any other language). But the point is that in one (Python) the design 'flows' with you for making things clean, modular and readable, while in the other (Perl) you're swimming always upstream. You can eventually get there, but you'll be exhausted and it will have taken much longer.
Besides, Python has very easy integration with C/C++ (in case you ever need speed in certain critical parts) and bindings for pretty much every GUI toolkit out there.
Just an opinion... Good luck.
Re:You're doing it backwards (Score:1)
I disagree: http://ccsh.sourceforge.net/ [sourceforge.net]
VisualAleph (Score:2, Funny)
> 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.
VS.NET (Score:1)
Re:VS.NET (Score:1)
Prosyst mBedded Builder 5.1 (Score:1, Informative)
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.
Some options (Score:5, Informative)
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.
Re:Some options (Score:1)
Try VisualAge for Smalltalk (runs on Linux) (Score:3, Informative)
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.
Delphi & Kylix (Score:1)
Textpad (Score:2)
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 [textpad.com].
The downside is that, unfortunately, it is only available for windows.
Komodo (Score:3, Informative)
Similar search last week (Score:2)
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.
Re: (Score:1)
Re:Visual Perl (Score:2, Informative)
I've thought about VP, but bawked at the requirment of buying a MS.NET product.
The OS is the IDE (Score:2, Insightful)
This is key to thinking about development, otherwise you're prey to continually building new extensible systems on top of old inextensible systems.
c
open IDE for Windows/.NET (Score:2, Informative)
Re:open IDE for Windows/.NET (Score:1)
That looks GREAT! Have you used it? I'm reading docs on it right now. Is it in or nearly in a production level state? I really like the extensibility of it as well as that it is open source. If it is not extensible in the way I need, I can hack away!
Netbeans (Score:2)
But what about a debugger? (Score:1)
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++)?
CBuilder (Score:1)
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!
Ever tried Borland (Score:2)
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.
Re:Ever tried Borland (Score:1)
They've gone from v4 to v7 so quickly, that if you tried to keep up you'd be broke. (Have Borland ever heard of a minor release?) And you can't install more than one copy (say, on your desktop and laptop) without going against the license. That sucks.
Like I said in my earlier post, I've been using jEdit for Java development for a couple months now and I don't foresee ever switching back.
If there's something I don't like in jEdit, I change it. If there's something I need, there's probably a plugin for it. If there's not a plugin I can write one, or someone else will probably write one soon.
without going against the license (Score:1)
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 you (Score:1)