Java steward Sun Microsystems has sent a letter to members of Eclipse, urging the increasingly influential open-source project to unify rather than fragment the Java-based development tool market.
Java steward Sun Microsystems has sent a letter to members of Eclipse, urging the increasingly influential open-source project to unify rather than fragment the Java-based development tool market.
It sounds to me like Sun doesn’t want to be left behind (aka: Eclisped). And don’t they have yet another Java IDE in the works?
They do, it is called Java Studio Creator. I have a good feeling about thisone. Right now it’s only usefull for JSP/JFaces development, but they plan to add Swing support in future versions. The difference I notice is SUNs programmers seem to have finally grasped the problem with database aware apps (webapps, but I hope, swing apps in the future too): Provide a good palette of standard all-purpose controls and focus the IDE not on building new controls using inheritance, but on creating models the visual way to connect to datasources, be them databases or any otheer source.
To me, that is the reason nobody seems to get the point exactly with Java IDEs concerning visual design, they focus the visual part on components only, when they should shift the focus to visual models generation.
Another thing that hurt visual designers in the Java world is the use of the conterintuitive GridBagLayout. I hope someone comes out with something more ease to mirror the “anchors” in delphi or *.NET without sacrificing portability. I would like some IDE with a designer using Springs instead.
>Another thing that hurt visual designers in the Java >world is the use of the conterintuitive GridBagLayout. I >hope someone comes out with something more ease to mirror >the “anchors” in delphi or *.NET without sacrificing >portability. I would like some IDE with a designer using >Springs instead.
Agreed, I think that’s why I think so many java GUIs look so badly designed because few people understand how to use the swing layout mechanism.
“Sun’s approach creates a common look and feel regardless of the underlying operating system”
This is the major problem with Java’s Look and Feel – It doesn’t match the underlying OS in either. Java programs are ugly and awkward on any platform that they run on.
I have yet to run a Java application that I can’t tell is a Java application, on any platform on which I’ve run Java applications (Windows, Linux, Mac OSX). When I can, then maybe Java will be where it needs to be. Until then, it’s like Linux — great for the Server and “maybe someday” on the Desktop.
Yes, the layouts (or the visual tools to use them) are so complicated, people end up doing one of two things: badly designed apps, or rejecting java for desktop apps as an option.
It is not that you can not master GridBagLayouts or the likes, you can. The problem is, you spend more time trying to arrange the controls the way you want and/or rearranging them thereafter whenever a modification or a new control is needed than doing usefull work in your app. Manteinability of this method is nowhere to be found.
I think it is pathetic that Sun has such a cumbersome and complex layout managers. How come they expect people to develop desktop applications with java when it is an extremely complex task just to lay buttons in a form. Foam is the only third party application i have seen that allows the programmer to simply put forms and buttons as you want with swing.
In the SWT article from yesterday someone posted a link to a very interesting history of how SWT and Swing got started. What I found most intersting is how Swings roots go back to various Smalltalk groups. It looks like Sun got bamboozled by some gal named Amy Fowler who was the main proponent of a light-weight GUI design after the shortcomings of AWT were becoming apparent. That, and McNealy’s behavior on working with Microsoft are probably the main reasons why Java failed on the desktop(except for some killer IDEs).
I’m not a gui expert, but found that .NET’s anchors and dockings mechanisms work pretty well without being complex at all. I’m not saying that it doesn’t have shortcomings, but at least I’m not the only one that has found Swing to be way too complex. You know swing is complex when you find “swing experts” in help wanteds.
It looks like Sun got bamboozled by some gal named Amy Fowler who was the main proponent of a light-weight GUI design after the shortcomings of AWT were becoming apparent
Oh come on, don’t turn this into a conspiracy theory. Her credentials are/were well known. This seems like a chicken&egg problem which came first ? Anyhow not basing yourself on native widgets seems like a good idea to me when going for a multiplatform solution. Also remember that in those days Sun saw java running on not only PCs but everything from the internet to refridgerators, which wouldn’t necessarily run one of the major operating systems or use some obscure toolkit or even have no native toolkit available at all.
When there is something bad in the world, we tend to blame the source of the evil on some pretty chick. Amy? Eve? Pandora? etc.
The problem with SWT or any other GUI framework is that they are platform dependent. Swing was designed from the ground up as a GUI toolkit which would run independently of the underlying hardware. The rationale for not providing an absolute layout manager for swing is simple. The abosolute coordinates of one platform differs from that of another. If Sun did decide to provide an absolute layout manager, it would have landed itself in the same quandary that is HTML formatting right now. I am sorry, but I would choose working with Swing any day over trying to format web pages so that they would look good on ten different web browsers.
The strength of Java has always been its cross-platform compatibility. Swing was built on this philosophy. I don’t think it could have depended on native widgets, and still have been so cheaply ported over to so many platforms.
I only wish the JDK came with a simple table component that can sort by default by clicking on column headers. I find JTable to be one of the most complex pieces of software I ever had to deal with (I did manage to make it sort anything, and also to include progress indicators in rows and all that, but boy it took me a looong time to make it work, thanks to google!).
So SUN, how about a new JSimpleTable in JDK1.5???
Quit complaining, there’s comprehensive instructions for one in the Java Tutorial
http://java.sun.com/docs/books/tutorial/uiswing/components/table.ht…
I use both Java end .Net in my job and I can say that I spend about many many more time building a GUI with Java/Swing that building the same GUI with .Net (and I don’t think it’s because I have a very bad skill at Java and very good skill with .Net …)
Glamdring, you are right. Java was a great opportunity but Sun was slow to act on it. This is something similar to Palm vs Pocket PC. If you just read the comments of idiots on the net, you might think that Java, Palm, Apple etc… is far more superior than Microsoft’s products, but the fact is that they are not. Microsoft is extremely good at software engineering. They are 100 times better than most of their competitiors. The only exceptions I found so far were Apache and Firebird. Apache is sort of better than IIS, there are few issues, but overall definitely it is better. Firebird (not Mozilla, cause Mozilla sucks) is also better at browsing, than IE. But that’s the only place where it is better. If you think about integrating a browser into your own app, again you have to go with IE. So overall, what I see is that, bunch of losers whine about Microsoft. When you listen more serious people (including some of the open source guys) talking about these issues, you see the difference.
sure, i understand your point, but making it harder and more complex to develop desktop software than similar solutions from microsoft is certainly not the way to gain customers in the windows front.
Does your .Net GUI app work on platforms other than Windows? Thought not.
For all those complaining about Swing’s use of LayoutManagers, you can always set the layout manager to null and manually place your components. Most decent IDE’s support this feature. Only problem is, don’t expect your app to look the same when its running on different platforms.
I think Swing was on the right path in many respects, but the implementation failed to live up to expectations.
Some parts were horribly complicated, or just never worked properly and even worse were totally incompatible with native components.
I think that they sacrificed too much in the way of integration for the sake of cross platform appearance. Appearance wasn’t everything that they thought it was. Consistency was far more important for the average computer user. It didn’t matter that so much that the application looked the same on every platform. It (arguably) mattered a lot more that it looked (and worked) at least similar to every other application on that platform.
If Swing had become the dominant toolkit on all platforms, it wouldn’t have mattered. But java was too slow to start, too complex, lacked polish and it was widely rubbished. MS took most of the OS market so cross platform applications were of limited appeal in most markets and the native toolkits were better for end users in almost every way.
Sun should have done something long before Eclipse became the defacto standard for java developers. Now its too late. Sun have only themselves to blame. If the quality of the swing gui had bin better Eclipse would have bin written in it.
IBM found swing simply too slow. Another, even worse, problem was that swing up until j2se1.4.x didn’t support european keyboards. Some characters often used in programming languages could not be typed in swing based applications. This situation goes all the way back to the j2se1.2 days.
It doesn’t matter how beautiful the swing architecture is, if its full of bugs and porly optimized, people will not use it. Not for their IDEs and not for their applications.
I doubt very much that Sun will be able to produce a deacent IDE even if they fix their bugs and performence problems. Sun have a long traditon of development tools with poor usability. I guess that the only reason that Forte/Netbeans is sort of semi OK is that it started outside of Sun and was adopted by Sun quite late in its life.
Another problem is that Sun IDEs for java developments have bin very focused on java, while Eclipse is much more of a multipurpose tool that can be used to develop perl, C/C++, python, and do that reasonably well.
Eclipse is a modern follower of emacs tradition, as it really is a framework for extensions more than a specific tool for developing java programs.
Most people didn’t use lisp for programming purposes other than extending emacs. Just like old emacs users accepted lisp as a tool language, developers will accept swt for writing Eclipse plugins.
There are many players in the IDE market: Sun’s NetBeans, Oracle JDeveloper, JEDIT, BEA, IDEA, Eclipse and many others.
All of these IDE have Large Libraries of Plugins that only work on one platform. If we were able to standardize the Plugin API then there’d be 1000’s of plugins available for ALL Platforms.
That’s the Issue. Programmer productivity.
I’m a software engineer by trade and almost all of my development has been in Java (the past 5+ years); my specialty has been GUI development for applications. Our customers require that the applications run on both Solaris and Windows.
Aside from a couple of hokey things that I run upon every now and then, I’ve found Java to be a great language. I really have very few complaints. The API is well-documented and Sun provides a ton of useful online documentation.
I haven’t worked with .NET and I’m not even sure what Eclipse is (or what its usefulness is), but I’m a little surprised by all the complaints named here. I’ve never found application development (and GUI development) in Java/Swing to be particularly painful or slow.
JMO,
John