Как создать свой язык программирования на python

МЕРОПРИЯТИЯ
YADRO X MOSCOW USER GROUP C++ MEETUP
Комментарии
Популярные По порядку
Не удалось загрузить комментарии.
ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ
ООП на Python: концепции, принципы и примеры реализации
Программирование на Python допускает различные методологии, но в его основе лежит объектный подход, поэтому работать в стиле ООП на Python очень просто.
3 самых важных сферы применения Python: возможности языка
Существует множество областей применения Python, но в некоторых он особенно хорош. Разбираемся, что же можно делать на этом ЯП.
Программирование на Python: от новичка до профессионала
Пошаговая инструкция для всех, кто хочет изучить программирование на Python (или программирование вообще), но не знает, куда сделать первый шаг.
Создание языка программирования: 11 шагов и реальные перспективы
Про создание языка программирования мечтает каждый второй разработчик, причем, как правило, новичок. Цели преследует каждый свои. Одни желают улучшить уже существующий язык, другие — привнести в этот мир что-то ультрановое и экзотическое, а третьи – заработать миллионы на своей разработке.
Давайте вместе разбираться, реально ли в одиночку с нуля создать свой язык программирования даже на базе уже существующего, какие действия придется совершить, что проанализировать и самое главное – сколько по времени займет весь этот процесс. Хотя вы, наверное, и так уже понимаете, что за полчаса второй Python не создать, но давайте все равно предположим.
Зачем нужны новые языки программирования
На данный момент существуют уже сотни различных языков программирования, и их количество неуклонно растет. Они становятся популярными, широко востребованными. От чего это зависит? Тут влияют самые разные факторы, не всегда постоянные, меняющиеся с течением времени.
На заре развития компьютерных технологий новые языки программирования были крайне необходимы в первую очередь потому, что писать программы с помощью машинных кодов, да и на ассемблере тоже было очень затруднительно, процесс получался слишком сложным.
Требования к созданию языков программирования постепенно менялись по мере того, как стали появляться компьютеры помощнее, более простые и удобные в использовании. К примеру, Fortran придумывался больше для ведения математических вычислений, Basic и Pascal были «заточены» под учебные цели и отличались легкостью изучения, а другие (вроде Си) были хороши своей универсальностью и скоростью работы.
Как только в программировании свершались некие значимые достижения, тут же появлялась куча новых языков. Например, языки C++, Objective C, Java были разработаны в 1980-1990-е годы на фоне открытия парадигмы объектно-ориентированного программирования. Скриптовые языки (вроде PHP, JavaScript, Python) стали бурно развиваться в связи с появившейся необходимостью в создании веб-приложений. Да и сейчас тоже продолжают появляться отличные языки, они быстро пишутся, и программы на них работают просто молниеносно (примеры — Go, Swift, Rust).
Разумеется, современные новые языки программирования – это не просто «модное» веяние. Часто в них возникает конкретная необходимость, когда требуется решение неких особых задач. К примеру, для автоматической обработки логических суждений создавался Prolog. А Erlang принят как стандарт в сфере разработки ПО для сетевых коммуникаций.
11 шагов создания своего языка программирования с нуля
Для чего и по каким причинам может понадобиться создание собственного языка программирования? Кому-то просто нечем заняться, другие пишут для упрощения своей же работы, а кто-то ставит целью решение конкретных задач. Ниже перечислены 11 шагов по созданию языка программирования, следуя которым, вы можете попробовать написать свой. Кто знает, вдруг это окажется шедевр, который прославит вас на весь мир?
Шаг 1. Ознакомьтесь с устройством компьютера.
Это обязательное действие для всех, кто решил заняться программированием, не только при написании новых языков. Тут очень важно понимать, как компьютер преобразует коды и затем их исполняет. Вы не сможете принимать адекватные решения, если не исследуете функционал машины.
Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!
Скачивайте и используйте уже сегодня:

