Several days ago, Google launch an open source project. This project, namely Guice, is another Dependency Injection framework. This framework rejoices the use of annotation and thus, has lesser complexity compared to the most successful DI framework nowadays, Spring Framework. Spring Framework is using XML as its configuration which makes it a little hard to be maintained when the project goes bigger.
I can see why this framework will probably enjoy its golden time. However, some times ago, Spring has also started a sub project Spring JavaConfig which can be a tough competitors for Guice in the future. Instead of using XML, using this sub project, user can also use annotation to configure their application. I have to mention that this sub project is not mature enough and I think it still lacks of some features which will make people pick Guice if they don’t provide it soon.
Probably, one aspect from Guice that is hard for Spring to catch is its speed. According to some benchmarkings, Guice is about 10 times faster than Spring. The advantages of Spring over Guice are its completeness and its support to many frameworks and libraries in Java. There will be some times before Guice catches this complete features. As a user, I feel glad for the competition and waiting forward for their innovations to help programmers do their tasks.
What I want to express in this blog entry is I think it’s time for Google to create a tighter integration between its frameworks. Currently, there are two frameworks created by Google, they are GWT and Guice. Both of them do different things. GWT works in the front end, bridges the HTML + JavaScript + AJAX with the robustness of Java programming. As we have discuss before, Guice works more in the back end. Before Guice is introduced, there is already an integration project for GWT and Spring. I wonder, if Google doesn’t do anything, there will be no long before another integration project between GWT and Guice comes to the arena.