Мы живем в эпоху стремительного роста технологий. И нужно уделить особенное внимание развитию языков программирования без которых технологический прогресс был бы немыслим.
В данной статье мы рассмотрим актуальные направления на текущий момент и перспективы их изучения.
Статистика популярности по данным проектов с открытым исходным кодом
Самым крупным сайтом, посвященным программам с открытым исходным кодом является сайт Black Duck (Черная утка) blackducksoftware.com
По проекту open source данного источника можно сделать вывод о популярности языка на котором написан проект, поскольку проектов там больше 500000. На январь 2019 статистика выглядит так:
Видно что практически половина программ написана на C, что вполне логично поскольку язык C является единственным, компилятор которого есть на всех платформах.
Рейтинг Wappalyzer
Сервис Wappalyzer использует различные методы для идентификации веб-технологий. Рейтинг для разработки сайтов на август 2019 выглядит так:
Как видно лидирует PHP, большинство сайтов написано именно на нем.
Рассмотрим несколько популярных направлений по вышеприведенным статистическим данным.
Python
Язык является языком общего назначения, но не везде хорошо применим, выделим наиболее перспективные направления.
Девопс. Анализ рынка показывает, что примерно треть всех вакансий, где упоминается Python, относятся к сфере DevOpsa. Python практичности полностью сместил Perl для Linux, и неплохо так подвинул Bash в области написания крупных скрипов и более крупных серверных компонентов. Также к этому добавляется то, что интерфейс многих настроек принимает Python в качестве языка сценариев.
Тестирование. Как показывает практика Python может полноценно справиться с тестированием, однако Java настроена на это более профессионально. Но если рассуждать в общем специалист по Java должен одинаково хорошо использовать Python и Java в своей области.
Веб разработка. Преимущество Python заключается в том, что он позволяет быстро разрабатывать комплексные веб-приложения, имеет огромное число качественных модулей, прекрасно подходит для сервисов статистики и аналитики (где, в общем, и идет для него большая часть вакансий). Данное направление занимает оставшуюся треть всех вакансий. ГИС сервисы на Python имеют вполне адекватный инструментарий для работы с геоданными, но все же использование Java для этих целей выглядит перспективней.
Машинное обучение и Data Science. Это одна из самых популярных отраслей современного IT. Python имеет множество удобных библиотек машинного обучения и научных расчетов: Pandas, NumPy, SciPy, Scikit-Learn, которые позволяют достаточно быстро построить рабочие модели. И они на самом деле неплохо работают.
Сложность этого направления заключается в том, что у вас должны быть высокие знания в области математики и статистики, практически всегда будет спрашиваться высшее технические, математическое образование.
JavaScript
Преимущество языка — его легкость и способность поддерживать full stack и мобильную разработку.
С помощью JavaScript можно создавать серверные приложения, веб-приложения, desktop и мобильные приложения.
Все популярные разработчики браузеров: Mozilla, Google и Apple конкурируют за создание самых быстрых интерпретаторов JavaScript внутри браузеров, чтобы браузер мог имитировать среду, похожую на собственные приложения. Они конкурируют, чтобы предоставить веб-приложениям дополнительные функции, высокую скорость и большую производительность, которые поставляются с родными мобильными приложениями.
Рассмотрим некоторые популярные JS-фреймворки.
NodeJS
Подарок для многих разработчиков. Это сильная основа для всех JS программистов. NodeJS помогает создавать как desktop, так и серверные приложения на JavaScript, без необходимости использования браузера. Это подходящий выбор для тех, кому необходима полнофункциональная JS среда с доступом ко всем инструментам.
AngularJS
Angular.js - это полнофункциональная интерфейсная JavaScript среда, поддерживаемая Google и другими популярными корпорациями. Эта структура известна своими потенциальными возможностями, например, быстрым созданием кода, двусторонней привязкой данных, тестированием частей приложения.
ReactJS
Быстрая, гибкая, эффективная и лёгкая технология: система JS широко рекомендуется благодаря своей эффективности, небольшому размеру блоков, гибкости и более быстрому подходу к работе благодаря простой компонентной модели и функциональности рендеринга на стороне сервера.
Meteor.js
Полноценная инфраструктура Meteor.js обеспечивает быструю Frontend разработку для сквозных веб-приложений и мобильных приложений в JavaScript. Из-за своей модульной структуры библиотеки очень удобно использовать пакеты. Сегодня данная структура используется для разработки приложений в таких компаниях, как Mazda, Honeywell и IKEA
Backbone.js
Был выпущен Джереми Ашкенасом в 2010 году по лицензии MIT. Он придает структуру веб-приложениям с помощью моделей с биндингами по ключу и пользовательскими событиями, коллекций с богатым набором методов с перечислимыми сущностями, представлений с декларативной обработкой событий; и соединяет это все с вашим существующим REST-овым JSON API. Pinterest, Delicious, Disqus, Walmart и Foursquare активно им пользуются.
Vue.js
Один из самых простых фреймворков, который должен знать даже новичок в области программирования. Он создан на основе ReactJS, AngularJS и Knockout.js, чтобы создать экосистему, которая продуктивна во всех отношениях.
Polymer.js
Google выпустил этот JS-фреймворк в 2013 году с целью расширения возможностей HTML через веб-компоненты. Это дает разработчикам возможность структурировать пользовательские элементы HTML на основе технологий браузера.
Ember.js
Ember.js был использован при проектировании ряда сложных веб-сайтов, таких как Kickstarter, Heroku и LinkedIn. Ember.js идеально подходит для разработки сложных веб-приложений, а строковая система шаблонов, с которой она поставляется, способствует значительному уменьшению времени загрузки. Framework также сконцентрирован на масштабируемости, чтобы разработчики могли легко работать как с мобильными, так и с веб-приложениями.
Next.js
Next.js не является общей базой JavaScript. Фреймворк был запущен командой React.js в качестве инструмента для рендеринга на стороне сервера. Разработчики, работающие с комбинацией Next и React.js, могут значительно упростить процесс разработки интерфейса. Next.js поставляется с набором замечательных функций, таких как маршрутизация на стороне клиента и автоматическое разделение кода. Прежде всего, Next.js поставляется с полной поддержкой CSS, известной как styled-jsx, чтобы упростить разработку дизайна пользовательского интерфейса.
Go — язык программирования с открытым исходным кодом. Go был задуман в 2007 году и официально выпущен в 2012 году и был принят в Google для повышения производительности программирования в эпоху многоядерных процессоров, компьютерных сетей и больших баз кода. Является кроссплатформенным, он позволяет создавать программы под различные операционные системы - Windows, Mac OS, Linux, FreeBSD. Код обладает переносимостью: программы, написанные для одной из этих операционных систем, могут быть легко с перекомпиляцией перенесены на другую ОС.
Основные особенности языка:
· компилируемый
· статически типизированный
· поддержка многопоточности и параллельного программирования
· присутствует сборщик мусора
· поддержка работы с сетевыми протоколами
В настоящее время Go находит широкое применение в различных сферах. В частности, среди известных проектов, которые применяют Go, можно найти следующие: Google, Dropbox, Netflix, Kubernetes, Docker, Twitch, Uber, CloudFlare и ряд других.
P.S.
Вот мы и рассмотрели популярные современные направления. Выбор конкретного языка определяется конкретной реализуемой задачей.