ZeroTurnaround is a small software company from Estonia (the same country that brought you Skype, Kazaa, etc). We build small tools that provide huge results for development teams (and their budgets). For example, JRebel is a JAR file that's under 1Mb, is easy to setup & use, saves between 3-7 weeks of wasted development time (yup; 40-hour workweeks), and costs under $150/year. That's a pretty big deal. As we grow, so do our visions of improving quality, consistency, and deliverability in the software industry.
Jevgeni Kabanov - Founder, Chief Technical Officer
Previously, Jevgeni worked as the R&D director of Webmedia, Ltd, the largest custom software development company in the Baltics. As part of the effort to reduce development time he wrote the JavaRebel prototype and has led development since ZeroTurnaround's inception in 2007. He has spoken at international conferences for several years, including JavaPolis/Devoxx, JavaZone, and JAOO on topics ranging from: "Do you really get Classloaders" to "Zero Turnaround in Java Development". He has an active research interest, publishing several papers on topics ranging from category theoretical notions to typesafe Java DSLs. Besides the commercial products made for ZeroTurnaround, Jevgeni is the co-founder of two open-source projects - Aranea and Squill. Aranea (www.araneaframework.org) is a web development and integration platform based on strong object-oriented principles. Squill (squill.dev.java.net) is a typesafe internal DSL for constructing and executing SQL queries. Jevgeni's personal blog can be found at dow.ngra.de.
David Booth - Chief Executive Officer
David has been marketing productivity tools in the Java industry since 2001, working first on JProbe, then at JetBrains (IntelliJ IDEA), helping to share quality products and make development more productive. He believes highly in supporting the communities around him, and in his spare time is a founder of the Young Professionals Forum in Prague, where he is based.
I-1. How many people are employed by ZeroTurnaround ?▲
Jevgueni : Just under 10 at the moment, though it's changing as quickly as we can find new hires... do you know any engineers interested in working from Estonia, or sales & marketing folks interested in Prague ?
I-2. Which IDE is mostly used by ZeroTurnaround's team ? Why ?▲
Jevgueni : Everyone uses Eclipse. It may be partially my fault as I was a big Eclipse proponent a few years ago. Now I don't care either way, but I do think that Eclipse has better vanilla Java features, and we don't do much web development. We probably would buy IDEA if we'd have to do web. But I'm still unhappy with their support for Compile-On-Save, I think Eclipse is way ahead in that direction.
I-3. Some companies only acquire licenses based on an order and a bill, with payment relying on banking operations. Do you plan to allow other ways to order a license than using a credit card ?▲
Jevgueni : Actually even though it's not written explicitly on our website, most big orders come with an invoice and direct wire transfer. Companies will just email us and arrange for it. I'd love to have an automated way to do it, but I don't think our bank supports any such services.
David : That kind of stuff is easy enough to do. Just mail firstname.lastname@example.org
II. JRebel product▲
II-1. How and when has JRebel (formerly JavaRebel) started?▲
Jevgueni : JRebel started with an idea in the August 2006. I was working on Aranea live reloading at the time, and it suddenly struck me how I could do live reloading for any Java code. It was fairly complicated, but after some deliberation I set on a prototype and had it running by March 2007. By September 2007 we had a public beta and the first sales started pouring in October the same year. It's been a thrilling ride ever since.
David : On Friday April 16th, we released JRebel 3.0, and it has come a long way from that first release. JRebel still focuses on eliminating the redeploy phase from Java EE development, but it also has IDE support, handles changes to Class Structure, assists with instant builds (working with EARs, WARs, Maven, Ant), changes to configuration (Spring, Guice, Struts 1 and 2, Log4J, Tapestry4, Wicket, Stripes, Velocity), and supports Java 1.6 right back to 1.4.
II-2. Do you think that you have competitors on JRebel's business segment ?▲
Jevgueni : Not any that we are worried about.
David : That sounds like a typical business answer ! Since we're playing "role-reversal" right now, I'll pick this one up. The short answer is, "yes, there are competitors". There's HotSwap, "Hot Redeploy" - which goes under a variety of names (like "FastSwap") depending on the container that implements it. Unfortunately, both HotSwap and Hot Redeploy have some serious flaws... it's easiest to just scan the chart here.
II-3. Which IDE has currently the best JRebel support through plugin ? Does ZeroTurnaround lead these integration work on the most popular IDEs or prefer to let each community do the work ?▲
Jevgueni : We provide about equal level of support for Eclipse and IDEA. The NetBeans plugin doesn't have all of the features that we provide for other IDEs. We see some community work (e.g. IDEA plugin was initially contributed), but mostly we do our own development.
II-4. Which are the next challenges for JRebel after version 3.0 release ?▲
Jevgueni : Well, there's a lot of things that we started with 3.0 that we need to finish. Full support for JPA is one of them. But we will also spend some energy on LiveRebel, which has a lot of potential, and a waiting list of 200+ interested companies. This will mean some great innovation for JRebel as well.
II-5. Any idea of plugins for third party framework to add in JRebel codebase? For example, JSF for which configuration is not reloaded by JRebel and requires a restart when a managed bean is added, or commons-chain which loads only one time its catalogs at startup.▲
Jevgueni : JSF is supported in the 3.0 :) Mojarra is supported right now, and MyFaces will also be supported soon. We'd like to focus less on the framework support and focus more on enabling community to contribute plugins easier. It's already pretty easy to create plugins for JRebel, but we're planning to make it easier soon. If someone is interested in writing a plugin for a specific framework, talk to me directly at email@example.com
II-6. If not confidential, how many 2.2.1 licenses did you sell ? Any change in licensing model with 3.0 release ?▲
Jevgueni : To be honest, I'm not sure on the exact number off the top of my head. It's in the thousands. I know that we're seeing more than 10,000 downloads per month, and we're growing at a rate that looks something like the curve of a hockey stick... hmm.. maybe that's just a Canadian expression? With 3.0, we're changing the licensing model slightly, but the most significant change is the availability of the Enterprise Add-On. We're adding support for some older technology that really causes headaches for a lot of people.. discontinued containers, EJB 1.x and 2.x, and adding a license server that's going to help the larger sites manage their licenses in an easier way. All licenses will still be annual subscriptions, and they'll still save an average of 5 weeks of development time spent restarting and redeploying. Pretty awesome really.
III. JVM and dynamic module system▲
III-1. Which technical limitation on the JVM would you wish to disappear in order to enhance JRebel? In other words, are there capabilities you would expect in JRebel but can't implement because of JVM limitations ?▲
Jevgueni : Interface Injection is high on my list. It should be comparably easy to support, as I suspect that it doesn't necessarily require updating vtables (which are inlined in the Sun JVM and are the reason why HotSwap doesn't support adding methods).
III-2. Would ZeroTurnaround be interested in the opportunity to participate in enhancement of OpenJDK's ClassLoader and Hotswap components ?▲
Jevgueni : It would definitely be interesting to do that, we have discussed this opportunity, but haven't decided yet either way.
III-3. What do you think about current hype around OSGi ?▲
Jevgueni : It's hype. OSGi is only useful to framework and server developers, applications shouldn't be aware of it. It's a useful low-level abstraction, but it's just too generic for applications. The right way to use it is to build specialized moduling on top of it.
I also have an issue with the way they use class loaders. It's well-known that circular dependencies with OSGi can cause class loader deadlocks. And I'm fairly sure that OSGi encourages class loader leaks (it's not really its fault, but the class loader model in Java was never meant to be used as a graph).
IV. Coming next ...▲
IV-1. Could it be something interesting for you to have a JRebel plugin focused community growing and where everyone would provide plugins to the community, maybe hosted by ZeroTurnaround ?▲
Jevgueni : Yes, this is the plan :) We used to have something like that, but we discovered that without our attention community pages tend to stagnate quickly. Now that JRebel is growing explosively we really need to restart the plugin community as soon as possible.
IV-2. Is LiveRebel, currently in private beta, the logical continuation of JRebel ? Can you share some information about this new product ?▲
David : We've had a lot of demand from our customers to take the JRebel technology from the development sphere and target production systems and live apps. It makes sense for us to take a really serious look at this, and see what we can do here. I saw a quote somewhere that said if Amazon.com went down, it would cost them $31000 per minute, and I can think of companies where the cost is higher - so we'd like to help firms keep their apps live, even while making minor updates to them. For people who are interested, we've got a Private Beta group that's going to get a lot of our attention over the next year : http://groups.google.com/group/liverebel-private-beta
IV-3. Can we expect in the near future to see in ZeroTurnaround portfolio some JRebel-like products targeting other platforms, like DotNET for example ?▲
Jevgueni : I wish I could answer yes to that question :) We have reviewed the .NET platform and it lacks the facilities necessary to enable the features we deliver on Java. Mainly this is due to lack of the class loader, which is an extremely powerful, if somewhat dangerous when abused, abstraction.
V-1. Any thoughts to share with the french speaking Java community ?▲
David : Yeah -- go get involved in your local JUGs (Java User Groups). Over the last few years, French JUG communities have really grown in a lot of cities across France. It's great to see so many people getting together to talk about Java and help each other out!