Какой язык программирования выбрать для изучения?

Сфера применения JavaScript

Возможно, что по мере знакомства с программированием сфера ваших интересов изменится: вместо frontend вы сфокусируетесь на backend или захотите углубиться в мобильную разработку. JavaScript не ограничивается лишь интерактивностью сайтов и клиентской стороной.

Пример визуализации данных с D3.js. Источник

Фреймовики и библиотеки JavaScript позволяют создавать десктопные приложения (Electron), мобильные приложения (React Native), игры (Phaser), а также работать с визуализацией данных (D3.js), базами данных (mongoDB), анимацией (Three.js).

JavaScript — один из самых популярных и быстроразвивающихся языков.

Ваш первый язык программирования не обязательно будет основным, мало кто ограничивается одной технологией. Но если вы планируете сделать JavaScript профильным языком, то международное JS-сообщество вам в помощь. Согласно исследованию GitHub, крупнейшего веб-сервиса для хостинга IT-проектов, в 2017 году JavaScript был на первом месте среди 15 наиболее популярных языков.

15 наиболее популярных языков по версии GitHub

JavaScript пять лет подряд является самым популярным языком на одном из крупнейших ресурсов для программистов — StackOverflow.

Наиболее популярные языки по версии StackOverflow

JavaScript не идеален, и кто-то считает, что это слишком хаотичный, бессистемный и бесконтрольно развивающийся язык, который путает новичков. Бесполезно гуглить «какой язык программирования мне выучить первым», потому что только вы знаете, для чего вам программирование и веб-разработка.

Изучите статистику вакансий и определитесь, в каком из направлений программирования вы себя видите. Сперва поймите, какую проблему вам хочется решать. После обычный выбор средств для ее решения — это два-три языка и технологии.

Борис Горячев

backend-разработчик Meduza

Плюсы и минусы наиболее популярных языков программирования

Императивный код

Существует так называемой императивное программирование. Это – некая парадигма, в которой для получения конечного результата прописывается цепочка действий. Использует в своей работе разнообразные операторы присваивания, переменные тех или иных типов, составные выражения.

Начался еще в 1949 году с некого Ассемблера. По мере развития технологий продолжился в самых популярных сегодня языках программирования: Java, C, C++. Сюда можно отнести объектно-ориентированные интерпретации.

У императивного программирования наблюдаются следующие характерные черты:

  • исходный код софта – это некие инструкции (команды);
  • выполнение осуществляется последовательно;
  • данные, которые записала программа, могут прочитываться из памяти при помощи очередных инструкций;
  • информация, получаемая программи вследствие выполнения алгоритма, доступна для сохранения.

Можно сказать, это – некие приказы в повелительном наклонении. Структура четко определена. Нарушение последовательностей приводит к сбою в работе утилиты. Обрабатываются команды исключительно процессором.

Изучая, что такое объектно-ориентированные языки программирования, можно заметить – это ряд независимых «частиц», работающих обособлено друг от друга. Некие «отдельные компьютеры». Соответствующие элементы способствуют разрешению тех или иных задач без особого внимания в принципы их работы. То есть, пользователь будет программировать на язы, используя разнообразные объекты на экране – линии, ломаные, кнопки и так далее.

ActionScript (Экшн-скрипт)

ActionScript — это мультимедийный скриптовый язык, который предназначен для написания объектно-ориентированных программ, а именно Flash-приложений.

Его заточенность под конкретные задачи является одновременно и плюсом, и минусом, так как в пределах Flash он отличается многофункциональностью, но ничего другого на нём написать практически невозможно.

Кроме того, его характеризует гибкость, позволяющая решать задачи разными и порой нестандартными способами, но иногда такой код трудно понять кому-либо, кроме самого автора. Однако даже и он через время может запутаться в своём коде, а ведь это чревато трудностями с отладкой, обновлениями и повторным использованием.

GitHub

Самый популярный и авторитетный портал для работы с кодом тоже составляет рейтинги языков, но только по годам. Подсчет ведется по количеству размещенных исходников за последние 12 месяцев. Рейтинг, опубликованный в начале 2019 года:

  1. JavaScript.
  2. Java.
  3. Python.
  4. PHP.
  5. C++.
  6. C#.
  7. TypeScript.
  8. Shell.
  9. C.
  10. Ruby.