Павел Симонов
Исполнительный директор Geekbrains
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Получить подборку бесплатно
Уже скачали 24076
Шаг 2. Разберитесь в терминах.
Вам придется иметь дело с такими понятиями, как парсеры, лексеры, компиляторы, интерпретаторы, синтаксические деревья и еще много всего прочего. Если вы не будете четко понимать, о чем идет речь, то как сможете вообще этим заниматься, советоваться с другими разработчиками, искать нужные сведения в Интернете? Создание любого языка программирования начинается со знания терминологии и технологий.
Шаг 3. Обозначьте специализацию языка.
То есть определитесь, создаете вы инструмент для решения конкретных задач или это будет язык с широким профилем применения в самых разных областях IT. Прикиньте общий объём работ, обозначьте цели. Тут вот что важно решить: вы стараетесь для всего мира или это чисто проба своих сил в новом направлении?
Шаг 4. Определитесь с основными концептуальными моментами.
Вот вопросы, на которые вам следует дать ответ:
- Задействовать компиляцию или интерпретацию? Компилируемый код пишется так, что машина сразу его «понимает» и исполняет. Интерпретируемый код работает построчно. Что именно использовать – выбирать вам, рассмотрите оба варианта с точки зрения удобства, функциональности, производительности, защищенности и т. п.
- Задавать статическую или динамическую типизацию? При статической пользователь сам указывает типы данных, а для динамической нужно будет создать систему, определяющую типы.
- Для памяти будет предусмотрено ручное управление или автоматическая очистка?
- Какую модель вы собираетесь задействовать: ООП, логическое, структурное или функциональное программирование? Или вы вообще планируете придумать нечто новое, чего раньше еще не было?
- Будет ли ваш язык интегрироваться с другими?
- Предусмотрен ли в языке базовый функционал или всё будет работать за счет внешних библиотек?
- Каким будет архитектурное построение программы?
Продумав все эти моменты, вы сформируете общий вид нового языка. В процессе возникнут и иные важные вопросы, с ними тоже нужно будет разобраться.
Шаг 5. Продумайте синтаксис.
Служебные спецсимволы позволят машине работать быстрее, но потенциальных пользователей они могут спугнуть. Это касается и функциональных возможностей, придется выбирать между интуитивно понятными и самыми производительными.
Шаг 6. Придумайте название.
Пожалуй, один из самых простых шагов. Не пытайтесь заложить в название некий углубленный смысл, дайте короткое и простое имя, которое легко запомнится. Именно так, кстати, чаще всего и поступают разработчики. Заумные необычные аббревиатуры и длинные названия быстро забываются и для пользователей выглядят непривлекательно.
Для вас подарок! В свободном доступе до 19.11 —>
Скачайте ТОП-10
бесплатных нейросетей
для программирования
Помогут писать код быстрее на 25%
Чтобы получить подарок, заполните информацию в открывшемся окне
Шаг 7. Определитесь с языком написания языка.
Помешанные на высоких технологиях гики готовы задействовать для этого машинные коды или язык ассемблера. Но в современных реалиях есть смысл заниматься созданием языков программирования на компилируемых языках Pascal, C, C++, C#, Swift (для интерпретируемого кода) и на интерпретируемых языках Java, JavaScript, Python, Ruby (для написания компилируемого кода). Это на выходе дает максимальную производительность.
Шаг 8. Создайте лексер и парсер.
Это специальные инструменты в коде. Лексер проводит анализ лексики, следит за разбиением программы на токены (специальные составляющие). Парсер анализирует синтаксис, определяет иерархию токенов и порядок их взаимодействия. На графической схеме всё это выглядит понятнее.
Только не пугайтесь данного шага. Лексеры и парсеры создаются с помощью готовых приложений и библиотек, так что процесс получается не таким сложным, как может показаться на первый взгляд.
Шаг 9. Сформируйте стандартную библиотеку.
Дарим скидку от 60%
на обучение «Веб-разработчик» до 19 ноября
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей

В ней необходимо собрать функции, с помощью которых будет возможна примерная демонстрация имеющихся программных возможностей. При этом неважно, предусмотрены в языке встроенные опции для задействования базового функционала или для этого нужно обращаться к внешним библиотекам.
Шаг 10. Напишите громадное количество текстов.
Мало создать язык, важно еще добиться от него корректной работы. А для этого понадобятся специальные тексты, которые будут указывать системе допустимые и недопустимые действия. Еще их задача – исключение возможности возникновения тупиковых для программы ситуаций.
Только до 23.11
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:

