Thursday, March 12, 2009

Do I want too much?

Ubuntu 9.04 turned out to be a proof of concept. Some kind of joke that should not be called OS. Sorry.

Will they finish it before April? Yes.
Will Ubuntu be something that I'd like to use further? I doubt.

Saying that something is finished does not mean that it is really complete. It means that there is no more time left. So Ubuntu 9.04 will be released even if it will be considerably slower than Idle Ibex.

I know exactly what is new in particular Eclipse release, but to gain this knowledge I do need to read new and noteworthy. I do work in Eclipse support.

API is finished when there is no more time left, too. What are the consequences? A lot of compatibility layers. Tons of compatibility code. More API, because we have to maintain old code.

I believe that current division into API and internal code is not sufficient. We need the third kind - the provisional API. But it should be supported by process, not just by commens in the internal code.

Turning provisional API into the real one should not require any refactoring. Provisional API should turn into the real one when it remains unchanged for one Eclipse release and no further work on this is planned (making bug as helpwanted *counts*).

The justification is quite simple - code is adopted after the release, and then no changes can be made. I do not believe that any self-respecting architect is using Eclipse 3.5 for serious development (and replaces necessary libraries every 6 weeks).

So, Eclipse 3.4 is a base for 3.5, and 3.5 feedback will be used for 3.6... But if something is wrong in 3.5 and was not discovered yet there is no chances to remove it. Real adoption of Galileo will show its shortcomings. Some of them will live forever. For sure.

Many people contribute to Eclipse. Would you be able to withdraw the result of your employee 1 year work? Would you?

Eclipse is built from contributions. You cannot require contributors and commiters to be more loyal to Eclipse than for their employees.

But you should do everything what possible to guarantee Eclipse quality and do not allow for becoming yet another "proof of concept".



Tomasz Zarna said...

Chris, there is an option to mark a new, provisional API with "experimental" tag and inform that this is part of a work in progress, that there is no guarantee this will become a "real" API and so on. This may help a little bit. Cheers!

Christopher Daniel said...


I know provisional API :-). But this is not enough. It is get promoted to API by commiter, and should be promoted by the time (is used and does not need to be changed for a year => promote to API).

It would reduce the number of deprecated API and total Eclipse size.