About a year ago an event happened that shocked me and I believe, it changed my life forever.
I still remember like it happened yesterday,
I had just arrived at the office,
I had said good morning to the colleague sitting in the desk in front of mine,
I had just put a cup of coffee a few moments ago on the right side of my desk,
rather far from the keyboard and mouse to be sure I do not damage anything if the cup had fallen, but close enough to be grasped without needing to take my eyes off the monitor.
I am such a hard worker!
At a certain point,
a few minutes later, the almost ambient and relaxing sound of the ticking keyboard was interrupted by the explosive sound of the door opened by one of my colleagues who, you could see, was full of enthusiasm and was carrying a smile that was going from an ear to the other.
He sat down and started to stare at us.
He had a big announcement to give us, you could see it from his shining eyes full of joy.
I tried to ask what had happened,
what were the reasons of that mood but I did not even have time to open my mouth when almost shouting and at a speed equal to that of promoters of the 5 seconds before a video on YouTube I heard the fateful phrase.
YESTERDAY I INVESTED IN BITCOIN!
At that time we were in the middle of the crypto-mania.
Every newspaper, post on social media, blogs and politicians was speaking about Bitcoin.
For some of us it was the absolute evil and all this hype would have come down within a few weeks for others the crypto money supposed to be the saviours of humanity, giving power to the common people fighting against the powers,
They were the digital comparison of Guy Fawkes.
I remember that among colleagues we talked about the pros and cons for weeks.
There is so much to say on a subject when the different points of view go from "Bitcoin is just a momentary speculation" to "one day my nephews will use cryptocurrency and the blockchain system to do the daily shopping".
And to be honest I was, and in some ways I still am, more leaning towards the pros than the cons,
this is the topic for another day.
(Feel free to write your opinion about it below or on the facebook page).
The reason why that moment remained in my mind is that reflecting on it, during my commute home that evening, none of us had ever talked about investments.
And this applies to everything, never hearing any of my colleagues talk about real estate, buying shares of a business, or mutual fund whatsoever.
one of my colleagues spent about a month worth of salary to buy Bitcoin, Etherium and all that good stuff.
I went back home climbing up the stairs wondering,
"What does it mean to invest anyway?"
Here is the definition from the Cambridge University's online dictionary:
Investment is "the act of putting money, effort, time, etc. into something to make profit or money, effort, time, etc., used to do this".
Investing is making a profit in a form or another, Pretty cool, isn’t it?
I was hooked!
I started doing research, found mentors online and bought several books on the subject,
One after the other.
I've always been an avid reader.
Jim Rohn, a famous speaker, once said that we are the average of the five people we spend the most time with.
This means that if we want to improve the quality of our lives, we must read and share the thoughts of authors that we value and we want to replicate their successes.
Although I do not completely agree with this sentence (I am and have always been the only programmer among all my closest friends and, probably like you who are reading this right now, I was the one to call when something was wrong with their computer), I can only agree with his solution.
Reading allows you to pick someone's brains and learn from his mistakes and his experiences, which is something impossible within your circle of friends.
Even today more than a year after that fateful day, on average for every three books I read, one concerns personal finance and investments.
Understanding how some companies are able to provide products and services to their customers,
The amount of work,
study and preparation that is behind the glittering objects we find in stores, gives you another, new perspective on everyday life.
Like the research to do when you study in detail a business of which you want to buy the shares,
in this blog post,
I will examine with the eyes of an investor if PHP and who among the competition is worth the 'purchase'.
Our goal today is to answer the question: "What is the best programming language to learn in 2019?".
We will do it together a comparison among different back-end programming languages.
One of the first things to check in a business is the Return Of Investments,
As I have already anticipated for investments we mean the act of putting money, effort, time and other into something.
In this case, the "something" is to learn a programming language like PHP.
Let's start with a couple of simple questions:
Why do you want to learn PHP?
What will be the return after learning it?
At the time I am writing, there are 903 job listings in London on one of the largest online platforms and another 230 ads, also in London, on platforms specialized in IT jobs with an average salary of £48987.
Not bad, not bad at all to be honest.
The numbers increase considerably if we take a look at the technological HUB of the planet,
In the state of California at the moment, there are 1478 ads with an average of $106497 per year based on 1068 salaries
In the Pan-Asian countries, the number of ads is smaller but with a much wider growth rate.
I would say that on both sides of the ocean there is enough demand to sleep peacefully.
Obviously, in the last decade, since the number of programmers is much higher, the competition has increased a lot.
But this depends on the time and the quality of work invested in improving your skills and not by the demand
I would say spending time to improve your skills with PHP can be well paid.
Let's not forget, however, that we must also take into account external factors and future forecasts as well.
There are more and more people who want to be web developers.
According to the last generation to become a programmer you had to be a genius,
but now the internet has brought democracy and we hear about friends and acquaintance that change their career on daily basis.
Anyone who can concentrate for at least 10 minutes a day between a video of sweet kittens and notifications coming from social networks can learn to program in a few months.
There are specialized sites that include courses that have the objective of keeping you up to date and if you follow them carefully, with the skill you learn you can find junior positions even after a few months of experience.
Another external factor to watch out for and the political situation in which we are living,
I do not want to make this post too serious but this feeling of nationalism does not help when you are looking for a job or you want to change the current path of life,
Wherever you are reading this post from, take a look at this picture:
The UK has the now famous Brexit and businesses are already starting to fire,
EU is experiencing a wave of anti-Europeanism,
the US has Trump and its wall,
China has not grown so much last year.
The whole thing seems bad especially from the point of view of a person who has moved from Italy to England and is a regular attendee of conferences.
In this conferences I see that about half of the web developers attending comes from another country.
Stop with the political affairs,
Back to PHP!
The chart below shows the vacancy trend for PHP developer from 2004 till now,
as you can see despite the new "trendy " languages available right now, PHP has not had any decline in the last 10 years
Things are looking steady.
It's time to do some market research and find the most "dangerous" competitors.
We start by making distinctions and narrowing the field,
What are we looking for?
If you are reading this post there is a high possibility that you are or you want to start working as a web developer.
here we are talking about Back-end development.
Personally, I like to divide this section into subcategories, usually 3
Scripting languages, here we find languages like PHP, Python, Ruby, and Nodejs.
Functional languages, famous for Scala, Elixir, Haskell and some others.
High-performance languages here we talk about Go, Rust, Java
Other languages and platform that are worth mentioning are C# and, in some way, the brand new AWS Lambda which is really useful if you want to learn how to work serverless.
As you can see the list of competitors is already long enough but I guarantee you that I have just scratched the surface.
Before showing you the numbers I would like to take a quick look at the performances (under the point of view of popularity) of some of the programs mentioned above.
Here is a diagram from Google Trends
In this diagram, you can see 4 back-end languages and how their popularity has changed in the last 5 years.
to keep things among friends, all of them are scripting languages.
In red, you have Python which, although years ago was already popular enough, with the advent of AI and Machine Learning has made great strides.
In blue, still second, even after almost a decade in which no updates have been published, the (already considered dead) PHP language.
At the end in yellow and green respectively we have Ruby and NodeJs.
Two languages that were intended to be the future for all developers but that have only moved horizontally for years.
Enlarging our vision and considering other types of languages that belong to the backend I have attached another diagram.
This time it contains PHP in blue, Go in red, Java in yellow and finally, one of the most 'important and famous languages of all times: C ++ in green.
As you can easily spot Java is clearly the most popular language among all,
As second, once again PHP and
finally Go and C ++ on equal points.
Here are the lessons to learn from these two diagrams.
The programming languages that were most popular are still among the most used in our days (see Java and PHP).
Of course, nowadays anyone can publish a new language or framework.
Which affects the popularity and use of the most popular languages, hence the descending theme.
At the same time, we have the meteors, the languages that have had so much hype for a very short time and that at the end of the games have not gone anywhere.
I want to write a particular note for Python.
It is a fantastic language, and the first to have full support and a sufficient number of good libraries suitable for working with AI, Deep Learning and Machine Learning.
Probably one of the few languages to have an upward trend in recent years.
it looks like the Netflix of web developers.
The question is what will happen when programmers will create apposite languages and recover the gap?
Will the world really need all these data analysts and data scientists?
Another aspect to analyze when trying to find a business to buy is management.
Is the CEO good enough?
Does the board of directors have a fairly long-term view?
In this section,
we will take the same concepts using some of the above languages.
Let's start with PHP, and start immediately with the answer.
For me, it's a no!
PHP version 4.0 was released in May 2000,
the fifth version during the summer of 2004, fair enough.
version 7 (note that I wrote 7) is dated December 3rd 2015.
Version 6 is nowhere to be seen.
I understand that there may have been problems and things are not always the way they are planned but
in the end,
about 11 years have passed between the current version and the previously published official version.
This is not good and if it was not for this factor you would not even be reading this post.
It must be said that versions 7, 7.1, 7.2 and 7.3 have been published on an annual basis and that writing in PHP has never been so fun and performing.
Do you want more info?
As the boys of hackr.io wrote
PHP 7.x and almost 3 times faster than any application written in Python 3.
Here is the complete article that was written by Aman Goel, take a look Python vs Php in 2018
The same cannot be said for Java,
This is the list of the published versions from 1996 to today.
JDK 1.0 (January 23, 1996)
JDK 1.1 (February 19, 1997)
J2SE 1.2 (December 8, 1998)
J2SE 1.3 (May 8, 2000)
J2SE 1.4 (February 6, 2002)
J2SE 5.0 (September 30, 2004)
Java SE 6 (December 11, 2006)
Java SE 7 (July 28, 2011)
Java SE 8 (March 18, 2014)
Java SE 9 (September 21, 2017)
Java SE 10 (March 20, 2018)
Java SE 11 (September 25, 2018)
Have you ever seen something more constant?
So much of the market cap has been taken by new languages recently but this is the same.
As mentioned earlier, what happened several decades ago only in the best American and European universities now thanks to the Internet can be done anywhere in the world,
No need for mega machines or big budgets.
The Internet has made everything more democratic, which is good.
Python 3.0 - December 3, 2008
Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014
Python 3.5 - September 13, 2015
Python 3.6 - December 23, 2016
Python 3.7 - June 27, 2018
Even the core programmers of Python have given their best and have always been punctual with deliveries.
Guido van Rossum, the creator of Python, has succeeded in creating a cool language with an easy syntax that is very performing and suitable for TDD (Test Driven Development).
I know dozens of PHP developers who have studied and appreciate Python.
A problem known to Python programmers is the lack of features provided with the basic language installation
if you want to use it you must use Python libraries, modules, and frameworks to accelerate custom software development.
There is no better administration than the one of the Go programming language, also called Golang.
Robert Griesemer, Rob Pike, and Ken Thompson are all minds coming out of nothing less than from Google itself.
In some ways, Go looks like to the good old C.
But evolved and ready for todays' applications.
The good news is that not being a scripting language, it is really worth learning even if and especially if you already have extensive knowledge of PHP, Python, Node or Ruby
Golang is a relatively new language.
the first version was released in the spring of 2012 and we are still at version 1.11.4 dated August 2018.
With the term moat economic, Warren Buffett intends the ability of a company to maintain competitive advantages over its competitors.
The goal is to protect long-term profits from other businesses.
The question in this section is:
Does PHP still have the moat in the programming industry?
Before giving a voice to the numbers, let's take a look at this chart.
last year PHP was the fifth most written language on GitHub repositories and the third most used tag on StackOverflow,
The performance of Java was a bit better because you've already seen that Java has more programmers in general,
Python has done more or less the same, better on GitHub worse in Stackoverflow.
Here is the incredible leap made by Python regarding Job vacancies
Ruby a little behind, Go is currently a lot back together with another hundred programming languages.
Why do we use GitHub and StackOverflow as references?
The reason is very simple, GitHub indicates how many projects are created and committed for a certain language, the more repositories the more popular the language is.
The number of questions on StackOverflow indicates the level of support that is present in the community of the language.
If you need to solve a problem with your code it is much easier to find the solution if you are programming in PHP than in Golang.
How easy is it to get into the language for the first time?
To be premised that none of the languages we are talking about in this article is very difficult (we are not discussing Assembler here),
and that nothing is impossible to learn, here are some considerations for what regards back-end languages.
Python is considered very easy to learn especially for beginners due to its simple syntax and high readability.
PHP is a bit more complex but still very simple for entry level, given its nature, things are going to get complicated exponentially when working with OOP and design patterns.
with Java, we start to raise the bar, not so simple for people who do not already have some experience with other languages.
Ruby and Go are the most complicated for many aspects ranging from syntax to deployment.
But I repeat nothing that cannot be learned with a little practice.
There are several sets of components that have been created for each language to make your job easier,
They are called frameworks, and in some ways, although it may seem counterintuitive to learn both the core language and its frameworks this will make the basic understanding of the chosen language much simpler.
Especially if you spend time analyzing and studying the files created by other web developers.
Do not approach the language immediately though.
Make sure you have a thorough understanding of the basic syntax before trying out frameworks like Laravel, Ruby on Rail, Django, Spring MCV and related.
Net bottom line refers to a company's net earnings, net profit, net income or earnings per share
In other words,
it is the gist of the topic.
In this article, we have seen different points of view regarding multiple specific programming languages for the backend of web applications.
I believe and hope to have been quite objective and have given both stick and carrot to all the above-mentioned languages.
In any case, as you have just seen, every language has its pros and cons.
There is no "de facto" web language,
no sign of "the best programming language of 2019" and if it existed it would not have lasted so much because of the number of new programming languages published day in and day out.
With this sentence,
I would like to close with linking to a video from Joma Tech that I saw a few months ago, I believe is one of the best available online talking about this topic.
Take the opportunity, for whoever lasted until this lines, to remember that programming languages are just a tool,
Whether you're a novice or a web developer with 25 years of experience, the only reason you came into this field is to express your creativity and create features that do not exist in the world we live in right now.
There is no reason to argue with others just because they have chosen and are better off programming with other languages.
Remember, no carpenters fight on what is the best hammer.
Now it is your turn!
What you think about this topic?
Have you bought Bitcoin?