The Artima Developer Community
Sponsored Link

Inside the Head of a Power-Folk Java Hacker
X-develop : The Unknown IDE that Drives my Love For Java
by Geert Bevin
August 19, 2006
X-develop is an unknown Java IDE that allows for very agile development patterns without getting in the way. This blog post illustrates a unique approach called 'fuzzy' or 'freeform' refactoring that is enabled by a unique X-develop featured called 'instant project-wide on-the-fly error checking'.


For many months I have been wondering why people where frequently criticizing the lack of agility in the Java language, the rigidity of its static typing system and the supposed uselessness of generics. Suddenly I realized that I found myself in a position that most other Java developers don't experience: I had been using an IDE for years that makes Java development amazingly agile and pleasant.

X-develop screenshot

Let me introduce CodeGuide or it's multi-language bigger brother X-develop. The beauty of these IDEs is very similar to what is recently happening in the Java landscape: power and simplification through default intelligent behavior without an overload of configurable options or explicit features. When you start X-develop for the first time, you'll probably browse through its menus and preferences, thinking that it only supports a fraction of the refactorings of IDEA or Eclipse. Well you know what, you're right. Yet, while it looks more primitive on the surface, I feel much more confident embarking into complex refactorings with X-develop than with anything else. How is this possible?

Enter the genius of Omnicore's vision by having designed and developed instant project-wide on-the-fly error checking. This is probably the worst understood and most powerful IDE feature in existence. The keywords instant, project-wide and on-the-fly are of capital importance here since they allow for free-form refactoring or fuzzy refactoring development styles.

To explain what this is about, it's probably best draw the parallel with test-driven development: you first code what you expect and then fix everything until your code works. I apply this approach constantly while refactoring: I perform the changes that I want to introduce in certain classes and as I type, I see the errors gradually appear in the entire project. This happens literally as I type, without any compilation or execution of the application. The only thing that I have to do afterwards, is work through the errors one by one (which can be easily done by using the shortcuts ctrl-up and ctrl-down) and fix the code so that the errors disappear. Sometimes I can be working for hours like this by continuously improving APIs and never ever having to wait for any compilation or execution delays. Apart from being an amazing feature in itself (since the IDE really understands your entire project in real-time), this way of developing is also extremely satisfying since you see the errors disappear one by one.

This is just one of the awesome features of X-develop, some of the others I prefer are:

Now of course there are not only great things to be said. Due to the Java market having been bombarded with free IDEs, Omnicore had to diversify itself and support Mono and .Net as well. This slows down the work they can perform on the Java front since they are only a small company with limited resources. I'm however hoping that the recent interest for more dynamism and agility will see an uptake in their Java user-base, giving them more funds to invest in further developments.

So, if you want an agile IDE that leverages the Java language to its fullest and targets hard-core developers, you owe it to yourself to give CodeGuide or X-develop a try. Don't just use it as your current IDE and search for the counterpart of the features that you already know. In many cases you will not find it because Omnicore has solved the problem in a creative and often much more elegant way.

Thanks Omnicore for making my day a more pleasant one, every day.

Disclaimer: these are my genuine feelings and it's not a marketing ploy! I'm not affiliated with Omnicore and the only thing I have to gain is when they get more users, my preferred tool will become even better. Besides that, the people at Omnicore are really great and have always promptly tried to resolve any problems I had. I thought it was about time I gave something back for the more than excellent support they've given me over the years.

Disclaimer 2: I frequently force myself to work with IDEA and Eclipse for at least a week since I want to make sure that I'm not missing out on the best tools. While they both are excellent IDEs, I never reach the same comfort and productivity that the instant on-the-fly project-wide error checking of X-develop and its debugger provide me.

Talk Back!

Have an opinion? Readers have already posted 9 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Geert Bevin adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Geert is the founder of Uwyn, a small custom application development company with a strong focus on Web applications, open-source, Java and rich internet technologies. He is the founder of the RIFE project which provides a full-stack Java Web application framework for quickly building maintainable applications with sustainable developer productivity. He also started or contributed to projects like Bla-bla List, OpenLaszlo, JHighlight, JavaPaste, Drone, Bamboo, Elephant, RelativeLayers, and Gentoo Linux. Geert has spoken at TSSJS US & Europe, JavaOne, Java In Action, EuroOSCON, Fosdem and JavaPolis. He has recently been nominated and accepted as a Java Champion, mainly for his work on the RIFE project and its support for native Java continuations.

This weblog entry is Copyright © 2006 Geert Bevin. All rights reserved.

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use