Prashant Deva's blog

Talks on technology and the latest developments in Placid Systems.

Virtual Ant - Current Status

Saturday, April 28, 2007

I understand that quite a few people are puzzled as to why Virtual Ant has not been released as yet and are wondering as to when they will actually get to release it. The following should clear up all your doubts.

Huge codebase

The video on the homepage shows a prototype demo of Virtual Ant. So although a lot of things 'seem' implemented they were no where near the final release state. A *lot* of code has been written since then. Currently Virtual Ant is about 350,000 (>1/3 of million) lines of code!

Since the code base is so huge, you can imagine we have been grappling with bugs all over the place. The fact that ant's codebase is such a mess doesn’t help matters either.

It turns out that some of the design decisions we took didn’t turn out too well. This has led to a rewrite of over 90% of the Ant source code. Seriously, when I look in there now all I see is my own code. Note that this rewrite concerns only virtual ant itself and does not affect you as the user, since the build script that is generated will work with perfectly the ant jar you download from ant's web site.

Pioneering the design

Now although you may not notice this but a lot of thought has gone into how we will make all the features of Ant available via a gui which is easy and natural to use. Note the use of the word 'easy and natural to use'. Unlike the other 'so called GUIs' out there whose sole definition of a GUI is to take xml and turn into a bunch of boxes connected by lines, we actually want to provide a truly dynamic and natural experience, so that you never, ever have to deal with the xml.

So coming back to the point, some things which are captured so easily in text that you never think twice about it, become a nightmare to handle in a gui. For example, an ant target can call another target using the 'antcall' task. In xml, you would just write the antcall task, but how would we show such a thing in the current gui. Do we turn all our listviews into treeviews? Wont that take off the elegance of the UI? How else can we do it? (Note that we did solve this problem and the final release will show you how the gui reacts to an antcall task) ;-)

Current status

Currently we are at the endgame stage of the first version of Virtual Ant. Some things obviously had to be cut back since otherwise we would never release. Here they are in a nutshell-

  • Instead of release plugins for all 3 ides eclipse, intellij and netbeans at once. We will be releasing them in succession and in that order (ie, first the eclipse plugin, then intellij …)

  • We will support version 1.6.5 of ant. You can run the generated build script on any version of ant you want, but virtual ant itself runs ant 1.6.5 internally on the virtual file system.

  • We wont support remote tasks for the first version (ftp, ssh, perforce, cvs,etc). We have an extremely super amazing cool way to handle this in the next version, which will make your head spin. We really wanted to put this in the first version but that would delay things further.

  • We will support multiple build files in the first version, but in a limited way. You can import files and call targets on another files using the 'ant' task, and see the results instantly. However, you cannot modify more than one file at a time from the same virtual ant window.

  • We haven't decided on the price yet, but we are thinking of putting it at $249 which is extremely affordable for a tool like this.

  • If things go real well we will have a beta of the standalone version of Virtual Ant within two weeks.


posted by Prashant Deva, 11:02 AM | link | 2 comments |