Производительность i/o бэкэнда: node vs. php vs. java vs. go

Что такое PHP

PHP – это серверный язык программирования, в отличии от JavaScript может работать только на сервере.

Язык появился в 1994 году ради одной цели – создавать сайты, ну и в 2020 году цель не изменилась. В отличии от Node.js, который создавался для широкого применения, PHP создан для разработки сайтов и веб-приложений. Даже аббревиатура языка PHP – Personal Home Page (персональная домашняя страница) о много нам говорит.

Обычно, чем старше технология, тем хуже для IT бизнеса. Старые технологии имеют свойства умирать из-за неактуальности или терять популярность, а все это ведет к удорожанию стоимости работы программистов. Со временем появляются более удобные инструменты для решение тех или иных задач, которые (чаще всего) дешевле предыдущих. Так, в 2000-х годах PHP сместил Perl с пьедестала языка для разработки сайтов, так сейчас Node.js начал заходить на территорию PHP и Ruby и забирать себе все больше аудитории.

С PHP происходит примерно тоже самое что с Perl и Ruby, но говорить о его смерти глупо и признак необразованности. Хотя потеря популярности на лицо: о языке все меньше говорят на различных конференциях, в интернете и других массмедиа. Сейчас уже выросло целое поколение программистов, которые не знакомы с PHP, но занимаются веб-разработкой. Несколько лет PHP был хедлайнером среди разработки веб-сайтов, а сейчас многие IT-компании начинают от него отказываться.

PHP

Архитектура сервера имеет такой вид:

Web-сервер, получая обращение от клиента, отправляет его в процесс php. В определенный момент времени он способен обрабатывать только один запрос. После окончания процесса результат снова передается на сервер, а процесс исчезает. Получив ответ, web-сервер отправляет его клиенту, прекращая соединение.

Работа сервера во время одного php-процесса схематически выглядит так:

Схема показывает, что идут обращения А, на них реагирует сервер и справляется с необходимыми задачами. Когда приходит обращение Б, сервер прекращает отвечать на другие запросы до готового ответа на обращение Б.

Из схемы мы видим, что большинство времени уходит на обращения Б, остальные ожидают результат работы БД.

Проблема решается увеличением числа процессов php. Сделав 2 процесса, схема начинает выглядеть так:

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

В случае двух обращений Б увеличиваем число обращений php до 30. Обработка отсрочена до момента выполнения 30 процессов, затем снова наступает Б. Проблема в невозможности создания бесконечного числа php-обращений. Их не нужно накапливать в большом количестве.

Вывод из схем такой, что взаимодействие с БД в php происходит синхронно.

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

Разработка под 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 год Источник.

Языки для фронтенд-разработчиков

Основной стек фронтенд-разработчика — HTML, CSS и JavaScript. HTML (HyperText Markup Language) — это основа разметки веб-страниц. С его помощью создают абзацы, заголовки и гиперссылки, добавляют изображения и другие объекты. HTML-код объясняет браузеру, что отобразить на странице. У каждого элемента есть свой тег, заключённый в скобки.

Вот пример HTML-кода:

HTML — только каркас, в нём нет инструкций о расположении, цветах и поведении элементов

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

Добавим в предыдущий пример CSS-разметку:

CSS-разметка отвечает за то, как страница выглядит в браузере

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

Пример ниже — скрипт, который меняет цвет текста, если пользователь щёлкнет курсором по абзацу.

Вот как он работает на практике:

Языки HTML, CSS и JavaScript — основной стек для фронтенд-разработчика. Но и бэкендерам тоже нужно в них разбираться, чтобы понимать, как устроен сайт.

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

Способ передачи данных

Использование одного языка на сервере и в браузере это очень хорошо, но что, если вам нужно отправлять данные в чистом HTML? Браузер отлично обрабатывает HTML, нет никаких проблем с ошибками при попытке создать страницу в JavaScript с помощью вызова нескольких десятков служб. Чистый HTML работает лучше и PHP лучше ориентирован на это. Вы можете генерировать страницы на сервере и не заботится про поддержку в браузере.

