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

Ruby — модный и крутой

Действительно модный — именно на нем написан , им пользуются разработчики Look At Media. Ruby является главным конкурентом Python за звание по-настоящему объектно-ориентированного языка. Созданный в начале девяностых под влиянием языка Perl, Ruby подходит для решения широкого спектра задач, от веб-программирования до разработки сложных интегрированных систем, включающих сайты, мобильные приложения и виджеты рабочего стола.

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

Что дальше?

В случае Лиспа сложно провести чёткую грань между диалектом и языком-потомком, так как различные диалекты Лиспа, созданные за более чем полвека его существования, могут существенно различаться и быть несовместимыми. С другой стороны, Лисп просто в силу возраста оказал то или иное влияние на огромное число языков, причём не только функциональных. Если считать прямыми потомками Лиспа только языки, сохранившие общую структуру программы, но синтаксически несовместимые с Лиспом, то можно выделить следующие:

  • Scheme — разработанный в 1976 вариант Lisp, который и сегодня используется в обучении программированию и в исследовательских целях, а также применяется в качестве встраиваемого языка.

  • Racket — потомок Scheme, разрабатываемый с 1994 года и находящийся в использовании по сей день. Мощная расширяемая lisp-система, включающая в себя все современные средства поддержки программирования и большой массив библиотек.

  • Clojure — созданный в 2007 году на основе Lisp язык функционального программирования, интегрированный с платформой Java (программы транслируются в байт-код и работают под управлением JVM). Унаследовав основные черты Lisp, язык имеет целый ряд синтаксических отличий и нововведений. Интеграция с Java-платформой даёт возможность непосредственно применять весь массив накопленных библиотек для данной платформы. Также Clojure имеет встроенную поддержку параллельного программирования, причём является одним из немногих языков, поддерживающих механизм транзакционной памяти.

  • Лого — язык и интерактивная среда, разработанные в 1967 году Сеймуром Пейпертом и Идит Харель для обучения детей дошкольного и младшего школьного возраста основным концепциям программирования. Язык имеет лисп-подобный списочный синтаксис, в котором устранена необходимость использования большинства скобок. Поддерживается также и императивная форма программы, напоминающая Бейсик. Повторение, кроме рекурсии, может быть реализовано с помощью конструкции цикла с фиксированным числом итераций. Характерная особенность среды интерпретатора Лого — поддержка визуального агента («черепашки»), изображаемого в виде пиктограммы на графическом поле (в окне).

Завершая рассказ, можно сказать, что Lisp до сих пор остаётся одним из основных использующихся языков. Применяется он и как средство обычного промышленного программирования, от встроенных скриптов до веб-приложений массового использования, хотя популярным его назвать нельзя: в рейтингах популярности языков он стабильно занимает примерно 29-30 места.

А что с работой?

Прежде чем учить какой-то язык программирования, вы наверняка хотите знать: «А что же потом?»

Поэтому мы собрали для вас небольшую статистику по вакансиям.

На Яндекс.Работе в Москве от 900 до 1000 вакансий для Java-разработчиков, а на HeadHunter — около 2000 (все данные приведены за декабрь 2019 года).

Вакансии, в которых указана зарплата, начинаются от 70 тысяч рублей. Большинство предложений попадает в диапазон от 100 до 200 тысяч, а продвинутым разработчикам предлагают до 300 тысяч рублей.

Как вы видите, Java-разработчики востребованы, и даже по московским меркам у них хорошая зарплата (по данным Банка заработных плат HeadHunter, средняя зарплата по Москве в третьем квартале 2019 года составила 85 707 рублей).

Синтаксис NewLang:

И одновременно «объять необъятное»

Основы

  • Операторы разделяются точкой с запятой «;».
  • Отступы и переводы строк игнорируются (очень хотелось иметь возможность автоматического форматирование кода).
  • Многострочные комментарии в исходном коде соответствуют стилю С/С++ и должны располагаться между символами /* и */. Вложенность многострочных комментариев не поддерживается.
  • Однострочные комментарии начинаются с символа «#» до перевода строки, что соответствует комментариям в стиле Python и Bash.
  • Последовательность выполняемых команд, которая должна выполняться как единое целое, заключается в фигурные скобки «{}».
  • Программные вставки расширенного синтаксиса на языке реализации заключается в фигурные скобки со знаком процента %{ /* тут может быть любой код на C/C++*/ %}.

