Beginner developers: When considering your first language

There are so many things to consider these days when you are selecting what tools to use to build your system or application that making a choice becomes a difficult process.

You may find it strange but a lot of companies decide the tool set they are going to use entirely based on the personal preferences of the founders or the CTO. That is fairly obvious for startups as most of them begin with just one or two people and an idea, the same is true for the bigger organizations when they make decisions about the next generation of software product/s they will build.

There are some traditional reasons in play when selecting the tech stack, like the existing products are too big and complicated ergo too expensive to rewrite in something better, the CTO and/or the developers are too specialized in the tech tools they use and can’t or won’t use anything else

The same personal preferences play a huge role in keeping alive some technologies and languages that are long overdue for retirement, things like PHP, Python and even some newer and popular frameworks like React.

PHP is only alive because of WordPress, it is a very popular blogging (and not only) platform that has the lowest entry level that will allow you to produce a good looking website (thanks to the biggest template base in the world). Thanks to Wordpress there is enough of demand for PHP developers to keep it alive, there are other companies of course but they are mostly using it because of the traditional reasons mentioned above and if not for the major factor keeping the language alive (WordPress) they will not be able to function as a company for long.

Python was a practically dead language a few years ago, only a lucky coincidence revived it. The last bastion of Python was the couple of universities that kept teaching it as introduction to program languages, as traditional for the education systems everywhere they are always behind the tech treds but as luck will have it some of the people researching Machine Learning needed to test the theories in practice and as Python was part of the university curriculum and voala, Python was selected.

And after the Machine Learning become popular the unfortunate situation was that most of the libraries available to use where in Python and most of the researches in that field where already using it and I’m sure at some point someone said something like “Python is so easy to learn, so it will be easy to people to get involved in Machine Learning”. And when a language gets popular people start experimenting with it, and some of the experiments get blown out of proportion (Django) and now people are trying to use it for anything.

So this is how a script language, selected for it’s simplicity so the students have some idea what programming is, ends up being used for things it was never intended to. There are a lot of people working on Python at the moment to fix all the problems with it but only time will tell if they will succeed, but considering no one of the big tech companies is stepping behind it (like google did for JavaScript) the future doesn’t look good.

That by the way is not the only dead language that got revived by coincidence, Apple did the same thing for Objective C (they did killed it again but it took some time)

React, the most popular framework for the past year or so, afer Google decided to pretty much kill Angular. It is the king at the moment, the ease of use, the rich functionality, the plugins, the community and on top of everything it is backed by Facebook. But things change and although the speed is not an issue like it was for jQuery (jQuery was mostly killed by the loading speed of the libraries and the huge amount of them one needed to include in order to do something interactive) it have the same problems with getting too big in attempt to do everything and do it better.

The one big thing that is killing React at the moment is the ease of development, 18 000 dependency files, no idea how someone was looking at that in the beginning and said “that is fine”. It all started with Typescript, people realized it is very good and practically solves most if not all problems with JavaScript.

React is also designed and created to solve JavaScript issues but as a framework and just like jQuery it does it by introducing slightly weird syntax, but in general it just organises the most common use cases and allows the developer to reduce the amount of code.

But that can’t compete with the ease of use of Typescript, widely based on the very popular and proven true the years C#, It solves the version fragmentation of JavaScript and introduces proper classes, inheritance, interfaces, direct access to the DOM objects and all of that in strongly typed environment to catch errors early. To be fair JavaScript was going in the same direction but very slowly and the versions adoption by the browsers is all over the place and the latest features of JavaScript are practically unusable because wider compatibility is way more important than using latest when web development is involved.

React also attempted to adopt Typescript but only for the strong types to reduce variable types errors and nothing else, so at the moment anyone using React and having a good understanding of Typescript is faced with the word situation to code something in very complex (two or three time more code) syntax by using language that is capable to do the same thing in 5 lines of code.

Also Microsoft did not stop with typescript, they introduced the .NET Core and Blazor, the new technologies made possible web applications at the client side with the convenience of using C#. And considering the big number of companies that already use the .NET environment that made one more reason not to move to something else.

Last but not least, Google did not just decide to drop Angular (the other competitor for best framework) with no reason, they made Flutter, a pixel perfect framework that not only solved the problem with multiple browser look and feel support but practically made working multi platform deployment from single code base reality.

So, less and less reasons to use React these days and considering the major backing is from Facebook that created React for internal use and have entirely different incentives than the larger development community, the direction of the future development of the framework is uncertain.

Too early to say how long it will take to disappear but the signs of trouble are there and it is no longer a question of if but when.

A beginner developer should concentrate on learning as many languages as possible and try to implement them in as many types of applications as possible. Only the wide range of knowledge and constant learning will make you future proof. That said, starting with a language with strong and proven fundamentals like C++, Java and C# will be harder (especially C++) and more difficult than JavaScript or Python but will give you the best chance of a long career in software development.

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store