Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipse-incubator-e4-dev] Some food for thought


Money quote: "Comparing eclipse to [NetBeans, IntelliJ, .NET...] is like comparing apples to a bowl of fruit and a deli" - Me

The whole 80/20 (80% of users use only 20% of the functions) thing has been hashed to death on the web. The upshot is, as you point out, that everybody's 20% is different, leading to -apparent- bloat. This is even more true when we truly cross application domains; BIRT & WTP are fundamentally different animals and WTP in particular can involve cutting a fairly wide swath through the development stack...a little java, some _javascript_, some database development, lotsa HTML/CSS editing and some Ant glue (and debugging support for all of it). Also, we should differentiate between install/disk size and running footprint see here for reasons why the disk size doesn't matter anymore (and the download size is quickly becoming as irrelevant except, as Kim's just pointed out, for wireless folks)

If we can somehow manage to keep the -in memory- footprint down (with the corresponding decrease in load times) we're way better off than simply cutting large chunks out of the final deliverable (we could save lots of disk space simply by cutting various projects from Ganymede...which ones?). Note that we arguably have more experience in dealing with this particular issue than anybody else in the world.; 'lazy loading' is our religion, forced upon us by necessity. At one level it's a fairly straightforward granularity issue; how do I get access to -my particular- 20% without incurring the *run time* cost of the rest?

Some astute refactoring -might- be able to mitigate this; at one end of the spectrum is an environment where every extension is defined in its own plug-in, at the other is a complete tooling stack in a single plug-in. We're currently somewhere in the middle (of course...;-) but perhaps we're not at the right place. There are also a number of coding practices/patterns that can be used to limit the amount of 'fat' (extra stuff not associated with your particular feature) that you incur when loading the bits necessary to support your desired operation. Perhaps, if we were to define a metric, the BMI (in this case the Bloat Mass Index...;-) that gave a ratio for each functionality bit and *publish* them then at least developers would become more aware that keeping footprint down is something that all projects must work on.

Finally there's the question of caching. Loading cached info, while it affects both the load time and memory footprint, it is sometimes necessary in order to provide a responsive UI, particularly in large workspaces. Of course it they're loaded unnecessarily then they constitute 'fat'...

Off in dreamland would be an environment in which the plug-ins for currently unused features are aggressively unloaded, root and branch. This would mean that if I opened and ran a BIRT report (i.e. my daily bug list) and subsequently closed it then eclipse would dynamically unload any related plug-in(s). This would get us out of our current 'high water mark' approach where the footprint continually grows but never shrinks...

I too would like to be able to -quickly- fire up eclipse to accomplish a task and shut it down...the startup times for Word and PPoint are essentailly sub-second on my box but eclipse takes...um...significantly more time.

Onwards,
Eric



"Kenneth Westelinck" <kenneth.westelinck@xxxxxxxxx>
Sent by: eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx

06/20/2008 02:31 AM

Please respond to
E4 developer list <eclipse-incubator-e4-dev@xxxxxxxxxxx>

To
mike.milinkovich@xxxxxxxxxxx, "E4 developer list" <eclipse-incubator-e4-dev@xxxxxxxxxxx>
cc
Subject
Re: [eclipse-incubator-e4-dev] Some food for thought





I remember James Gosling telling in a keynote on Java Polis about Java NetBeans, that Emacs was a good IDE ... 20 years ago :-)
Of course you could develop Java code in Textmate. You could even write code in Notepad or VI if you want.
True, over the years, Eclipse has become bloated with features that _maybe_ no one really uses anyway. Over the years, the memory footprint of Eclipse has become larger and larger. Especially when doing large projects with a lot of seperate modules.

I definetely use Eclipse for more than just it's code completion or ease of refactoring. It is a whole development environment to test and debug web applications for instance. I am not sure how you would debug code and inspect variables from a tool like Textmate or Notepad.
Intellij on the other hand feels a lot more snappier then Eclipse and requires a smaller memory footprint. My colleagues at work often have 2 or 3 Intellij instances running at the same time, I haven't even tried to do this with Eclipse :)
The availability of plugins and Eclipse, like Textmate or Emacs, being verry extensible is also one of the reasons why I'm using Eclipse. Since all the projects I am working on are using Spring / Hibernate, I find the availability of tools like SpringIDE indispensable.

In the past I have also done .NET projects, requiring me to use _their_ IDE, being VisualStudio. VisualStudio has less more features than Eclipse, In fact, at the time I was using it, VisualStudio 2003 probably had lesser features than Eclipse 2.0 :) Like Eclipse, VisualStudio requires a large memory footprint, but not being extendable in any way (or maybe the ResharperPlugin) and lacking the most basic stuff like refactoring.

But Eclipse, maybe unfortunate for some of us, is much more than an IDE. It is a platform you can use to build your own applications. Netbeans is trying to do the same thing, but I haven't found any Netbeans RCP applications out there (maybe I am not looking). The platform serves me well to develop RCP applications. But, as already noted on this mailing list, there are 3 or more ways to implement this or that. Tables and their editors is an example of this.

So, to conclude, Eclipse indeed looks very bloated and maybe too feature rich, but I'm not sure there are a lot of features that can be left out. The most important things that need attention in e4, for me, are:
- smaller footprint for RCP applications
- not having 3 or more ways to do stuff in JFace, probably breaking backwards compatibility, but who cares
- a better and snappier debugger (like Intellij's)
- integration with Maven2


On Fri, Jun 20, 2008 at 1:31 AM, Mike Milinkovich <mike.milinkovich@xxxxxxxxxxx> wrote:
Two interesting and thoughtful blog posts from developers who have [1] left Eclipse for TextMate and loves it and [2] from someone who points out that few developers use all of the functionality provided.

 

Money quote:

The simplicity of the application and the ease of its extensibility is too inviting to ignore and I'm very excited about seeing how far I can push this little editor. It's beautiful, lightweight and speedy—attributes that weren't associated with my old Eclipse IDE.

 

They may be unscientific data points, but they are also thoughtful and reasonable points of view.

 

I am still personally hoping the IDE portion of E4 is targeted at being Faster. Smaller. Simpler.

 

[1] http://particletree.com/features/eclipse-to-textmate-an-ideological-change/

[2] http://www.ericdelabar.com/2008/06/hammering-screws.html

 

Mike Milinkovich

Office: +1.613.224.9461 x228

Mobile: +1.613.220.3223

mike.milinkovich@xxxxxxxxxxx

 

_______________________________________________
eclipse-incubator-e4-dev mailing list

eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev

_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev


Back to the top