Большое влияние на рейтинг GitHub оказывает продуктивность разработчиков. Именно поэтому в лидерах оказалось много представителей скриптовой направленности — объем кода исходников часто занимает всего несколько строк. Но — в отличие от предыдущих двух порталов — здесь практически не имеет значения сложность языка.

Java

Консервативный и надежный язык, который подходит для разработки под любые платформы. Пожалуйста, не путайте его с JavaScript — это абсолютно разные технологии, и между ними нет ничего общего.

На Java разрабатывают десктопные программы, приложения под Android, серверные конструкции и масштабные промышленные и банковские системы. Достаточно сложный в освоении язык.

Новички могут рассчитывать на 35–60 тысяч рублей. Специалисты среднего уровня — на 50–100 тысяч. Высокий уровень — на доход 135–270 тысяч рублей.

Синтаксис простой и понятный. Методология языка — классическое объектно-ориентированное программирование. Работает на всех операционных системах. На Java можно написать ПО любой сложности — от небольшой утилиты до комплекса с миллионами строк. Кстати, если хотите писать для Android — приложения на нем делают только на Java.

Особенности:

  • Разработка на Java подразумевает высокий уровень абстракции. С одной стороны, такое ПО легче поддерживать и развивать. С другой — типовые и простые вещи требуют бОльших усилий. Сравните: на PHP для чтения файла по ссылке нужна одна строчка кода. На Java придется написать пять-десять строк.
  • Строгость языка. Это надежно, отсутствуют неявные конструкции, нет упрощений. С другой стороны, код очень громоздкий. Представьте, что вы продаете машину. Если говорить просто, то выйдет что-то вроде: «Вот машина. Вася продал ее Пете. Петя отдал деньги Васе». На Java все то же самое придется написать в форме договора купли-продажи — когда отдают деньги, где что в машине, какие номера двигателя, корпуса. Плюс еще масса данных. Так, чтобы не было многозначности.
  • Высокий порог вхождения: синтаксис прост, примеров много, но общие принципы понять сложно. Придется очень много учиться и практиковаться. Но и возможности в итоге получите практически безграничные.

Стек:

  • IDE: Eclipse, Netbeans, IntelliJIDEA, AndroidStudio;
  • среда выполнения: JVM (Java Virtual Machine);
  • фреймворк: Spring, Swing, Hibernate, OrmLite (для Android);
  • инструменты для Android: SDK Manager, Android Emulator (эмуляторы ОС разных версий);
  • базы данных: Oracle, MySQL и любые другие;
  • менеджер зависимостей: Grandle, Ant, Maven.

Может показаться, что для сложного языка нужен особый талант. На самом деле ключевое — ваше желание, интерес и усердие. Никто не ценит способности в вакууме

Важно, насколько далеко вы продвинулись в обучении за последний месяц или год. Если есть интерес и желание, всё получится

Пример кода на Java — создаем окно с кнопкой

2020

Рейтинг самых высокооплачиваемых языков программирования

В августе 2021 года появились результаты опроса Stack Overflow среди более 83 тыс. разработчиков из разных стран мира, по итогам которого был составлен рейтинг наиболее высокооплачиваемых языков программирования.

Опрос, в котором наиболее активно принимали участие программисты из США, Индии, Германии, Великобритании, Канады, показал, что наибольшую медианную зарплату получают разработчики, которые владеют языком Clojure, — $95 тыс. в год. Это в 1,5 раза больше медианы таких языков программирования, как Python ($59 тыс.) и JavaScript ($54 тыс.), которые пользуются популярностью среди работодателей и разработчиков. На втором месте — F# ($81,077), на третьем — Elixir ($80,077). На четвертой позиции рейтинга Erlang ($80 тыс.), на пятом Ruby — ($80 тыс.). В ТОП-10 вошли также: Scala ($77,832), Rust ($77,530), Go ($75,669), LISP ($75,669).

Рейтинг наиболее высокооплачиваемых языков программирования

