It is a great news that Jetbrains has opensourced the Intellij Idea, a well known Java Editor. I have used it along with both Eclipse and Netbeans in the past.
Last year, I decided to buy a professional license for the intellij and never looked back. So, what would I say about eclipse, Netbeans and Intellij ?
Well, frankly speaking, they all have their positives. In fact, they are all competing on a very high level now.
Lets compare them based on few criterias :
1. User Adoption : Eclipse wins easily. However, I guess with today's announcement, it is going to be exciting. Don't forget Netbeans is releasing the 6.8 beta shortly, and it has significantlly improved.
2. Company Backing : Although Eclipse was started by IBM, Jetbrains owns intellij and Netbeans is owned by Sun (ohh.. I guess it is Oracle), but now the open source has changed the game. It is all about users, developers, speed and plugins.
3. Speed :- I don't have a benchmark, however the last time I felt, Eclipse and Intellij both were better. Netbeans still needs to work on it (I last tried the full j2ee version of it - 6.5, never tried 6.7).
4. Plugins :- Again Eclipse wins by the numbers. As far as quality is concerned, Intellij would probably be the best. Again, used mostly the in-built plugins for the netbeans (Correct me, and add comments if you find it better). However, now I see all the three editors have got a nice plugin framework and lots of developers writing for them.
5. Maven Support :- Hmm....Here the Netbeans is the one, closely followed by Intellij.
6. Usability :- Power users like Intellij with the best Refactoring offering , intelligent shortcuts, the awesome customer care support.
7.Dynamic Language Support (Ruby/JRuby/Groovy) :- NetBeans is the best IDE for Ruby/JRuby(I am not including Rubymine from Jetbrains, as it is a separate product). For Groovy, my vote goes to Intellij again.
I think as now Intellij has provided the free editor (Community Edition), more people would give it a try, and hence would be in a better position to compare it (And who knows may be then buy the Professional Edition eventually).
What do you think ?
Update : Here is the comparison chart for the OpenSource version vs the Commercial One.
Showing posts with label Intellij. Show all posts
Showing posts with label Intellij. Show all posts
Thursday, October 15, 2009
Sunday, October 11, 2009
Writing Google Wave Robots using Java on Intellij



I got my google wave invite two days back (friday night, can't be a better time). And within 4 hours I was talking with my "HelloWorldish" Robot, such is the power and ease to write and deploy a robot is.
If you use eclipse, you already are set and this is the best place to start with : http://code.google.com/apis/wave/extensions/robots/java-tutorial.html
In fact, I used the same page for the sourcecode, and the steps. Make sure, you have a google wave id before you start looking at the next steps.
Steps :-
1.Make sure you are using Java 1.6.
2. I am using Intellij Maia (9). If you are on older version install the google appengine plugin.
3. Use this plugin to generate a dummy web project. In the wizard, choose google app engine. We are not going to use either GWT/ JDO or JPA for this project, so just uncheck them.
4. You can see a "AppEngine Dev" settings to run. Run it ,and you should be able to browse the dummy page at localhost:8080
5. To write the Robot, we need few libraries. Download it from http://code.google.com/p/wave-robot-java-client/downloads/list.
6.create a lib directory inside WEB-INF and copy all these jars . Also, add servlet-api-2.4.jar or higher.
7.Make a package src/parroty.server and copy paste the ParrotyServlet code described at http://code.google.com/apis/wave/extensions/robots/java-tutorial.html
8.Make a web/_wave dir. Create a capabilties.xml file and copy paste the code
<?xml version="1.0" encoding="utf-8"?>
<w:robot xmlns:w="http://wave.google.com/extensions/robots/1.0">
<w:capabilities>
<w:capability name="WAVELET_PARTICIPANTS_CHANGED" content="true" />
</w:capabilities>
<w:version>1</w:version>
</w:robot>
9. Register your application on appengine site.
In you appengine-web.xml file substitute your application id (instead of mine, "mytestwaveapp") :-
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>mytestwaveapp</application>
<version>1</version>
</appengine-web-app>
10. Configure your ParrotyServlet inside the web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>Parroty</servlet-name>
<servlet-class>parroty.server.ParrotyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Parroty</servlet-name>
<url-pattern>/_wave/robot/jsonrpc</url-pattern>
</servlet-mapping>
</web-app>
Go to "Tools->Upload AppEngine Application", and you are good enough to deploy this Robot.It would ask you your appengine loginid/pwd.The console would show, that everything went fine. You can confirm by accessing the capabilties.xmlfile :- http://applicationName.appspot.com/_wave/capabilities.xml
11.Well, now you are done. Use this robot as a participant for your wave and it should answer as I have shown in the picture. More Sample Robot Codes :- http://code.google.com/p/google-wave-resources/source/browse/trunk/samples/extensions/robots/java
Happy Coding ! Happy Waving !!!
Subscribe to:
Posts (Atom)