Cos’è una Progressive Web App? A cosa serve? Come si fa a crearne una?
Deciding which programming languages to learn is one of the most enjoyable things we get to do as software engineers, but it is also incredibly impactful on our career and the types of jobs we will be able to find. The opportunity cost of learning a programming language means it takes time away from learning something else, so we must be efficient where we focus our efforts to ensure we are set up for success now and in the future.
This list ranks languages both on their current growth rate as well as the impact on the industry as a whole. It will introduce languages from different areas of the stack — you will find useful material whether you want to be a frontend engineer, backend engineer, or mobile developer. Let’s take a look at the top programming languages of 2019.
TypeScript has become the defacto type system for JS, beating out other competitors such as Flow and has far more adoption than ReasonML. According to Stackoverflow, TypeScript is the #3 most loved programming with a score of 73.1%. This ranks only behind Rust and Python and one spot above Kotlin — all of which are on this list.
Developers love Python. Year after year, this fact holds true. Python has become the primary language for data scientists, with R as its only real competition. In addition, Python is used extensively for building web application APIs and general scripting.
Python has been around for over 30 years and has withstood the test of time. It ranks as the #2 most loved language and #1 as the most wanted language.
Python has proven that it will remain a force as a top language for software engineers. If you invest your time into learning it, there is no doubt that it will pay off.
When Kotlin was introduced, developers rapidly adopted it as a better alternative to writing Android applications compared to Java. Recently, Google has even named it as the preferred method for Android app development.
Kotlin is a cross-platform language that is meant to interoperate entirely with Java and run on the JVM. The language is statically typed but known to be much more concise than Java. In addition to providing better code readability and developer experience, other improvements of Kotlin are null-pointer safety, extension functions, and infix notation.
Kotlin ranks as the #4 most loved language according to StackOverflow and has solidified itself as the better alternative to Java. Whether you want to build apps for Android or just have a better language on the JVM, Kotlin is an excellent choice to ensure you are prepared for the future.
Swift was introduced by Apple as an alternative to Objective-C to write applications for iOS and Mac. Much like Kotlin has replaced Java for Android apps, Swift has rapidly become the preferred coding language for iPhone developers. Swift ranks as the #6 most loved programming language and has solidified itself as an essential tool for mobile developers.
Golang has rapidly taken the position as one of the top languages to build microservices. The language was created a decade ago by Google and offers many of the benefits of C/C++, but Go makes many changes to improve brevity, simplicity, and safety.
Simply stated, Go does practically everything well. The code is easy to understand but also incredibly efficient computationally. A new developer can pick it up rather quickly. It is a statically typed and compiled language that manages concurrency efficiently.
Go is mostly noted for its unique location on the continuum of developer experience while also being incredibly fast. The code writes almost like a scripting language, allowing developers to rapidly build services. However, its type inference also provides visibility into the code that we would expect from more verbose languages, as well as the same safety. Go has been optimized by Google to be incredibly efficient with memory and blazing fast.
Given the many benefits of Go, it is not surprising it has been rapidly adopted. Its speed makes it a great choice for web servers, and it is simple enough to quickly spin up micro-services. It handles networking very well, and Go also does a good job as a language for systems. Some practical implementations of Go are:
- Kubernetes is built with Go
- The primary language for the Ethereum source code and Hyperledger blockchain
- Countless web servers and tools for top tier tech companies (Google, Uber, Twitch, Medium, Postmates, and many more)
Go may be the perfect language to add to your developer toolbox. Its ability to do so many things well means that it will always be in the conversation as a tool to use for any job.
This list would not be complete without including Rust. For the fourth straight year, it was ranked as the #1 most loved programming language in 2019 according to StackOverflow. Rust is primarily used as a systems programming language but has recognized growth beyond this area. There are more tutorials popping up to use Rust as a web server, and it is one of the languages that can compile into WebAssembly. Share the love and check out why so many people are turning to Rust.
Elixir (or Scala orClojure)
With the rise of popularity and adoption for functional programming, a list of the top languages would not be complete without including at least one. You would not go wrong with Elixir, Scala, or Clojure — all three languages have a high average salary, similar usage, and developer adoption. Since I need to pick one, my personal experience and anecdotal evidence lead me to recommend Elixir. It is a newer language and appears to be growing rapidly. One story to depict the capabilities of Elixir is the article from the popular chat app Discord where they explain how they scaled to 5M concurrent users by utilizing Elixir . Ultimately, if you want to learn functional programming, pick one of Elixir, Scala, or Clojure, and you can’t go wrong.
GraphQL is on pace to revolutionize API development, and learning the technology will provide you opportunities for years to come.
Learning anything takes time, and we always want to ensure we use our time effectively. As software engineers, we learn new languages because we love it, but we are also aware that what we learn impacts our future and careers. We would all love to learn everything, but if you focus on the languages on this list, it will ensure you are adding tools to your skill set that will benefit you for years to come.