Идентификаторы объектов и модификаторы

$@$1$arg

  1. При создании нового типа данных, так как типы всегда создаются в глобальной области видимости, а их символьные имена должны быть уникальными
  2. При обращении к объектам NewLang внутри программных вставок кода на языке реализации, так как они используется как маркеры при поиске идентификаторов NewLang в коде С/С++.

4–5. С/С++

Согласно индексу TIOBE, язык C занимает второе место (после Python) по популярности по состоянию на январь 2022 года. Но означает ли это, что он сохранит актуальность в будущем? По научным и производственным причинам — возможно, да. Но давайте вспомним: в мае 2020 года он вышел на первое место, обогнав Python. Ниже приведено изображение.

Чтобы определить, будет ли он также популярен в будущем, необходимо знать, что стало причиной его внезапного взлета в 2020 году. Ниже приводится комментарий генерального директора TIOBE о возможной причине, по которой C вырвался на первое место. 

«Последний раз C занимал первую строчку в 2015 году. Можно только догадываться, почему C снова стал номером один. Одной из причин может быть коронавирус. Это может показаться глупым, но некоторые языки программирования выигрывают в этой ситуации. В качестве примера можно привести Python и R: они применяются в области науки о данных, которая всем интересна во время борьбы с коронавирусом. Но также набирают популярность и embedded-языки, такие как C и C++, потому что они используются в программном обеспечении для медицинских устройств», — пояснил генеральный директор TIOBE Пол Янсен. 

Также C используется в большей части бытового оборудования, такого как микроволновые печи, холодильники и так далее. Другими словами, по мере развития IoT он, скорее всего, все еще будет на виду. Но все равно он имеет серьезные недостатки, которые уже устранены в более современных языках. 

Да и аппаратное обеспечение также меняется, поэтому присутствие C нельзя гарантировать. Да, С — мать большинства языков, но рано или поздно, вероятно, IT-сообщество уйдет от него. 

C++ не решает проблем, а только добавляет расширения. Это создает ненужные расходы. Например, Tesla фактически предпочла C, а не C++ для своей операционной системы. 

В индексе TIOBE C++ занимает четвертое место. В отличие от C, C++ в основном используется для создания приложений на основе графического интерфейса. К ним относятся настольные приложения, веб-браузеры, игры и так далее. Таким образом, от C++ проще отказаться, потому что есть более современные языки, которые могут выполнить работу с большей легкостью и эффективностью. 

Еще один современный язык — Ruby. Скорость важна везде, а в условиях стартапа она важна еще больше. Если нужно двигаться быстрее, Ruby — хорошая альтернатива С. 

brainfuck

Не удивляйтесь, это не ругательство, а название реально существующего языка программирования, причем несмотря на то что это имя собственное, в названии нет заглавных букв. Brainfuck можно назвать самым непрактичным из когда-либо созданных языков. Целью создателей было бросить вызов программистам, разработав язык с самым маленьким компилятором (на тот момент были экземпляры размером менее 200 байт).

Сам язык состоял из восьми команд (> < + — . , ), а программа представляла собой сочетание этих команд, выполнявшихся последовательно (подчиняясь некоторым исключениям). Если же в программе появлялись символы, не являющиеся командой, они воспринимались как комментарии. Представьте себе, какая скукотища писать «Hello World!» на brainfuck!:

Не трудно догадаться, что brainfuck никогда не был конкурентом Java или С++ (по вполне очевидным причинам). Если вы мазохист, попробуйте написать что-нибудь на brainfuck. Поверьте, больше чем на 15 минут вас не хватит, потому что в противном случае вас постигнут необратимые повреждения головного мозга.

На Хакере был цикл статей об этом чудном языке, ты можешь прочитать их тут:

Настоящий Brainfuck №1Настоящий Brainfuck №2Настоящий Brainfuck №3

HTML — язык визуальной разметки веб-страниц