ТОП-100 площадок для поиска работы от GeekBrains

20 профессий 2023 года, с доходом от 150 000 рублей

Чек-лист «Как успешно пройти собеседование»
Чтобы зарегистрироваться на бесплатный интенсив и получить в подарок подборку файлов от GeekBrains, заполните информацию в открывшемся окне
Шаг 11. Представьте язык миру.
Не прячьте свое детище. Пусть вы не ставили перед собой глобальных целей, но публикация откроет перед вами новые возможности. Откликнутся единомышленники, пользователи оставят отзывы, вы поймете, какие места требуют доработок, улучшений. Да и вообще, вы почувствуете свою полезность в качестве программиста.
Книги про создание языка программирования с нуля
Возможно, и есть книги с четким описанием процесса создания языка программирования, но пока что не нашлось таких материалов, которые можно было бы привести здесь в качестве примеров. Тут следует понимать, что каждый опыт разработки по-своему уникален, такие процессы просто не бывают абсолютно одинаковыми. Есть все же описания, так или иначе затрагивающие тему проектирования языков.
Например, работа А. В. Хохлова под названием «Как создать язык программирования и транслятор». Книга хорошая, но тут всё же больше про транслятор. Процессам выбора тех или иных решений внимания не уделено, а между тем, было бы интересно проследить за ходом мыслей автора. Может быть в скором времени он об этом еще расскажет.
Если говорить об иностранных авторах, то можно привести в пример «Концепцию языков программирования» от Роберта Себесты. Книга, безусловно, хорошая, ее нужно прочесть. Но опять же, содержание здесь целиком соответствует названию, то есть речь идет не конкретно про создание языков программирования.
Для тех, кто задумался о создании языка программирования, есть неплохая книга «Теоретические основы разработки и реализации языков программирования». Авторы – отечественные разработчики М. М. Гавриков, А. Н. Иванченко, Д. В. Гринченков. Но и здесь следует сделать уточнение, что книга больше не про «разработку», а про «реализацию».
Она состоит из следующих глав: «Способы задания формальных языков», «Основы теории перевода и её применение к синтаксическому анализу», «Конструирование сканеров», «Применение КС-языков и грамматик в разработке языков программирования». Как можно понять по названиям, тематика в полной мере раскрывает процесс создания компиляторов.
Создаем свой язык программирования
В этом ролике мы создадим собственный язык программирования, основанный на той контекстно свободной грамматике, которую мы сами придумаем. Мы разработаем лексический анализатор (Лексер) и синтаксический анализатор (парсер), который по итогу будет строить абстрактное синтаксическое дерево (AST) и выполнять наш код.
Таймкоды:
00:00 — Как создать свой язык программирования? Теория
02:20 — Алфавит языка
03:10 — Лексический анализатор [ТЕОРИЯ]
04:05 — Синтаксический анализатор. Абстрактное синтаксическое дерево [ТЕОРИЯ]
05:05 — Начало разработки
05:45 — Класс Токена
06:50 — Типы токена
08:30 — Лексический анализатор [ПРАКТИКА]
17:00 — Синтаксический анализатор [ПРАКТИКА]
20:50 — Узлы абстрактного синтаксического дерева
24:00 — Парсим токены в дерево
37:20 — Функция для выполнения кода
42:15 — Пишем и тестируем код на созданном языке
Данный плейлист посвящен курсу по созданию своего собственного языка программирования, который бы имел базовые возможности, а именно, работа с переменными, функциями, условными операторами, циклами, массивами и подобными «простейшими» элементами любого современного языка программирования.
Создание своего языка программирования на Java с нуля, без использования генератора парсеров.
Открытая лекция CS центра
Лектор – Иван Мигалёв, кандидат технических наук, старший разработчик в команде JetBrains Rider. Также Иван – разработчик open-source проектов и любитель функционального программирования.
О лекции: LENS — строго типизированный встраиваемый язык для платформы .NET. Как создать свой собственный язык для этой или другой платформы? Как реализуются основные этапы преобразования исходного кода в скомпилированное представление? Зачем это может пригодиться на практике?
Какой язык программирования учить прямо сейчас: 9 самых востребованных

