Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT Technology

On Plug-ins and Extensible Architectures 173

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."
This discussion has been archived. No new comments can be posted.

On Plug-ins and Extensible Architectures

Comments Filter:
  • Is bloat really a problem with too many features or more to do with bad coding?

    How long is it before someone has so many plugins installed they are back to square one for bloat? Any operating system runs well when you first start it up. Users run into bloat problems after they have installed weatherbug, messenger programs and all the other crap they must have.
    • by denis-The-menace ( 471988 ) on Tuesday March 29, 2005 @11:38AM (#12076204)
      At least this is the user's choice.
      Bloat then becomes a consequence of the user's choices and not something forced upon the user by the developer.
      • At least this is the user's choice.
        Bloat then becomes a consequence of the user's choices and not something forced upon the user by the developer.

        This sounds somewhat like the defense fast-food restaurant chains use against charges that they promote obesity.

        • by Martin Blank ( 154261 ) on Tuesday March 29, 2005 @12:08PM (#12076480) Homepage Journal
          Does that make it a poor argument?
        • This sounds somewhat like the defense fast-food restaurant chains use against charges that they promote obesity.

          Ah yes... "I can't be responsible for my actions when the end result is something bad. I can only be responsible for things that went well."

          That kind of drivel makes people who think logically become extremely cynical.

    • Users run into bloat problems after they have installed weatherbug, messenger programs and all the other crap they must have.

      If its stuff the user must have then how can it possibly be bloat? If its stuff they just want then its additional functionality to be used at their discretion. Perhaps you expect everyone to make do with just a kernel?
    • If you find that, for example, your Firefox installation feels 'bloated' because you added too many plugins, then remove some!

      Bloat is only a problem when you can't do anything about it, such as MS Word; but even then you can choose not to install some components that you don't feel a need for.
    • Sure, but the WHOLE POINT of plugins is that they're optional. Too bloated? Unload some plugins.

      Sheesh. Come on, think for a second before posting.

      And finally, people will always do stupid things ( like installing *every* single plugin for JEdit ). But *you* don't have to.
    • A key difference is you don't have to load plugins. I need (for example) xinerama, but don't need accessibility support. So if something supports both, then it's bloated, but if it supports neither it's missing features. If you include xinerama but not accessibility, then for someone else who is the other way around it will be both bloated and missing important features. If you have both as plugins, then both of us have the features we want without the bloat.
    • Is bloat really a problem with too many features or more to do with bad coding?

      Actually, it's a bit of both.

      Programs that have more features than you'll ever truly use could be considered "bloated." If they were modular features, then you could choose to install or not, and the program size would be appropriate for what you do. This, of course, means there must be a good, solid underlying design of whatever it is.

      Poor programming practices lead to bloat too. This goes back to the old program optimiza

    • Not sure what Eclipse does, but Adobe After Effects and Photoshop (two products with lively third-party plug-in communities) don't increase their memory footprint substantially, even if the user has a kajillion plug-ins installed.

      The plug-ins are scanned at launch for a plug-in property list (PiPL) resource, describing the plug-in's name (for building menus) and basic behavior. They're only loaded and executed when the user applies them.

      Now if only Acrobloat shared AE and Photoshop's plug-in architecture,
  • by Anonymous Coward on Tuesday March 29, 2005 @11:41AM (#12076219)
    Might I suggest a slight rewrite of the first sentence:

    Developers who want a flexible, configurable, IDE have long preferred plug-in architectures such as Eclipse over what they might view as the alternatives that promote pedophilia and Satanism.

    It just sounds more professional.
  • by FortKnox ( 169099 ) on Tuesday March 29, 2005 @11:44AM (#12076245) Homepage Journal
    The whole plugin environment works a lot like cooking a large meal. Add in extra ingredients, or substituting one ingredient for another can create a whole new experience. You could even use the same 'plugins' for different 'bases' if you provided the functionality correctly... like having pork (Java) as the basis for your sauce or chicken (.Net).

    But, it can be a tremendously dangerous[tt] if not done correctly, so you could almost make the analogy of baking instead of cooking. Only specific elements can be used or you could ruin the whole dish... could you relate bloated software that hardly runs with something like a ruined custard or creme brulee??
    • You could even use the same 'plugins' for different 'bases'

      I want the "all your plugins are belong to us" Borg plug-in.

      After all, to extend your food analogy - it really IS like cooking - if you don't have everything just right, it might be (barely) edible, but it will taste like shite.

      The article speak of plug-ins managing plug-ins. and then goes on to this:

      At a minimum, the kernel must provide runtime support for the basic plug-in infrastructure by:

      Finding, loading, and running the right plug-in c

      • I want the "all your plugins are belong to us" Borg plug-in.
        See emacs [gnu.org].
        • Sorry, I'm a vi man myself.

          The article speaks of up to 10,000 plugins:

          ... the platform goal has been revisited to support scaling between 5,000 and 10,000 plug-ins.

          That's 100,000,000 possible interdependency conflicts in a 1-on-1 scenario. And 10,000 pieces of code that may or may not be present on any one system. Version problems. Missing/out-of-date problems. Dependency problems.

          Then there's the security problems. 10,000 links - and your chain is only as good as the weakest one.

          With 10,000 components

          • I dunno. My theory is that it's really all an iceberg, where the waterline is at the interface level.
            Typically, we want to manage things in a declarative sort of way, with a high waterline, and have the code fret about the annoying details.
            Then, suddenly, things no worky-worky, or we need to improve time/space/features of the code. Now we want that waterline lower, exposing more of our iceberg, so we can do some imperative sorts of things with it.
            While not a GUI, I've been recently living this iceberg
    • Comment removed based on user account deletion
  • To all you pattern zealots out there, this is called Inversion of Control. Typical crappy pattern name. Service patterns are among the most common used. Why? Because they are well-named. Who the hell came up with Inversion of Control? Pointless terminology. Plug-In Architecture is far more descriptive, understandable. Although you pattern guys don't get to sound like snotty professors when you say it. It's far too...practical
  • Plugin Hell (Score:4, Insightful)

    by obender ( 546976 ) on Tuesday March 29, 2005 @11:46AM (#12076264)
    From TFA:

    Most of you have probably experienced "DLL hell" at some point and will look with suspicion on something that has the potential of being a "plug-in hell."

    I think we already passed the potential phase a long time ago. After a while you either give up installing the latest milestone or give up your added plugins.

    • Where I work, none of the developers have this problem. I maintain an update server with all the plug-ins our team uses. Whenever any of the plug-ins are updated, I test out the update and then push it to our update server. Other developers get it with a simple dialog the next time the start Eclipse. When we update to a new major revision of Eclipse, it's a simple matter of adding our custom update server and then selecting all the plug-ins you want. It's all pretty painless. You can also export your
  • Hurd (Score:3, Interesting)

    by roman_mir ( 125474 ) on Tuesday March 29, 2005 @11:48AM (#12076290) Homepage Journal
    I love Eclipse actually, it doesn't do everything that I want though, for example MS .NET studio allows attaching to an already running process and debug it but Eclipse does not. It maybe due to Java limitations and maybe this feature will appear sometime in the future, but maybe it is just not possible to do? I am not sure.

    Now look at Hurd. Hurd is a plugin environment if I understand it correctly, but it is too low level, but I still wonder, will it be possible to use Hurd as not only OS level runtime but for high level apps?
    Just a thought.
    • If you're taking it that road, than any high level app is just a plugin for the OS. It sure uses the API provided by the kernel...
    • In Eclipse 3.0.1, I attached to and debugged a web app in a remote tomcat.
    • Re:Hurd (Score:5, Informative)

      by Manannon ( 728315 ) on Tuesday March 29, 2005 @12:45PM (#12076915)
      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.
    • Remote debugging for Java is built in as standard in both the SDK as well as Eclipse since as far as I can remember. Right next to where you create a "Java Application" run/debug configuration there is a template for "Remote Java Application". You'll need to add run parameters similar to "-Xrunjdwp:transport=dt_socket,server=y,suspend=y, address=4000 -Xdebug" for the application that is to be debugged.
  • two concepts (Score:5, Informative)

    by 10am-bedtime ( 11106 ) on Tuesday March 29, 2005 @11:49AM (#12076297)

    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 [gnu.org], and the raft of non-late-binding programs [freshmeat.net].

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

  • by MynockGuano ( 164259 ) <hyperactiveChipmunk+slashdot.gmail@com> on Tuesday March 29, 2005 @11:53AM (#12076345)
    Plug-ins are implemented as the plug-ins plug-ins with plug-ins over plug-ins plug-ins plug-ins plug-ins plug-ins.

    Furthermore, plug-ins plug-ins plug-ins so that plug-ins plug-ins.

    Mine eyes glazeth over.

    P.S. plug-ins
    P.P.S I just like saying plug-ins. It's a funny word. Plug-ins. Hee!
  • Joking, of course (Score:5, Insightful)

    by mccalli ( 323026 ) on Tuesday March 29, 2005 @11:55AM (#12076354) Homepage
    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.

    That was meant to be funny, right? Because few things are as so monolithically all-encompassing as Eclipse.

    I should reveal personal bias from the outset: I despite Eclise. Though it sits open in a window just next this one right now, I still loathe it with an utter passion.

    I cannot get its editor to put tabs in realistic, predicable places. I don't want my coding environment to start looking like MS Word, underlining things as problems simply because I haven't finished typing thm yet or am concentrating on another part of the design. I had to immediately turn off most of the auto-typing features such as adding brackets or quotes, because I found it vastly distracting. There's a plug-in to search the preferences! My god, that makes it out of control.

    I tried to use it at home the other day to import four existing source files and then generate a build.xml file for me. It never even worked out how to import the files with the right directory root, which given a pattern of src/org/eruvia//FileBelongingToPackage.java should have been src, not src/org/eruvia/appname.

    Can't stand the thing.

    Cheers,
    Ian

    • I despite Eclise

      I also can't type. Good, ambiguous typo though - "I despise Eclipse", "I code despite Eclipse"? You be the judge.

      Cheers,
      Ian

    • I think you're right, they must have been joking.
      My installed eclipse takes up 99.9 megs and requires a 80 meg JDK and all that bloat, still doesn't make me want to stop using vim.
    • I had much the same problem. I heard how great Eclipse was, tried it, was unable to work out how to edit a trivial existing project, and threw it away.

      I should mention that I use Apple Xcode, so I'm not against IDEs per se; I just think Eclipse is way too complicated.
      • by sprekken ( 623464 )

        ... I just think Eclipse is way too complicated.

        Which is why it is such a great IDE! I can understand all of the minimalists that complain that it's just too hard to use, and want to stick with VIM. I personally love VIM, I still use it on occasion while writing C and PHP. But using VIM for everything is like eating potatoes for breakfast, lunch, and dinner - every day. They're good, but there's a lot more out there.

        I have found that Eclipse is one of the greatest software applications ev4r simply

      • I should mention that I use Apple Xcode, so I'm not against IDEs per se; I just think Eclipse is way too complicated.

        I have the feeling that any architecture based on plugins is going to be hideously complicated...simply because you have many people working on individual plugins, each with their own vision...there is no Grand Unified Vision of how it all works together.

        I respect Eclipse as a great creation, but I'm not yet ready to claim I like it. Still prefer Emacs. Without any Java IDE.

        Heck look at t

    • I cannot get its editor to put tabs in realistic, predicable places.
      Tabs ???? Tabs ??? did you say tabs ? ARRRGGGHHHH !!!!!
      Real physical tab chars in code text are an absolute and unpardonable sin !!!!
      There I said it.
      All of you lads that leave physical tab chars in your code should to be caned, second offenses deserve disembowlement with a spoon...
      It is incomprehensable, to me (and yes I am biased but not stupid), why this anachronism persists when the good lord has provideded such things as the sp
    • I feel like I need to provide another view of Eclipse. Using the built in 'Code Formatter' I have not had problems configuring tab and brace placement. Import/Export works fine if one pays attention to provided options.

      Although I must say that through learning to develop a RCP application (Eclipse Rich Client Platform), the plug-in architecture seems well thought out, but does require a bit of study to figure out how to properly design an RSP app or just a plug-in.

      As with any tool, it takes a bit of tim
    • Can't stand the thing.

      Neither can I, but just like you I have Eclipse open on my other monitor. I prefer it to emacs and vi, but for Java I'd use IDEA anyday. It's easier to use, the refactoring tools are sweet and it's much easier to integrate with configuration management and a build system. There aren't as many plugins, but I found most of them to be stable*. * except for the ResourceBundle editor which choked on huge .properties files in the project path.

  • by acostin ( 229653 ) on Tuesday March 29, 2005 @11:58AM (#12076391) Homepage
    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 [amazon.com] 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 [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 [macromedia.com] - 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
  • by Timesprout ( 579035 ) on Tuesday March 29, 2005 @12:03PM (#12076433)
    Using the Slashdot posting plugin for eclipse.
  • Eclipse speed (Score:3, Interesting)

    by Espectr0 ( 577637 ) on Tuesday March 29, 2005 @12:07PM (#12076468) Journal
    Seems that the plugin-based architecture of eclipse hasn't helped a bit with loading times. On my athlonxp 2100 with 768mb ram, it takes about 15 seconds to load, same as netbeans.

    Netbeans also has very good html/xml syntax highlighting and completion. I hope Eclipse 3.1 plays catchup on this.
  • by Tim Browse ( 9263 ) on Tuesday March 29, 2005 @12:09PM (#12076487)
    I tried Eclipse a while back - the first thing I do with any programming editor is of course to load a text file and try editing it.

    So I try to open a random xml file on my hard disk, and, er...wait, hang on, you can't do that. You can only load a file if it's in your project (or view or solution or whatever word it is that Eclipse uses).

    I researched a bit, and found some other people ranting about this, but the official line was you should add such files to your project if you want to edit them, it's the right thing to do, blah blah blah.

    Call me stupid, but that kind of language lawyer prescriptive idiocy is what I try to avoid, so I went straight back to my bloated monolithic IDE that nevertheless let me load whatever the hell file I want.

    I'm downloading the latest version now to see if it will let me execute a technological marvel such as loading a file I want to edit...we'll see.

    (Although the last time I tried Eclipse it took me fecking ages to get a JVM set up that would even allow it to start up - "run anywhere", indeed...)
    • This is more to do with Eclipse's heritage in Visual Age than its plugin architecture. IBM tooling tends to impose its will on developers rather than facilitating them. You can do it, but only if you do it the way IBM forces on you. Personally I have always found eclipse to be a slow, memory hogging, counter intuitive beast to use. Give me IntelliJ anyday.
    • by TheTomcat ( 53158 ) on Tuesday March 29, 2005 @12:31PM (#12076768) Homepage
      I see your point, but you seem to be mistaking Eclipse for a general-purpose text editor. It's not.

      You wouldn't use OpenOffice's word processor to write code, would you?

      Eclipse is tryly an Integrated Development Environment, not a one-off quick-editor.

      I've recently come to love Eclipse (for the most part) -- I use it for PHP development, now.. and I keep kate around for quick one-off edits.

      IMO, if you need something that does both, then Eclipse is not for you.

      S
      • I see your point, but you seem to be mistaking Eclipse for a general-purpose text editor.

        Well, I was mistaking it for a programmer's editor actually - silly old me.

        The idea that you can have an editor which allows you to code Java, etc but won't let you edit a simple text file is, quite frankly, ludicrous.

        Most programmers I know will use the same text editor for everything they do, whether it's coding or creating/editing a simple config file, searching a log file for text, etc. After all, Use a Si [pragmaticprogrammer.com]

    • by drchrisharris ( 94844 ) on Tuesday March 29, 2005 @12:34PM (#12076807)
      File->Open External File

      Wasn't that hard, was it?
    • I'm downloading the latest version now to see if it will let me execute a technological marvel such as loading a file I want to edit...we'll see.

      Eclipse is not a text editor. It's an IDE. It allows you to manage and work on separate projects within the same environment, and provides a way to isolate those projects from each other. If your biggest complaint about it is that you can't immediately load it up and edit a file, then you are to a large extent missing the point of the tool. It's not a text editor

      • Half-Life 2 is also a shitty text editor. But that's not what it was designed to do.

        Oh good Lord, can you guys just quit it with the crap strawman arguments?

        Eclipse is not a text editor. It's an IDE.

        But it contains a text editor, surely?

        Also, IDE = Integrated Development Environment. In other words, I shouldn't have to leave the IDE to do something simple like edit a text file while I'm developing. Maybe that's just me.

        It's probably pertinent to note the Eclipse is the only IDE I've ever use

        • But it contains a text editor, surely?

          Yes, of course it does. You can even set it up so that the more familiar emacs key bindings are in place. It has code folding, syntax highlighting, regular expression search & replace, highlight occurences, common class templates, code block templates, and etc.

          It's probably pertinent to note the Eclipse is the only IDE I've ever used that wouldn't let me load any old text file I liked.

          I think you're having a problem with your configuration, then. I am able to e

    • As people have pointed out. Eclipse is an integrated development environment. Sure, you just want to edit a file, but editors in Eclipse are part of that integrated environment. As a simple example, you can select the name of class and ask to see its subtype hierarchy. For that to work, you need to build a model of a bounded set of classes. Hence, the workspace: a bound on the set of files to consider, and a convenient API for working with them.

      Setting up projects in a workspace isn't terribly hard, and

    • You are looking for jedit. It has plug ins but it also allows you t open up files.
  • by ThosLives ( 686517 ) on Tuesday March 29, 2005 @12:10PM (#12076499) Journal
    This "plug-in framework" mentioned in the article sounds like it's simply an OS-independent OS. Think about it: it registers "plug-ins" that talk to each other using "defined interfaces" and each "plug-in" must be registered with the runtime. How is this different than installing applications and registering them? There are well-defined interfaces between applications, APIs for displaying information, etc.

    I find it amusing that the article even calls the plug-in manager the "kernel". It seems like the research into this field is basically working on some meta-OS rather than something that will provide real extensibility to a system. All it tells me is that OSs need better interface specifications to provide what folks are looking for and so write their own meta-OS.

    • This "plug-in framework" mentioned in the article sounds like it's simply an OS-independent OS

      They tend to call this a 'Virtual Machine'
    • Think....OSGi. Look it up. At the core of Eclipse is the OSGi framework ( now running in your favorite mid to upper range BMW's navigation system, among other things ). The OSGi framework is nice, but GOD is it big ! As the co-developer of a commercial product built around Eclipse and OSGi ( sorry...confidentiality agreements are a biatch, aren't they ? ), I can testify that as nice as it is to have a "plug-in infrastructure around you", the "Extension points" mechanism sucks wet wind. It's entirely too tex
      • This is what it SHOULD'VE looked like...sorry about that...

        ------- Plain Ol' Text ------------------

        Think....OSGi. Look it up. At the core of Eclipse is the OSGi framework ( now running in your favorite mid to upper range BMW's navigation system, among other things ). The OSGi framework is nice, but GOD is it big ! As the co-developer of a commercial product built around Eclipse and OSGi ( sorry...confidentiality agreements are a biatch, aren't they ? ), I can testify that as nice as it is to have a "plug
    • That's more true than you know, and I have seen it mentioned explicitly by developers on Eclipse mailing lists. For example, Eclipse uses the same "run level" concept to start up the plugins. The core plugins such as install/update manager (configurator in Eclipse-speak) and extension manager get started on lower runlevels and the rest later on. You can even get a console prompt (for OSGi) if you run it with just the bare-bones framework.
  • thanks to the AS2 Plugin [asdt.org] and the open source compiler [mtasc.org] i can now code in eclipse, too. hooray!
    unfortunately flashout [potapenko.com], which displays the newly compiled SWF inside eclipse and logs the debug output seems to work only under windows. linux and osX users have to use their browser and a custom solution for the debug info.

    i love my new workflow. it's so much better than having flash open in another window only to compile my classes.

  • by cyberjessy ( 444290 ) <jeswinpk@agilehead.com> on Tuesday March 29, 2005 @12:18PM (#12076589) Homepage
    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 [icsharpcode.net].

    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.
  • by Bigger R ( 131370 ) on Tuesday March 29, 2005 @12:22PM (#12076643) Homepage
    The developers of the GPLed C# IDE wrote some well-presented documentation [icsharpcode.com] that discusses in part their add-in architecture: "SODA - SharpDevelop Open Development Architecture Almost all mid to large size software projects have some sort of add-in architecture. An add-in is basically an extension to the functionality of the main application. The common way to introduce an add-in structure is to load libraries from a specific directory at runtime. (Author: Mike Krueger)"
  • by Shivetya ( 243324 ) on Tuesday March 29, 2005 @12:23PM (#12076656) Homepage Journal
    being an IBM shop we have seen many of our beloved (read:working) tools being phased out in favor of an Eclipse based solution.

    So far the net result has been bloated and very slow loading applications. The minimum memory requirement is 512mb with 1gb being recommended on user groups.

    After my experience with it at work I would not touch it at home. Not a single developer here uses Eclipse, they all prefer to use the older programs that are no longer supported or are being phased out.

    • Well, this developer loves eclipse. Buy myeclipse plugin set for 30 bucks a year subscription, and you get a full Java/JSP/Struts/XML IDE.

      The memory requirements are probably because of the compile-as-you go Java, which I can no longer live without. Ditto for the refactoring features, variable renaming is fantastic. The enhanced syntax coloring of myeclipse allows me to see what functions are inherited and ones that aren't, if a variable is local, argument, or method, if its static or not, all at a glance
  • by tototitui ( 861639 ) on Tuesday March 29, 2005 @12:28PM (#12076713) Homepage
    I just read a earlier a long string of bashes around java & Open Office and then this item about Eclipse.

    Let me tell you this.
    A furiously anti-java, C++ist, debianist friend of mine tried it and found it cool for his C++ development !

    It is a living demonstration that all that religious wrath around java is a non-sens.

    Compared to the usual "Java is slow, Swing stinks, it closed source for playmobile developers."

    Eclipse is fast, GTK native, full open-source with a very well done plugin architecture ...

    You even have a full GCJ port for the zealots :
    http://klomp.org/mark/gij_eclipse/
    • While i'd rather be working in VIM, i use Eclipse at work and it is pretty slick. The one thing that i can say against it, however, is that it takes a huge amount of RAM. I recently upgraded to 768MB, and with Eclipse, Firefox, and Gaim running, my memory utilization gets up near 100% (and Eclipse takes the biggest slice of the memory pie). Now, i know the JVM is largely to blame, but no matter what area of the code it's in, that's still ridiculous. I look forward to some optimization in this area.

      All
    • Eclipse is fast, GTK native, full open-source with a very well done plugin architecture .

      Point by point:

      • Fast: well, it's all relative, I suppose. For example, according to Einstein, if you were to speed around the world in a fraction of a second and end up back at your computer seat, maybe it would actually accomplish something (e.g., actually display the key I typed on my keyboard) in a under a second. But let's call a spade a spade here: Eclipse is one of the slowest (useful) programs in the world.
  • by rplacd ( 123904 ) on Tuesday March 29, 2005 @12:51PM (#12076970) Homepage

    The other day I had to write a bunch of code with similar lines. Something like

    $entry = cleanAttr("comp_phone", $totCompany_list[$i]["phone"]) .
    cleanAttr("comp_fax", $totCompany_list[$i]["fax"]) .
    cleanAttr("comp_email", $totCompany_list[$i]["email"]) .
    [...];

    I hopped over to my *scratch* buffer and typed in a short emacs lisp function (three lines of code, if that). I evaluated it, switched back to my code buffer, and added the lines by hitting a key sequence. The above lines were reduced to M-x attr RET phone RET M-x M-p RET fax RET M-x M-p RET email RET, etc. I could've even bound the attr call to a chorded key press or two.

    Total time to look up the docs and write the code to extend emacs: about a minute.
    Total time spent compiling code, loading a "plugin", restarting emacs: 0.
    Total time spent dealing with "you forgot the static keyword on line 12": 0.
    Total time spent fixing my code after upgrading emacs: 0.

    This is a feature that's been around for decades. Decades! When extending your editor is this simple, you'll do it more frequently.

    • I use Eclipse as a complement to my development process. The other main parts are:

      Emacs NT
      Cygwin
      c:\cygwin\bin\rxvt.exe -fn "Lucida Console-11" -bg DarkSlateGray -fg Wheat -cr Orchid -sl 10240 -tn xterm -g 170x70 -e /usr/bin/bash --login -i
      perl
      and
      ant 1.6.1

      Each is for a special purpose.

      To bring it back to the article, the Eclipse plugins I use are the visual Ant Task validator, the Debug mode with process attach, code completion, debug groups [coming in 3.1] and a whole host of others.

      The single

      • I notice you don't list any plugins or extensions that you've written for Eclipse.

        See, I'm just pointing out that extending Eclipse is nowhere near as easy as extending emacs. If you wanted to change how Eclipse did something -- anything at all that didn't sit well with you -- you'd have a pretty hard time doing it, relative to making a similar change to Emacs.
    • Editor utility functions are different from UI and environment plugins. For quick and dirty write-these-lines-for-me, syntax hilighting rules, common task macros, emacs can't be beat (I sure as hell can't live without it). But for managing projects, integrating whole other apps (like debuggers, web browsers, class browsers, db interfaces) emacs doesn't hold a candle to eclipse. The thing I have the most hope for is the plugin that uses emacs as eclipse's editor using gnuserv. That is the one thing tempt
    • Of course. That's because Eclipse is extended using the same programming language it's built in (Java). Emacs is built in C, but you extend it using Elisp. As such, there are many (useful?) extensions you simply can't do, being limited to elisp.

      Both are plugin architectures, but that's where their similarity ends.
      • That's because Eclipse is extended using the same programming language it's built in (Java).

        Well, there's no reason for it to be that way, is there? I mean, look at TCL, for example. A lot of apps written in C/C++/etc use TCL simply because it's a lot easier to control/extend/whatever their apps with TCL than it is with the implementation language.

    • A cynic might observe that had you been using a less powerful editor, you would have been forced to write something like (will contain bugs):

      $entry = join("", map {cleanAttr("comp_$_",
      $totCompany_list[$i][$_]} qw(phone fax email));

      which would have been the right thing to write.

      In Perl, you should almost never be writing repetitive code. Sadly, you sometimes have to write repetitive Java - eg defining a bean.
  • I've used Eclipse on a program that uses both Java and C++ through a JNI layer. The Java side was pretty good, though I had to get used to the keys. The C++ side needed some help though. It's obvious that whoever dreamed up Eclipse thought of it as a Java project IDE and anything else second. And yes, there is a C++ plugin, but that doesn't go nearly as far as the Java tools built into the program, such as refactoring.
  • Have I wondered how it works? No. Do I ever see myself caring? It's a GUI application. There are dozens of them, all of which decompose to lots of API calls to create windows and register handlers. Big deal.

    The other thing, "monolithic, bloated IDEs"? What other monolithic, bloated IDEs? Somehow I get the feeling the writer could be eluding to Microsoft's Visual Studio since well, IDEs on *NIX-land have largely been non-existent. Or last least, not very popular. Despite my lack of affinity for Microsoft in
  • I can't stress enough how important security is!

    When you have a late-bound, extensible environment it is so easy to mess with it. Plugins by their very nature are supposed to be powerful, with hooks into the system at very low levels. This makes it very easy for virus writers, malware authors and spyware developers to run their code with full priviledge.

    But lets forget about Spyware and Virus for a moment. Lets say you have a plugin architecture for an application that does proprietary financial cal
  • KDevelop (Score:2, Interesting)

    by aCapitalist ( 552761 )
    I've been impressed with Kdevelop since the 3.x rewrite (Gideon).

    It has a plugin architecture, is native, and even has a decent vi editor kpart via yzis.

    And I believe the killer feature of Kdevelop is the ability to import autotools projects - which is basically everything in the open source world.

    Eclipse (CDT/C++ plugin) doesn't have this ability yet.

    The other night I imported KDElibs straight from cvs, it parsed everything out, I had my class browser with the entire kdelibs project there, changed some
  • Every single app I use seems has a "plugin" architecture. Add a couple hooks to your program, it's plug-in. Use DLL imports from multiple DLL's, plug-in. Design a whole modularity architecture, it's still "plug in". Support external config files that change a few presets ... freakin "plug in".

    Component, package, library, expansion, whatever ... Maybe eclipse has a standard registration and callback architecture, maybe it's a message bus, maybe it's an agent blackboard system, maybe it's AOPAlliance-sty

For God's sake, stop researching for a while and begin to think!

Working...