Intive-FDV Blog

If you are a developer and begin to type “the best” in Google, it’s likely that the search engine will autocomplete your phrase with “programming language”. It’s also likely that the results will show the rankings of the last couple of years, so you go and click on the one that says “The Best Programming Language to Learn in 2019”. Experts and software communities are our guidance to the programming languages we definitely need to know. The articles describe from the “most loved” languages to the ones that are highly required professionally, including those with the highest level of support by the community and the best-paid ones.

At intive we decided to ask the experts, and we found that there is no such thing as the “best programming language”. This is a comparison between static and dynamic languages.

Java: The Portable Option  

I dare say that the strongest point of Java is security. With security I mean that behind this language there is a big community and a lot of supporting documentation: since it’s a widely used language, there are plenty of resources that help to solve even the most specific problems.

What’s good about Java?

  • Java can be written and executed in several platforms, which means it’s portable and independent from the operating system.
  • Also, it’s multi-threaded, that is, capable of running several processes simultaneously.
  • It’s one of the first languages that took security into consideration from the planning phase and included a number of features to protect development. And although Java’s security isn’t bullet-proof, it’s the most perfect currently available.

We are aware that the alternatives to this language are growing and that sometimes it’s necessary to adopt new technologies to keep up with technological progress, but when worse comes to worse, it’s best to be on the safe side.

C#: The Corporate Option 

C#, created by Microsoft, is currently one of the most popular languages for business applications. Microsoft has made great efforts to use it in its operating system, Windows, so the corporate market is the main target of this language.

One of its main characteristics is that it’s supported by the .NET framework and that it has an IDE that enables quick developments and simple configurations previous to coding. Nowadays, thanks to the progress experienced by this language and framework, it´s possible to develop all kinds of applications, including videogames.

  • What does C# help to solve that other languages cannot?

Throughout the evolution of C# we have seen how it has solved problems the competition could not, such as significant volumes of primitive types, more advanced functionalities like LINQ, and events and delegates. Most likely, other languages now include the same functionalities as C#, but C# has been the inspiration to improve, like Java.

Python: The Simple Option 

Python is a multi-paradigm, versatile language, whose syntax is very easy to learn. It’s probably the easiest language to get a functionality going, try an idea and then optimize it. But at the same time, it’s quite tempting not to follow the rules of any paradigm in particular and do the same things in many different ways, while other languages make it “mandatory” to follow certain rules.

Python has a huge community and so there are many libraries available, something that isn’t very common (as it happens with Machine Learning libraries).

However, given that it’s a high-level, interpreted language, it’s slower than others. In addition to the fact that there are several versions of Python (and functionalities that may require the code to run in a specific version) and that it doesn’t come by default in every operating system, it’s not compiled, it cannot handle dependencies and the program code isn’t saved in a single file. All of this means that deploying a Python service to production is complex.

Node.js: The Versatile Option 

Node.js is an execution environment for Javascript built on Google’s V8 execution engine. Its main advantage is that it allows to create truly full stack applications, that is, you can use the same language both on the server’s and the client’s side. And since it’s part of the Javascript family, it’s a good option for frontend developers who want to switch to backend development or who want to use the same technology for the entire stack.

Node.js has a single execution thread, so even though it’s a system that performs very well with high numbers of requests with I/O operation, in situations of high CPU demand, its performance rate can be affected.

Javascript has a very dynamic, active and constantly up-to-date community too.

In conclusion 

At the end of the day, languages are tools that adapt to the needs of the products we want to develop. It all depends on scalability, the team’s technical expertise, the community’s level of support to help solve doubts and issues, and even the availability of human resources with coding knowledge.

There aren’t better or worse languages; there are tools more or less adequate for specific circumstances. And anyone can have their language of choice. Which one is yours? Have you ever used a language and then thought, “I should have used this for that other project?”

Fernando Lescano

He is one of our Tech Leaders and has been a developer at intive – FDV since March 2015. In the company, he works with technologies like Javascript ( NodeJS, AngularJS, MongoDB, Jquery, etc.), Python (Django), Java and PHP. He also takes part in the Frontend Team. He defines himself as “passionate about software development, but with many other interests”. Since December 2015 he has managed the development and maintenance of Java and of new JavaScript components (AngularJS). He is received a degree as a University Technician with a focus on software development and information technology from the Universidad Provincial de Ezeiza.

Gianmarco Cafferata

Gianmarco Cafferata is Data Scientist at intive-FDV since August 2018. Computer Engineering student at the University of Buenos Aires (UBA), he also works as an assistant on the subject Algorithms II at the same faculty of that university. Lover of the bandoneon, in his spare time Gian is dedicated to researching about Data Science and cooking, especially sweet things. Interested in economics, philosophy and politics, what he likes best is to go out and chat with his friends.

Gustavo Rohrer

Gustavo Rohrer has been a full-stack developer at intive Argentina since September 2017. He has a degree in Systems from the National University of La Plata. Gustavo also enjoys playing football, studying languages ​​and getting together with friends. With much interest in eating and healthy living, and a passion for cooking and everything related to culinary art, Gustavo says he was a chef in another life.

Nicolás Azzara

Nicolás Azzara has been a .NET developer at intive Argentina since February 2018. A student of Systems Engineering at the UAI (Universidad Abierta Interamericana), in his spare time Nicolás enjoys traveling and fixing things around the house, such as painting and doing electrical work. A fan of design and architecture magazines, he enjoys recycling and spending time with his kitten Cleopatra.

Add comment