С другой стороны, использование вызовов служб на основе AJAX и веб-приложений на HTML 5 дает очень большую гибкость и эффективность. После того, как код JavaScript будет в кэше браузера, все что будет передаваться — это новые данные. Здесь не нужно тонны HTML разметки и повторных загрузок страницы. Изменяются только данные. Node.js оптимизирован для этого и такая архитектура будет работать быстрее. Еще нужно учитывать что php vs javascript последний работает быстрее, благодаря движку от Google.

CSS / HTML

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

Для разработчиков веб-интерфейсов очень важно знать эти инструменты от и до. Они также окажутся полезными для backend разработчиков: вы сможете понять, как изменения вашей серверной части влияют на конечного пользователя

У нас можно изучить основы HTML бесплатно!

Фактор №1: рынок труда

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

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

Как я уже говорил, в объявлениях о вакансиях чаще всего упоминается Java. На втором же месте стоит JavaScript.

Но в случае с JavaScript надо учесть одну важную вещь. Хотя язык существует уже два десятка лет, лишь сравнительно недавно он превратился в серьёзный инструмент, с помощью которого гиганты вроде Netflix, Walmart и PayPal создают полноценные приложения.

В результате множество компаний нанимают JavaScript-разработчиков, но разработчиков этих не так уж и много.

Итак, что мы видим. На одно место Java-разработчика приходится 2.7 программиста. В сфере вакансий, где требуется знание PHP, а также в среде iOS-разработки, складывается похожая ситуация.

Если же взглянуть на данные по JavaScript, то окажется, что на одну вакансию приходится всего 0.6 программиста. Для JavaScript-разработчиков это, определённо, рынок продавца.

PHP

PHP — чемпион по популярности в веб-разработке. Его широко используют в создании серверных приложений, скриптов и утилит. Вы найдёте его в сайтах многих известных компаний, например Avito, Badoo, «ВКонтакте», Wikipedia, Facebook.

Иногда приходится слышать, что PHP умирает или что это ужасный язык. Это мнение устарело. Такая оценка появилась, когда он только набирал популярность. Тогда у PHP действительно было много недостатков и ничего серьёзного на нём не писали. Некоторые специалисты его таким и запомнили, но PHP уже лет десять как настоящий взрослый язык. Более того, огромное количество конструкторов и редакторов сайтов написаны именно на нём.

Плюсы PHP

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

Минусы и особенности PHP

  • Слабая типизация, как и у JavaScript.
  • Хотя стандартная библиотека богатая, но организована неудобно и нелогично, в ней легко запутаться.
  • Практически не используется в других областях, кроме веб-разработки.

Зарплаты и востребованность

Как вы видите на скриншоте ниже, предложений работы для PHP-разработчиков очень много — больше, чем для других языков, — но средняя зарплата ниже, чем у JavaScript-разработчиков, — 88 тысяч рублей.

Если вы новичок, можете рассчитывать на зарплату от 30 до 66 тысяч рублей; если у вас уже есть опыт, то от 66 до 94 тысяч; профессионалы получают 100 тысяч и больше.

Опять же, PHP используется во многих известных компаниях, так что есть возможность найти работу в очень хорошем месте.

Ретроспектива три года спустя

  • легко и с удовольствием увеличивают свои компетенции в смежных областях. Например, к нам в компанию в начале этого года пришел верстальщик, который в течении испытательного срока успел поучаствовать в проекте, как бэкенд разработчик и как разработчик мобильных приложений. С учетом того, что у нас на проектах обязательно CI, CD и code review, я доволен результатом его работы (CI проходит, кол-во замечаний по code review уменьшается от пул реквеста к пул реквесту);
  • получают удовлетворение от быстрого перезапуска обновленной версии в режиме разработки с помощью инструмента nodemon. Достаточно сохранить изменение в файле, как утилита мгновенно на это отреагирует, соберет и запустит обновленную версию бэкенда;
  • пишут максимально переиспользуемый код (один на бэк, web и mobile);
  • работают в привычной для себя ОС и IDE;
  • имеют больше возможностей для обмена опытом и собственном развитии т.к. вокруг все фулстеки, но кто-то круче в одном, а кто то в другом;
  • не разруливают споры между бэкендерами и фронтендерами;
  • планируют небольшие доработки по функционалу, затрагивающему бэк и фронт из расчета на одного фулстек-разработчика;
  • выбирают исполнителя для задачи в зависимости от индивидуальных особенностей разработчиков безотносительно того бэкендер это или фронтендер. Например, более аккуратный и дотошный разработчик чаще верстает pixel-perfect, а программист с хорошо развитым алгоритмическим мышлением чаще пишет логику на фронте и на бэке;
  • имеет большой выбор при составлении команды под новый проект;
  • может ускорить разработку за счет подключения новых разработчиков;
  • не ломает голову, на кого заменить тимлида или сотрудника на проекте, когда тот уходит в отпуск;
  • укладывается в обозначенный на старте проекта срок и трудозатраты в 90% случаев.
  1. один отличный и еще один неплохой разработчик, которые не захотели переходить на node.js, больше у нас не работают;
  2. отладка кода на Typescript с помощью breakpoint из под VS Code в связке с nodemon полный отстой. Точки остановки то не срабатывают, то срабатывают, но не там. В итоге это приводит к тому, что рано или поздно разработчик сдается и начинает отлаживать код вставками console.log;
  3. Typescript — ваши ожидания, это ваши проблемы. Часто новички попадают впросак, когда, например, объявляют целочисленную переменную в которую получают значение из внешней библиотеки или, скажем, инпута с формы и долго недоумевают, как же так получилось, что у них в переменной оказалось string-значение;
  4. если при компиляции ts в js появляются кольцевые зависимости (например, файл a.ts импортирует b.ts, а b.ts импортирует a.ts), то ошибка возникает на этапе выполнения (значения создаваемых инстансов импортируемых классов undefined), а не на этапе компиляции;
  5. инфраструктура npm иногда (по нашему опыту 1-2 раза в год) преподносит неприятные сюрпризы. Когда обновление версии какой-либо библиотеки подключенной через ^ в зависимой библиотеке (зависимость зависимости) выводит из строя всё приложение. Для минимизации таких проблем создан служебный файл с описанием всего дерева зависимостей package-lock.json. Но в случаях, когда разработка ведется на разных ОС случаются ситуации, когда этот механизм не работает без кропотливого ручного вмешательства.
  1. нужна высокая квалификация, чтобы писать расширения на C++. Но так получилось, что за три года у нас ни разу не возникла в этом необходимость. В производительность JS-слоя не упирались;
  2. возможности для реализации ООП и рефлексии гораздо беднее, чем на C#. Но опять таки, функциональное программирование с использованием промежуточных слоев обработки (middleware) — это хорошая альтернатива для очень широкого круга задач;
  3. максимально облегченная VS Code по сравнению с мощной VS;
  4. вместо мощного LINQ встроенные JS-методы по работе с массивами, такие как filter, map, reduce, sort;
  5. в полноценной VS лучше средства профилирования приложения под нагрузкой.

JavaScript

Логотип JavaScript

JavaScript — настоящий язык программирования. Как я уже подмечал ранее, обычно JavaScript учат вместе с HTML / CSS. С помощью HTML — мы задаем структуру сайта, с помощью CSS — стилизуем его, а JavaScript добавляет живность странице. Все наши нажатия на различные кнопки, слайды, формы комментариев — это всё работа JavaScript. Практически всё, что имеет отклик на веб-страничке — это работа JavaScript.

Платформа Веб-разработка (Front-end). Иногда используется для разработки программного обеспечения и мобильных приложений.
Обучение Если смотреть относительно других языков — значительно лёгок в освоении, чем остальные языки. Если же мы берем новичка, который пришел с HTML и CSS — достаточно трудно.
Популярность Очень популярен. №3 в списке PYPL.
Средняя зарплата (мес) 1500$
Преимущества Очень популярный язык программирования. Поддерживается всеми современными веб-сайтами и браузерами.
Недостатки Новичку может быть тяжело в первое время

С

Подобно C++, C — старый школьный язык, легко скомпилированный. Это часто используемая платформа программирования, которая предлагает элементы построения для других языков, таких как C ++, Python и Java. Фактически, многие из этих языков основаны на C. Отличный вариант для full stack и тех, кто хочет добавить новое измерение в свой набор навыков (или метафорическое силовое упражнение в свою панель инструментов программирования). Он лучше всего подходит для написания системного программного обеспечения и приложений, гарантируя удобный язык для разработчиков, на котором все привыкли работать.

#php
#javascript
#web
#веб
#разработка
#программирование
#языки программирования
#go

@ivashkevich

19.08.2017 в 17:27

128100

+676

Первый язык: пройтись по верхам, или копнуть поглубже?

Сначала как следует изучите один язык. Затем принимайтесь за следующий.

Хорошо освоив первый язык, вы сможете расширять познания, изучая другие языки и развиваясь как программист. Вот пара слов о языках, которые стоит рассмотреть после достойного освоения JavaScript.

  • Изучение C – это отличный способ разобраться с тем, как, на самом деле, работают компьютеры, в частности, в плане управления памятью. C особенно хорош в высокопроизводительных вычислениях.
  • C++ отлично подходит для разработки игр.
  • Python нет равных в научных и статистических расчётах.
  • Java пригодится тем, кто видит себя программистом в крупной компании.

Но сначала, повторюсь, стоит изучить JavaScript.

Прочие языки

Молодые: Go, Dart, Rust и так далее

В интернете легко встретить заявления о том, как прекрасен какой-то молодой язык («молодой» в этом контексте может значить около десяти лет). Мол, он исправляет ошибки предшественников, соответствует духу времени и делает разработку куда приятнее.

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

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

Высокооплачиваемые: Scala, F#, Haskell и так далее

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

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

Узкоспецифичные языки: SQL, HTML, Bash и так далее

Упомяну для полноты картины. До этого речь шла о языках общего назначения, на которых гипотетически можно писать что угодно. Но существуют ещё языки, используемые строго для конкретного круга задач. Например, SQL используется конкретно для работы с базами данных. И его знание вам может понадобиться «в дополнение» к вашему основному языку.

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

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


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

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

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

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

JavaScript

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

Профессии: Frontend-разработчик / Fullstack-разработчик / Веб-девелопер.

Продукты: Frontend сайтов программируют только на Javascript, так что он используется на большинстве сайтов.

JavaScript — язык веб-разработок. Изначально на нем можно было программировать только frontend сайтов, но сейчас, благодаря Node.js, который выступает в роли веб-сервера, можно писать и серверные приложения. Язык делает сайты интерактивными и высокопроизводительными.  А чтобы эффективно использовать возможности языка для создания красочных сайтов, нужно уметь пользоваться инструментами верстки HTML и CSS, знать один из популярных фреймворков (React, Vue или Angular).

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

Курс

Frontend-разработчик

Цель специализации — дать полный набор скилов, необходимых для погружения в реалии разработки визуальной части веб-приложений. Дополнительная скидка 5% по промокоду BLOG.

Узнать больше

Коммерческое использование

Что изменилось? Прежде всего привлекает внимание рост TypeScipt: похоже, он со временем станет основным языком в экосистеме JavaScript. В этом году он впервые обошел С ++ по популярности

Еще из интересного: впервые за несколько лет снижение доли Python: возможно, использование Data Science дошло до точки насыщения.

Впервые с 2012 года выросла доля C #. Использование Java продолжает уменьшаться, хотя и не так активно, как раньше. В общем видно уменьшение доли JVM: доля Kotlin стабильна (хотя он и уступил место Ruby), использование Scala возобновилось после значительного снижения в 2019-м и сегодня, если сравнивать с 2018-м, даже немного возросло. Еще стоит отметить незначительный рост Dart.

На каком языке пишете для работы сейчас


На каком языке пишете для работы сейчас

Ниже диаграмма с динамикой по актуальным языков программирования по годам. Статистически значимыми являются изменения для C ++, TypeScript, Ruby, 1C, Scala, Pascal / Delphi, T-SQL. Напомним, что изменения статистически значимы, если с вероятностью 95% мы не можем получить результаты с изменениями и без, если будем равномерно выбирать две группы респондентов с одной популяции.

Swift (2014)

Наконец, самый молодой язык из перечисленных — он был представлен меньше шести лет назад. Обычно за такое время языки не успевают стать достаточно популярными для попадания в такие списки. Но здесь ситуация особая: компания Apple, создавшая его, ясно дала понять, что теперь iOS-приложения надо писать на нём. А тут как Apple скажет — так и будет, свою платформу компания контролирует.

