С изучения этих языков стоит начать свой путь в разработке в этом году.
Пользователь Md Kamaruzzaman опубликовал на платформе Medium огромный текст, в котором суммировал данные о востребованности разных языков программирования и составил рейтинг, по которому можно ориентироваться, с каких языков начать свой путь в кодинге. Судя по странице автора в LinkedIn, с августа 2019 года он занимает должность старшего системного архитектора Deutsche Bank.
В начале статьи он отмечает, что сфера программирования развивается очень динамично, и с каждым годом популярность языков и технологий сильно меняется. Людям, которые уже владеют несколькими языками, он советует углубиться в изучение самых современных нишевых технологий. А свой рейтинг он составил для тех, кто только выбирает, с чего начать путь в разработке. Рейтинг построен на основе следующих критериев:
язык прочно занял свое место в индустрии разработки ПО;
язык занимает верхние строчки в рейтингах популярности на отраслевых сайтах;
популярность языка растет или остается стабильна, но не снижается;
для языка есть большой набор библиотек, фреймворков, инструментов, которыми пользуется обширное сообщество;
язык востребован у работодателей и сулит хорошую зарплату.
Мы приводим первые пять позиций рейтинга, причем три из них с тезисным обоснованием позиции, и две с иллюстрациями, характеризующими популярность и востребованность языка в 2020 году.
1. Python
Средняя зарплата разработчиков в зависимости от опыта работы
Разработанный в 1990-х язык не представлял собой прорывную технологию, так что он не рос сверхбыстрыми темпами. Свою популярность он заработал постепенно благодаря удобству для разработчиков и простоте — программировать на нем может научиться даже школьник.
У Python огромное сообщество активных пользователей. По данным PYPL, это самый популярный язык на сегодняшний день, и в 2019 году его популярность выросла на 4,1%. Другие источники ставят его на третье и четвертое места. По вкладу в хранилище открытого кода GitHub Python недавно обогнал Java и вышел на второе место (выше только JavaScript). В отличие от других устоявшихся языков, Python продолжает наращивать свою популярность.
Язык доминирует в сфере машинного обучения и Data Science.
По данным сервиса Indeed, Python на третьем месте в США по средней годовой зарплате программистов. Выше — Swift и Ruby. По данным StackOverflow, Python-разработчикам нужно меньше опыта, чтобы получать высокую зарплату.
2. JavaScript
Средняя зарплата разработчиков в зависимости от опыта работы
Прототип JavaScript разработали во время первой войны бразуеров по заказу Netscape — возможно, из-за этого язык впоследствии критиковали за плохую проработанность деталей. Прорыв случился в 2009 году, когда Райан Даль выпустил первую версию программной платформы Node.js, которая выполняла роль веб-сервера и позволяла JavaScript через API подключать внешние библиотеки на разных языках и обеспечивать вызовы к ним из JavaScript-кода. Следующий прорыв случился, когда Google в 2010 выпустила фреймворк AngularJS.
Язык сегодня применяется в веб-разработке (абсолютно доминируют фреймворки React, Vue.js, Angular), серверах, мобильных устройствах, хранилищах, облачных сервисах и так далее. Благодаря такой универсальности язык остается одним из самых популярных в мире. По вкладу в GitHub он пятый год удерживает первое место.
В последние годы язык серьезно обновили и добавили много полезных функций. Если раньше программисты терпеть не могли этот язык, то сегодня он занимает 11-е место среди самых любимых технологий (лидируют Rust, Python и TypeScript).
По среднему уровню зарлпаты в США (по оценке Indeed) язык занимает четвертое место. При этом опрос StackOverflow показал, что разработчики JavaScript могут рассчитывать приличную зарплату даже с небольшим опытом.
3. Java
Средняя зарплата разработчиков в зависимости от опыта работы
Это один из самых прорывных языков, который сменил популярный в 1990-х C++. С тех пор он уступил долю рынка более современным языкам. К тому же из-за громоздкости язык не совсем подходит для индустрии облачных технологий, но он остается крайне востребованным как язык приложений для бизнеса.
Виртуальная машина Java, которая исполняет байт-код, считается произведением искусства разработчиков ПО.
Благодаря длительному доминированию в индустрии у Java есть огромная экосистема из библиотек, фреймворков и инструментов.
Язык продолжает развиваться, и сейчас ведется активная работа, чтобы приспособить Java для работы с облачными технологиями.
По оценке Tiobe, последние 20 лет Java входит в тройку самых популярных языков программирования. На Github язык занимал вторую строчку с 2014 по 2018 год, и лишь в прошлом году опустился на третью строчку. По оценке PYPL, Java теряет популярность, но по-прежнему удерживает вторую строчку рейтинга.
По спросу на специалистов на рынке труда в США (по данным Indeed) Java уступает только одному языку — Python. По средней зарплате язык занимает шестую строчку.
Java широко применяется для разработки приложений для бизнеса, обработки больших объемов данных, веб-разработки и создания приложений для Android.
Two decades ago, at the start of the millennium, IT was deeply concerned about Y2K – and the iPhone, Twitter and Facebook didn’t exist. So what’s in store as a new decade begins?
The year 2020 heralds another decade rich with disruptive technology trends. Some of these technologies are already commonplace, but the proliferation of new use cases and applications will see industry grappling with both benefits and opportunities. At Gartner, we predict that the key strategic technology trends in 2020 will include hyperautomation, blockchain and artificial intelligence security, among others.
1. Automation 2020: Hyperautomation
Hyperautomation takes applications for task automation to the next level. It enables the application of advanced technologies, such as artificial intelligence (AI) and machine learning, to increasingly automate processes and augment human requirements.
In some cases, it can mean the creation of a digital twin of the organisation – allowing visualisation of how functions, processes and key performance indicators interact to drive value.
But as no single tool can replace humans, hyperautomation will involve a combination of elements. Such tools include robotic process automation and intelligent business management software.
2. Multiexperience is the new experience
From 2020 onward, multiexperience will see the traditional idea of computing evolve from a single point of interaction to include multisensory and multitouchpoint interfaces, such as wearables and advanced computer sensors. Over the coming decade, this trend will become what is known as ambient experience.
But multiexperience currently focuses on immersive experiences that use augmented reality, virtual reality, mixed reality, multichannel human-machine interfaces and sensing technologies.
3. Democracy, 2020 style
The democratisation of technology means providing people with easy access to technical or business expertise without extensive or expensive training. Already referred to as “citizen access”, this trend will focus on four key areas: application development, data and analytics, design, and knowledge.
Democratisation is expected to see the rise of citizen data scientists, programmers and other forms of DIY technology engagement. For example, it could enable more people to generate data models without having the skills of a data scientist. This would, in part, be made possible through AI-driven code generation.
4. Augmentation gets human
The controversial trend of human augmentation focuses on the use of technology to enhance an individual’s cognitive and physical experiences. It comes with a range of cultural and ethical implications.
For example, using CRISPR (clustered, regularly interspaced, short palindromic repeats) technologies to augment genes has significant ethical consequences. Physical augmentation changes an inherent physical capability by implanting or hosting a technology within or on the body.
Applications include the use of wearables to improve worker safety in the mining industry. In other industries, such as retail and travel, wearables could be used to increase worker productivity.
5. Greater transparency and traceability
The evolution of technology is creating a trust crisis. Particularly as consumers become more aware of how their personal data is collected and used, organisations are increasingly recognising the liability of storing and gathering data. But many are also using AI and machine learning more to make decisions in place of humans.
This is a further cause of concern, which is driving the need for processes such as explainable AI and AI governance. This trend requires a focus on these key elements of trust: integrity, openness, accountability, competence and consistency. More legislation similar to the European Union’s General Data Protection Regulation (GDPR) is likely to be enacted around the world in the coming years.
6. The empowered edge
The growing edge computing trend is based on the idea that keeping traffic local and distributed will reduce latency. This involves a topology where information processing and content collection and delivery are placed closer to the sources of the information.
The empowered edge employs the technology on the internet of things (IoT). This extends to the role of devices as the basis for smart spaces and moves key applications and services closer to the people and devices that use them. By 2023, there could be more than 20 times as many smart devices at the edge of the network as in conventional IT roles.
7. The distributed cloud
The distributed cloud refers to the dispersal of public cloud services to locations outside the cloud provider’s physical datacentres, while still in the control of the provider. In the distributed cloud, the provider is responsible for all aspects of cloud service architecture, delivery, operations, governance and updates.
The evolution from centralised public cloud to distributed public cloud ushers in a new era of cloud computing. The distributed cloud allows datacentres to be located anywhere. This solves both technical and regulatory issues, such as latency and data sovereignty. It also offers the combined benefits of a public cloud service and a private, local cloud.
8. Even more autonomous things
Autonomous things, which include drones, robots, ships and appliances, exploit AI to perform tasks traditionally undertaken by humans. This technology operates on a spectrum of intelligence ranging from semiautonomous to fully autonomous and across a variety of environments including air, sea and land.
While currently, autonomous things mainly exist in controlled environments, such as warehouses, they will evolve to include open public spaces. Autonomous things will also move from standalone to collaborative swarms – such as the drone swarms used during the Winter Olympic Games in 2018.
9. Towards practical blockchain
Enterprise blockchain today takes a practical approach and implements only some of the elements of a complete blockchain. Everyone with permissioned access sees the same information, and integration is simplified by having a single shared blockchain.
In the future, true blockchain or “blockchain complete” will have the potential to transform industries, and eventually the economy, as complementary technologies such as AI and the IoT begin to integrate alongside blockchain.
This expands the type of participants to include machines, which will be able to exchange a variety of assets. For example, a car would be able to negotiate insurance prices directly with the insurance company based on data gathered by its sensors. Moreover, blockchain will be fully scalable by 2023.
10. Greater AI security
Evolving technologies such as hyperautomation offer transformational opportunities in the business world. However, they also create security vulnerabilities through potential new points of attack. Security teams must address these challenges and be aware of how AI will impact the security space.
Future AI security will have three key perspectives: firstly, protecting AI-powered systems, securing AI training data, and training pipelines and machine learning models; secondly, leveraging AI to enhance security defence, and using machine learning to understand patterns, uncover attacks and automate parts of the cybersecurity processes; thirdy, anticipating nefarious use of AI by attackers – identifying attacks and defending against them.