Почти 60% респондентов учились программировать на онлайн-ресурсах, в том числе на онлайн-курсах, форумах и других современных решениях для получения знаний. Респонденты старшего возраста учились программированию в школах (53%), университетах, и с помощью книг (40%). 45% респондентов используют для работы операционную систему Windows, 25,32% предпочитают Linux, а 25,19% выбирают MacOS. 53% опрошенных написали свою первую строку кода в возрасте 11-17 лет, 24% в возрасте 18-24 лет, 14% — в возрасте 5-10 лет, 5% — в возрасте 25-34 лет.

Рейтинг разработчиков по специализации

Почти половина опрошенных являются фулстек-разработчиками, 43,73% — бэкенд-разработчиками и 27,45% фронтенд-разработчиками.

Согласно результатам опроса Stack Overflow, среди наиболее популярных баз данных у ИТ-специалистов: MySQL, PostgreSQL, SQLite, MongoDB, Microsoft SQL Server (в порядке убывания). Среди наиболее популярных облачных систем: AWS, Google Cloud Platform, Microsoft Azure, Heroku, DigitalOcean.

GitHub назвал самые популярные языки программирования

В начале декабря 2020 года сервис совместной разработки ИТ-проектов GitHub опубликовал рейтинг самых популярных языков программирования, с которыми работают пользователи платформы. Развиваемый Microsoft проект TypeScript стремительно набирает популярность.

Первое место сохранил JavaScript. Следом расположился Python, третье место занимает Java. На четвертое место поднялся TypeScript. Пятое пятую строчку занял С#. Далее идут PHP, C++, C, Shell и Ruby. Состав первой десятки с 2017 года сохраняется без изменений, но PHP и Ruby, находившиеся на вершине списка пять лет назад, продолжают терять популярность.

Рейтинг самых популярных языков программирования

Как отмечает издание ZDNet, до 2016 году TypeScript не входят в десятку самых востребованных языков программирования на GitHub, но в 2018-м он поднялся на седьмую позицию, а в 2020-м взобрался на три строчки вверх, опередив C#, PHP и C ++.

Один из создателей TypeScript Андерс Хейлсберг, технический сотрудник Microsoft и «отец C#», в разговоре с ZDNet признался, что ему пришлось продать идею языка с открытым исходным кодом руководителям Microsoft в 2010 году, когда компания, будучи под руководством Стива Баллмера, весьма негативно была настроена в отношении сообщества Open Source.

Соучредитель аналитической фирмы RedMonk Джеймс Говернор считает, что популярность TypeScript в последние годы растет потому, что этот язык программирования удовлетворяет потребности разработчиков JavaScript в «безопасности типов». Рост популярности на GitHub указывает на то, что TypeScript останется надолго, уверен эксперт.

В публикации ZDNet сказано, что TypeScript стал популярен среди веб-разработчиков, обладающих обширной кодовой базой JavaScript. Среди них – Slack, Airbnb и Bloomberg. Microsoft также написала на TypeScript свой популярный кроссплатформенный редактор кода с открытым исходным кодом Visual Studio Code.

Python (1991)

В каком-то смысле Python — противоположность C: если там «сложно, зато производительно», то здесь «просто, зато к производительности есть вопросы».

Такое категоричное заявление требует уточнений. Во-первых, о простоте: свои хитрости здесь тоже есть, но они не так болезненны для новичков. С какими-то языками сразу врезаешься лицом в стену из непонятных терминов и теряешь всё желание что-то делать, а здесь начинаешь с куда более простого и понятного кода. Для многих базовых задач предоставлены встроенные способы решения, Python называют «языком с батарейками в комплекте». Неудивительно, что его часто рекомендуют в качестве первого языка, и он стал очень популярен в образовании.

Что же до производительности, то Python действительно проигрывает и C++, и многим другим языкам. Но порой его называют «медленным» презрительно, а вот это уже зря. Вспомним слова о том, что языки хороши или плохи не сами по себе, а применительно к задачам. Да, есть задачи, для которых Python не подойдёт — но есть и такие, где разница в скорости между ним и другим языком вообще не будет заметна. У Python есть свои области применения, для которых он достаточно хорош.

