Tuesday, August 26, 2008

Antlr, Ganymede, MyEclipse, Subclipse, and Pulse

I'm trying to write a little lexer/parser for a new project. I've explored ANTLR and JavaCC - a bit hard to choose, but these opinions (still relevant!) suggest Antlr. A nice eclipse plugin could easily make the difference. ANTLR comes with its own gui tool, which is quite nice, but not integrated.

I noticed there's an Antlr plugin, but it's not very easy to get it to work in eclipse3.3 - various dependency issues were hard to satisfy. Advice on a forum seemed to be that it was better to use the brand new eclipse 3.4 (Ganymede). Now MyEclipse doesn't have a "generally available" Ganymede release out yet, but they have just put out version 7 Milestone 1 as a kind of beta. I would normally wait a bit longer before trying it, but with all my spare time...

I decided that the Pulse business looked interesting - might save some of the dependency fussing too. It allows you to store one (or several) profiles for different sets of eclipse plugins, and execute whichever one you want. It's apparently a popular way for people to try out this MyEclipse 7M1, so I gave it a go. It wasn't quite as straightforward as I expected.

They do package a bunch of plugins that I like (subclipse and texclipse in particular). It seems that formatonsave isn't compatible with Ganymede yet. And I noticed that the subclipse version (must have been 1.2) wasn't compatible with the checked out projects that I already had in my workspace (using subclipse 1.4). I don't know why they don't use subclipse 1.4. And why did the Eclipse people choose subversive as their standard instead of subclipse? Doesn't seem to have been a smooth introduction.

One thing about Pulse which seems complex: If you want to add a plugin that isn't already in their catalog, it seems you have to start Eclipse, and then load the plugin there. You can say whether you want Pulse to manage it (although you need to have a Freelance account, which isn't free, if you do). The price of the Freelance account is pretty low ($60 per year, after a 1 month free trial). I'm quite happy to pay small prices for good packaging (like MyEclipse), but I'm not quite sure I see the value yet for Pulse. If I could get the free trial to work, I'd let you know.

Oh, and a random comment: today's upgrade to Firefox 3 was considerably simpler than the pulse stuff!

1 comment:

Anonymous said...

John,

First, thanks for trying out Pulse (http://www.poweredbypulse.com); we appreciate it. You've asked some good questions so I'll do my best to answer them.

And I noticed that the subclipse version (must have been 1.2) wasn't compatible with the checked out projects that I already had in my workspace (using subclipse 1.4). I don't know why they don't use subclipse 1.4.


You're correct that the catalog entry for Subclipse on our production servers still points to Subclipse 1.2 instead of 1.4. The Subclipse team has chosen to use a new update site URL with each minor release rather than simply placing all releases on the same update site. Unfortunately, that means we have to push a catalog refresh to account for the URL change. The update will be in the next refresh in a couple of weeks.

If you want to add a plugin that isn't already in their catalog, it seems you have to start Eclipse, and then load the plugin there. You can say whether you want Pulse to manage it (although you need to have a Freelance account, which isn't free, if you do).

With Pulse you have the choice of using the local interface that we install within Eclipse to add new features or the Pulse Explorer, whichever is most convenient for your usage pattern. Details on both are in this FAQ entry: (http://www.poweredbypulse.com/forums/showthread.php?t=378). You can use these techniques to use the latest Subclipse update site (http://subclipse.tigris.org/update_1.4.x/site.xml) until we update the catalog, for example.

If you have any other questions, please pop by our support forums (http://www.poweredbypulse.com/forums/index.php)and we'll be glad to answer them.

Hope that helps,
--Scott
Pulse Support