Igor Polevoy on Java Development Tools

UGtastic Archive
Full Transcript Available
In this interview, Igor Polevoy shares his journey from a typical Java developer to creating tools for the JavaLite family. He explains how Ruby and Rails revolutionized his development process and how he created ActiveWeb, ActiveJDBC, JSpec, and HTTP Lite. Polevoy's motivation for creating these open-source tools was to give back to the community. Don't miss this opportunity to learn from a true developer! #Java #Ruby #Rails #OpenSource #IgorPolevoy
The Interviewer

Mike Hall

Interviewer, UGtastic

The Guest

Igor Polevoy

ruby and rails practice

The Conversation


Mike Hall Interviewer, UGtastic
Hi, I'm Mike with UGtastic, sitting here with Igor Polevoy. Igor does a lot of free and open source development on the Java platform. He's created tools underneath the JavaLite family of, well, tools. Yeah, frameworks. Oh, frameworks. One being ActiveWeb, ActiveJDBC, JSpec, and the, what was it, the HTTP Lite. The HTTP Lite. Basically, it's a very small client to access HTTP services. So, you kind of have this family, this framework, this stack of tools that you've built. What kind of led to you creating those?
Igor Polevoy ruby and rails practice
Well, I kind of envy, I think. For the time being, I was a typical Java guy, you know, not paying attention to what's happening outside Java. In the meantime, the Ruby and Rails revolution took off. And back in 2007, I was in the project, which was a Java project, but then Rails was slowly introduced into the project. And I picked up Ruby and Rails, Ruby as a language, and then Ruby and Rails, and I saw that developing with Ruby and Rails was so much faster and better than developing anything that we had in Java. And it was like, okay, Ruby developers enjoy this fantastic framework, why don't we have it in Java? Okay, so you were just like, how can I make something that's as quick to develop with? And that's where ActiveWeb came from. Right, so you were just like, how can I make something that's as quick to develop with? And that's where ActiveWeb came from. Well, no, that was not my immediate, my immediate reaction to this was, great, somebody must be developing right now. Oh, okay. Yeah, you wanted to see what was out there. And I waited a couple of years from 2007 to 2009, but nothing like that came out. So, I rolled up my sleeves and started developing first ActiveGDPC. Okay, so you started with the database first. Yeah. And was that something that you mostly used for your own projects? Oh, no, no, no. This was from the very beginning, it was used on commercial projects. We were building a massive system for an insurance company, and we had two and a half months to start and finish a massive project. So, if we didn't have an Agile tool, if we even went with something like Hibernate, at the time I was managing a relatively small team, it was a team of four people plus myself. And with ActiveGDPC, by the time we started the project, ActiveGDPC was already working. Right. So, you had to implement the rest. It was 80% or was it...? Well, it was probably 80% of what we needed for that one project. Okay. So, you had to implement the rest kind of on the line. Yes. And it was really funny because, you know, as a developer architect, sometimes you architect things right and sometimes you architect things the wrong way. Right. This one was architected right because when we hit the necessity of
Mike Hall Interviewer, UGtastic
Having many-to-many relationship, we didn't have it in ActiveGDPC. And my guys were like, 'Okay, back to Hibernate,' I'm like, 'Wait, we're going'
Igor Polevoy ruby and rails practice
When did you first release ActiveGDPC? We had it two days from now. Yeah. So, it was kind of battle-tested from the word go, you had the idea and then you immediately put it into production.
Mike Hall Interviewer, UGtastic
Is ActiveGDPC Oracle-specific or is it...?
Igor Polevoy ruby and rails practice
No, no, no, it's not Oracle-specific. So, the next implementation was for MySQL and then basically there's not much difference between different databases other than generating very specific queries for specific things like imagination.
Mike Hall Interviewer, UGtastic
How did you go about implementing all these adapters?
Igor Polevoy ruby and rails practice
Oh, basically I implemented Oracle, MySQL and PostgreSQL and H2 and two dialects for Microsoft SQL server were donated by the community. Okay, so this was, you had already released it and it was out in the wild.
Mike Hall Interviewer, UGtastic
And what license is it under? Apache. Apache. Okay.
Igor Polevoy ruby and rails practice
How did people outside of your community get to find out about it? Well, I didn't really do too much effort or any effort to publicize it. I basically threw it out into Google code and that's it. Okay.
Mike Hall Interviewer, UGtastic
And then I'm assuming that most people who find these projects are people who have had experience in Ruby and Rails and then start Googling like ActiveRecord for Java So, that similar wording is a little bit intentional because you want people to be able to make that... Yeah. You mean ActiveJDBC? I was thinking what to name this thing. Yeah. I didn't particularly want to name it a funny and nonexistent name. Right. That nobody would be able to type it. Right. I thought that ActiveRecord is a good name. It's also a name of a pattern. But... So, I took the word Active because actually, as opposed to like passive objects in Hibernate, it's a lot more active. And then I thought on the flip side, it's a very thin veneer on top of JDBC. Okay. So, ActiveJDBC and then came about. So, you started with ActiveJDBC. How did you come up with ActiveWeb? What was the impetus for that? Well, as soon as we implemented a massive back-end system for that company, we also had to implement about four portals. And to be honest, implementing ActiveJDBC was a lot harder. And I always thought that ActiveWeb would be something like that. Yeah. And it turned out to be very easy to do. I also implemented a number of other frameworks before them to make it easier for people to build web applications. So, I did have experience doing that. Okay. Although they didn't go anywhere. Why did you choose to make these open source tools? Why didn't you try to bundle them up and sell these tools as components or...?
Igor Polevoy ruby and rails practice
Oh. Well, number one reason, I'm not a salesman. But the reality is I used so much from open source community. Linux, all kinds of Java frameworks, you know, Ruby and Rails. I
Mike Hall Interviewer, UGtastic
felt that I should give something back. Okay.
Igor Polevoy ruby and rails practice
And... So, you've put this out on... You've created these projects and you've put them out on the Google Code. And then you shared them out on the Google Code. And people sort of find them and they... Did they just say, 'Okay, we have these adapters and here's some adapters'? Are you getting patches back from anybody? I created patches. I created branches for people to work in because Google Code is actually a subversion. It's not Git. At the time, when I designed it, I guess, Git wasn't as popular. So, you know, some people were like, 'Hey, let's move this thing to Git. ' I'm like, 'Okay, what advantages are we going to have? ' Right. So, I guess historically, maybe someday we'll move it to Git. So, but mostly you get, like, what changes requests through the forums or...? Through forums, through personal emails, through patches, through branches. Through issue tracking system that also, you know, we're hosting with Google. So people submit sometimes patches, sometimes requests, sometimes find bugs. Do you have any idea, like, how many people are using, like, ActiveJDBC or ActiveWeb? I'm assuming that more people use ActiveJDBC than ActiveWeb because ActiveJDBC was older. I guess it came out before. There's an interesting use for ActiveJDBC that I found. Some people with big websites already built in Ruby and Rails. Right. are building massive back-end processes and they're finding ActiveJDBC indispensable because it mirrors a schema that is compatible to Rails one-to-one. So you can have these Java components that can hit your existing... Exactly the same. You can call it your legacy Rails database versus... Exactly. ... what you used to call the legacy databases before Rails. Yep. Okay. So, but I mean, do you have any idea, like, do you have... How many people? I don't know. I threw... I threw... You know, it seems like... I'm assuming tens of thousands, maybe... I... Sorry. So it's very active. It's very active. Because, look, I've been using so many different frameworks, like Log4J and others, but I never ask a question. Yeah. So, the people who are actually active in a specific community is a tiny fraction of that community. Yeah. It's usually, like, for every one person you hear, there's a hundred that you never hear from. And so, are you using... are you still using these tools? Are these something that are still in units? Yes. Well, the team that I started with back in 2009, actually I was running different teams before, but in 2009 is when we started using the frameworks. Grew to 12 people within a span of two years, and we built, like, four massive websites for members, for insurance companies based on ActiveGVC and ActiveWeb for Johnson & Johnson, for Humana, for Discover, for insurance company Discover. Right. So, that was between... I was with that company between 2009 and 2011, at which point I found
Mike Hall Interviewer, UGtastic
new employment with Groupon. Ah, okay. So, that's where we're at right now. And so, you're using the tools here. I've worked on a project with you. That's... To be open and honest, I've worked on a project with Igor and I have used the tools. They're good for Java. But... No, they are really high quality. And that's... Anybody that I've spoken to that's used them has had the same feedback.
Igor Polevoy ruby and rails practice
But are you using them to build anything outside of Groupon? Yes. I also have my own startup. It's called ExpressPigeon. com. Mm-hmm. Well, ExpressPigeon as in... It's an email marketing system. We'll have a lot. Yeah. So, the entire system is built, of course, on ActiveGVC IQ. Because I personally believe... Not because I built the tools, but I personally believe that without Active... Basically, today in Java environment, you have only two contenders. So, the Play Framework and Active Projects, the ones that I built, which allow you to develop at breakneck speed. Mm-hmm. And maintain high quality of your code versus kind of legacy Hibernate Spring stuff. Yeah. Yeah. And that's... With the testing, you have the JSPEC framework as well. Yeah. So, it's a pretty complete stack. You... It's kind of like with the Rails bundle. And then you have, you know, the Active Record... Uh... Yeah. Active Record and then your... The Rails and then the test units all kind of together. Right. In one piece. Okay.
Mike Hall Interviewer, UGtastic
Thank you very much for taking the time to sit down with me. Mike, thank you so much. Appreciate it. Thank you so much.

Critical Insights


durable
"Igor's envy of Ruby on Rails' development speed and efficiency led him to create tools that could match or exceed it in Java."
durable
"ActiveGDPC, the first tool in the family, was developed for a commercial project with tight deadlines, demonstrating its practicality and effectiveness."
durable
"Igor chose to release his tools as open-source because he wanted to give back to the community that had supported him with tools like Linux and Java frameworks."
durable
"ActiveJDBC and ActiveWeb have found unique uses in existing Ruby on Rails projects, showcasing their versatility and compatibility."
durable
"The success of Igor's tools is measured not by the number of users he directly interacts with, but by the active community that continues to contribute and use them."