Several vendors are sponsoring QCon. (One can only wonder what the registration fees would be if they didn’t.) Of these, I think three have products worth immediate evaluation.
In the category of "really cool, but would I pay for it?" is Semmle. Their flagship product, SemmleCode, lets you treat your codebase as a database against which you can run queries. SemmleCode groks the static structure of your code, including relationships and dependencies. Along the way, it calculates pretty much every OO metric yet invented. It also looks at the source repository.
What can you do with it? Well, you can create a query that shows you all the cyclic dependencies in your code. The results can be rendered as a tree with explanations, a graph, or a chart. Or, you can chart your distribution of cyclomatic complexity scores over time. You can look for the classes or packages most likely to create a ripple effect.
Semmle ships with a sample project: the open-source drawing framework JHotDraw. In a stunning coincidence, I’m a contributor to JHotDraw. I wrote the glue code that uses Batik to export a drawing as SVG. So I can say with confidence, that when Semmle showed all kinds of cyclic dependencies in the exporters, it’s absolutely correct. Every one of the queries I saw run against JHotDraw confirmed my own experience with that codebase. Where Semmle indicated difficulty, I had difficulty. Where Semmle showed JHotDraw had good structure, it was easy to modify and extend.
There are an enormous number of things you could do with this, but one thing they currently lack is build-time automation. Semmle integrates with Eclipse, but not ANT or Maven. I’m told that’s coming in a future release.
AppLogic takes virtualization up a level. It lets you visually construct an entire infrastructure, from load balancers to databases, app servers, proxies, mail exchangers, and everything. These are components they keep in a library, just like transistors and chips in a circuit design program.
Once you’ve defined your infrastructure, a single button click will deploy the whole thing into the grid OS. And there’s the rub. AppLogic doesn’t work with just any old software and it won’t work on top of an existing "traditional" infrastructure.
As a comparison, HP’s SmartFrog just runs an agent on a bunch of Windows, Linux, or HP-UX servers. A management server sends instructions to the agents about how to deploy and configure the necessary software. So SmartFrog could be layered on top of an existing traditional infrastructure.
Not so with AppLogic. You build a grid specifically to support this deployment style. That makes it possible to completely virtualize load balancers and firewalls along with servers. Of course, it also means complete and total lock-in to 3tera.
Still, for someone like a managed hosting provider, 3tera offers the fastest, most complete definition and provisioning system I’ve seen.
What can I say about GigaSpaces? Anyone who’s heard me speak knows that I adore tuple-spaces. GigaSpaces is a tuple-space in the same way that Tibco is a pub-sub messaging system. That is to say, the foundation is a tuple-space, but they’ve added high-level capabilities based on their core transport mechanism.
So, they now have a distributed caching system. (They call it an "in-memory data grid". Um, OK.) There’s a database gateway, so your front end can put a tuple into memory (fast) while a back-end process takes the tuple and writes it into the database.
Just this week, they announced that their entire stack is free for startups. (Interesting twist: most companies offer the free stuff to open-source projects.) They’ll only start charging you money when you get over $5M in revenue.
I love the technology. I love the architecture.