Slashdot Mirror


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."

32 of 87 comments (clear)

  1. IBM Eclipse Project by jjn1056 · · Score: 5, Informative

    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?
    1. Re:IBM Eclipse Project by Dalroth · · Score: 2

      I can attest to this. Eclipse is very nice, and I'm currently working on a generic Syntax Highlighting plugin (for those random languages like php, Perl, tcl, VB, etc. that don't yet have full support in the IDE). The plugin interface is very powerfull, very easy to use, and very well thought out. It's just not documented very well! You can always look at the code if you aren't sure how something is supposed to work, though. The power of open source software...

      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

  2. jEdit by vudmaska · · Score: 5, Informative

    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

    1. Re:jEdit by gatotkaca · · Score: 2, Informative

      Good recommendation!
      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

    2. Re:jEdit by des09 · · Score: 2, Informative

      I have used jEdit since 3.2, on NT, and GNU/Linux and it is definitely a very expandable, configurable solution. I have had some configuration issues and plugin compatibility problems, but I tend to stay quite close to the head. Slava Pestov and all of the jEdit community deserve a big thank you!

      --
      .sigless since 2003
  3. Obviously by line-bundle · · Score: 3, Funny

    Emacs. After all it does include the kitchen sink :-)

    1. Re:Obviously by hey! · · Score: 2
      Why is this a joke? The reason that emacs does everything is because it is extensible.


      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.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  4. Forte for Java (NetBeans) by bigjocker · · Score: 3, Informative

    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.
    1. Re:Forte for Java (NetBeans) by CptnKirk · · Score: 2

      I like, and would recommend NetBeans myself. I haven't developed add on packages but I use it for development on a daily basis. Some features Netbeans has that I believe would be of value.

      * 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.

  5. Eclipse by biehl · · Score: 2, Informative

    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

    C/C++ (supported by the eclipse project, will be released later this summer)
    Ruby (works, I think)
    C# (works, supposedly)

    Perl (planned)
    .NET/.gnu/mono (planned)

    Have a look at
    http://www.eclipse.com
    and
    http://eclipse-plugins.2y.net

  6. SmallTalk.... by inherent · · Score: 3, Interesting

    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.

    1. Re:SmallTalk.... by Art+Tatum · · Score: 2, Interesting

      Also, if you like SmallTalk, you might be interested in Cocoa/Objective C. With a little bit of planning (to make sure you aren't using QuickTime, or something proprietary like that) your application will be portable to all the platforms GNUstep supports (currently all UNIXes, and a Windows rendering backend is currently being worked on).

  7. One word by unformed · · Score: 2, Informative

    EMACS

    cost: $0
    flexibility: priceless

  8. emacs is great, but it is showing it's age by JC97_AK3* · · Score: 2, Interesting

    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...

  9. Cooledit by AbbeyRoad · · Score: 2, Interesting

    Cooledit is extensible in Python and has a builtin interface to gdb.

    Nothing else comes close.

  10. What about anjuta? by fferreres · · Score: 2

    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.)
    1. Re:What about anjuta? by fferreres · · Score: 2

      I'm not :)

      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.

      --
      unfinished: (adj.)
  11. You're doing it backwards by AuMatar · · Score: 4, Insightful

    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?
    1. Re:You're doing it backwards by fperez · · Score: 2, Insightful

      If "The language choice is based upon features, extensibility, and ease of learning", I'd take a serious look at using Python instead of Perl.

      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.

  12. VisualAleph by georgehorton03 · · Score: 2, Funny

    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.

  13. Some options by jaaron · · Score: 5, Informative

    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?
  14. Try VisualAge for Smalltalk (runs on Linux) by crovira · · Score: 3, Informative

    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.
  15. Textpad by mmmmbeer · · Score: 2

    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. :(

  16. Komodo by theolein · · Score: 3, Informative

    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.

  17. Eclipse not native, uses SWT by aquarian · · Score: 2
    This app is written in Java but uses a native widget toolkit to speed up the GUI.

    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.

    1. Re:Eclipse not native, uses SWT by Anonymous Coward · · Score: 2, Informative

      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.

  18. Similar search last week by mattr · · Score: 2
    I am an xemacs person but wasted a lot of time with trying to get an NT version working. The linux version is great, the windows version may be great for you but was useless for me since Japanese language is not supported (not a development priority..).

    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.

  19. The OS is the IDE by chromosundrift · · Score: 2, Insightful

    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

  20. Re:Visual Perl by lpq · · Score: 2, Informative

    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. :-(

  21. open IDE for Windows/.NET by fiffilinus · · Score: 2, Informative

    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 :-)

  22. Netbeans by flacco · · Score: 2

    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.
  23. Ever tried Borland by oliverthered · · 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.

    --
    thank God the internet isn't a human right.