Люди придумали больше 8 тыс. языков программирования. Их популярность меняется каждый год, а требования для входа в профессию все ниже. Разбираемся, какие языки востребованы, зачем нужны и как их учить непрограммистам
Самые востребованные языки программирования
- Python
- C
- C++
- Java
- C#
- JavaScript
- Visual Basic
- PHP
- Assembly Language

Рейтинг TIOBE, сентябрь 2023 года
1. Язык программирования Python
Python — логичный и относительно простой язык с минималистичным синтаксисом. У него небольшой набор основных правил, язык легко читать и писать на нем не сложно. Разработчики написали для Python множество библиотек, поэтому вы можете использовать готовые решения в своих проектах. Главный минус Python — его невысокая скорость. Программы на нем будут работать в среднем медленнее, чем на других языках.
С октября 2021 года Python стал самым популярным языком программирования, сместив с первой строчки рейтингов Java и C.
Игорь Музыкин, руководитель направления «Программирование» в Skillbox:
«Главная причина стабильного роста запросов на Python — растущая востребованность IT-специальностей для переориентирования карьеры в сферу разработки. Представим человека, который задумался о первых шагах в IT. Для начала он скорее всего начнет искать информацию в интернете. Что он увидит? Аргументацию об относительной простоте Python для новичков и статьи о широкой области применения языка — от научно-исследовательской работы до геймдева. Поэтому Python все чаще выбирают в качестве первого языка программирования для освоения.
В пользу простоты Python играет лаконичный синтаксис. Например, блоки кода отделяются отступами, а не скобками, это сокращает количество строк и символов. Еще есть синтаксические конструкции, введение которых позволяет все рутинные задачи по управлению памятью и потоками отдавать интерпретатору Python вместо дополнительного кода. За счет этого разработчик может сосредоточиться на задачах, а не коде как таковом.
Несмотря на критику некоторых аспектов работы Python, например, медленную скорость программ и зависимость языка от системных библиотек, в ближайшие годы он продолжит укреплять свои лидерские позиции в веб-разработке, machine learning, тестировании и DevOps».
Где используют. Чаще всего на Python создают серверы, обрабатывают данные и разрабатывают нейронные сети. После изучения Python можно работать бэкенд-разработчиком или разработчиком в сфере data science. С помощью Python можно «прикрутить» неочевидные функции к программам — это его главное удобство. Например, создать нейронную сеть для определения степени поражения легких, а заодно в этой же программе сделать просмотр снимков КТ.
Сколько платят программисту. Разработчик в крупной компании в Москве, знающий Python, зарабатывает от ₽100 тыс. до ₽250 тыс. При этом спрос на разработчиков в сфере data science растет, поэтому можно рассчитывать даже на более высокую оплату.
Зачем изучать. С помощью Python можно создать бота для мессенджеров или социальных сетей. Или написать программу для парсинга — поиска и переноса информации с разных сайтов в один документ. Такая программа пригодится дизайнерам и журналистам.

Марина Архипцева, ментор курса Data Science в SkillFactory, ETL-разработчик:
«Если следить за индексом TIOBE, то мы увидим, что месяц от месяца лидер меняется, но тройка остается неизменной — Python, Java, C. Собственно поэтому за ежемесячным рейтингом следить не так интересно, а что более любопытно — тот же TIOBE кроме ежемесячного рейтинга ежегодно выбирает язык года, и Python удостаивался этой чести неоднократно с 2003 года (в том числе и в 2023 году). Это лучший показатель среди всех языков программирования. Почему популярность Python растет с каждым годом?
Во-первых, сейчас наблюдается активный рост сферы Data Science. Если проанализировать, например, HeadHunter, то мы обнаружим множество открытых вакансий в данной области. Компании ищут инженеров данных, data scientist’ов, аналитиков данных, специалистов по большим данным, MLops’ов. Конкуренция большая, но спрос все еще превышает предложение на рынке. В 2012 году журнал Harvard Business Review выпустил статью «Data Scientist: The Sexiest Job of the 21st Century», в которой наука о данных была названа самой сексуальной профессией XXI века, и с тех пор, кажется, интерес к этой сфере только растет. И как раз Python является основным инструментом исследователя данных. Во-вторых, у Python обширное комьюнити — на любой вопрос практически со 100% вероятностью найдется ответ на StackOverFlow, главное правильно его сформулировать.
Во-третьих, Python — это язык для всех возрастов. Дети пишут на нем игры, создают миры в Minecraft и сдают ЕГЭ по информатике. Взрослые специалисты, кроме обработки данных, пишут бэкенд на Python и решают множество прикладных задач.
Безусловно, Python — это не идеальный язык и не панацея для всего, но основную тенденцию в мире программирования отлично иллюстрирует внутренний девиз Google: «Использовать Python, там, где можем, C++ — где должны». Здесь имеется в виду, следующее: С++ оптимален для разработки приложений, в которых важна скорость работы. За это приходится расплачиваться высоким порогом входа и сложностью самого языка. Поэтому там, где скорость не критична, Google предпочитает использовать Python».
2. Язык программирования C
C — один из самых старых и популярных языков программирования. Он «легкий» и быстрый, поэтому его используют там, где нужна высокая производительность. Например, для создания драйверов, операционных систем или ПО для микроконтроллеров. При этом C сложно изучить — многое приходится писать с нуля. Если сравнивать языки программирования с автомобилями, то C — гоночный болид, неудобный на городских дорогах, но очень быстрый.
Где используют. С помощью С создают драйвера, пишут ядра операционных систем, а также пишут библиотеки для Python и других языков.
Сколько платят программисту. В Москве разработчик на C получает в среднем от ₽100 тыс. до ₽250 тыс. В других городах зарплаты меньше — от ₽50 тыс. до ₽200 тыс.
Зачем изучать обычным людям. С — это не тот язык, на котором можно легко написать приложение для смартфона или программу для умного дома. Но с него можно начать изучение языков программирования. Учиться непросто, но если справитесь, поймете принцип действия почти всех остальных языков.
3. Язык программирования C++
С++ — кроссплатформенный язык семейства C с расширенными функциями.
Огромное количество программистов пишут на нем код, делятся библиотеками и шаблонами, отвечают на вопросы новичков.
Где используют. Чаще всего на С++ создают операционные системы, драйверы и утилиты. Делают популярные десктопные приложения серий Adobe и Office. Из-за высокой скорости и производительности C++ используют для разработки компьютерных игр. Например, на нем написан популярный движок Unreal Engine.
Движок Unreal Engine создали в 1998 году. Компания Epic Games продолжает выпускать на нем игры. Например, на Unreal Engine работает популярная игра PUBG
Сколько платят программисту. В регионах разработчик на C++ зарабатывает от ₽50 тыс. до ₽150 тыс., в Москве — от ₽100 тыс. до ₽250 тыс. Зарплата зависит не только от города, но и от сферы — в геймдеве можно заработать больше, чем в разработке системных приложений.
Зачем изучать. C++ плохо подходит для решения простых «домашних» задач, но с него можно начать обучение языкам, чтобы понять их структуру и принципы. Если решили изучать, запаситесь терпением — с С++ в полной мере работает принцип «тяжело в учении — легко в бою».
4. Язык программирования Java
Java — кроссплатформенный язык с большим количеством библиотек и большим сообществом разработчиков. Кроссплатформенность — это возможность написать программу один раз и сразу пользоваться ей на нескольких операционных системах: Windows, Linux и MacOS. Благодаря библиотекам Java подойдет практически для всего: работы с графикой, звуком, создания небольших игр. А в большом сообществе начинающий разработчик легко найдет готовые куски кода для разных задач и ответы почти на любые вопросы.
Программисты пользуются библиотеками, чтобы создавать программы быстрее. Библиотека — это набор готовых программ, объектов и функций для решения типовых задач.
Где используют. Java — это язык для всего. На нем пишут мобильные приложения для Android, программы для микроволновых печей и серверы. Для разработки мобильных приложений сейчас все активнее используют язык Kotlin. Но на Java уже написали очень много приложений, которые придется обслуживать и обновлять.
Сколько платят программисту. Зарплаты Java-разработчиков не сильно отличаются от обычных зарплат программистов — от ₽100 тыс. до ₽250 тыс. в Москве.
Зачем изучать. С помощью Java можно создать домашний сервер или приложение для мобильного телефона. Это будет не очень просто, но можно убить двух зайцев одним выстрелом — сделать программу и заодно выучить популярный язык.

