Tuesday, July 14, 2009

My Eclipse Galileo Review: from one eye in the community

My Eclipse Galileo Review: from one eye in the community

p.s.: Galileo is has a special position in my heart for his cool scientific contribution to our human being. 

The annual simultaneous release Galileo has grown to 33 projects. There are many articles about the tips and tricks of Galileo in the planet of Eclipse. So, in this article, I will not review the common tips in the Galileo, however, I will try to review some tracks of development and community process from my eye when the Galileo train are being developed. And, so, I will not cover everything in Galileo, and just show some interesting things in my eye.

1. Eclipse platform

Not mention the R3.5 News and Northwory:) 

"p2 is great", the words often appear in the planet of Eclipse. As a common provisioning platform in the osgi, the p2 introduce many new concepts and designs than old old "Update Manager". And P2 is the successor of old update manager. In fact, I much like the idea behind the p2.

However, as an old Eclipse guy, I am not very satisfied with the current state of p2. P2 seem not cover all the functionality of old update manager. One bug, we fight for, is the Bug 224145. As an active Eclipse developer, we often have many different projects. For instance, one project is based on EMF, one other project based on CDT, one other project based on BIRT, still one other project based on WTP...As all we known, the startup time difference between booting from 50 plugins and booting from 500 plugins is very very obvious. Does anybody want to wait 30s to get one Eclipse instance to just writte an simple ant script or xml config file?. In the world of "old update manager", we are easy to use different configurations to achieve it. Here is a useful tip by Michael Scharf.  I guess p2 could do this as well, however, who knows how to?

Here, I do a unexact small statistics about the p2 problem(and update problem) in the recent equinox group(eclipse.technology.equinox, from 2009/06/01 to 2009/07/10): 27(p2 related)/77(equinox all) =35%. Now is the age of R3.5, and the p2 is just the one small component of the whole Equinox. Even now, I often hear the complaint from newcomers in my BBS, such as, "the auto-upgrade does not work", "updating crash my Eclipse"... So, p2 is great, but there is a (long or short?) way to make most people in the community to accept it.

Git is coming into Eclipse.  Yes, CVS, SVN and GIT are in parallel use in the development process of Eclipse projects. you can find the hot discussion here, and more here. Git, as one kind of DVCSs, provides many new improvements and features. I guess more and more projects will transfer to the git when the next iteration. However, if some projects have played finely with the current svn/cvs server, they may stay with it in a long period.

bugzilla search engine
Bugs searching in bugzilla is not much cleverer as we expected. It is a little pain for our developers or users. Hence, Gunnar Wagenknecht fire a bug, i.e. Bug 214067. Yes, we wanna let Google index the Eclipse.org Bugzilla. Google engine can rank the search result in a better relevancy. However, it is reported that the direct google indexing will cause some potential spamming problem. So, this enhancement has not resolved. Now, we can taste one experimental indexing bugzilla search engine provided by Gunnar Wagenknecht(seemly does not work recently). Nice work, Gunnar!

Eclipse weather
Eclipse Weather Forecast, is a new column in the Eclipse.org site during the period of Galileo. I like it!  For instance, you can know the next release of Eclipse train is called "Helios"(Yep, not e4). Funny^_^ This column really make Eclipse community more interactive, especially between the committers and the end users. I hope that this forecast could be updated more actively:) If you like it, you can add it to your favorites. One problem is, the address of its RSS seem re-directed to another news Eclipse rss...

2. Modeling

The EMF seem already the defacto standard of modeling. Many new and kinds of projects, such as EMF Index, EEFEGFEdapt, has poured into the EMF ecosystem during the period of Galileo train. Some is cool. For instance, for EMF index, we can dream a modeling object database will appear in some day. Other new projects, I am not much familiar with those. I Hope they can pay attention to the collaboration in the whole modeling ecosystem. However, EMF is a must for an Eclipse guy! Even the coolest e4 has been depended on the EMF:) You can image that, in some day, you can't survive in the Eclipse world without modeling things! 

3. Graphical 

In the field of graphical editing, there are not many news. The GMF and the GEF still control the world. Zest in GEF get some funds at this summer. Cong! One project, I like to mention, is GEF3D, which could be considered as the 3D version of GEF. GEF3D is not listed in the Galileo packages and is considered as an incubation project. However, I like the idea of GEF+OpenGL behind it. There is a old bug, Bug 68724, in the Bugzilla addressed this requirement. In fact, the GMF team(yep, they are also maintenancing the GEF) have introduced some animation effects into the field of graphical editing. However, as we know, OpenGL (or like things) is more professional in all kinds of graphical effects. It can be seen that, Thomas Crockett, a NASA guy, has given the wonderful experience in the Mars rovers the with the GEF+OpenGL.  Do you like do a overhauling to your graphical editor? Ask the GEF3D now! 
(P.S.: I have an idea about GEF3D + Zest, maybe this can be a next years' gsoc topic^_^) 

4. Web

(p.s.:I am not a web side guy now. )

This project provides a web presentation layer on RWT API + a runtime server layer on Equinox. Cool! After that, a plugin developer can easily develop a web site(Yep, that's called "Single Sourcing"). I much like this kinds of technologies. Yes, you can dream doing everything using Eclipse. This is just an eclipsed life, advocated by me.

XML Tools
On the planet, we has one diligent blogger, David Carver. He is just responsible for the XML related tooling development in WTP. If you want to grasp the main progress of XML related things in the Eclipse/WTP, you can rss his blog:)   

The WTP has provided many mainstream XML tools although there are many XML plugins provided by other commercial companies. Frankly, the user experience of WTP/XML editor is not very good in my limited tests. One main problem is the bad memory consumption. Several old is or new bugs(Bug 156564Bug 136935, Bug 142692) addressed this problem.  It is quite a relief when I heard some work have been done when the Galileo although I have not tested the effect of improvement.

I had involved with XQuery work in the near past several months. This is the one of some unfinished works in WTP/XML. For some reasons, I have not finished my effort. In my personal opinion, it seems the best choice to follow the way of XQDT 2.0(http://www.xqdt.org/) or to collaborate with it. However, there are still some problems existed.

5. Others 

I just mention one hot topic DSL(language) IDE support in Eclipse. The Xtext and DLTK has joint the Galileo train. And the Xtext has shown its face at the planet of Eclipse. I've written down a funny entry:
    IMP  V.S.  DLTK.  V.S.  SSE  V.S. Xtext V.S.  JTF  V.S.  LTK(in Eclipse) V.S. ...
There is a highly overlapped area in the language IDE support, and nobody intend to do some collaboration work:) So, here, I don't comment on the pros or cons of each ones. I just recommend one newborn project:

IMP is based on the idea of "meta-tooling"(Yeah, you may associate it with meta-model in your brain...). That is, based on some meta descriptive languages (such as English?) or components, we can get(generate) our wanted tooling(IDE). Some awesome abstractions have been done in IMP. IMP can provide many IDE-level supports, such as outline view, content assistant, preference construction... IMP is general tooling support platform. IMP supports general language(reinvent the JDT using IMP have been domonstrated in IMP. Cooling! ). IMP supports debug functionility construction. IMP supports refactoring functionility construction. And IMP supports "embedded language"(thinking, JavaDoc in Java done by JDT). 

Although the IMP is in the incubation phase, as my recent tests, the basic runtime is stable relatively. One thing, I love, the IMP with LPG(LALR Parser Generator) could provide a full-EPLed solution to language IDE support. Cool! If you plan to develop a language IDE support, you can considered to take use of the IMP. You will get a clear framework, little-size dependency, grammar development tooling and advanced analysis features supports. And I am also planning to write some articles about the IMP and LPG:)(to compete with the current Xtext series?) Oh, come on!

6. Future

The e4 is the coolest thing in the platform evolvement. The e4 has released the 0.9M5 recently and is moving into the 0.9RC1. As I mentioned above, the next train release of Eclipse is called Helios, not e4. However, the e4 is our future(Eclipse 4.0?). I don't repeat anything. If you like to try, you can get more infos from the e4 web site. I just say that, the e4 is worth a try!

We should thank all Eclipse committers to push the Eclipse into a higher-level milestone when the Galileo. We are living in a technically dreaming community...

No comments: