Перейти к содержимому

Основные языки программирования

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

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

Например:

  • Python - простой и быстрый в написании, но медленный в исполнении
  • C++ - сложный в написании, но молниеносный в исполнении
  • JavaScript - единственный язык, который понимает браузер
  • Go - создан специально для высоконагруженных серверов
  • PHP - медленый и дурацкий

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

Язык разметки HTML-документов. Это скелет каждой веб-страницы. Основной элемент этого языка - теги. Из них, как из кирпичиков, создают страницу.

Конструкция тега проста: название тега помещают в угловые скобки. Есть открывающий тег и закрывающий тег. В закрывающий тег добавляют «/». Между тегами записывается контент - это может быть текст или другой тег.

Пример.html
<открывающий_тег>
Контент
</закрывающий_тег>

Это язык описания внешнего вида HTML-документа. CSS-стили описывают вид тега. Можно перекрашивать элементы, изменять отступы, менять расположение. При помощи CSS-стиля можно изменить объект как угодно.

Каждому тегу можно присвоить класс, по которому CSS-стиль будет применять свои правила внешнего вида.

Ваши Web-страницы обязаны подстраиваться под разные экраны - мобильные, планшетные, десктопные. Это все делается при помощи CSS и Медиазапросов.

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

JavaScript (сокращено называют JS) наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Любая логика на странице работает благодаря ему. HTML и CSS определяют внешний вид страниц, в то время как JS - все остальное. При помощи этого языка происходит общение между Frontend и Backend. Код, написанный на JS, может обращаться посредством API к Backend и после получения ответа изменять содержимое страниц.

Ежегодное исследование среди JS разработчиков

Скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В 1995–2010 годах не имел достойных аналогов для простых сайтов, из-за этого 90% сайтов были написаны на нем. Благодаря широкому применению в прошлом его активно используют до сих пор, ведь созданные сайты нужно поддерживать. Имеет очень много недостатков, низкую производительность и на данный момент просто устарел. Все крупные проекты, которые в 2000-е были написаны на PHP, в 2010-е годы были переписаны.

Мы настоятельно рекомендуем не связываться c данным языком. Ниже доводы из разных источников.

phpBad Сравнение производительности GO, Node js, PHP, JAVA.

phpBad2 Сравнение количества вакансий.

vacancyPhp Сравнение языков при использовании benchmarks. По строкам - разные тесты, в значениях - средняя скорость выполнения теста. Чем меньше значение, тем лучше.

benchPhp Те же самые тесты, но в значениях - количество потребляемой оперативной памяти. Чем меньше, тем лучше.

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

На данный момент это самый популярный язык. С него легко начинать изучать программирование.

python

Node.js - программная платформа, которая переводит JS в машинный код и превращает его в язык общего назначения. До появления этой платформы JS мог исполняться только в браузерах. А теперь - везде.

Создан в 2009 году. Набирает стремительную популярность из-за того, что разработчику нужно знать один язык. Очень удобно, когда Frontend и Backend написаны на одном языке. Имеет высокую производительность, развитую экосистему, высокую масштабируемость, асинхронность.

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

Это возможность расширять производительность вашей системы. Данная тема довольно большая и сложная, явно не подходит для этого курса. Если вам интересно, то вот ключевые слова, при помощи которых можно начать ее изучать: Микросервисы, Кубернетес. На определенном этапе развития вашего проекта это может стать очень критичным вопросом. Такой момент происходит тогда, когда одна самая сильная машина на сервере не справляется со своими задачами и нужно заводить вторую.

Это сообщество вокруг инструмента. Данный пункт легко проверяется на сайте gitНub. Любой публичный репозиторий можно изучить: количество звезд, количество обсуждений, дату обновления и т. д.

Модули Node.js представляют несколько функций, сгруппированных в один или несколько файлов JS. Все эти функции имеют уникальный контекст и не мешают работе других модулей. Данная технология позволяет повторно использовать код и повышает удобство использования.

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

Компания заменила Java-стек на Node.js, что позволило команде писать фронтенд и бэкенд на одном языке. В результате приложение стало обрабатывать вдвое больше запросов в секунду, а время отклика сократилось на 35%.

Один из первых крупных адептов платформы. Node.js используется для обработки огромного количества одновременных запросов на поездки в реальном времени.

Переход с Ruby on Rails на Node.js помог соцсети оптимизировать мобильное приложение. Оно стало работать в 20 раз быстрее, а количество необходимых серверов сократилось с 15 до 2.

Один из самых популярных языков. Имеет одну из самых широких сфер применения: Backend для Web, мобильные приложения, анализ данных, программирование физических вещей и т. д. Чаще всего применяется в крупных проектах, так как этот язык сложнее, чем Python, JS, PHP.

Интересные факты:

  • 3 миллиарда устройств работают на Java — от банкоматов и медицинского оборудования до систем управления космическими аппаратами NASA.
  • Android приложения изначально писались на Java (сейчас также популярен Kotlin, который полностью совместим с Java).
  • Зарплаты Java-разработчиков традиционно высокие, особенно для Middle и Senior уровней, благодаря спросу в enterprise-секторе.

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

Интересные факты:

  • Назван в честь острова Котлин в Финском заливе недалеко от Санкт-Петербурга — дань традиции называть языки в честь островов (как Java в честь острова Ява), и привет от создателей из JetBrains, российской компании из Питера.

  • Google выбрал Kotlin как приоритетный язык для Android, обогнав Java.

  • Пишется на 40% меньше кода, чем на Java, благодаря умным возможностям языка: null-безопасность встроена по умолчанию, data классы, extension функции.

  • Multiplatform — один код можно использовать для Android, iOS, Web и Desktop приложений.

  • Легкий старт для Java-разработчиков — можно постепенно переводить проект с Java на Kotlin, файлы обоих языков работают вместе в одном проекте.

  • Используется не только в mobile: Backend (Spring поддерживает Kotlin), Data Science (Kotlin Notebook), серверные приложения.

  • Молодой, но быстро растущий — создан компанией JetBrains в 2011 году, сейчас один из самых любимых языков среди разработчиков.

Golang - язык, написанный в компании Google на замену Java, C, C++. Основное предназначение - Backend высоконагруженных программ. Используется в сервисах Google, а также в проектах с большим количеством пользователей.

golang

Специалисты GO стоят очень дорого.

golangVacancies

C# - язык программирования, который компания Microsoft изначально делала для своих проектов. Особенно хорошо он сочетается с экосистемой Microsoft. Область применения: игры, Backend, машинное обучение. Но это все должно быть на Windows, что является проблемой: сервера на Windows стоят дороже. Да и в целом же Web - это про Open Source.

C++ используется во всех сферах деятельности программирования: от высоконагруженных систем до программирования микроконтроллеров. На С++ можно написать как веб-сервер, так и игры, любые компьютерные программы, компоненты и т. д. На данный момент это один из самых производительных и сложных языков. Конкуренцию ему составляет более молодой Rust.

Результаты benchmarks.

cpp

Комментарий пользователя VC к SEO-статье про C++:

cppComment

Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения. В каком-то смысле его можно назвать отцом всех предыдущих языков. Основное применение: операционные системы, утилиты, компиляторы и, реже, прикладные программы. Поэтому Cи называют системным языком программирования. Скорее всего, вы не встретитесь с ним на своих проектах. Хотя он есть в каждом вашем устройстве.