Software Programming Languages - Is there a case for standardisation
I have been learning programming languages from the days of my engineering education. I started with Fortran, then learned C, then scripting languages such as Shell, now Python, Javascript, Html, then C++, Java, recent past Go, Scala, Ruby and then I do not see any end of it. May be I missed listing some of them here from my learning list.
Then I see my continuous struggle to hire right talent for the development work - do we need for this project - Java guy or C++ guy or C person or a person who knows both C and Java or language does not matter here.
In fact, I had very interesting conversations on this topic with my colleagues and team members whether we can expect people to learn another programming language or not quickly if work demands.
Someone from my team resigned last year and when I asked him reason for his resignation - he told me that he wants to build his career just around Python. He does not want to loose his expertise in this language and in his opinion, building expertise in any language takes multiple years. He did not find opportunity in the team in this language and that is why he wanted to leave.
Then I had another conversation with other team member whom we requested to pick up new programming language and he had his concern on that request. He argued that it is not easy.
Two or three years back, I attended one conference and then I heard about polyglot programmers and someone argued that learning programming languages is very easy and in fact, there is a case for polyglot programmers.
This is one side story. Other side story is that I always also had pressure to improve my software teams efficiency and productivity and when I was thinking about that and learning on it, I realised that processes and standards improve efficiency and productivity and when I experimented with that even for my personal productivity, I could see dramatic changes in my own efficiency and productivity.
I have also seen another world which seems very different from standardisation perspective and that is the world of telecom. Telecom has a history of standardisation and I think we have seen benefit of that. GSM, 3G, PSTN networks are example of standardisations where a bit was standardised and a bit was innovated but within boundary of that standardisation. Firms compete in that market on different parameters. May be that standardisation improved abilities of firms to come out with those complex systems in market quicker and ensured certain level of inter-operability.
So my question is that do we have a case for standardisation and unification of programming languages for improved productivity and efficiency for software products so that we can take this industry to completely different level or whether it will stifle creativity and innovation? When I say standardisation and unification, here I do not mean a particular programming language standard but dividing software development requirement into different segments and then identifying only one programming language for that and all software firms collaborate their to define that programming language standard? May be, it will reduce shortage of talent in market since now there will be a bigger resource pool for that language, it will improve software engineers productivity and in turn firms productivity and then may be impact of software industry on society will accelerate much more and we will be able to build much more complex systems quicker.
Any thoughts?
I would say that good observations but learning is continuous process either programming languages or any other things. Even though when you are entrepreneur or self employed or householder, change and learning is continuous process. When people grow in the career they start seeing things differently. In fact is it good idea to make choices and adopt changes, however the fundamental of computer science and fundamental of languages remain same. Vocabulary and syntax of the programming languages tend to change over time so we have to adopt and cope. While people see the data science, ML/AI, Big data is the way forward, it totally depends and important to note customers demand. While out of excitement we bring new feature and insight with the product, are our customers willing to pay is the question.
Wow Sir, You wrote so many articles to learn. It would be my pleasure to read articles of yours
Languages keep evolving and evolution is a continuous process in any field. I think programming languages are already categorized & standardized (informally though) based on the below factors: 1. Need & type of the Applications(Bigdata/ML/AI/Gaming/System SW/Application SW/ecommerce/online/mobile App) 2. The runtime nature/scope of Applications (real time/non-real time) 3. Targeted users/programmers (expert-level, beginner level....kids) 4. Simplifying /Abstracting the coding complexities from the programmers (ease & speed of coding) 5. The speed & performance requirements of the applications 6. The HW/SW requirements needed by the applications However the choice is left to the programmers/companies to pick the language based on the cost in terms of availability of HW/SW & Human resources
sure sir
What I mean is a choice of one language for a category of application. It is like producing only one color and one type of car for a specific customer segment.