Что это за области? Ещё давно Python полюбили учёные — и теперь с его помощью занимаются такими околонаучными вещами, как машинное обучение и data science. В бэкенде веб-сервисов его тоже используют. Про образование уже сказано. А помимо разработки, его любят в системном администрировании — там он отлично подходит для мелких утилит.

Вакансий с упоминанием Python много, но здесь есть нюанс. Порой этот язык называют «вторым лучшим для любой задачи»: всегда удобный вариант, но всегда уступающий чему-то. Из-за этого Python зачастую используют не как основной язык какого-то проекта, а «в дополнение». Поэтому в части случаев может получиться, что в вакансии он вроде и упомянут, но не как основное требование, а как бонус — и его знания недостаточно, чтобы откликнуться на неё. Так что для первых этапов обучения он точно подходит хорошо, а вот насчёт трудоустройства смотрите ситуацию в своём регионе.

Самые популярные языки

Специалисты Института инженеров электротехники и электроники (Institute of Electrical and Electronics Engineers, IEEE) опубликовали рейтиг языков программирования в своем ежемесячном журнале IEEE Spectrum. Он включает 55 позиций, и в нем есть даже COBOL, название которого расшифровывается как COmmon Business Oriented Language. Этот язык был создан более 60 лет назад, и в дальнейшем он был забыт на многие годы, но в новом рейтинге он занимает 43 строчку.

Места в рейтинге составители присваивали, пользуясь собственной оценочной шкалой от 0 до 100 баллов. Итоговые результаты во многом согласуются с аналитикой исследовательской компании RedMonk, ресурса для разработчиков GitHub (принадлежит Microsoft), а также с индексом популярности языков программирования Tiobe.

Python и Java — лидеры среди языков программирования, по версии IEEE

В первую пятерку самых распространенных языков программирования, по версии IEEE Spectrum, входят Python, Java, C, C++ и JavaScript, а вторая пятерка состоит из языков R, Arduino, Go, Swift и Matlab. От рейтинга топ-10 IEEE Spectrum образца 2019 г. данный перечень практически не отличается, разве что Matlab был на одну строчку впереди GO, а седьмую строчку занимал C#, в 2020 г. оказавшийся на 23 месте.

На сайте IEEE Spectrum опубликованы три дополнительных рейтинга языков программирования: по темпам роста популярности, по числу открытых вакансий разработчиков и по популярности на ресурсах для размещения открытого исходно кода. По темпам роста популярности топ-10 языков выглядит так (в порядке убывания): Python, Java, C, C++, Go, JS, Arduino, Dart, HTML, Swift. COBOL в этом списке занял 46 место.

Рейтинг популярности языков программирования

Место в рейтинге Название языка Количество баллов
1 Python 100,0
2 Java 95,3
3 C 94,6
4 C++ 87,0
5 JavaScript 79,5
6 R 78,6
7 Arduino 73,2
8 Go 73,1
9 Swift 70,5
10 Matlab 68,4

Рейтинг по количеству открытых вакансий, тоже в порядке убывания: Python, C, Java, Go, C++, JS, R, HTML, Swift, SQL и COBOL на 41 строчке. Наконец, перечень языков программирования по популярности на GitHub и ему подобных ресурсах: Python, Java, C, JS, C++, HTML, Dart, Go, R и Arduino. У COBOL в данном случае 47 место.

JavaScript

Следующий must have среди языков — JavaScript, для работы с ним хватит браузера. Синтаксис здесь на порядок сложнее: появляются служебные символы и конструкции с разношерстными скобками, названия функций далеко не всегда раскрывают суть действия, и даже простейший код имеет структурированный вид. Взглянем на переписанный код с функцией Фибоначчи:

function fib_recursion(n) {
   return n < 1 ? 
    	 n <= 2 ? 1
    	 fib_recursion(n - 1) + fib_recursion(n - 2);
}
 
console.log(fib_recursion(10));

Объем кода практически не изменился, зато снизилась читаемость. После изучения Python вы без проблем разберетесь, как работает структура return, и оцените удобство именно такого способа записи.