Но вот всё остальное в мире компания Apple не контролирует. Поэтому, хотя в принципе этот язык можно использовать и для других целей, больше его не применяют особо нигде. Есть попытки серверного использования, но по сравнению с основными бэкендными языками это всё кошкины слёзки.

И в итоге выбор получается совсем простой. Хотите писать приложения для айфонов (ну или для Mac, Apple TV, Apple Watch) — учите Swift. Не хотите их писать — не учите Swift. Ну, если хотите делать приложения «для iOS и Android сразу», существуют ещё кроссплатформенные решения вроде Flutter, но они куда менее популярны.

Как оценивают популярность языка программирования?

Почти всем известен индекс TIOBE, компании по разработке софта

Этот рейтинг основан на проценте запросов в поисковиках конкретного языка от запросов по всем языкам и ежемесячно составляется на основе данных из Google, Baidu, Wikipedia, Amazon и Ebay (внимание: Яндекс тут не учитывается). Он не показывает, какой язык лучше, а скорее помогает программистам проверить, насколько актуальные языки они используют

Индекс TIOBE — не единственный в своем роде. Вот еще несколько рейтингов, на которые можно опираться:

PYPL (Popularity of Programming Language index) — рейтинг GitHub оценивает по Google Trends, к каким языкам чаще всего ищут уроки;

Stack Overflow — сервис вопросов и ответов по теме программирования проводит масштабные исследования рынка и опросы разработчиков.

IEEE — Институт инженеров электротехники и электроники ежегодно публикует на своем сайте рейтинг языков программирования, основанный на 11 параметрах и восьми источниках, включающих соцсети и GitHub.

Результаты опроса 65 тыс. разработчиков на Stack Overflow в 2020 году. Ответ на вопрос: «Каким языком вы чаще всего пользуетесь?»

Подробнее о популярности языков и причинах их роста мы писали на Habr.

Если вы планируете изучать язык, чтобы потом найти работу с его применением, мы советуем оценивать его популярность по количеству вакансий в вашем городе. Заходите на hh.ru, набираете в поиске Python или С++, и видите количество вакансий с упоминанием языка.

Вот результаты поиска по ключевым словам «Python» и «C++» среди вакансий в Москве на hh.ru

Преимущества и недостатки JavaScript

С каждым годом язык развивается и дополняется новыми крутыми вещами.

Преимущества JavaScript:

  1. Интерпретируемый язык. Код работает сразу же в браузере, не требуется каких-либо затрат для его компиляции. Это, несомненно, плюс: не нужно ничего ждать, результат кода можно сразу же увидеть в браузере.

  2. Востребованный язык программирования. Если верить статистике, Javascript входит в топ-3 языков программирования в мире.

  3. Простота и рациональность применения. Несложные задачи можно решать быстро, порой достаточно 5 минут. Для непростых в интернете полно вариантов решения, остается лишь выбрать подходящий и использовать его.

  4. Легкость в освоении. Сначала код, возможно, покажется очень трудным, однако это ощущение быстро пройдет. Кроме того, сильно мотивирует визуальное отображение действий.

Недостатки JavaScript:

  1. Отсутствие чтения и загрузки файлов. Это сделано из соображения безопасности для пользователей.

  2. Доступен для злоумышленников. Весьма легко встроить какой-либо вредоносный код, который может нанести большой урон.

  3. Динамическая типизация. Причина частых проблем при разработке – нет возможности выявить ошибки заранее, только на этапе работы. Еще Javascript игнорирует явные несостыковки, которые прямо-таки бросаются в глаза. Поэтому это настоящая боль для человека, который захотел изучить Javascript после освоения строго типизированного языка (Java, C, C++).

Long-term support и проблема версионирования

Помните, какой ажиотаж и изумление вызвал PHP7, когда разработчики впервые презентовали его? Увеличение производительности более чем в 2 раза, а в некоторых компонентах до 5 раз! А помните, когда появился на свет PHP седьмой версии? А как быстро-то заработал WordPress! Это был декабрь 2015 года. А знали ли вы, что PHP 7.0 уже сейчас считается устаревшей версией PHP и крайне рекомендуется обновить его… Нет, не до версии 7.1, а до версии 7.2. По утверждениям разработчиков, версия 7.1 уже лишена активной поддержки и получает лишь обновления безопасности. А через 8 месяцев прекратится и это. Прекратится, вместе с активной поддержкой и версии 7.2. Выходит, что к концу текущего года у PHP останется лишь одна актуальная версия — 7.3.