HTML — одна из основ того, с чем мы взаимодействуем в сети. Созданный в конце восьмидесятых – начале девяностых «отцом интернета» Тимом Бернерсом-Ли, он органично развивается уже более25 лет, обретая всё новые возможности в соответствии с требованиями времени. Сегодня действующая версия стандарта языка — HTML5. Формированием стандарта занимается организация W3C — Консорциум Всемирной паутины. Она расширяет язык, задает направление его дальнейшего развития и следит за тем, чтобы исполнение HTML-команд осуществлялось во всех браузерах.


За свою «службу во благо глобального развития интернета» Тим Бернерс-Ли уже с 2004 года носит рыцарское звание, данное ему британской королевой

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

Важно!
Базовое знание HTML необходимо каждому, кто планирует заниматься веб-разработкой.

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

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


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

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

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

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

Что выбрать новичку?

Опишем краткий алгоритм выбора.

Для начала выберите не язык, а интересное вам направление. Это может быть веб-, десктопная, мобильная или серверная разработка. А может быть, вы захотите заниматься анализом данных.
Теперь оцените свои силы и навыки и выберите язык, подходящий вашему уровню. Если вы никогда ничего не программировали и не учились программированию ни в школе, ни в университете, начните с языков полегче (JavaScript, PHP), а если чувствуете себя увереннее и уже пробовали что-то писать, можете выбрать Java.
Определившись с языком и изучив его синтаксис, не забудьте познакомиться со стеком технологий и популярными фреймворками — это вам точно пригодится

Не надо пытаться сразу всё досконально изучить, но важно ориентироваться в технологиях.

ALGOL 68: ALGOrithmic Language 1968

Язык получил звание «самой великолепной комбинации успеха в теории и провала на практике» среди языков программирования. ALGOL 68 – язык, созданный в качестве альтернативы существовавшему уже на тот момент ALGOL 60. Это детище печально известного сообщества «бунтарей», у которых отлично получалось вызывать в программистской среде сплетни и агрессию по отношению к себе. Хотя язык сам по себе сейчас практически не используется, он служит вечным напоминанием потомкам о том, как не надо делать «креатив». ALGOL 68 был первым языком (и, надо признаться, и по сей день остается одним из очень немногих), официальная спецификация которого появилась раньше, чем реализация. Правда, спецификация эта
была совершенно нечитабельной и немедленно принесла проекту репутацию чересчур «навороченного».

То, что ALGOL 68 и в самом деле был сложным, громоздким и содержал в себе множество загадочных операторов, так же верно, как и то, что это был первый действительно универсальный язык. Именно он стал «идейным вдохновителем» для создателей С и Bourne Shell. Благодаря ALGOL 68 параллельная обработка данных упростилась до такой степени, что даже современные языки типа Java и С++ до сих пор не добрались до его уровня.

ALGOL 68 скоропостижно скончался, так и не успев толком пожить. Благодаря невнятности спецификации членам комитета разработчиков ничего не стоило утопить проект еще до того, как люди смогли реально оценить его достоинства и недостатки.

Понятие о специальных языках программирования

В процессе программирования, помимо полноценных языков, таких, как C++, C#, Java, Python и т.п., часто используются вспомогательные синтаксисы. Например, при разработке веб-приложений применяются язык разметки HTML, язык описания стилевых таблиц CSS. Назначение этих языков узкоспециально. С их помощью невозможно написать полноценную программу, но для решения особых задач они незаменимы. Например, на HTML гораздо легче написать веб-страницу, чем на C++, хотя для обработки (рендеринга) HTML нужны программы, написанные на универсальных полноценных языках (веб-сервер, веб-браузер).

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

Определение 1

Предметно-ориентированными или специальными называют языки, созданные для решения специальных задач. Им противопоставляют языки общего назначения, применимые в самых разных областях, от написания мобильных приложений до программирования веб-серверов. В англоязычной традиции предметно-ориентированные языки называются domain-specific languages (DSL), что можно перевести как «языки, специфические для определенной предметной области».

Примеры специальных языков программирования:

  • HTML — для разметки веб-страниц;
  • SQL — для совершения запросов к базам данных;
  • LaTeX — для вёрстки текстовых документов, содержащих формулы и другое форматирование;
  • Prolog — для решения логических задач;
  • JSON — для описания объектов и т.п.;
  • Brainfuck — шуточный язык для упражнений в остроумии и т.п.

Рисунок 1. Программа на языке Brainfuck. Автор24 — интернет-биржа студенческих работ

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

Один язык для всех

Польский программист Петр Фусик (Piotr Fusik) создал новый язык программирования Ć, своего рода универсальный язык написания кода. Со слов автора, его творение позволяет писать код, который в дальнейшем можно будет без труда использовать в других языках.

В качестве примера Фусик привел C, C++, C#, Java, JavaScript, Python, Swift и OpenCL. Все детали своего языка Ć, который пока находится на одном из этапов разработки, он опубликовал в открытом виде на GitHub (принадлежит Microsoft).

Петр Фусик не уточнил, почему назвал свое творение именно так, и не сообщил, как правильно его произносить. «Апостроф» над буквой С называется «акут», то есть, с учетом этого, название языка может звучать как «Си с акутом». Также это буква польского алфавита, которая называется «Че» и читается приблизительно как «Ч».

Эль-76

В семидесятые-восьмидесятые годы группа советских инженеров разработала серию суперкомпьютеров «Эльбрус». Они параллельно обрабатывали несколько инструкций и даже обзавелись встроенными типами данных. В то время у операционных систем и языков программирования не было типов — и из-за этого постоянно возникали ошибки вроде деления символа на число. Но главной фишкой «Эльбруса» стала работа с высокоуровневыми языками.

Специально для него учёный Владимир Пентковский с командой Института точной механики и вычислительной техники разработал язык Эль-76. Он был высокоуровневым, но его часто называли автокодом, потому что языка более низкого уровня в «Эльбрусе» не было. Программы на всех остальных языках транслировались в Эль.


Владимир Пентковский. Фото: «Википедия»

Эль был полноценным языком программирования с джентльменским набором возможностей и операторами на русском языке (привет 1С-программистам и импортозамещению). Что в нём было:

  • структурное программирование;
  • циклы;
  • условные операторы;
  • оператор case;
  • обработка исключений.


Пример кода на Эль-76. Фото: Public Domain

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

Идея русскоязычного программирования была заманчивой и идеально встраивалась в политический курс СССР, но история и экономика распорядились иначе. Сегодня не осталось ни одной машины, которая «разговаривает» на Эль-76. «Эльбрусы» производились для внутреннего рынка, а IBM, Microsoft и Apple продавали компьютеры по всему миру. Под их «железо» писали программы на Fortran, BASIC и C. Поэтому Эль, как и многие другие кириллические языки программирования, умер.

Специальные языки в веб-разработке

Основными синтаксисами, применяемыми при создании веб-приложений, являются HTML, CSS и JavaScript. Все они довольно консервативны, а порой весьма громоздки. Их можно было бы оптимизировать, но это затронуло бы огромное количество пользователей, не все из которых склонны обновлять программное обеспечение. Решением является применение эффективных специальных языков, преобразуемых в стандартные в момент сборки страницы:

  • CoffeeScript позволяет писать более компактные программы, по сравнению со стандартным JavaScript, в который преобразуется путем компилирования;
  • Markdown — простой язык разметки, позволяющий писать форматированные тексты гораздо быстрее, чем на стандартном HTML; часто веб-документы пишутся на Markdown, а потом компилируются в HTML; примерно так же используется язык Pug (в прошлом Jade), где для разметки используются не тэги, а отступы;
  • Stylus, Sass, LESS — языки, облегчающие формирование стилевых таблиц; на этапе сборки компилируются в стандартный CSS.

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

Еще одним примером DSL могут служить современные фреймворки, такие, как Vue, React, Angular. В них разнородные синтаксисы интегрируются еще теснее, позволяя работать с меньшим количеством файлов и сокращать количество этапов сборки.

Рисунок 2. Объединение синтаксисов в фреймворке Vue. Автор24 — интернет-биржа студенческих работ

Как все это попробовать?

Подготовка репозитория

  • Скачать исходники
  • Скачать и развернуть архив libtorch в каталоге contrib (PyTorch Build: Stable (1.10.*) -> Your OS: Linux -> Package: LibTorch -> Language: C++ / Java -> Compute Platform: CPU -> Download here (cxx11 ABI): libtorch-cxx11-abi-shared-with-deps-1.10.2+cpu.zip)
  • Активировать и скачать исходники субмодулей (git submodule init && git submodule update)
  • В каталоге contrib запустить файл build.sh для сборки библиотеки libffi
  • В каталоге core запустить файл compile_syntax.sh для генерации файлов парсера и лексического анализатора. Может потребоваться установка утилит flex и bison. Если что, у меня установлены flex 2.6.4 и bison (GNU Bison) 3.7.4

Собрать

  • Юнит-тесты (newlang_test): в каталоге core выполнить команду make CONF=UnitTest
  • Интерпретатор (nlc): в каталоге core выполнить команду make CONF=Debug

Рейтинг StackOverflow

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

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

Уже девятый год подряд первое место у JavaScript, хотя по TIOBE и PyPL до лидерства ему далеко. JS знают, изучают или используют в работе 68,62% респондентов. 

В десятку вошли Node.js и TypeScript, которые расширяют JS. После массовых HTML и CSS идёт Python с 48,24% — у него третье место. А в конце топ-10 — C# и C++. Язык Си плавает около 12-го места.

Увидев статистику «любви и ненависти» к языкам, мы смеялись, ведь она точно отражает известную цитату создателя С++:

«Есть всего два типа языков: те, на которые жалуются, и те, которые никто не использует».

Голубая полоса на графике — любимый язык, фиолетовая — ужасающий. Сумма двух полос — это все респонденты, которые явно указали отношение к языку:

На вершине — языки, которые в общем рейтинге набрали меньше 1%. Clojure, Elixir, Julia, Dart, Swift, Go — все они выше Java, C и C++. 

Язык Си ненавидят 60,44% пользователей SO. Но это скорее подтверждает, что программисты работают с языком или хотя бы знают о нём. 

Из лидеров в общем рейтинге хорошие показатели только у Python — это 67,83%, С# — 61,96% и JavaScript —  61,51%. 

Интересен вопрос о языках, которые пользователи SO собираются изучать в 2022 году. Python здесь — лидер с ощутимым отрывом. И это ещё раз подтверждает не только популярность, но и большой интерес разработчиков к языку (кстати, освоить язык можно здесь). 

Теперь, когда мы увидели общую картину, посмотрим на цифры в России и ближнем зарубежье.

Популярность ЯП в России и не только

В 2021 году, по версии JB, самый популярный ЯП в России — JavaScript. Одним из основных или основным его назвали 28% российских программистов; за последний год с ним работали 56% участников опроса. JavaScript популярнее среди программистов Украины и Беларуси: основным его указали 38 и 36% опрошенных соответственно.

Интересна подборка ЯП, которые профессионалы хотят изучать в 2022 году. Наиболее популярными «завтрашними» языками стали быстро растущие Go, TypeScript, Kotlin, Rust и Python.

Теперь посмотрим на количество вакансий с упоминанием разных языков. Вот первая десятка Zarplan на сегодня:

SQL упоминается в два раза чаще JS, что вполне понятно — язык часто дополнительный. Знание SQL станет преимуществом на вакансиях C# или Java. Конечно, владения SQL требуют многие вакансии аналитиков данных, Data Scientist, Data Engineer, продуктовых и бизнес-аналитиков. 

А ещё мы посмотрели вакансии на hh.ru. На 28 ноября в поиске по ключу «SQL» в России имелось 30410 вакансий. И вот первая десятка:

  • SQL — 30410 вакансий;

  • JavaScript — 17 626; 

  • Python — 15 805;

  • Java — 12 334;

  • PHP — 7409;

  • C# — 7270;

  • C++ — 5976;

  • Go — 4856;

  • TypeScript — 4764;

  • Kotlin — 3239.

Она с небольшими отличиями повторяет статистику Zarplan. Разве что специалистов по Go на hh.ru требуется намного больше. Остальное — в пределах погрешности. В бизнесе больше всего требуются специалисты по JavaScript, Java и Python.

Разработка игр

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

Что касается языков, на которых ведется разработка игр, то времена, когда их можно было писать на универсальных ЯП (C, C++, Java) ушли в прошлое. Современный подход заключается в использовании «движков» — программных ядер, в которых уже реализованы необходимые физические модели: гравитация, способы перемещения персонажей в пространстве и т.п.

Одной из наиболее востребованных платформ для разработки игр является Unity. Создавая объекты с готовыми наборами возможностей, программист на простых языках (C#, JavaScript) наделяет персонажи и игровую среду требуемыми характеристиками.

Замечание 2

Подход, когда к готовому «движку» дописывают сравнительно компактные скрипты (часто для этого используется язык Lua) распространен в индустрии компьютерных игр.

JavaScript: главный по фронтенду

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

Изначально он использовался для создания интерактивных веб-страниц, но сейчас на нём делают и серверные (привет Node.js), и мобильные, и десктопные приложения, и многое другое.

Тем не менее, несмотря на широкое применение, JavaScript не волшебная таблетка. У него есть свои ограничения, из-за которых он подходит не для всех задач.

Какие плюсы и минусы есть у этого языка:


Изображение: Skillbox Media

Что касается минусов — есть инструменты, которые помогают их компенсировать. Например, TypeScript и Flow делают работу с типами более безопасной, но код становится писать сложнее.

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

Зарплата специалистов и востребованность языка

По данным «Хабр Карьеры», средняя зарплата JavaScript-разработчика составляет около 154 тысяч рублей. Новички зарабатывают от 40 до 100 тысяч, а профессионалы могут похвастаться зарплатой в 200 тысяч и выше.

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

Синтаксис JavaScript

JavaScript может выглядеть так:

Этот код отвечает за авторизацию на сайте. Он читается не настолько легко, как в некоторых других языках, но если вы знаете английский, то можно догадаться, что здесь происходит. Например, в первой строке мы видим, что у нас есть кнопка (button), которая отвечает за вход в систему (login), и по ней можно кликнуть (click).

Какие технологии используют с JavaScript

Разработчику на JavaScript недостаточно освоить синтаксис языка и основные концепции. В своей работе «джаваскриптеры» используют целый арсенал инструментов.

1. Редакторы кода или IDE:

  • Notepad++;
  • Sublime Text;
  • WebStorm.

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

  • Chrome Web Inspector (DevTools);
  • Firebug.

3. Среда исполнения серверного ПО: Node.js.

4. Средства разработки десктопных приложений:

  • Electron;
  • AppJS;
  • NW.js (Node-Webkit);
  • Windows 8+.

5. Фреймворки для веб-разработки:

  • jQuery;
  • Angular;
  • React;
  • Backbone;
  • Ember;
  • Meteor.

6. JSON — самый популярный формат передачи структурированных данных.

7. MongoDB — документо-ориентированная база данных. Можно создавать JS-процедуры.

SMIL: Synchronized Multimedia Integration Language

SMIL (произносится как «смайл») был создан в основном для представления мультимедийного (не потокового) контента через Интернет. Компания Real Networks создала этот язык для обеспечения таких реально важных нужд, как синхронизация текста и видео (например, субтитры в караоке) или звука и Flash-изображения. Результатом работы SMIL стала возможность создавать полноценную (хотя и не очень чистую) передачу видео, используя лишь скудную пропускную способность телефонного кабеля.

Несмотря на наличие конкурентов от Microsoft, SMIL оставался все-таки более мощной альтернативой. Но что действительно гарантировало SMIL второстепенное положение среди языков, это появление широкополосных каналов Интернет-соединения. С распространением широкополосных сетей и с приходом их в среднестатистические дома пропала необходимость в языке, способном создавать убогий эквивалент потокового видео.

Отказавшись плыть по течению, SMIL стал хорошим примером того, как можно оказаться не в то время и не в том месте. Если бы SMIL появился в тот момент, когда коммутируемый доступ к Интернет только начинал покорять Америку, у него был бы шанс получить ту долю популярности, которую он, как революционер, безусловно, заслуживает. В настоящее время SMIL находит применение в некоторых портативных устройствах, одной из функций которых является отправка MMS (мультимедийная альтернатива текстовым сообщениям).

Личные предпочтения

Еще интересный вопрос – какой язык выбирают следующим в проекте? Здесь лидирует TypeScript. Однако напомним, что смотреть на выбор разработчиков оказалось плохим предиктором дальнейшего распространения – на практике их приглашают на проект, когда язык уже определен.

Если бы вы сейчас начинали коммерческий проект и у вас была бы свобода выбора языка

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

Наиболее комфортным является Dart, далее в первом кластере Clojure, Kotlin, Rust, Swift, C#, Go и TypeScript.

Есть и неожиданность: перемещение Scala из первого кластера во второй. Относительно языков, которые рассматривают как альтернативные: из 80 человек, которые указали Scala как основной язык программирования, 50 начали бы проект им же, 9 перешли бы на Python. Возможно, это связано с тем, что Spark (написанный на Scala) достаточно активно работает над Python API для пользователей. Еще 8 не указали следующий язык, далее следуют Java(4), Rust(3), Go(2) и Swift(2). Еще по одному голосу у Kotlin и Clojure.

Если смотреть на направления миграции с Java — это, прежде всего, Kotlin, далее Go, Scala и Python, затем TypeScript и Dart. Еще интересное направление миграции из PHP, это преимущественно Go и JavaScript и Python.

2.5 Язык программирования Perl

Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language «практический язык для извлечения данных и составления отчётов». Первоначально аббревиатура состояла из пяти символов и в таком виде в точности совпадала с английским словом pearl, жемчужина. Но затем стало известно, что такой язык существует и букву «а» убрали. Талисманом языка Perl является верблюд — не слишком красивое, но очень выносливое животное, способное выполнять тяжёлую работу. Согласно Ларри Уоллу, Perl имеет два девиза. Первый — «There’s more than one way to do it» («Есть больше одного способа сделать это», также известный как TMTOWTDI); второй — «Easy things should be easy and hard things should be possible» («Простые вещи должны быть простыми, а сложные вещи — возможными»). Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений. Перл унаследовал много свойств от языков Си, shell scriptawk. Perl также знаменит огромной коллекцией дополнительных модулейCPAN, находящейся по адресу http://www.cpan.org(англ.).

Текущая версия и разработка

Сегодня основной для разработчиков является пятая версия языка Perl, однако (на некоторых веб-серверах) продолжают использоваться программы (скрипты), написанные на предыдущей — четвёртой — версии (из-за частичной обратной несовместимости). Фактически стандарт языка определяется реализацией интерпретатора. С 2000 года идет разработка новой (6-ой) версии языка. В отличие от предыдущих версий, разработчики планируют создать четко определенный стандарт языка. В настоящее время существуют экспериментальные компиляторы Perl 6, но продолжается дальнейшая дискуссия о новых правилах. На русском языке информация о новой версии языка доступна на сайте http://perl6.ru/.

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

Perl — далеко не единственный язык, дающий богатые возможности в обработке текста. Языки программирования РЕФАЛ, Icon и Снобол предоставляют возможность использовать более полно метод программирования «сопоставления с образцом», частным случаем которого и являются регулярные выражения. Существует также полноценный shell, использующий в качестве основы язык Perl. Называется он psh и даёт возможность смешивать команды обычного шелла и самого Perl’а.

Разработка под iOS


Особенности Swift. Фото с презентации Крейгом Федериги нового языка программирования на WWDC’2014.

Изначально разработка программ для Apple-устройств осуществлялась на языке Objective-C, затем в 2014-м на смену ему пришел специально созданный в Apple язык программирования Swift. Несмотря на то, что сегодня разработка iOS-приложений ведется на нем, знание Objective-C будет не лишним для программиста. Кроме лучшего понимания принципов работы приложений, которое даст его освоение, этот язык является и потенциальным первым шагом к освоению C — языка общего назначения, подходящего для широкого круга профессиональных задач, таких как разработка операционных систем, серверного программного обеспечения и драйверов устройств. Главной задачей, которую ставили перед собой создатели Objective-C было быстродействие языка при минимуме ошибок и сниженной нагрузке на оперативные мощности устройства.

Swift унаследовал и развил эти качества. Главные плюс Swift — скорость работы и простота в освоении. Минус — то, что этот язык предназначен строго для iOS-разработки. Впрочем, он отлично подходит и для того, чтобы стать первым языком начинающего программиста.

На освоение Swift потребуется около полутора месяцев. Если дополнить его изучением Objective-C, стоит заложить еще шесть–восемь недель.


Распространение iOS и Android на2017 год Источник.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: