Power vs Control

I'm a dirt bike racer, just for a few years. There is common myth among bikers who start racing. They buy big, powerful bikes; I mean most powerful in terms of engine's horsepower. In the beginning, a big bike makes you smile; it simply gives you a feel of power. You can roost all the time in any gear, and your friends are amazed. Your neighbors hate you. But the more power you have, the more effort you have to put out to control the bike. Big bikes are hard to corner for the inexperienced rider. It's funny to see a a biker ride straight through the bend simply because s/he is not a good enough rider to control the bike. He doesn't ride that bike, that bike rides him.

You gotta have a little control over direction. Some bikers realize that they don't need so much power. They need control to make cornering easy and effortless, and ride the bike wherever they want to. So they choose the smaller bike; they can ride smoother and longer, and it costs them less to run. They are faster than those who constant struggle with their machines. Yep, I'm ready to make that decision.

You can observe the same myth you can observe among young developers. They have an urge to have everything "powerful", like languages, libraries, IDE, computers, etc. To them, powerful means that something has a lot of features, is higly customizable, is big, is complex, and is fun to discover. It is something that is giving them a feel of power. Beware -- the complex language and libraries are like black holes; they suck you down to the point of inertia, and suddenly you discover you're lost your focus completely. Instead of using the power of a complex library to do something useful, the library is using you to autodebug itself!

Some people are smart enough to realize that they don't need so much power. They need control to make implementation of corner cases easy and effortless and to develop applications to do whatever they want to. They choose libraries that are just enough to do the job with a little time spent on it. Here at e-point, we're grown enough and made that decision years ago.

Years ago, we had a chance to use Hibernate in our project. It was nightmare. Hibernate is almost as complex as JEE application server. Yes, it's powerful in terms of the number of features, but that comes at a cost. I remember that we spent a lot of time to figure out how to disable some of these "features". I really disliked Hibernate; too much Google-driven development for me. In other projects, we were using Turbine and its Torque as O/R mapping. It was a much lighter solution than Hibernate, but it had its own quirks and was quite limited. So we've build own O/RM and now called OneWebSQL.

I've been using OneWebSQL for years as an Application Developer. It is just enough for me. Forgot about Hibernate and other similar solutions. A few months ago, I joined the OneWebSQL team, and started meeting people at conferences, Internet, and so on. Guess what? They have the same problems with Hibernate that I was fighting in the ancient times. It's ridiculous. Some people would say "every generation has to blah blah". Yeah sure. But you don't have to. Are you ready to make that decision?


See also: How OneWebSQL Differs from Hibernate