На самом деле, это не было бы придиркой и я бы не отнёс это к причинам моего ухода от PHP, если бы написанные мной проекты на PHP 7.0.* уже сейчас не вызывали deprecation warning при открытии. Вернёмся к тому проекту, где вылетала установка зависимостей. Это был проект, написанный в 2015 году на Laravel 4 с PHP 5.6. Казалось, прошло же всего 4 года, ан-нет — куча deprecation-предупреждений, устаревшие модули, невозможность нормально обновиться до Laravel 5 из-за кучи корневых обновлений движка.

И это касается не только самого Laravel. Попробуйте взять любое приложение на PHP, написанное во времена активной поддержки первых версий PHP 7.0 и будьте готовы потратить свой вечер на поиск решений проблем, возникших в устаревших модулях PHP. Напоследок интересный факт: поддержка PHP 7.0 была прекращена раньше, чем поддержка PHP 5.6. На секундочку.

А как дела с этим обстоят у NodeJS? Я бы не сказал, что здесь всё значительно лучше и что сроки поддержки у NodeJS кардинально отличаются от PHP. Нет, здесь всё примерно так же — каждая LTS-версия поддерживается в течение 3 лет. Вот только у NodeJS немного больше этих самых актуальных версий.

Если у вас возникнет необходимость развернуть приложение, написанное в 2016 году, то будьте уверены, что у вас не будет с этим совершенно никаких проблем. Кстати говоря, версия 6.* перестанет поддерживаться только в апреле этого года. А впереди ещё 8, 10, 11 и готовящаяся 12.

Node.js

  • код для раскатки/перераскатки СУБД, включая триггерные функции и хисторные таблицы должен быть создан автоматически — кодогенерацией или ORM;
  • код создания моделей DTO и мапперов в/из них должен быть создан автоматически с помощью кодогенерации;
  • swagger-описание REST API должно автоматически генерироваться из исходного кода;
  • должна существовать полноценная ORM-система, позволяющая работать с MS SQL, PostgreSQL, mongoDb, а также писать кастомные запросы для особых случаев;
  • должны существовать библиотеки интеграции с redis, rabbitMQ, socket, т.к. вероятность использования данных инструментов на новых проектах очень высока;
  • кросплатформенность — чтобы у разработчиков был выбор ОС;
  • стабильность и отказоустойчивость;
  • возможность оптимизации узких по производительности мест на проверенной и хорошо зарекомендовавшей себя технологии;
  • удобная IDE, которая позволяет легко писать, рефакторить и отлаживать код.
  • коммуникационная платформа, позволяющая сотрудникам офиса общаться с клиентами по Telegram, WhatsApp, FB, VK и Viber в одном окне;
  • и проект по автоматизации внутренних бизнес процессов одного из наших клиентов.

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

Переходим непосредственно к рейтингу и расскажем, какие языки программирования сейчас востребованы. Для создания списка были использованы данные профессиональных форумов. 

Место в рейтинге Язык программирования
1 JavaScript
2 Python
3 Java
4 C#
5 PHP

Первое место закрепилось за JavaScript, однако наравне с ним уверенно держится Python. Эти два языка программирования идут буквально нога в ногу.

37 % профессиональных форумов оставили за JavaScript первое место, предоставив Python почетное второе место. Однако Python ушел не так далеко и в сторону его лидерства склонилось 26 % форумов.

На третьем месте – язык Java. Он достойно соревнуется за звание второго места с Python. За популярность этого языка выступило около 26 % форумов. На четвёртое место претендовали сразу несколько языков, однако с количеством набранных голосов 16% место ушло C#. Пятое место досталось языку PHP.

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

Данные обновляются каждый год. С учетом скорости развития IT-технологий с легкостью могут возникнуть новые языки, а старые либо уйдут на задний план, либо подстроятся под современные требования. Однако наблюдая за тем, какие языки программирования востребованы сейчас и какие были востребованы несколько лет назад, можно с уверенностью сказать, что 5 языков все же не теряют своей актуальности.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

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