Slashdot Mirror


On Plug-ins and Extensible Architectures

gManZboy writes "Developers who want a flexible, configurable, IDE have long preferred plug-in architectures such as Eclipse over what they might view as the bloated, monolithic alternatives. Ever wondered how it all works? Well, ACM Queue just posted an article by someone who has worked on Eclipse since its inception, Dorian Birsan. He gives a great explanation of the Eclipse architecture as well as a thorough analysis of things to watch out for when developing or working with pure plug-in architectures."

8 of 173 comments (clear)

  1. two concepts by 10am-bedtime · · Score: 4, Informative

    first key concept: late-binding.

    second key concept: single-root.

    summary: this article talks about a non-single-root late-binding architecture. there are, of course, other organizations: the quintessential single-root late-binding program, and the raft of non-late-binding programs.

    thus ends our cs moment of the day. we now return you to your regularly scheduled inanity...

  2. Dreamweaver has a functional plugin system by acostin · · Score: 4, Informative

    Dreamweaver is also a great framework for plugins. While the host application still offers some functionalities, they are related with the actual implementation of the plug-in architecture. You probably don't know - but Dreamweaver is now mostly built from plugins, and those are built with HTML and JavaScript almost exclusively. The HTML editor is not a plugin, but almost everything else is, and the options are unlimited.

    Not only this plugin architecture is powerful, but it's also platform independent - you can easily configure it to generate PHP/ASP or JSP code with the same plugin implementation and different platform files. Everything is XML, and a lot of regexps are used to detect code patterns and parameters that are presented in the visual interfaces. This plugin system is so powerful, that it allowed us to build a fully functional Dreamweaver PHP support layer (they only supported ASP and JSP back then), in just several months.

    If you've read the Cooper book - The Inmates are Running the Asylum you will understand easily how plugins have appeared in Dreamweaver back in the Drumbeat 2000 times - as a layer between the IDE user (Betsy - an HTML designer) and the hardcore programmer (I forgot his name, but he was a he :). When building dynamic sites, the designer and the programmer always clashed as they have different value systems (the designer dislike programming, the programmer don't care about design). So Dreamweaver was built as a layer between the programmer and the designer - helping the programmer work with the designer by writing plugins for the IDE that the designer will use to create complex things.

    That's what a lot of companies are doing now with great success. <shameless plug>We're doing it - http://www.interaktonline.com - with significant results - 10000 licenses sold and 500,000 downloads for the free extensions</shameless plug>, and there are also a lot of other companies doing it (you'll find more on the Macromedia Exchange - a place where people exchange free and commercial plugins)

    Dreamweaver also avoids the plugin hell using a powerful packaging technique (they came with their own package format - MXP - that knows how to do "safe changes" to the IDE - like adding menu entries, code completion features, etc). Those changes are applies using the Extension Manger - a nice piece of software that knows how to "undo" IDE changes when uninstalling an extension.

    Want to learn something from a working implementation? Learn how Macromedia did it and a lot of interesting lessons will be learnt.

    Alexandru

  3. SharpDevelop is another pluggable IDE by cyberjessy · · Score: 3, Informative

    Those of you who want to try out a fully featured IDE for .Net can try out SharpDevelop. This is GPL'ed and the project (including source code) can be found at ICSharpCode.

    I had written a couple of plug-ins for #D, and it took me less that two days to understand the architecture. Parts of the application are hacks, mainly because it does not have an industry heavy weigth behind it, unlike Eclipse. The project runs on contributions.

    SharpDevelop architecture includes pluggable language parsers, components, add-ins etc. I will definitely recommend this application to any .Net programmer.

    --
    Life is just a conviction.
  4. Re:Can it load an arbitrary text file yet? by drchrisharris · · Score: 4, Informative

    File->Open External File

    Wasn't that hard, was it?

  5. Re:Hurd by Manannon · · Score: 5, Informative

    Adding
    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=800 0,suspend=n

    to the java command when you run the app you want to debug allows Eclipse (& others) to attach on port 8000 (of course you can choose any unused port number)

    If you want to debug an applet while it's running in a browser, you can specify the same arguments in the applet control panel.

  6. Re:Can it load an arbitrary text file yet? by FranksChickenHouse · · Score: 2, Informative

    That was a new feature added (I think) in either 3.0 or 3.1. Previous versions did not, I repeat, did not have this ability, and it was really, really annoying.

  7. Re:Can it load an arbitrary text file yet? by Tim+Browse · · Score: 2, Informative
    Previous versions did not, I repeat, did not have this ability, and it was really, really annoying.

    Indeed - I thought I'd made it obvious enough that it wasn't possible on the version I tried (and that googling confirmed this), but I guess I didn't make it obvious enough for drchrisharris.

  8. Drupal by Anonymous Coward · · Score: 1, Informative

    This is the way Drupal works, and why it is so powerful.