A Look at the Eclipse IDE
by Philippe Mougin11/14/2003
During the ECOOP 2003 Conference in late July 2003, André Weinand from the Eclipse development team discussed this IDE for Mac OS X. In case you're not familiar with the project, I've started with some introductory information about Eclipse before getting to the notes I took during André Weinand's presentation.
You haven't heard of ECOOP conference either? Well, let's just say that each year the European Conference on Object Oriented Programming gathers hundreds of specialists from the academic and industrial worlds for the most important European event in the field. As a very technical, forward-looking and selective gathering, ECOOP can be described as the European equivalent of the OOPSLA conference (although on a slightly smaller scale). ECOOP 2004 will be held in Oslo.
Introduction to Eclipse
|
Related Reading
Mac OS X for Java Geeks |
Eclipse is an open source integrated development environment. It is primarily developed by OTI (Object Technology International Inc.), an IBM company. OTI, founded by Dave Thomas, is a famous name in this industry. OTI is something like the Pixar of the object-oriented world: a legendary company still at the forefront of the technology and releasing hit after hit. No wonder that some at IBM consider the OTI acquisition to be the best technology acquisition ever made by IBM.
OTI is well known for its VisualAge line of development environments, and in particular for its VisualAge for Java IDE, which was considered by many to be the best Java development environment. Eclipse benefits from OTI's experience with VisualAge, and one will find many of the great features and concepts of VisualAge back in Eclipse.
However, Eclipse is not just a new version of VisualAge. It is a new environment developed from scratch in Java, while VisualAge for Java was written in Smalltalk. On one hand, Eclipse is somewhat less powerful, productive, and fine-tuned than VisualAge for Java. But on the other it's more open to third-party tools and environments and can be adapted more quickly to new versions of the ever-evolving Java technology.
Furthermore, by making it open source and highly extensible, OTI has built up a considerable following. The Eclipse project is now supported by a consortium of companies and organizations including big guns like Oracle, Borland, IBM, Red Hat, HP, Intel, Sybase, SAP, OMG, etc. Plugins produced by various organizations are becoming more numerous.
And, finally, Eclipse has quickly become the darling of enterprise Java developers. Thanks to its open architecture, Eclipse now looks set to extend to other circles, with commitments from many software vendors to adapt their compilers and environments (e.g., C++, Smalltalk, PHP, Fortran, Cobol, etc.) to the Eclipse platform. Thus, we may one day see an Eclipse plugin for Objective-C development.
|
|
Mac OS X is now an officially supported platform for Eclipse. The current 2.1 version is considered "early access" but forthcoming versions are expected to be complete and fully tested. Eclipse can be downloaded at http://www.eclipse.org/downloads/index.php. It runs out of the box.
André Weinand started the Mac OS X port in December 2001 as a "spare time" project. At that time there were no Macs at OTI, and so Mr. Weinand had to use his own personal PowerBook. However, the situation has completely changed and there are plenty of Macs there now.
Interest in Eclipse for Mac OS X is growing rapidly. In January 2003, Eclipse for OS X was downloaded 1,700 times. There were 20,000 downloads in March. An informal pool at this year's WWDC suggested that Eclipse might be the leading IDE for Java development on Mac OS X.
SWT: A New GUI Layer
Eclipse is implemented on top of its own graphic and widget toolkit, which is not SWING but a new kit, developed by OTI specifically for the Eclipse project, named SWT (for Standard Widget Toolkit). This may seem surprising given the huge amount of work needed to develop and maintain such a framework. Word is that IBM found SWING to be so awful and so broken when using it on earlier developments (notably when developing the first "WebSphere Studio" tools) that they came to the conclusion they needed to build their own widget toolkit to stand a chance against their main competitor in the IDE space, i.e., Microsoft and its Visual Studio product line.
There have been lively debates about Eclipse and SWT. When Eclipse was released, SUN accused IBM of corrupting and fragmenting Java.
Today, SWT is available on multiple platforms and is implemented on top of the native graphic and widget frameworks of the underlying operating systems. On Mac OS X, OTI has implemented SWT on top of Carbon. Thus, Eclipse is a Carbon application with a native Aqua interface.
Carbon vs. Cocoa
There has been much debate about using either Carbon or Cocoa for implementing Eclipse on Mac OS X. In the end, after prototyping the two solutions, Carbon won. This might seem surprising given that Apple provides a Java interface to Cocoa that could have been used by the SWT layer to easily access Cocoa, instead of having to use JNI in order to access Carbon.
However there are several reasons supporting the choice of Carbon. First, the SWT architecture has been largely influenced by the goal of providing a great native experience on Windows. Thus, the structure of the Windows API has influenced SWT. Since Carbon (and in particular its event model) is a procedural API similar to the Windows API, it is a good fit with SWT.
Another reason is that Carbon is more low-level than Cocoa, allowing you to control every low-level detail. Cocoa, on the contrary, provides a high-level framework whose goal is to free the developer from low-level details.
Because all the implementations of SWT have to provide a high degree of common semantic and behavior at the API and run-time levels, it is important for the SWT implementor to be in total control of the underlying, native GUI platform.
In my experience, Cocoa is quite flexible and, by subclassing Cocoa classes or using the various hooks provided by the framework, we get some fine-grained control. But, for OTI, the mismatch between SWT and Cocoa was too great. As stated by Carolyn MacLeod, from OTI, in an eclipse mailing list: "The more I read about Cocoa, the more it looks like an SWT peer to me [...] As such, it is probably going to be difficult to port SWT to, because of event loop issues and other random problems that come up when you try to port on top of something that is really at the same level as you, and has already solved all of the same problems that you solved, possibly in different ways."
The OS X implementation of SWT uses native Carbon widgets. Thus, if you run Eclipse on Panther, it will automatically use the updated Aqua look and feel. Some higher-level widgets are not native but implemented by SWT itself. For instance the Text widget used for editing source code is implemented on top of lower level SWT layers.
Apple's Position on Eclipse
I asked André Weinand about Apple's position on Eclipse. According to him, Apple is happy to see a new IDE for the platform. They intend to encourage such new technology but stay neutral and not favor one third party IDE or another. Beside, Apple has its own IDE story with Xcode and the numerous associated tools. However, according to some people, it seems that, behind the scenes, IBM is trying to get Apple more involved in and supportive of Eclipse. This means that we might soon see Apple becoming a member of the Eclipse consortium and provide some help to OTI for the Mac OS X version.
The Eclipse platform is language-neutral and can, through plugins, be used to develop in various programming languages and frameworks. Some Eclipse supporters think Apple should consider using Eclipse as a basis for its IDE strategy. They point at the fact that, with extremely strong support from many actors in the industry and lots of existing plugins, an Eclipse-based environment could be better for Apple than its current closed-source and proprietary approach.
However, Apple has opted for a different strategy by putting some muscle behind its own developments tools with the arrival of Xcode. There are many good reasons for Apple to go this way. In particular, it would require years of work and uncertainty to produce an Eclipse-based environment approaching the level offered today by Xcode and tools like Interface Builder for the development of native Mac OS X applications.
However, the idea of Apple integrating Eclipse in its strategy could be interesting, as far as Java development is concerned. Clearly, if OTI succeed in shipping a version of Eclipse for Mac OS X that is as good as the Windows version, a number of Java developers on the Mac will switch to Eclipse. Indeed, the power of Eclipse for Java development is hard to match. Another potential domain where Eclipse could be used and extended by Apple is WebObjects, an application server and development environment Apple got from NeXT (WebObjects is the application server used by the Apple Store and the iTunes Music Store). There is an open source plugin for Eclipse, called WOLips, which support the development of WebObjects applications.
For more information about WebObjects, check out Josh Paul's Introduction to WebObjects.
Is Eclipse a Good IDE?
Some of the first things I noted when I started using Eclipse on Windows were the native look-and-feel and the very good responsiveness of the user interface:two uncommon achievements for a Java application. I'm also impressed by the rich feature set and great assistance provided to the developer.
For instance Eclipse has excellent code refactoring capacities (overall, better than VisualAge for Java) and a powerful hierarchical view of types. One of my favorite features is the "Scrapbook" editor, a kind of "interpreted" Java environment that lets you interactively type and execute bits of Java code. This feature was already present in VisualAge and is reminiscent of environments like BeanShell (http://www.beanshell.org).
Since Eclipse is open source, the source code for the IDE and various plugins is available. This provides a useful set of examples and starting points, especially when developing plugins.
|
|
Eclipse also suffers from a number of shortcomings. I asked Martial Doré and Vincent Lajous, respectively chief architect and CTO of Orchestra Networks and experts of Java development with Eclipse, to help me provide a critical perspective on Eclipse based on experience with big and complex Java projects.
The first thing that pops up is that Eclipse presents some challenges regarding scalability, Indeed, for Eclipse to scale well on big projects, some special attention and finetuning is required from the user. Things like customization of the graphical environment, definition of subprojects, organization of source code and resources, choice and customization of plugins have to be well thought. Without such finetuning, the Eclipse environment can slow down significantly when the code base grows.
Another thing to consider is that while Eclipse gains much of its appeal from its very open, plug-in based, architecture, such powerful extensibility comes at a price. First, the architecture is not always plug-and-play, in the sense that inter-plugins configuration conflicts sometimes happen. Second, bugs in plugins can render the whole environment brittle and are hard to track down.
Several other problems decrease the developer's productivity. First, the IDE is built around various editors and views, grouped under various perspectives in a highly configurable environment. Alas, the underlying model governing the interaction and synchronization between these elements is so complex that it is often unpredictable, counter-intuitive and bugged.
We wonder if the complexity of this model will ever allow it to work seamlessly. Furthermore, some elements in the design of the IDE can decrease programmer's productivity, as far as production of Java code is concerned. For instance, the "search" view is not handy, debugging is not well integrated with the "normal" development perspectives, and the Eclipse workbench tends to quickly become very cluttered. We also wonder whether the non-overlapping windows model, which significantly reduce the surface dedicated to source code, really represent the future of IDE user interfaces. Actually, we believe that some design principles of the Eclipse user interface could be reevaluated and improved.
According to Martial Doré, "Eclipse is a quite impressive development environment. However, the ergonomics have such a degree of flexibility that I believe many developers may adopt 'bad habits' concerning the configuration of perspectives and views. In our team, we promote as best usage the 'all perspectives in same window' option and, for accessing Java code, the "Java Browsing" perspective in preference to 'Java' perspective."
On Mac OS X, I tested Eclipse version 2.1.1 as well as a pre-release of version 3.0. I found the Mac OS X port very promising. Most of the functionalities are there and the user interface looks relatively good, despite the fact that its design is more Windows-like than Mac-like. The biggest problem I encountered was the poor performance. The user interface is sluggish and the whole thing is too slow, even for simple things, on my 1GHz Powerbook. If the Eclipse team is able to polish the GUI and to significantly increase performance, I think Eclipse on Mac OS X will be a great hit.
|
|
In my experience of development in Java, I found Eclipse to be one of the best IDEs out there. Actually, the only IDE I know of that is clearly better than Eclipse is IntelliJ IDEA from JetBrains (http://www.intellij.com). Eclipse, which is free, is quickly becoming the tool of choice of many software engineers for Java development on Windows. For Java development on Mac OS X, I would wait for the performance to be improved before using Eclipse.
Eclipse or WSAD?
Since Eclipse does not provide J2EE development plugins, enterprise application developers find themselves obliged to enrich their environments with plugins carefully chosen from the multitude available on the market. The useful site http://eclipse-plugins.2y.net gives an overview of the most popular ones.
WSAD (WebSphere Studio Application Developer) is a commercial development environment from IBM. WSAD is based on Eclipse and contains a number of plugins for developing enterprise applications in Java (at present, WSAD only runs on Windows and Linux). For example, there is a J2EE perspective featuring editors (JSP, XML, etc.), views for connecting to data sources, and views for configuring application server deployment.
I asked my friend Nicolas André, a software architect at Infhotep, for his opinion on WSAD. He believes that WSAD is a more professional, integrated, directly operational environment for J2EE development than Eclipse. But in practice, WSAD suffers from plugin overload, which makes it consume a lot of resources.
Several plugins are loaded by default to cover all development profiles (Web developer, XML development, J2EE development, etc.), even though most of the time, a developer will only use a small proportion of the plugins provided. One solution is to "slim down" WSAD by getting rid of the unused plugins, but this operation quickly becomes complex and fiddly, particularly when changing versions.
Instead, Nicolas recommends starting with a basic Eclipse environment and adding the necessary plugins rather than reducing the unused functions of WSAD. This approach is made easier by the growing number of high-quality open source plugins.
The Next Eclipse
In the future (with Eclipse 3.0), SWT may directly use the new HIView Carbon framework. HIView, which is part of HIToolbox, is a new C-based "object-oriented" kit included in Carbon for implementing and dealing with Carbon control elements.
According to Apple, it is a modern superset of the older Control Manager API and is destined, over time, to completely replace the Control Manager. The old Control Manager function calls are now layered on top of the HIView system.
Eclipse 3.0 is also expected to better integrate with Mac OS X. This includes solving the various Aqua HI issues found in the current version and leveraging Mac OS X technologies like Keychain, Help system, Services and file system notifications. 3.0 should also bring some (much needed) improvements in UI responsiveness on OS X.
The user experience is expected to see functional improvements with a more scalable UI for big projects, with support for roles and distinction between novice and advanced functions. Tools dedicated to Java development will provide better code navigation capabilities, code folding in the editor and more refactoring capacities.
Finally, IBM might start to promote the various underlying frameworks it has built Eclipse on, like SWT and JFace, as general purpose frameworks for the development of Java applications. This probably won't make SUN very happy but might improve the situation for developers of desktop Java applications.
The Eclipse team is looking for contributors to the project. "Eclipse needs you!" stated André. There are many things to do, so if you are interested, you should contact them.
Philippe Mougin specializes in object-oriented technologies and enterprise systems. He is the creator of F-Script, an open-source object-oriented scripting language for Cocoa.
Return to the Mac DevCenter
You must be logged in to the O'Reilly Network to post a talkback.
Showing messages 1 through 36 of 36.
-
Eclipse Scrapbook
2005-03-11 01:13:04 MyVeryScreenName [Reply | View]
how can I keep Threads, which I started in the Scrapbook, running? When I execute some piece of code again, the Threads, which I started in a previous execution (for e.g. to keep some datebase-connection up) and which I would need for executing some other piece of code, are killed.
can anyone help?
thx
-
A Visual Look at Eclipse
2004-12-06 11:45:24 ceperez [Reply | View]
You can also find a Visual Tutorial of Eclipse.
-
Netbeans
2004-02-08 10:40:04 jthwaites [Reply | View]
I got used to Netbeans. Eclipse doesn't look so good for servlet/TomCat dev, and Netbeans is pretty reliable now (3.5.1). It's a bit funny about focus in find, but that's it.
-
Very, very good article + comments
2004-01-07 12:34:37 anonymous2 [Reply | View]
It is very rare to read a well researched, non-biased, informative and interesting article, so I must commend Philippe Mougin for his great work! Please accept my thanks.
As far as the rest of the comments go -- IDEs are obviously a personal thing. I have been a fan of Visual Age for Java for years (started using it at the 1.0 version), and now have used Eclipse for the last few years, after IBM dropped Visual Age. If you don't like Eclipse, then don't use it. If you are a professional programmer, then you should upgrade your computer and the programs on your computer to make yourself useful. (so buy a computer with at least 512 MB RAM, for example).
The SWT issue is also very interesting. I have programmed three commercial projects using Swing and always had difficulties, especially in the early days (1996-1998). I guess I just didn't ever like Swing, and if I were to do another J2SE project, I'd look into SWT. In my opinion, Swing is (or was) bloated, slow, buggy (especially when you are running multiple threads), and looked ugly. Also, (IMHO) Swing increased the startup time of the Java environment, whether it was through a browser (applet) or as an application.
The last, and most important, point, is that there now is (or will soon be) a viable Java IDE on Mac OS X. As a longtime Windows user, I have always wanted to develop on a Mac with a real OS (OS X), but needed a suitable IDE and auxiliary productivity software to make the switch. Now, I think I can almost make the switch. In my particular circumstance, I now program in J2ME, and cannot switch because there is no "Wireless Toolkit" that runs on Mac OS X -- so I'll have to wait for a while. (Please correct me if you are aware of a J2ME Wireless Toolkit for Mac OS X).
-
surprisingly...
2003-12-29 21:56:09 anonymous2 [Reply | View]
this is one of those rare applications whose interface looks better on Windows than OS X. How that's possible, I don't know... almost nothing looks good on Windows.
-
where is the "Scrapbook" editor ?
2003-11-26 09:06:15 didier69 [Reply | View]
Hi,
I've Eclipse 2.0 for Windows 2000.
I don't find the "Scrapbook" editor : where is it ?
-
Can't anyone ever implement vi key bindings?
2003-11-24 10:23:19 anonymous2 [Reply | View]
I'd switch to /any/ IDE as long as I could control flow with vi key bindings, until then. Someone PLEASE introduce a nice IDE with vi key control! -
Can't anyone ever implement vi key bindings?
2003-11-28 11:47:56 kadams54 [Reply | View]
FYI: Borland's JBuilder has an OpenTool (a plugin in JBuilder terminology) for adding vi key mappings. Wouldn't surprise me if someone out there has done the same thing for Eclipse. Take a look at some of the Eclipse plugin sites out there and see what you can find.
-
Eclipse, WSAD
2003-11-24 08:35:59 anonymous2 [Reply | View]
My company has recently required me to develop all our web applications in Java. Previously I did all my development in ASP.NET using Visual Studio.NET.
When developing servlets using WSAD, the IDE and OS (WinXP) together require almost 600MB of RAM! Can someone tell me when this became acceptable?
WSAD has some cool features but so far I find it clunky, slow,(on a P4) and confusing. Everytime I launch the product I almost have to cry. I can only hope someone in the Java community will raise the bar.
-
More than a Java IDE
2003-11-24 00:41:07 anonymous2 [Reply | View]
Why is it that nobody here seems to get that Eclipse is more than just a Java IDE?
-
They're all junk
2003-11-21 10:53:33 altjeringa [Reply | View]
I miss JBuilder so so much!!!! Netbeans is unstable, slow and has such a poor user interface it's nausiating. Eclipse runs quickly but as stated in the article it's Web App Dev is really weak. Xcode's J2EE support is definately an afterthought, well maybe an after-afterthought. So for now I'm using Xcode to edit individual classes, Dreamweaver to handle my JSP's and ant by hand to run my builds and deployment. When JBuilder X is released I'll drop the $1000 but I'm dreading the 3/4 cost upgrade prices.
Is there nothing on OS X that a JAVA developer can be proud of? My lord even PHP development on OS X has outpaced JAVA, http://www.zend.com. So much for the repeated pronouncements at WWDC that Java is a First Class Citizen on OSX. ( no they weren't just talking about the JSDK and JRE) -
They're all junk
2003-11-22 20:11:34 anonymous2 [Reply | View]
Oh for god's sake . . . the Java dev tools for OS X are quite lacking. ;alskdjflasjd;flkjsdf
It is so annoying. I have tried out every major IDE. IntelliJ seems to be the best. It's got all the features of Eclipse but they work on OS X. Eclipse doesn't even have anti-aliased font in the editor! SWT does not seem any faster than Swing on OS X. On previous releases, M4 and earlier, eclipse was noticeably slower than Netbeans!!! Huh?! Xcode is practically non-existant when it comes to Java development. I mean, Code Sense is not even implemented for Java. LOL. JBuilder X doesn't even run on OS X. I just tried to download the 30-day trial and there is no download for OS X (just for Windows, Linux, Solaris). Nice is all I have to say. Netbeans is ok. Yeah it does crash quite bit. I love how the find dialog box always loses focus and when you start typing a find keyword you remember you are typing in the editor again!
Why hasn't Sun released a nice Java IDE to for their legions of dedicated developers???! Look at MS with their Visual Studio tools. Man. And could we get a Sun revamped Look & Feel that doesn't look like a joke?
The Java IDE situation is looking really grim on OS X. -
They're all junk
2004-06-17 22:13:37 BillW [Reply | View]
I got JBuilder X running on OS X, 10.3, with no problems at all. I like JBuilder for one simple reason: I'M USED TO IT!!!
I also found Eclipse to be far too slow to develop anything with, but then again the last time I used it was about a year ago, so maybe things have gotten better.
-
How does it compare with NetBeans?
2003-11-17 20:00:15 anonymous2 [Reply | View]
I've never tried Eclipse before. However, I've been using Netbeans for almost half a year.
To be honest, Netbeans is pretty slow and unstable in Mac OS X.
I guess Eclipse should be noticeably faster.
What are the other differences between the 2 java IDE? -
How does it compare with NetBeans?
2003-11-18 06:56:19 anonymous2 [Reply | View]
I used Netbeans for years on my Macs as well, and only use Eclipse for my app dev now (and Netbeans for JSP).
If you're doing JSP/servlet work, stick with Netbeans. Eclipse's "inline JSP" support is either lacking or not immediately evident. If you are doing app dev and really need a GUI building RAD, you should read up on LayoutManagers, ur, I mean, keep using Netbeans for that only. ;^) I keep waiting for someone to pull that out of Netbeans and attach it to Eclipse (yes, mixing Swing and SWT)... The joys of open source...
If you're doing Java application work, switch to Eclipse and you'll feel like you got a free processor upgrade if you've got enough RAM (and it does take a lot!). The refactoring tools are awfully nice as well, and there are a number of non-Java plugins.
Essentially, in my experience, for editing Java "stand-alones", you can substitute one for the other without any issue, and Eclipse has much nicer performance.
-
Eclipse = half IDEA for free
2003-11-15 20:08:20 anonymous2 [Reply | View]
What is good in Eclipse, was already present in IDEA, and the implementation in IDEA is still much better. The only difference I can see is that Eclipse is free for the developer.
This is not such a good news, because all the hype towards Eclipse and the funding behind it could definitely kill IDEA and leave us with a much worse product, even if sold as free. Maybe IBM should have given his money to JetBrains instead of OTI.
And by the way I agree that no-one really needs SWT, especially on Mac OS X, where the Swing implementation is very good ans SWT is not. Maybe this is the reason why I cannot see any other SWT applications other than Eclipse. If OTI cannot develop in an object-oriented way, instead of producing a procedural GUI API, which obviously can be mapped to Carbon not Cocoa, maybe the should have stayed away from Java and choose a different language.
And most of all I cannot stand an IDE whose behaviour gets unpredictable when the number of classes is greater than 100. -
Eclipse = half IDEA for free
2003-11-16 19:18:11 anonymous2 [Reply | View]
"And most of all I cannot stand an IDE whose behaviour gets unpredictable when the number of classes is greater than 100."
What are you talking about. We have assumed maintenance of an admittedly bloated project that has over two thousand classes, and we are using WSAD (which is basically Eclipse++). There are no problems with the IDE handling the class size that I can discern. -
Eclipse = half IDEA for free
2003-11-19 01:56:15 anonymous2 [Reply | View]
I'm currently using Eclipse on a project with over 400 classes and over 150 JSPs and there's nothing unpredictable about it.
Once in a while writing a file to disk takes longer than normal, but that's due to the fileserver and not Eclipse (it happens also when using other applications).
-
Eclipse = half IDEA for free
2003-11-17 16:45:27 anonymous2 [Reply | View]
My experience is using Eclipse 3.0 M4 on Mac OS X on a project using 100 classes split in 4 different source directories within a complex, not modifiable, directory structure with lots of non-java files.
With automatic compilation on, which is something that, if turned off, makes Eclipse almost useless to me, the task list updates sometimes stop, the code completion stops working or it takes too much time. Most of all there is no half-decent XML/JSP editor and because of SWT it's not possible to integrate something working, like for example the jEdit plugins, within Eclipse in a useful way.
I think Eclipse would be much better on Swing and with a less windows-like pre-XP GUI so cluttered with icons.
And way too many times the workbench configuration file gets corrupted...
-
For the next version: port it to Swing
2003-11-15 16:02:27 anonymous2 [Reply | View]
Looking at the quality and speed of Swing in 1.4.2 days and also looking at the speed of Swing applications like JBuilder or IDEA the Eclipse people and especially IBM should end their small mindedness. People often criticize Swing as being too complicate when compared to Cocoa or WindowsForms. Well they should take a look at SWT. This thing is already outdated. IBM please remove it. You strengthen only .NET with this fragmentation and you gain nothing. And start to think about a Swing implementation using a Java2D implemented on top of OpenGL (hardware accelerated). Isn’t it planned for 1.5 ?? -
For the next version: port it to Swing
2003-11-17 05:09:46 neuro1 [Reply | View]
I'm sorry but I must disagree with you. Eclipse would be nothing with Swing. We've been using is under Windows but mostly Linux at least for 9 months and it's just great and Eclipse + SWT rocks, it feels native and it's fast, heck it even made me switch from XEmacs which is not a minor thing.
About SWT, we've been writing a couple of applications based on SWT and yes we did the absolutely right choice. Our competition is using .Net/C# solutions, most of our clients are still under Windows (for now:) and without SWT we could not stand a chance. Our applications are fast (I mean damn fast) and not very pretentious on resources (heck it even works reasonably on an Pentium 166 with 32 RAM) and absolutely look great, no wander out clients love them all with the full power of Java. Without SWT we would be out of business by now.
True do it is still work in progress so beware of bugs. -
For the next version: port it to Swing
2003-11-17 14:05:37 anonymous2 [Reply | View]
Did you really try JBuilder (free personal edition available) or jEdit, which maybe a better choice if you come from XEmacs. :-) I do not want to argue which IDE has a better concept. (as I think jEdit, JSwat and ant are the very best environment ) but just want to stress that you cannot criticize neither speed nor memory consumption of Swing in JDK 1.4.2 as demonstrated by these two professionally done apps (just to give an example).
Swing has a good concept as it can be implemented on a high level (to shield you from the bugs of Win32) by drawing its own widgets. And if you do it clever, like Sun did in the latest version, you can make a perfect fake of the native widgets. They are pixels on the screen after all. Just name me a relevant difference of the Windows look and feel on XP to the native widgets!
Sorry, but I do not buy your statement, that a single customer jumps off because of Swing. Maybe they do because of bad GUI programming. I want to stress again, that the concept of Swing allows that Java uses OpenGL for all its drawing. By that way you get screen drawing with hardware acceleration. (M$ will “invent” this in .NET when Longhorn arrives in 2006). There is no reasonable way to think SWT can improve anything. And I bet M$ will find many opportunities to thwart it, if would get relevance, as it is so deeply enmeshed with native code. By its low level concept (hello again event loop, haven't seen you since the days I did Mac programming many years ago) you get in touch with unnecessary complexity and platform specific bugs (as I understood the reason for stopping AWT development). Swing only needs a window from the OS it runs on. This concept is hard to beat.
If you do a fork of a technology you should have very good reason. And there is no real case against Swing, apart from long standing convictions. They really need a review, as things improved meanwhile.
By the way, if IBM really want to improve things, it should grab the futuristic ideas from Cocoa not the API concepts of the past of GUI programming.
-
Fascinating article
2003-11-15 11:44:18 jeffnailen [Reply | View]
Philippe,
This is a great and quite useful look at Eclipse and its promising future on the Mac. The more choices we have, the better.
First, an open question to Philippe as well as other readers: are there any equivalent efforts—either inside the Eclipse community or elsewhere in the larger Java and Mac communities—that is attempting the same thing regarding Cocoa instead of Carbon? Due to their OO similarities and equal status on the Mac platform there has to be some way of marrying Java and Cocoa beyond what is available today in order to move beyond the Cocoa vs. Java choice for Mac developers. If we could transcend that dichotomy through some sort of open-standards integration of Cocoa and Java development, that old dichotomy would be rightly seen as a false dilemma and Mac developers could develop true multi-platform apps that would also satisfy the most ardent Mac Cocoa purists. Am I just dreaming or is this possible?
Second, how does Eclipse compare to Borland's JBuilder for the Mac (beyond the obvious significant price difference)?
Any opinions are welcome. Thanks! -
Fascinating article
2003-11-30 23:11:54 anonymous2 [Reply | View]
I also wonder why they choose carbon instead cocoa.
You said because of the similarity between cocoa and swt,
then what about swing? It also be thought as a same level,
but apple implemented swing with cocoa.
I hope to somedays apple will involve in this and maket a swt for cocoa.
-
Fascinating article
2003-11-15 14:33:07 anonymous2 [Reply | View]
Eclipse is too slow, working with other people on a team using various platforms and eclipse causes some headaches when we use Junit, no GUI tools, did I mention slow? I prefer IDEA, JBuilder X, JDeveloper, and/or emacs. -
Fascinating article
2003-11-16 21:41:09 anonymous2 [Reply | View]
Hmm,
I don't think this reflects most people's perspective. I think if I read between the lines her e you're most likely using some form of Linux and perhaps one of the non-mainstream releases at that which could be your issue.
Eclipse has made me so productive that I view Java as a scripting language these days.
It has built in support of ant and junit, so I'm not sure what compliant of junit was.
Also now there's the Rich Client Project as a subproject of 3.0, which will make it easier for you to write GUI apps in SWT. Yeah, Swing is better than it was, but it's still way too hard to write good performing applications in it. Thus SWT kicks Swing's ass in that area -- I'm not sure if it's that much easier to write in, but it's a heck of a lot easier to get nicer applications with it. Without SWT, .NET wins hands-down.
Finally you can get a nice J2EE dev enivornment for VERY cheap -- www.myeclipseide.com (only $30 US).
So I think most of the complaining on Eclipse is pedantic and not really constructive.
I use to use Vim (well I still do -- even on Windows), but Eclipse doubles/triples my productivity. Enough said.
Mark
-
Fascinating article
2003-11-19 21:13:30 anonymous2 [Reply | View]
I wish I could feel the way you do about Eclipse.
I downloaded and then checked out the doc, it's out of date, for the previous release.
My problem with Netbeans, is they can't seem to build a .jar file successfully with the tutorial project.
I've just downloaded JDeveloper from Oracle.
Code completion works. The documentation matches the release. Debugging works. It's free but they also would like you to buy it for $995, to get support. Ouch.
Once an app is loaded swing seems to work fine.
Are we talking about that long pause between the click and the splash screen, the time Java takes to verify the .jar or class files? Hard to drop security from a Java application.
My opinion is this is where the rep of Java being slow comes from.








Work is now being done to provide a Cocoa based version of SWT:
http://www.eclipse.org/swt/
I see this as good news, since this potentially means better MacOS X integration.