This is a follow up to previous day's swooning, whining, and boot licking.

Ten years of "the desktop is dead, web-apps are the only way" makes a great corporate religion. If you're a true believer in this religion, read no further - I'm a non-believer. Requiring a web app should never mean I don't want a desktop - even more.

I want web apps and mobile web apps, sure. But I want the default as a desktop app that can shuffle as much of the computing to the local CPU as is reasonable.

And of course, I want to write the app one time. The platform should be super powerful and fully developed by others. It should update automagically, have superb installers, and a  phenomenal list of features, yada yada. An impossible dream.

Oh, and I want full OSGi modularity. No developer should have to see another developer's code, nor share it in the same classpath loader, unless of course it's the same module. APIs, sure. But "Just Say No" to tightly coupled code modules.

Enter: Two mature players that come very close.

  1. NetBeans, with it's NetBeans Platform and JFx, which allows me to redeploy my key swing components to JFx as a web app.
  2. Eclipse RCP, with it's RAP for "single sourcing" an app to both desktop and as a web app.

 

Deciding Factors

There are logical issues, and emotional issues.

EMOTIONAL BIASES.

  • I like Swing at the programming and component level. Feels better, snappier, the docs are more widespread, etc. This is strictly personal, of course, not claiming it's really better.
  • I like the maturity of the Eclipse platform. I trust it. It feels right. Stuff sticks around and consistent for years, and it's widespread enough to know that it gets plenty of support.
  • I'd much rather program in the NetBeans platform than the Eclipse platform. That's platform, not IDE. Either IDE can work with either's code. Have you seen the latest NetBeans Platform tutorials? I've been working with the Eclipse Platform on and off for years and it's always somewhat crusty to me. I can get it to work though.
  • I like the simplicity of a JNLP WebStart to Eclipse's horrendous update process, which is only getting worse lately.
  • I really really like the NetBeans guys, as humans. They are a fun bunch. I'd like to work with them. Eclipse guys I've been exposed to for years, and there is enough fratricide between players and projects to make it not always fun.

LOGICAL ISSUES

  • OSGi vs NetBeans Modules. Standard vs home-grown. Uhhh. I don't think so.
  • Larry Ellison. Do I trust him not to cut the cord on NetBeans? No - the simple answer. Of course, no one really knows, probably not even Larry, but Larry is not the dumbest guy in the world. Larry makes business decisions, and funding Netbeans might not be a good business decision two years down the road.
  • Who has the momentum of the marketplace behind them? 100s of A-List players, all using, contributing, and depending on the platform? Eclipse the platform. NetBeans has momentum too, but to a vastly lesser degree..
  • Swing components are usable whole in JFx.
  • E4, RAP, and single-sourcing in Eclipse

There are actually many more issues. But these are enough to mark a clear line.

Netbeans, for Most Shops.

Netbeans is the clear winner for most shops, given the risk/reward profile that each unique shop has. The Netbeans Platform is a low risk, high reward combination for the typical corporate software shop.

Same for me, if I make the decision purely based on feelings, not logic -NetBeans all the way. Decision made.

Weight

Why is my decision different than most?  It is my product, my shop, and all my risk. This risk profile is somewhat unique - small shop, long time horizon, and a focused skill set. If I don't make the best long term decision, it could cost me a lot, and for a long time. It's not like a job, where the client is a corporation, decisions are political, and I'm just trying to get invoices paid without pissing off that same guy who approves those invoices. "Oh, you like Flex? Wow! Me too then. Let's do it!". 

With this decision, I go retail on a line of software that I have to support for years - and that's me personally. The risk factors outweigh rewards, in this configuration.

Final Factors In The Decision

OSGi vs Netbeans Modules was a big factor, and the knowledge of Larry Ellison's decision making capabilities was too, especially in view of the fact that so many features I need are still in the vaporware stage, in both camps.

The deal maker for me though was Eclipse RAP, E4, and the lure of single-sourcing. A promise that I really can write one set of modules and it works everywhere - web, desktop, mobile?

That, and the momentum of Eclipse, with the Eclipse Foundation behind it, and the quadzillion corporate minions like me that depend on keeping the big machine going.

DECISION: I'm going with Eclipse RCP RAP.

I already feel a tinge of sorrow. Maybe I can still do the occasional swing component inside it? I dunno. Mostly, I'm just sad to not be able to work with the NetBeans team. But you gotta do what you gotta do. Eclipse RCP and RAP, here I come.

Wish me luck, please!  I'm sure I'll need it.