Кроме того, экосистема JavaScript богаче, чем Python. Она предлагает обилие сред разработки, редакторов кода, фреймворков, библиотек. Это еще один шаг к пониманию, как работает «взрослое» программирование.

В целом, JavaScript незначительно уступает Python по спектру решаемых задач, но его возможности «глубже». Знание этого языка пригодится при разработке программ на любых платформах.

Crystal

Crystal является языком программирования общего назначения с девизом “Быстр как C, привлекателен как Ruby.»

Это высокоуровневый, статически типизированный, компилируемый, полностью объектно-ориентированный язык программирования с передовым выводом типов и сборкой мусора.

Архитектурные цели Crystal:

  • Синтаксис похожий на Ruby (но совместимость с ним не является целью).
  • Статическая типизация, но без необходимости указания типа переменных или аргументов метода.
  • Возможность вызывать C-код, написав биндинги к нему на Crystal.
  • Возможность выполнения и генерации кода во время компиляции, чтобы избежать шаблонного кода (boilerplate).
  • Компиляция в эффективный машинный код.

Crystal имеет уникальные функции, такие как:

  • Каналы: Crystal использует каналы, вдохновленные CSP (так же, как Go) для достижения конкурентности. Он использует согласованные легковесные потоки, называемые Fibers, для достижения этой цели. Fiber легко создать с помощью ключевого слова и сделать выполнение асинхронным/неблокирующим.
  • Макросы: Crystal использует макросы, чтобы избежать шаблонного кода и обеспечить возможности метапрограммирования. Макросы очень мощные и раскрываются во время компиляции, то есть они не приводят к потери производительности.
  • : Команда сама по себе полнофунциональна и поставляется с большим количеством встроенных инструментов. Она используется для создания нового проекта, компиляции, запуска тестов и многого другого. Там также есть встроенная утилита для автоматического форматирования кода. А ещё представляет интерактивную среду для быстрого прототипирования, подобно .

Бонус:

Выразительность: Код читают гораздо чаще, чем пишут. Благодаря Ruby, Crystal действительно выразителен и лёгок для понимания. Это облегчает обучение для новичков и окупается в долгосрочной перспективе, благодаря упрощению сопровождения кода.

Для получения дополнительной информации вы можете обратить внимание на официальную Crystal Book и Crystal for Rubyists. Этот раздел был написан Serdar Doğruyol — автор Crystal for Rubyists, создатель Kemal, веб-фреймворка для Crystal, куратор Crystal Weekly

Этот раздел был написан Serdar Doğruyol — автор Crystal for Rubyists, создатель Kemal, веб-фреймворка для Crystal, куратор Crystal Weekly.

Экзотические языки программирования

Одним из экзотических языков программирования является Brainfuck. Автор разработал его с целью создания языка с минимальным компилятором. Для написания программы доступны 8 команд.

Другим экзотическим языком программирования считается Cow. Он основан на языке, который используется в машине Тьюринга. Состоит из 12 команд.

Язык Intercal включает операторы Read out, Ignore, Please, Forget и другие. Важным моментом в коде является оператор Please, который должен быть использован ровно 4 раза. Таким образом проверяется вежливость программиста. Программа не будет выполняться, если он не будет соблюдать данное условие.

Как насчет сенсорных экранов?

Для многих современных детей первым опытом работы за компьютером становится телефон или планшет с сенсорным экраном. Визуальные языки очень легко переводить на сенсорный интерфейс. Большинство маленьких детей гораздо быстрее работают с интерфейсом перетаскивания на планшете, а не при помощи клавиатуры и мыши или трекпада. И у большинства подростков телефон все время находится под рукой.

Существует множество приложений типа Scratch Junior или Pocket Code, которые эффективно используют сенсорный интерфейс, чтобы позволить «поколению смартфонов и планшетов» писать код.

Microsoft создал сенсорный язык разработки, ориентированный на телефоны и планшеты. Это текстовый язык, но фактически в нем снижена доля набора благодаря использованию нажатий. Эта идея, безусловно, заслуживает изучения.

JavaScript — язык интерактивности


Drag’n’drop — одна из многих возможностей, предоставляемых JavaScript. Источник.

