Sunday, March 27, 2011

My EclipseCon (2011) Experience

It was great to go to EclipseCon finally this year, after using Eclipse IDE for 6+ years and working on Eclipse RCP application for around 2+ years now. It was also good to meet and go to sessions from some of the well known names in this field (Jason Van Zyl, Eric Clayberg, Dan Rubel, Paul Webster, Tom Schindl, Kai Toedter, Patrick Paulin etc.,).

For those who could not go, below are some of the notes from some of the sessions I went to (in no specified order):

1) Tycho - Tycho provides a way to build Eclipse plugins. PDE ant build now does the same, but Tycho promises to be much easier than PDE build. Sonatype gave a good tutorial on Tycho and also showed how to automate it in Hudson. They also promised that they will release a online book on Tycho soon.

2) Jubula - Jubula seems like a great functional testing tool and it is from the same company (BredEx) who developed GuiDancer. The cool thing with Jubula is we can start writing test case scenarios before the actual development happens. This would enable testers and maybe product owners to start writing acceptance tests before development team starts working on a task. When development is done, we can start mapping components in use case scenario to actual components in the product. Also, each scenario (or sub steps in a scenario) can be created independently and thus can be reused by multiple tests. So, if a component changes in the screen, it is enough to just update that one sub-step and all test cases are updated automatically, since they just reference this step. This makes it very modular and easy to maintain. They gave a good tutorial on Jubula during the session. They are also planning to hold a webinar on Jubula soon. They also said that Jubula tests can be run in command line and can be automated to run via any CI system. Jubula can be downloaded now, but will be official in the upcoming Indigo release.

3) Chronon - This is a time traveling debugger. The idea is someone (say tester) comes across a bug and then he can send the recording (which records every line of code executed) to developer. The developer can play back the recording using time traveling debugger and can see the actual values of variables used in that execution. Also, it makes it easy to see execution path of multiple threads, which is hard to see via regular debugging. This is a very novel idea and won the best hot products showcase award for 2010. Of course, I voted for it too.

4) BIRT 360 Dashboard and BIRT Data Analyzer - We use open source BIRT as an eclipse plugin in our RCP application to produce PDF/HTML BIRT reports. But, it is not very interactive. BIRT 360 gives dashboard like functionality to end users. It would be very useful for management/executives to see what goes in their company (for example, sales report by region etc.,) at a high level easily instead of reading a big report. BIRT data analyzer goes one step further and allows users to put their own analytics in their dashboard/reports. With data analyzer, users can pick any value from the data cube in the report and can show it in any way in their report. But, both BIRT dashboard and data analyzer are not in open source and are only available in Actuate's commercial BIRT software. Also, both of them are web based applications and are not available as RCP plugins to be used by desktop applications.

5) e4 - There were many talks about e4 in EclipseCon. e4 mainly gives new way for styling and provides flexible programming model. e4 is not backward compatible with 3x version of the Eclipse plugins. However, they provide a compatibility layer which helps in running 3x plugins in e4 environment. But, still there could be issues (with actionSets, menus, menuContributions etc.,) even with that. e4 does not support activities/capabilities yet. They said it might be supported in 4.2. When developing new eclipse plugins/rcp applications, it makes sense to use e4. But, I'm not convinced about using e4 on existing applications, as the migration could take a while, especially if the code base is large.

6) Q7 - Another functional UI testing tool. It is created by XORED (a Russian Eclipse RCP consulting company) and there were many participants from XORED in the conference. Good thing here is test scripts are in ECL (Eclipse Command Language), which makes it easy for testers to read/edit the test cases. They plan to add support for BDD soon, which would make it even better. They have Q7 maven plugin which could be used to run Q7 tests via maven using Tycho. So, this could automated via CI. However, it does not seem as easy/flexible to use/intuitive as Jubula.

7) Nexus Pro - Sonatype gave a talk on how to improve onboarding of new developers using Nexus Pro. Developer Onboarding feature is in Nexus Pro and automates the normal tasks done by new developers (Downloading, Installing Eclipse, Eclipse Plugins needed, checking out source code etc.,). Basically, we just have to send a jnlp link to the new developer and when he/she clicks on that link, it guides the user to install everything needed. It does not have support for setting up other tools though. They plan to add support for downloading/setting up webserver, installing maven etc., in future. It seems like Yoxos does something similar to. You can look at Yoxos OnDemand here. Nexus Pro also supports Eclipse update sites and p2 bundle repositories. If you need to use Nexus to host Eclipse bundles, then this would be handy. If you need to know what is the difference between Nexus Pro and Nexus OpenSource, you can see it here.

8) Orion - It is aimed at making Web-based development easier in the Web. It is basically a set of linked web pages and not an IDE in a browser. File navigation and editing happens from within a browser. It looks pretty neat, but I think it needs more features before it can replace the desktop based IDE.

9) Commands - Paul Webster gave an interesting talk on 10 most patterns in using Eclipse 3x commands. The slides are available here. The session was very informative. He also gave a talk of e4 commands and slides are available here.

10) SWT 3.7 - There are many fixes/minor improvements in 3.7, but the main feature that is new is Touch and Gestures. A touch is a change in state of a finger on the input device and a Gesture is interpretation of touches. It provides events on touch/gesture just like we get Key/Mouse events. This is very cool and opens the door to make Eclipse RCP applications very interactive.

11) Keynote sessions - They had three keynote sessions - one on IBM's Watson project, one on Java Renaissance and one on Apache Hadoop. The one on Java Renaissance was interesting and speakers from IBM and Oracle gave the talk. They confirmed that Java 7 release date is July 28, 2011 and Java 8 is targeted for end of 2012. Java 8 focuses on making Java modular (Project Jigsaw). They also spoke about making the new modular framework play nicely with OSGi. They also gave some insights on what could come in Java 9. Some of the things they hinted are supporting massive multi-cores, multi gigabyte heaps etc. in Java 9.

12) Eclipse 3.7/3.8 - Eclipse 3.7 code named Indigo will come out in late June just like all previous Eclipse releases. It may/may not have support for Java 7 in that. However, they said that 3.7.1 will have support for Java 7, if the initial one does not have it. Also, they confirmed that Eclipse 3.8 is code named as Juno.

Finally, here are some stats on who attended. There were lot of attendees and it was very diverse too. They showed these stats (and other fun stats like how much beer the attendees drank etc.,) during the closing session. I wish they had provided details on how many people actually attended.

50% of attendees are from US - 25% from California and 25% from rest of US (Totally from 31 states)
10% of attendees are from Canada
40% rest of the world - Germany, France, UK, Sweden, Russia and Bulgaria had sizeable attendees
Totally, there were participants from 29 countries.