What does a native tab control on Windows look like, anyway?

I came across an article on EclipseZone today that got me to really wonder what a native tab on Windows should look like.

The article takes the tab control of Eclipse for an example.

Eclipse’s editor and view tabs have a gradient-based rendering with the colors drawn from the system primary and secondary colors.

, whereas Eclipse’s tabs will always stand out a bit from the surrounding native widgets.

This actually is a good point. I myself find the curved un-anti-aliased zig-zag looking tabs very funny to look at. But is it actually anything related to non-native-ness?

Think about all the tabbed applications you have used on Windows. Firefox, Internet Explorer, MS Word, Live Messenger, Google Talk, UltraEdit, Notepad++, … God! I can’t even find two of them which have the same looking tab controls! Isn’t that so obvious that it’s funny?

So the only thing wrong with Eclipse tabs may be the geekish looks. People don’t complain about those glossy IE7 tabs anyway…

Eclipse RCP and desktop Java – are we there yet?

I’m currently working on an Eclipse RCP project, which is supposed to be mostly used by non-technical people. Actually in my company today, Eclipse RCP is the de facto technology for building all desktop applications – from developer workbench to everyday necessities. There are RCPs built for programmers, testers, and everyone else. It looks like Eclipse RCP is hitting its prime time. But, is it?

Eclipse RCP, since it was first introduced with Eclipse 3.0 back in 2004, has come a long way through 3 whole years of evolution. With RCP, the Eclipse technology is becoming ubiquitous, rather than merely a development environment. From a developer’s perspective, it’s really a great technology. It virtually saved Java in the desktop battle. It’s well architected, standardized, robust, incredibly powerful to be extended, and like all Java applications, it runs on most platforms.

But with the wider acceptance of RCP and developers going great lengths to exploit its extendability, its shortcomings are being more and more exposed. To name a few, performance and user experience.

To take an example, the next major release of Lotus Notes, release 8, is completely built with Eclipse RCP. Despite its fantastic features, beta testers are unanimously complaining about its sluggish performance and lack of stability. Notes 8 is just going GA today. It’ll be interesting to see how the first batch of end users say about the next generation monster RCP that’s supposed to be lived with on a daily basis.

Another example is Lotus Sametime 7.5. I’ve been using it for quite a while now. Though I love to write interesting plugins for it, I can’t deny that the 3 minute plus load time (on my previous old Thinkpad T41 laptop) I sit through every time I launch Sametime is nothing but like killing myself slowly. It’s a nightmare. Anyway, it’s a chat program, isn’t it?

Another big issue is the very existence of RCP applications on client desktops. First, to run an RCP, you need a JRE, of course. That’s 70 megs for Sun JRE 5.0. Then, various JRE quirks drive developers nuts and some larger RCPs come shipped with bundled JREs in the packages. That’s an extra tens of megs added to the package. Then that’s the RCP platform itself which is over 10 megs. So even without any useful code, the prerequisites account for more than 100 megs!

Today, Rational ships most of the super mega RCP products on earth. A complete Rational Software Architect bundle comes with more than a handful of DVDs. That’s even more than many of the super cool PC games today!

Imagine that you need to run a bunch of RCP desktops at the same time. Each one consumes several hundred megs of your precious memory. More than a few of them refuse to use your system JRE and stick with their own shipped instance. So you even have more than a few JREs running simultaneously. That’s not a happy future definitely.

So what’s wrong with today’s Eclipse RCP? What’s the cure? I’m thinking about a few.

First, great platforms can’t cook the dinner for you! It’s still the developers’ responsibility to control the RCP’s performance and usability! Take great efforts to cut down unnecessary weights. Pay extreme attention to avoid memory leaks. There’s no magic in it!

Second, the consumer JRE is really a late comer. But better late than never. Today the desktop RIA war has already begun. Consumer desktops are being invaded with a bunch of runtimes. JRE, one of the oldest runtimes, really needs to get itself lean to have a chance. Sorry, but 70 megs of installation is simply insane.

Third, great tools can be bad if you put it to the wrong use. Eclipse RCP can build anything. That’s right. But does it have to?

I’m kind of concerned with what the 2007 Eclipse Roadmap has put it for RCP. IMHO, it’s definitely not more functionality, or frameworks that RCP lacks today. There’s still lots of work to do to make RCP and Java desktop truly usable for everyone.

Project Zero: First Impressions

Last weekend, Project Zero officially unveiled its community site. Project Zero is a fresh new project from IBM which aims at the agile web development framework domain which is getting momentum very fast lately with the popular RoR and the promising newcomer Grails.

Project Zero’s tagline is, “Zero complexity. Zero overhead. Zero obstacles.” “The Project Zero environment includes a scripting runtime for Groovy and PHP with application programming interfaces optimized for producing REST-style services, integration mash-ups and rich Web interfaces.”

Zero complexity or not, there are a few interesting aspects about Zero worthing noting.

1. Zero leverages Groovy.
That’s right! Probably the first time I’ve seen Groovy adopted into a project by a major company. Great news for Groovy lovers!

2. Zero supports PHP.
That’s sounds a bit weird. The fact is, Zero has implemented the support for PHP in Java. However, only a small subset of the standard PHP libraries are supported by now. Read the FAQ for more details.

3. Zero is self-contained
What that means is that each Zero application runs only by the Zero runtime. It doesn’t need to be deployed to any web server. The Zero runtime contains a minimalist server based on WAS CE. This is similar to Grails. (But Grails applications can also be deployed to any JEE server.)

4. Zero is NOT open source. But it invites the community to drive it.
Community-Driven Commercial Development is Zero’s official name for its development approach. This is already causing a lot of debates in the community. Let’s wait and see how this will work. Check out the official FAQ for more details.

Overall, Project Zero looks like an interesting endeavor from a major player in the industry to commercially challenge the world of agile web development. But judging from what it looks at this stage, I’m not 100% convinced if Zero has got everything right.

Next time, I’ll write up my first experiences playing with Zero, and putting it up against Grails.


找到一篇古老的文章 ,终于搞定了在jroller输入中文的问题!感谢jackz!


Browse Happy logo

My tweets

« 八    



Fancy Stats