Technology advances by leaps and bounds, and suddenly, what was the most common ceases to be so. You stay out, out of date. Therefore it is important to be attentive when it comes to detecting trends that will lead us to the future of programming and software development. We do not talk about fashions or the languages that do the most marketing. We talk about what programmers are really doing and learning, as well as the technologies that, although minority to this day, will be the de facto standards of the future.
Based on the study carried out by the educational platform of O’Reilly, we have analyzed the results and conclusions of the report. A combination of search terms and themes that developers are actively exploring and demanding, which gives a consistent indicator of the issues whose rising popularity trend is worth taking a look at for future of programming.
On O’Reilly’s radar, there are 3 key trends, which we will analyze later …
- The strong growth of issues related to the cloud. It is no longer just a question of taking an application to the cloud, but of its architecture, and as more and more complex and enormous systems have pushed the microservices, relying on the orchestration of services through Kubernetes.
- The Blockchain that for some continues ringing at the hype of the cryptocurrencies, has a large number of uses in which to develop distributed applications without depending on a central authority. Not only monetary transactions, but intelligent contracts or authority checks.
The following architecture is already here: Docker + Kubernetes
Few startups are not built today based on microservices, using Docker containers to deploy and scale services orchestrating this increasingly larger architecture using Kubernetes. The focus is clear that it is in the scalability and decomposition of each particular problem in a specialized service.
Due to the flexibility that an organization needs, we have been watching Amazon Web Services for years, Google Cloud or Microsoft Azure do not stop growing. The three major players in the market take away much of the business cloud pie. First of all, AWS is still the king with more and more concrete services to a specific problem, but the migration of large companies to the cloud of Google Cloud opens the way to another important competitor.
Docker is not a newcomer. It is a fundamental part of this architecture that allows to decompose and modulate each service in the cloud. And on the other hand, it seeks to help the productivity of the developer isolating these microservices as much as possible in their own environment, with only their own dependencies and configurations that do not conflict with the rest of the services. In addition, a fundamental factor in this architecture is continuous integration and continuous development: which means that we can develop new code, create a new build, package it and create a Docker image to be displayed to production with minimal friction.
All this large number of microservices, running in some cases in hundreds or thousands of containers justify a clear focus on tools that are capable of orchestrating all that cloud of resources like Kubernetes. Since being released as an open-source project by Google, Kubernetes represents the essential ingredient to scale products globally with total confidence and stability. The factor standard is clearly represented in Docker + Kubernetes.
Blockchain maturing little by little to be the base that will revolutionize the internet
Probably the confusion between Blockchain and cryptocurrencies is still present. But we must remember the origin of the blockchain, a distributed system, where we do not need a centralized entity to carry out operations. The possibility of creating smart contracts shows the tremendous potential of these platforms that will not only revolutionize finances but also the internet.
Having a large distributed database where all the information is stored in blocks, which are immutable, that is, nobody can modify it, it opens a wide range of development possibilities little explored today.
The main focus is to build APIs that access the blockchain, create consensus algorithms to verify the information and keep the blockchain network synchronized. An incipient ecosystem to be built with some tools already present that should not be missed.
Year after year we see these three languages at the top of each ranking that is created on trends and uses. We will analyze the explanation not only live that historically have a broad ecosystem and market share gained but how the new trends are based on these three languages.
Machine Learning is one of the technologies that receives the most support from the Python community. Many of the libraries used in Data Science are based in Python. Also the bet of Google by TensorFlow whose API is based on Python interfaces has helped the interest for this language with enough veteranía and solidity demonstrated at the time of analyzing and extract data of large amounts of information.
We also have some examples like PyTorch, a library for computer vision and natural language processing that has escalated relevance along with another library like scikit-learn.
Java is still one of the key languages in the development of large-scale applications, escorted by Scala and Kotlin taking advantage of the JVM. So all the advances in Big Data solutions continue to rely on Java. We find widely used technologies such as Spark or Kafka.
Among the other languages that have been cast in the ranking of O’Reilly are Go because of its combination of easy syntax, great concurrency support and an active community of developers, supported by Google. Although we cannot forget about Rust, a language of systems very close to the performance that C provides, sure, with an efficient use of memory, support of native concurrency and a modern syntax.