Programming languages and Investment bankers
Anand Kumar Keshavan ( Founder/Partner- SwanSpeed Consulting)
Huh? But you read that right. A few days ago I met a senior executive at a technology company ( who is fairly tech savvy), who told me that all products in the next few years must be built using either node.js or Golang as the language for the backend. Further enquiries ( from a puzzled yours truly) revealed that this is based on advice from very reputable investment bankers.
The influence that investment bankers have on programming languages is not new- after all, Goldman Sachs have been on the Java standards committee for a very long time. Even Credit Suisse seems to be on the committee. And this committee is the one that decides what JSRs will find their way into the next version of Java. And it would seem that Goldman Sachs, and investment bank , has a say in the evolution of Java as a programming language. (A hacker friend of mine said that this is an important revelation as it explains the generally unwieldy nature of Java).
Is it a wise idea to listen to investment bankers when it comes to choosing the programming language or any other component of a tech stack? Well, almost as much sense it makes for a surgeon to choose his tools for diagnosis and surgery based on the advice of an investment banker. Or would it make sense to choose your tech stack based on advice from a surgeon?But this is only software, right?
In my opinion, choosing a tech stack for a new product (or when embarking on a major technological upgrade like migrating a monolithic system to, say a micro-services architecture) on the basis of casual remarks by investment bankers or other kinds of "non-tech" guys would be, well, disastrous. In an industry that is moving towards polyglot tech stacks, such ideas must be avoided at all costs. For example, a system that comprises of several micro-services, it might be advisable to create the services dealing with data and analytics etc , using Python, while the components that need high degree of independent scalability might be better of written using Scala/Akka( or even Erlang/Elixir, if "carrier-grade" scalability is desired), while many mundane configuration services- roles/permissions, session management etc could be written in Node.js or Java. Similar arguments could be made for SQL vs NOSQL vs. Graph databases etc. Horses for courses, is the mantra really!
Choosing the elements of a tech stack is a serious business. It depends on several factors- your application domain, degree of configurability it offers, scalability, maintainability, the capability of your team to learn, ability of your organisation to attract the right talent and so on. It would be a serious mistake to base this on the opinions of investment bankers, lawyers or surgeons!
Well, programming is a craft like carpentry and a carpenter has different tools at his disposal. And generally speaking a carpenter is the best person to determine which tool to use for which part of his craft- not a banker, accountant or a surgeon.
(The author is a computer programmer and a founder partner in SwanSpeed Consulting. If you are building a new product or considering migrating an existing system to a micro-services architecture or are looking for the best ways to solve a very specific or hard problem, do reach out to us. We bring serious muscle to such decisions).
Comments
Post a Comment