A side effect of working for OptimalBI is working with new technology and young people. Something I became aware of years ago was that I couldn’t keep up with software technology from a technical viewpoint, and so I stopped trying. Well not completely, instead I found technology from a technical viewpoint is mostly evolutionary. Sure, people are doing some very cool things but when you look under the hood, in many cases it’s more of the same.
One of my roles at OptimalBI is to provide technical guidance to some of our junior team members. These conversations often yield suggestions for the latest and greatest programming languages and software to solve our problems.
One of my regular conversations goes like this:
Junior person – There’s this cool language we could use to solve an issue I’m having.
Me – How long has this been around?
Junior person – Almost a year.
Me – Not a good idea, not mature enough. Use <old language here>.
Junior person – Grumble, grumble, Luddite, grumble, grumble.
Something you learn over time is that (relatively speaking) writing code is easy; integration with the supporting ecosystem is hard. We need to consider things like are there enough people in our team who could support something built with this language? and have to be careful that solving one problem doesn’t create many more problems elsewhere.
New languages often have restricting ecosystems they rely on. For instance, a niche web server technology. So the developer gleefully writes a bit of logic in 5 lines instead of 50, but now there is a whole new platform to understand and manage. Can this new platform play nicely with our existing infrastructure?
Integration is the biggest pain in regards to the latest and greatest languages. If the world only worked in Web Services, life would be simple. However, a lot of what we do is interface with other software; enterprise software is the worst in this regard and I suspect they move at an even slower speed than me. As a data company, database support is paramount for many things we do. What good is the greatest string manipulation language if you can’t connect to the database? We could introduce more moving parts to solve the problem, but is it really worth it overall?
You should definitely innovate with what you do with technology and there are occasions where adopting new programming languages makes sense. But most of the time I’ll go back to my usual advice to wait and let the thing mature. There are better things to do with our time than be the first to discover and resolve a new issue. Coding these days is 20% skill and 80% Google, mature programming languages have a wealth of support material available, and many useful features have already been implemented. So, for me personally, I do not see the need in many cases to embrace new programming languages too quickly.
I can see one positive from these encounters, it’s good practice for when my child gets older.
All the code, all the fun – Ben