Разработанный в конце девяностых, но широкое распространение получивший уже во второй половине нулевых, JavaScript, или сокращенно JS — язык, обеспечивающий поддержку интерактивности веб-страниц. Именно он отвечает за работу заполняемых полей и форм, перемещение объектов, которые вы перетаскиваете курсором мыши, работу фильтров и другие свойства сайтов, уже ставшие привычными. Благодаря тому, что JavaScript-сценарии (так в этом языке называются исполняемые команды) не требуют перезагрузки страницы, JS обеспечивает повышение скорости работы веб-систем.

На освоение языка у начинающего верстальщика, уже познакомившегося с HTML и CSS, уйдет несколько недель. Знакомство с JavaScript также сможет стать первым шагом к изучению языков, необходимых backend-разработчику и программисту мобильных приложений

Важно отметить, что в последние годы благодаря платформе NodeJS, преобразующей JavaScript в машинный код, этот язык все больше превращается в полноценное средство разработки.

Какие бывают языки программирования

Уже в начале XIX века появились первые «программируемые» механизмы: ткацкие станки, музыкальные шкатулки и т.д. Каждый из них программировался своим собственным набором инструкций. Так появились предметно-ориентированные языки программирования, которые в огромном количестве создаются до сих пор по мере появления новых устройств и аппаратного обеспечения.

Кроме предметно-ориентированных, существуют учебные языки программирования, которые созданы специально для обучения начинающих программистов. Например, из одного такого учебного языка ABC вырос популярный сейчас язык программирования Python. Поэтому он такой простой и понятный.

Текст программы для отображения «Hello, world» на языке Python

Существуют эзотерические языки — своеобразные произведения искусства, которые невозможно применять на реальных задачах. Например, язык Malbolge специально создан для максимального затруднения написания программ.

Текст программы для отображения «Hello, world» на языке Malbolge

Кроме упомянутых учебных, эзотерических и предметно-ориентированных языков, есть еще визуальные языки, где программирование состоит в манипулировании графическими элементами. В основном такие языки используются для создания программ с графическим интерфейсом. Есть еще специализированные языки СУБД, языки для промышленной автоматизации и другие ЯП относительно узкого назначения.

Выделяют такие подходы к программированию (на профессиональном языке они называются парадигмами): аспектно-ориентированные, структурные, процедурные, логические, объектно-ориентированные, функциональные, мультипарадигмальные языки.

Общепринятой классификации не существует, но исторически принято разделять ЯП на высокоуровневые и низкоуровневые языки.

PHP (Пи-эйч-пи)

Расшифровывается как Personal Home Page Tools («инструменты для создания личной странички в интернете»). Чаще всего PHP применяют веб-мастера для разработки сайтов. В настоящее время он наиболее популярен в среде хостов (интернет-провайдеров), которые следуют тенденции использовать и поддерживать PHP, в чём и заключается его огромное преимущество. Но одним интернетом его функциональность не ограничивается.

PHP завоевал большую симпатию у сайтостроителей благодаря многоплатформенности (подходит для любой операционной системы), быстроте работы, простоте и удобству. Кроме того, с его помощью можно создавать GUI (графический пользовательский интерфейс). К его недостаткам относятся несовместимость разных версий и невозможность создания в нём многопотоковых программ, усиливающих производительность компьютера.

Заключение

Если о разработчиках что-то известно достоверно, то вот что: они любят дискутировать о языках программирования и часто расходятся во мнениях.

И к этому посту почти наверняка появятся комментарии, что в нём многое некорректно, упущено что-то значимое и вообще надо было всё написать иначе.

Что если я заявляю «надо объяснять главные различия», то надо было обязательно рассказать про типизацию.

Что где-то я забыл упомянуть важнейшую область применения.

В общем, очень вероятны критические комментарии — и это замечательно: в одиночку сложно объять всю индустрию, так что чем больше людей с разным опытом дополнят текст своим видением, тем более полной окажется итоговая картина. Я даже намеренно упустил один популярный язык, про который недостаточно знаю, чтобы хорошо его описать — думаю, его сторонники сами придут в комментарии и восполнят пробел.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector