Wednesday, December 20, 2006

Got MyEclipseIDE?

I've been a Java/J2EE Consultant for over 8 years now and I've been a MyEclipse subscriber since approximately 1993. I am always impressed in how fast MyEclipse kept up with the version of Eclipse and Eclipse plugins being released. New technologies emerge all the time and before you could think about it, the tools you love to use is already integrated on their next beta and eventually GA release.

When pair-programming with other developers I noticed that they are always in awe when they observe how I can modify my code on-the-spot without re-starting the web or application server. Of course the hot-code replace feature was never a surprise to me because I've been a MyEclipse user for quite a while now and previously a WebSphere/Rational Application Developer (WSAD) user as well which had similar set of tools for development (only WSAD is more expensive).

WebSphere/Rational Application Developer is a very similar IDE that comes with it's own suite of tools that will aid developers in whatever aspect of programming they are tasked to do. The big difference is that MyEclipseIDE uses mostly open source plugins and IBM develop its own. I think this price difference is worth noting. I have had the priviledge to read a couple of email responses to MyEclipseIDE lately and these emails were shaming MyEclipseIDE for "stealing" opensource tools. The responses really surprised me since on the other side IBM Develops it's own suite of tools and a single license cost $2220 while MyEclipseIDE uses opensource tools and their lowest subscription cost $31.75. Why are these people slamming MyEclipseIDE for delivering quality low-cost development tools?

I have also been in several projects where WebSphere was used and compared to MyEclipseIDE, WSAD was so bloated that normal day-to-day tasks would take longer than expected. Not to mention that it takes literally a day or two to install WSAD. I honestly am not sh*tting you. I hated installing WSAD. Take a look at the pricing for IBM Rational Application Developer (formerly known as WebSphere Application Developer) and try not to freak out. WSAD is a very nice tool but the price-to-performance ratio for WSAD just doesn't compare to MyEclipseIDE.

Cost Justification
For every consulting company that I have been in I have always used MyEclipse. Most of a consultants effort on the first week is getting setup with the company's development environment and most will have a base eclipse and numerous plug-ins to install. At an average, it will take at least 2 to 4 to set someone up on a new machine.
  • Install plug-ins
    (Struts, Spring Framework, Subversion, a plug-in to run an application server)
  • Install Database tools

So to do a calculation for 2 people at an average cost of $40/hr.

2 people x $40 x 4 hours = $320.

This applies for all new employees or consultant that needs to be setup. I want to note that as of now, here are the different types of MyEclipse subscriptions:

  • Standard Edition (SE) $31.75
  • Professional Edition $52.95

I have also witnessed a setup time of one hour but then later on the users of these inferior plugins continue to have day-to-day issues and it does get costly when your IDE is crashing all the time and in addition you experience code synchronization issues between the source in your IDE and the application server (just to note some examples).

So I hope that this is a no-brainer for all managers out there. Got MyEclipseIDE?

MyEclipseIDE Features That Stand Out

Web Deployment Tools

This feature has been around since day one and it's got to be one of my favorite. This particular feature handles how a web project deploys it's sources and reference libraries. If your web application refers to dependent projects, they can either be placed in the specified web classes output directory or be deployed as a [project].jar files. What typically happens in a non-MyEclipseIDE environment is that if you have a situation where a project refers to another project. When the child project changes, a ant build task is manually launched and jar the dependent project and gets placed in the WEB-INF/lib web project directory. Now, try and imagine if you are working on the child project. You would have to do this every time you make a code change and then restart your application server. How annoying is that? MyEclipseIDE updates the code every time you save so even when running Tomcat the hot-code-replace is awesome. Which developer do you think will be more productive?

Asynchronous JavaScript (AJAX) Tools

If you've already jumped in the AJAX bandwagon you might be dreading it right now because it's hard to debug javascript code. But thank goodness that MyEclipseIDE comes with it's own suite of AJAX tools and the most useful tool to me is the AJAX debugger.

The debugger is so neat you can debug any live web address and then put a bookmark on any of its javascript code (this is possible since javascript is a public html resource). I urge you to watch this MyEclipseIDE Features Overview (also mentioned above).

Database Tools

I love this feature and is compatible with any JDBC-compliant database servers. What I find handy for this is the generation of the database entity relationship diagram (or ERD). I may have a task to implement a feature and as a consultant I am what you call a "business-rule" blind and I need to see the big picture. This allows you to generate the entire ERD or selectively. It prints out really nice as well. This is a cool feature to show to other non-MyEclipseIDE users because it is a developer productivity aid. I wanted to also note that it supports typical JDBC queries, table creates, etc..

Other Features Worth Noting

There are several others worth noting like the hot-code-replace for launching application servers; Framework integration plug-ins for Spring, Hibernate, Java Server Faces, Struts, JSTL, Tapestry, etc...

Upgrading

When new features come up, the freebie developer (a developer using Eclipse with manually installed plug-ins), will get the word somehow that a new upgrade for a particular plug-in has been released. That developer then downloads and installs the plug-in to find out later one that the plug-in is not compatible with the current version of Eclipse they are using. What I usually see happen is that other developers download and install the plug-ins as well, so now you have N developers that are *screwed* because no one has tested this plug-in. And if someone has tested them it's only for a particular version of Eclipse and not everyone is running the same version of it. So what ends up happening is that developers refrain from downloading a plug-in until someone else can guarantee that this will not break their current install. This could end up costing the company some amount of money as well for the time spent trying to resolve this issue, not to mention it will hinder developer productivity and lowers the developer tool confidence level as well.

So here I am at my workstation LMAO because I never have those issues being a MyEclipseIDE user. When I upgrade to the newest GA version the plug-ins in MyEclipseIDE are guaranteed to work. I never have to question whether this will break my development environment. It is always guaranteed that the integrated plug-ins are tested. And if a bug arises there's a place that I can go to for support and this rarely happens for me. For as long as I can remember I have never rolled back a GA version of MyEclipseIDE.

The MyEclipseIDE Influence
I don't usually convince or sell MyEclipseIDE to people and I think most of them will find that there a lot of benefits using this tool and I myself demonstrating developer productivity first hand is enough for companies to start buying several subscriptions themselves.
MyEclipseIDE: A Killer App?
I don't believe MyEclipseIDE is a killer app but I believe it's overall the best Java Development IDE out there that focuses on (1) low cost, (2) minimal bugs and (3) fast support turn-around at a very low price per seat. Every now and then when new features come out some of them may be quirky (like the Hibernate support tools) but they usually get better on future versions.
Reference:

6 comments:

Jens E said...

awlagnada;

I'm glad you understand why we all think MyEclipse is a no-brainer. Thank you for recording your thoughts. We appreciate your business and your willingness to speak out!

-Jens

Ernie Evans said...

Antonio,

Great writeup. Do you really think that MyEclipse will save on the 4 hour configuration time for a new employee?

I absolutely agree that the hot deploy feature works great. It has saved me significant time and that combined with the project dependencies has made MyEclipse invaluable.

- Ernie

Antonio Lagnada said...

Hey Ernie,

How have you been? One hour setup is the quickest, 2 hours average and Four hours was the worst that I've seen. It seems I was leaning towards a worst case scenario. It all depends on how many plugins it takes for a developer to be in a ready state. Some of the typical plugins that would be required are database tools, xml/html/jsp editing tools (now built-in with WTP), framework plugins (struts, spring, jfaces, hibernate), design and modeling, and some plugin to run an application server (also in WTP). Obviously there are some bundling we can do to reduce the setup time but not everyone does that. Others create Wikis on how to get up and running but they all point to links on where to download plugins and then install it in Eclipse.

BTW, take a look at the Ajax debugging portion of this MyEclipseIDE Feature Overview. It is way cool.

http://www.myeclipseide.com/images/tutorials/feature_overview/MEFO%20-%20Main%20-%20Low%20Quality.htm

Antonio Lagnada said...

Please note that this comments cut-and-pasted from an original blog. The timestamps are not accurate.

Anonymous said...

Great writeup. At one time I used to agree with you 100%. I found, however, that MyEclipse totally ignoring facelets to be far too frustrating. I've since migrated to NetBeans which has excellent facelets support. True, Spring and Hibernate are far less supported, but I spend a small fraction of my time working on Spring/Hibernate artifacts compared to pages and components.

I guess you just have to shop for the features you need in your IDE.

nfet said...

That's too bad that they are totally ignoring facelets. Usually when there exist an unimplemented feature that I need really bad I go to their support bulletin board and post that question. More than likely others are looking for the same thing.

It's very highly unusual for them ignore something that is in demand since they prioritize and cater to the needs of the developers. But then again I wonder if they are starting to suffer what other big IDE's are suffering from which is the more plugins/features you have in your IDE the slower/harder it is to upgrade to the latest and greatest stuff.

Thanks for the comment!