(x) can’t be what (x) advocates world wide claim that it is. You see, there’s no such thing as a free lunch. Anything that seems too good to be true probably is.
That’s good advice, because it will usually save you from some hidden costs. A couple of years ago, my family watched fireworks from a friend’s yacht. Now, I don’t have many friends with yachts. Actually, I don’t have any friends with yachts since my friend lost his in the dot com bust in 2000. The fireworks broke right over our heads. They reflected in the lake, and echoed off of the hills. We were thinking, it just can’t get any better than this. Then, the fireworks ended, and every boat in Austin broke for 5 boat ramps, and clogged the entrance to every marina on the lake. Between short tempers, a whole weekend’s worth of alcohol, and some reckless boaters, it was a bad scene. Or, you could say the three hour trip out was the cost for 25 minutes of bliss. I’ve repeated the scene in a car instead of a boat in Memphis, Boston, Hingham, and many other places in other years. You see, you just can’t have your cake and eat it too. Can I hear an Amen? or an EJB?
Always good advice?
=======
But “there’s no such thing as a free lunch” is bad advice too. This year, we debated going out on a smaller boat with a friend, or driving into town. Scarred from our previous experiences, we decided to walk down the street to a small clearing overlooking a spot on the same lake. We expected to see mediocre fireworks at a distance. Actually, we saw fireworks rivaling the best in Austin, breaking nearly over our heads, and reflecting in the lake—all in an intimate little clearing. It was an awesome experience with no downside whatsoever. Ah, the life.
You see, believing “there’s no such thing as a free lunch” can occasionally keep you from getting free lunch. And if you dig in your heels and blindly mutter something about cake, you’re going to miss it.
The secret
==
The whole secret to all of this is knowing when to angle for the free lunch. If you’re not the kind of developer who likes breaking new ground, you’re going to want to form some relationships with people—consultants, or developers, or whatever—who you trust who do like to dabble in new technologies. And you’re going to want to watch the news sites that tend to break good news first.
Some in this industry really know how to pick a winning wave, and some can do it very early. Here’s the thing. If you’re too early, that’s not going to do a mainstream developer very much good, because the wave will not break at the right time—there’s not likely to be enough marketshare to act on the information. Some do a good job of picking out that perfect wave just as it begins to break. Those are the people you want to watch. Now, I’m not saying that you should treat each visionary as preaching the one true Gospel. You need to mix in a measure of your own common sense, and occasionally pay someone to interpret the waves for you, in the context of your own business problem.
Free Lunch
==
There are free lunches out there. Faster computers that cost less come out all of the time. Dependency injection containers like Spring have completely gutted the idea of EJB 2. My mirage drive kayak lets me pedal and sail with much more speed than I ever could before. And there are bound to be languages more suited to certain domains than Java.
I believe I’ve found a ‘free lunch’ in Ruby on rails. Oh, it’s not always free. If I need to do two-phased commit or hardcore object relational mapping, this lunch may cost me more than I’m willing to pay. But often enough, it’s for all practical purposes free.
- I can train a team of Rails developers faster than I can teach a new Java developer Spring plus Hibernate plus whatever web mvc you want plus all of the other frameworks and tools Java developers have to know.
- I can build my applications much faster than I could before.
- For many applications, the latency in the database is the overriding concern, so I don’t even notice differences in performance.
- I can trivially expose web services, letting other applications, potentially written in other languages, quickly access my Rails services.
Now, I know that some will tell me that the lunch really isn’t free. But you can tell that to my customers that pay a fraction of the price they’d pay for a Java application, and get something that’s easier to maintain, just as fast, and on an earlier schedule. From that exec’s perspective, the lunch is free.
Free lunch does happen. You just need the wisdom to know the difference between free and “free”, and the courage to take advantage.