Rick Nooner reports on garbage collection languages (like Ruby and Python) vs. compiled languages (like Java and C++), and what it can mean for your bottom line:
When I first came to XXXXX, I was asked to build a system to collect performance and usage metrics from all of our network gear via SNMP, both for capacity and planning purposes and for a new usage based billing system. We had tens of thousands of switches and routers in our network spread across the US, Europe and Asia. I had to collect samples from each device every 5 minutes.
I was hired because I said that I could do this job in a couple of months. Everyone else claimed that it would take a year or more to do. My secret weapon was Python. There were no SNMP bindings at the time for Python but it was easy to add that capability via the CMU SNMP libraries. I finished the first working version in less than a month.
Rick continues…
We wrote this application internally, even though commercial alternatives, existed because we were quoted over $20 million dollars for an equivalent system by more than one vendor.
… So… one proficient Ruby/Python Hacker ~= $20 Million in consulting fees for Java/C++ programmers?
Only, the Ruby/Python hacker gets the job done in 1/12 the time!?!
Even if he’s 10x off the mark, that’s a lot of dough, and a lot of time saved.
It gets better:
The second part of this story is the central collection system that collects the data from each host in the network and does long term trending and analysis.
Our original collection and analysis system used SAS, which costs roughly $300,000/year the way we were using it. I rewrote the entire collection and analysis system in Ruby during a six month period, saving the $300,000/year and increasing performance by an order of magnitude. The Ruby based system also uses Postgres to store the data it collects and analyzes.
I’m going to go out on a limb and bet his software doesn’t do 100% of what these packages / outside services would have provided.
Even still…
The implications are pretty clear from Moore’s Law, etc. that the limiting factor is and will be developer / development time.
Is Ruby and/or Python 20% slower than Java/C++?
Does it matter, if an extra wintel box only costs $600 for load balancing, while saving $80K per year for each C++/Java coder you don’t have to hire.