5. Язык программирования C#
C# (си-шарп) — язык, изначально придуманный компанией Microsoft, чтобы создавать приложения под Windows. Это объектно-ориентированный язык — его сложнее изучать, но проще использовать, например, меньше писать одинаковый код. С помощью С# можно работать с платформой WPF, которая помогает создавать «красивые» оконные приложения. Например, последние версии MS Office.
Где используют. Чаще всего на C# пишут приложения для Windows и создают компьютерные игры. Например, на C# работает популярный движок Unity. Кроме того, на нем можно разрабатывать системные приложения и создавать библиотеки для С++.
Сколько платят программисту. В регионах разработчики на С# получают от ₽35 тыс. до ₽130 тыс., в Москве — от ₽100 тыс. до ₽250 тыс.
Зачем изучать. С помощью C# можно создать оконное приложение для Windows, например, калькулятор или небольшую игру. Но изучать его сложнее, чем языки для создания мобильных приложений.
6. Язык программирования JavaScript
JavaScript — быстрый кроссплатформенный язык для веб-разработки. С помощью кода на JavaScript разработчик «говорит» странице, как она будет реагировать на действия пользователя. С помощью JS можно показывать пользователю информацию без перезагрузки страницы — так работают выпадающие меню, всплывающие окна, оконные клавиатуры.
При этом у JavaScript есть свои ограничения — он позволяет допускать ошибки, которые затем сложно обнаружить. Поэтому его редко используют для создания сложного программного обеспечения, например, ПО серверов.
Где используют. JS постоянно используют для веб-разработки. На нем удобно создавать мобильные и десктопные приложения, которые будут работать через браузер. Например, Notion, Discord, Visual Studio Code.
Сколько платят программисту. Разработчик на JavaScript в Москве зарабатывает от ₽140 тыс. до ₽300 тыс.
Зачем изучать. С помощью JS можно создать простой сайт или модуль для него, работающий с запросами клиента. Например, онлайн-калькулятор.

7. Язык программирования Visual Basic
Visual Basic — язык программирования, а также интегрированная среда разработки программного обеспечения, разрабатываемые корпорацией Microsoft. Visual Basic во многом похож на своего предшественника — язык BASIC, у которого есть немало диалектов, у них схожи стиль и синтаксис. Однако при этом Visual Basic также сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Интегрированная среда разработки VB включает инструменты для визуального проектирования пользовательского интерфейса, редактор кода с возможностью IntelliSense и подсветкой синтаксиса, а также инструменты для отладки приложений.
Где используют. Visual Basic также является хорошим средством быстрой разработки (RAD) приложений баз данных для операционных систем семейства Microsoft Windows. Главной особенностью Visual Basic, отличающей его от большинства языков, стало применение в программировании графического интерфейса.
Сколько платят программисту. От ₽30 тыс. до ₽100 тыс. Средняя зарплата по России ₽62 тыс. Многие программисты считают, что Visual Basic отошел в прошлое — тем не менее, в интернете можно найти хорошие вакансии — и предложения работать за эти деньги удаленно.
Зачем изучать. К достоинствам языка относят достаточно простой синтаксис, что обеспечивает низкий порог входа для начинающих программистов.
8. Язык программирования PHP
PHP — используют в веб-разработке для создания программ, которые работают на сервере и помогают обрабатывать запросы клиентов. PHP постепенно теряет популярность, потому что серверы можно создавать с помощью других языков. Но на PHP до сих пор работают многие ранее созданные сайты, например, «ВКонтакте».
Где используют. С помощью PHP создают программы, которые работают на сервере и помогают отправлять почту с сайта, взаимодействовать с базами данным. PHP облегчает работу интернет-магазинов — можно не создавать 1 тыс. одинаковых страниц, а генерировать их автоматически из базы данных по запросу клиента.
Сколько платят программисту. В регионах PHP-разработчик получает от ₽50 тыс. до ₽120 тыс., в московских компаниях — от ₽80 тыс. до ₽220 тыс.
Зачем изучать. Со знанием PHP легко начать карьеру разработчика. Такой разработчик сможет найти работу, даже если у него мало опыта.

Вакансии PHP-разработчика в Москве на HeadHunter
9. Язык программирования Assembly Language
Assembly Language или язык ассемблера — это язык программирования низкого уровня, который используется внутри операционной системы для того, чтобы в автоматическом режиме преобразовывать исходную программу (заданную компьютеру) на машинный язык. Он работает непосредственно с процессором, и каждая его команда — это инструкция процессора, а не операционной или файловой системы. Перевод языка ассемблера в машинный код называется ассемблированием.
Где используют. Ассемблер используют те, кто работает с железом. На нем пишут драйверы устройств и некоторые компоненты операционных систем — например, ядро или загрузчик. Любительские операционные системы MenuetOS и KolibriOS полностью написаны на ассемблере. На нем также разрабатывают встроенные программы для микроконтроллеров, игровых приставок, его активно используют в реверс-инжиниринге.
Сколько платят программисту. От ₽80 тыс. до ₽300 тыс. в зависимости от уровня квалификации и опыта.
Зачем изучать. Если хотите писать высокопроизводительный код для конкретной аппаратной платформы или устройства. Также Assembly Language пригодится для отладки низкоуровневых проблем в программах или оборудовании. Но учтите, что изучать его сложнее, чем языки более сложного уровня, и его знание не пригодится для понимания других языков, поэтому он не подойдет для новичков.

Общие тренды IT-сферы вне зависимости от языков программирования
Код становится более читабельным. В последние годы разрабатывают все больше приложений, в том числе для мобильных устройств. Приложения становятся все сложнее по архитектуре, их нужно постоянно обновлять и обслуживать — важно, чтобы код можно было легко прочитать и понять. Приложение может жить десять лет. За это время сменится несколько разработчиков, которым нужно будет понимать код, написанный другими. Поэтому важно, чтобы программы не только решали свои задачи, но и были аккуратно, понятно написаны.
Растет популярность мобильной разработки и машинного обучения. Мобильная разработка стала привычным делом за несколько лет. Многие компании запускают только мобильные приложения, не думая об их браузерных и десктопных версиях. Из-за этого сильнее разрабатывают стандарты мобильной разработки. С одной стороны, это усложняет работу, с другой — сообществу выгодно обучить новичков этим стандартам.
Машинное обучение из диковинки становится неотъемлемой частью жизни — предсказывание и обработка данных слишком часто помогают в обычных ситуациях. Становится больше приложений по распознаванию лиц и обработке голосовых сообщений в текст.
Нужно писать код для всех платформ. Платформ становится все больше — например, Apple оснастила свои ноутбуки ARM-процессорами, которые раньше использовала только для смартфонов и планшетов. Поэтому разработчики должны учитывать все существующие технические возможности и писать приложения так, чтобы они работали везде.
Работодатели хотят посмотреть портфолио на GitHub. Если раньше при найме сотрудника работодатели смотрели приложения, к которым программист приложил руку, то теперь даже непрофессионалы все чаще хотят увидеть код. На Гитхабе можно посмотреть все проекты разработчика, увидеть, как он думает и пишет, как развивался и рос.
Программирование молодеет. Дети и подростки изучают программирование на онлайн-курсах или самостоятельно. Из-за этого уже в 13–15 лет они могут писать приложения, выкладывать их в Appstore или GooglePlay и даже зарабатывать деньги. Некоторые из них так начинают карьеру разработчика и конкурируют с выпускниками вузов и более старшими коллегами.

Еще пять статей о программировании
- Программирование с нуля: с чего начать и как выучить
- Вчерашняя техника уже завтра: могут ли устареть языки программирования
- Почему программистам не обойтись без гибких навыков
- Стартап или гигант: что выбирают ИТ-специалисты
- Где брать программистов: почему компании приходят в буткемпы