The list of modern programming languages is really long. That’s why beginners who want their life to be in software development are lost at the very first step: they have no idea what programming language to choose. In fact, the choice is much simpler than it might seem at first glance. If you don’t want to regret later, first try to figure out:
- Is this language popular?
- Is it easy to learn?
- Is it easy to find the first job for inexperienced “this language” developer?
Also, ask yourself an important question that can be attributed to the subjective reason for choosing:
- do you know what specifically you want to develop, or perhaps you have not decided yet and would like to try yourself in different areas?
According to these questions above, I wrote an article about the pros and cons of five very popular and different languages. I based on TIOBE and PYPL popularity indexes, some other internet resources and my own experience. More than 50% (much more in fact) of the code was written exactly in these 5 languages for the last 10 years.
Java is a general-purpose language. That means it is good for almost everything. It is widely used in many different areas, more or less actively. I’ll talk about this below in a little more detail.
Java was designed keeping in mind the “write once, run anywhere” principle. The idea of cross-platforming concept became a Java Virtual Machine, interlayer, that lets Java code working on different devices. For example, first was created a PC version of Minecraft and later it was moved to different platforms with ease. Minecraft first was written in Java.
Java is an object-oriented language. It means that everything in Java is an object with its state and behavior. Older languages were mostly procedure oriented, so programs were kind of step by step instructions. A small example: we have two pianos. If you want to describe them in procedure language style, you describe the first piano and then, the second one. If you use an object-oriented language you describe an object — “Piano”, describe their general features, such as “Manufacturer”, “Year of creation”, “Owner”. Every piano has a behavior — it plays when a musician presses some keys.
So you create one class — “Piano” and can use it for one, two or million specific pianos as a template. It is very useful, especially for big programs.
From the 8th version, you are free to use functional programming paradigm together with object-oriented.
The newest version of Java (as of this writing) was released in March 2019, the next one will be released in September of the same year. Java is constantly being developed and updated.
Java is wordy, and this is the main weakness of the language for beginners.
Java has a variety of libraries to solve almost any problem you can describe.
Java is blessed with a huge community that supports you while you’re learning. For example, powerful StackOverflow community, where you can ask questions.
Java is literally everywhere, from the newest Tesla auto to the small smart teapot or your Android phone. The big companies are using Java such as Airbnb, Uber, LinkedIn, eBay, Pinterest, Spotify and so on. Don’t forget about Google, this giant’s products were written mostly in Java.
There are two main fields where Java is as strong as nobody else — huge enterprise level server applications and mobile programs for Android devices. Due to one of the highest security levels, a lot of governmental web applications were developed in Java.
Java is not as big as C++ in video games development (except Android games) but still, it is a proper language even for programming games. Minecraft, one of the most successful games in history, is an excellent example.
A brief list of Java:
- Enterprise level web server applications
- API interfaces
- Big data
- Cloud Computing
- Android apps
- Banking apps
- Embedded systems
- Desktop apps
Java is very diversive. So if you are interested in one of the list points or haven’t decided yet, what do you want, Java is a really good option for you.
The main disadvantage of Java for a beginner is its verbosity and the fact that not all words can be understood immediately. That’s why it is especially important to solve many practical coding tasks for Java students. They help to understand Java syntax and “automate” standard actions.
However, practice is the most important point in learning any programming language. So, my number one advice for any rookie programmer: do your practice as much as possible. To find proper practicing coding problem use internet resources with tasks and code verification, for example
CodeGym — lectures and a lot of coding practice, only Java, from scratch to upper intermediate.
CodinGame — different languages, from pre-intermediate and higher.
CodeWars — different languages, from pre-intermediate and higher.
Java is the best choice for the first job because there are many big projects that need not only experienced programmers but Juniors as well. Java is often used for huge enterprise software. It is usually designed with an eye on many years of work. It constantly needs to be modified and maintained. Sometimes new blocks are added. New code needs to be covered by unit tests and that kind of work is often entrusted to beginners, Java Junior Developers.
Python is a general-purpose language, so you can use it for solving different problems, usually, it is used for web.
Python has an extremely pure and beautiful syntax. You don’t need curly braces for the blocks of code, but spaces or tabs preceded by a colon. This facilitates the code, but also forces the programmer to organize it correctly, otherwise, it will be impossible to work. Python uses one word where Java has three of them. However, after Python syntax is not very easy to learn the other language.
Python is a dynamically typed language which made it very flexible and you may solve problems using different approaches. However, according to this, your mistakes are not so obvious like in Java or other statically typed languages. Dynamic typing makes the programs relatively slow as well.
Python has a lot of libraries that help you to write not just a code but solve interesting problems from your first steps.
Python has a strong community that helps you to learn and solve your coding problems.
You can use Python everywhere and many well-known projects like Instagram, Pinterest, Dropbox, and Reddit use web applications made on Python.
The main topic of Python is a backend web development but it is a general purpose language so it is used in different areas, such as productivity tools, games, and desktop apps. It is one of the most popular languages in data science (machine learning, analysis, AI) and scripting (short programs to automate some simple tasks).
A brief list of Python:
- Backend web
- Machine learning
- Data analysis
- Artificial intelligence
Nowadays Python is #1 as a language to study programming. Almost all courses, high school colleges, and universities use this language for learning purposes. Python programs are much shorter in comparison to other languages, its syntax is simple and the code is well readable even for a complete rookie. However, it is not that simple to learn other languages after Python. Its syntax is too clear and some elementary operations are way different from the other languages.
Undoubtedly, Python is a very popular language, and its popularity is growing fast, thanks to clear syntax and educational institutions that use it for learning issues.It is #4 according to TIOBE and #1 in PYPL index. iDatalabs says, that there are more than 79,000 companies using Python.
There are some markets where demand for novice Python programmers is not very large, but in the US it is possible to find a company interested in a rookie backend developer or scriptwriter. I note that it will be much easier for newbies if they know Java, not Python.
As for Data Science, everything is easier and more complicated at the same time. The industry is actively growing, but it is science-intensive and requires not only knowledge of the language, but also a certain level of scientific knowledge.
PHP is not the best language according to professional developers. The reason is “bad design” and that means there is no clear philosophy of PHP. Trying to write a long program on PHP turns a developer’s life to hell.
However, PHP is still widely used. The main allies of the language are history (many sites were written in PHP from 1990th and later) and Wordpress, free and open-source content management system.
PHP has a weak typing, that means silent automatic conversion between strings, numbers and so on. PHP is pretty soft with errors, and you can compile and run your program before you find the problematic part. It is a hell of a job, trying to track correctness of PHP scripts…
PHP has a large community, so you can look for help on the internet.
PHP is one of the first specialized languages created especially for server-side Web development. So, there is no surprise that PHP is extremely popular. 80% of the top 10 million sites are written in PHP or use PHP partly. The most prominent examples are Facebook and Wikipedia.
There are different opinions about this. Some experts believe that PHP has a rather low entry barrier. However, you should consider the features of the design of the language, which allow you to leave errors unnoticed. For inexperienced programmers, this is a very difficult ordeal.
If you are interested in learning this language, just start practicing. A good interactive and free tutorial is learn-php.org.
As I said above, PHP is very popular and about 80% of the top 10 million sites are written in PHP or use PHP partly. However, the situation is changing, its popularity is decreasing. Instead of PHP, backend web-developers prefer to use simpler and more powerful Python. It doesn’t mean PHP die out soon, it is just impossible: there are too many PHP-sites to make them disappear in a moment.
PHP gives you a good chance to find a freelancer job. WordPress, based on PHP is a very popular CMS among non-technical people, so they often order WordPress-sites (development and support) from freelancers.
Moreover, PHP is still widely used everywhere in web, so there is a consistent demand for PHP developers. However, the average salary of PHP-developer is somewhat lower than the usual salary of Java or Python programmers.
C++ is a very powerful language. It is fast and uses computer resources rationally.
Thanks to performance, C++ is often used to develop games (including AAA titles) and game engines.
Secret weapon: pointers. C++ can be considered a double-edged sword of the programming world. It is very effective, but you need to use it wisely. Say, pointers, that is, objects whose values are the addresses of other objects grant strength that other languages cannot give. It is beautiful and dangerous at the same time.
C++ is extremely scalable. That’s why it uses to build resource-intensive applications.
C++ has a smart community. For example, C++ users on StackOverflow are more advanced, so their questions and answers are better than usual (83.6% overall answer rate).
C++ is used where you need speed and scalability.
- Videogames and game engines. Most of AAA-games are C++ titles and almost all game engines are written in C++ these days. For example, the Rockstar Advanced Game Engine is written in C++, with some injections of scripting language for designers.
- Desktop Applications based on the graphic user interfaces, such as Adobe Illustrator and Premiere
- Compilers. Many compilers are mainly written in C++ or its elder non-object oriented bro C.
- Operating Systems. Almost all Microsoft and some parts of Apple operating systems.
- Browsers. C++ was used for Google Chrome and Firefox.
- Tools for 3D animation, modeling, simulation, rendering.
C++ is tough to learn as a first language. It has a lot of pitfalls. For example, C++ is an object-oriented language and that means the objects are created and destroyed pretty often. However, the approach to memory management is not organized well. The programmers themselves forces to monitor memory management in order to avoid memory leaks and dangling references. That’s not easy. С++ is the only one language from this list that I recommend learning strictly with a mentor.
It is popular and according to the TIOBE Index for April 2019, C++ is currently rising in popularity. Now C++ moves into #3. However, the language is still far away from its popularity at the beginning of this century when it had a market share of more than 15%. In PYPL rating C++ together with C are #6.
Well…. C++ developer is a good developer by definition. Usually, beginners in C++ have experience in other languages. If you are really interested in creating games and so on, you will find a good job sooner or later. However, you should remember: C++ developer’s path is a path of a struggler.
- If you don’t know what you want to do in the future, choose Java.
- Enterprise? Java.
- If you want to be a scientist programmer choose Python or Java.
- C++ is the best for creating mainstream video games but it is a very hard language for a newbie.
- Mobile development? Java.
- If you want to learn your first language as fast as possible choose Python.
- If you want to learn a language and later have an opportunity to switch as fast as possible learn Java.
- Don’t forget to practice your coding every day independently of your choice!
Was published on Quick Code.