Поиск по сайту Поиск

Какой язык выбрать начинающему веб‑разработчику: Perl, Python или JavaScript

Выбрать язык программирования для изучения с нуля — проблема, которая волнует многих разработчиков. Как выбрать язык, который не только сможет принести вам деньги, но и доставит удовольствие от работы? Разработчики REG.RU Сергей Сединкин, Александр Ткач и Андрей Макарычев ответят на все интересующие вопросы о трёх популярных языках программирования для веб-разработки: Perl, Python и JS.

Perl

В Интернете встречается мнение, что Perl устаревает и пишут на нём в основном те, кто сталкивается с легаси-кодом. Так ли это?

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

Сергей Сединкин, старший специалист по решению багов REG.RU:

Отчасти это так. В крупных известных компаниях можно встретить проекты, написанные на Perl. Их надо развивать и поддерживать. Если код подвергался рефакторингу, то он будет отвечать современным стандартам. Работать с таким кодом одно удовольствие. И какая разница, на каком языке программирования он написан?

Что касается новых проектов на Perl. Недавно Владимир Перепелица из Mail.ru участвовал в интервью, где рассказал, что они пишут облако на Perl. И это только новый код и новый проект. Больше примеров не могу привести, потому что не интересовался сторонними проектами.

Александр Ткач, Perl-разработчик REG.RU:

Доля Perl в вебе, безусловно, сократилась в пользу PHP, Node.js и Python. В основном, Perl востребован в компаниях, где кодовая база изначально была написана на Perl-е в те годы, когда альтернативы на бэкенде ему ещё не было. Объём легаси-кода, написанного на Perl-е в топовых IT-компаниях в прошлые годы, большой и требует поддержки. Где-то он переписывается на другие языки программирования (ЯП), а где-то остаётся основным ЯП, в том числе для новых проектов и микросервисов. Я думаю, что, во-первых, процесс миграции с Perl — небыстрый, а во-вторых, рефакторинг и поддержка легаси-кода на больших проектах тоже может дать хороший опыт в программировании, так что в ближайшие лет 5 хоронить Perl пока рано. Кроме того, Perl поддерживается профессиональным сообществом, оно дружное и экспертное. Зачастую найти там ответ на сложный вопрос получится быстрее, чем в больших сообществах по PHP или Python.

Зачем использовать Perl для веба, если есть Python?

Сергей Сединкин:

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

Александр Ткач:

Правильнее было бы противопоставить в этом вопросе Perl языку PHP, чья доля в сегменте веб-разработки в разы больше доли как Perl, так и Python. Для простых веб-проектов типа лендингов или блогов смысла в Perl действительно нет — есть готовые решения на PHP (CMS — WordPress, Joomla и другие), а на больших и сложных проектах он может составить конкуренцию другим ЯП. Программирование на Perl дает более глубинные знания, чем программирование на PHP, при этом синтаксис проще, чем у Python, и практически любую задачу можно решить на этом ЯП несколькими способами. Я думаю, что человек, освоивший Perl, сможет затем с лёгкостью перейти на PHP или на Python — они кажутся проще после Perl — и писать при этом качественный код.

Правда ли, что у Perl достаточно сложный синтаксис?

Сергей Сединкин:

При желании на Perl можно написать очень хитрые конструкции. Неподготовленному зрителю будет сложно понять код. Но ведь можно писать и простой код?

Александр Ткач:

В Perl достаточно запомнить, какие существуют специальные переменные и операторы, чтобы разобраться в синтаксисе. Да, Perl позволяет при желании записывать код очень кратко, но на практике сталкиваться с такой записью придётся редко. По читабельности Perl-код не уступает коду на PHP или Python, при этом, в отличие от Python, в Perl нет строгого требования выделять блоки кода отступами.

Что можно делать с Perl в вебе? Какие задачи ждут тех, кто планирует искать работу Perl-разработчиком?

Сергей Сединкин:

Если кратко, то это бэкенд, админские скрипты, отчёты, системные демоны.

Александр Ткач:

На Perl есть веб-фреймворки современного уровня с поддержкой MVP и ORM — Catalyst, Mojo, Dancer, которые не уступают фреймворкам на Python (Django) и PHP (Laravel, Yii). Задачи всё те же, что и на других популярных ЯП для серверного программирования, — разработка бэкенда классических веб-приложений, а также микросервисов, платёжных шлюзов, менеджеров очередей и иногда асинхронных решений.

Python

На вопросы о Python отвечает Сергей Сединкин, старший специалист по решению багов REG.RU.

Хорошо ли начинать изучать программирование с Python, учитывая, что он достаточно высокоуровневый и для него есть множество готовых библиотек? Не будет ли потом недостатка в глубинных знаниях и понимании работы технологий, которые скрыты в Python за абстракциями (например, процесс выделения памяти в программах)?

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

Сфер применения Python много: это и веб, и анализ данных, Machine Learning и так далее. Сможет ли новичок переключиться на другую сферу, если одна чем-то не устроит?

Всё зависит от человека и требований проекта. Особых препятствий быть не должно.

Как начинающему программисту сразу применять свои знания Python на практике (применительно к веб-разработке)?

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

Что можно делать с Python в вебе? Какие задачи ждут тех, кто планирует искать работу Python-разработчиком?

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

JavaScript

На вопросы о JavaScript отвечает Андрей Макарычев, руководитель группы разработки интерфейсов REG.RU.

JavaScript завоевал нишу фронтенда, а для бэкенда в нём, как известно, есть Node.js. Можно ли рассмотреть этот язык как прямой путь к фуллстеку?

Рассматривать JavaScript как полноценный язык для фуллстек-программирования вполне себе можно. И работать с ним даже интересно. Мир ЯП концептуально не так уж и разнообразен, и событийно-ориентированная асинхронная парадигма программирования встречается не так уж часто.

В целом, не стоит относиться к серверному JS легкомысленно. Node.js такой же мощный язык разработки, как и любой другой. А к этому можно прибавить самое активное сообщество, огромный спектр открытых библиотек практически для любых нужд (да-да, даже Data Science и работа с GPU есть). В общем, разрабатывая на нём свой бэкенд-сервис, можно получить полный спектр удовольствия, как и от любого другого языка.

Тут, однако, стоит помнить о нишевости Node.js. Времена хайпа, когда на нём писали всё подряд, прошли, и разработчики стали внимательно относиться к выбору инструментария для своих целей. Но io-bound задачи точно все ваши.

Бытует мнение, что у JavaScript довольно низкий порог вхождения, поэтому, чтобы стать востребованным специалистом, нужно знать дополнительные смежные области. На какие из этих областей вы бы посоветовали обратить внимание новичкам?

Порог вхождения — это такой фетиш разработчиков. Программирование — это не ракетные технологии, не релятивистская физика, и тут полностью исключён человеческий фактор при общении «человек — компьютер», что безусловно упрощает деятельность. Но, как и везде, спектр твоих знаний ограничивает твои возможности. Для приложений типа «hello world» нет трудных языков, а для чего-то более сложного нужно иметь знания, с которыми пересекается твоя сфера профессиональных интересов. В любой ситуации базовыми знаниями являются алгоритмы и структуры данных, чтобы понимать, как работать с данными; и паттерны программирования, чтобы избегать распространённых ошибок. 

Про JavaScript говорят, что он вездесущ. Значит ли это, что на нём при желании можно написать всё что угодно?

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

Что можно делать с JavaScript в вебе? Какие задачи ждут тех, кто планирует искать работу JavaScript-разработчиком?

Если говорить о чисто клиентском JS — это весь спектр возможных задач: от простейших обработок формочек до построений сложнейших интерфейсов; от элементарных снежинок на экране до крутого (и не очень) геймдева (все же помнят про DOOM и CS-очку в браузере?).

Если про серверный JS: тут ещё больше. Это и BFF, и всякие GraphQL, решение прикладных задач для фронтенда (сборщики, препроцессоры, постпроцессоры и тому подобное), большие серверы на Node.js, маленькие сервисы на Node.js — всё что угодно.

Ещё не стоит забывать про мобильную разработку (всякие pwa и не только), разработку десктопных приложений (Electron и все прочие).

⌘⌘⌘

Если вы уже нашли свой идеальный язык программирования, на котором собираетесь писать сайты или веб-приложения, то самое время выбираться из «локалки» и выбрать надёжный хостинг. Например, в REG.RU все тарифы поддерживают Perl, Python и PHP, а ещё на них есть автоматическая защита от DDoS-атак и две недели бесплатного теста.

УПД в бухгалтерии: когда один документ может заменить несколько

Многие предприниматели жалуются на сложный и слишком изобильный документооборот: много документов приходится оформлять. Но при этом российское законодательство дает возможность...
Read More

Что такое роялти, как их рассчитать и кому они выгодны

Чтобы легально пользоваться результатами чужого труда в своем бизнесе, нужно за это заплатить. И неважно, идет ли речь о дизайне...
Read More

Франшиза: что это, как работает и стоит ли начинать такой бизнес

Франшизы предоставляют предпринимателям возможность использовать популярные бренды, эффективные бизнес-модели и поддержку со стороны материнской компании. Но за эти привилегии придется...
Read More

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

Некоторые компании сосредотачивают в своих руках и производственные мощности, и права на то, что на них производят, и репутацию, которой...
Read More

Обособленное подразделение: как открывать и ставить на учет части компании

У любой компании есть адрес, по которому она «прописана», то есть зарегистрирована в ЕГРЮЛ. Но склад и офис с бухгалтерами...
Read More

С какого возраста можно открыть ИП и как это правильно сделать

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

Коносамент — главный документ морских грузоперевозок

Ежедневно по морю перевозят десятки, а то и сотни тысяч контейнеров с грузами. Чтобы партия товара, изготовленная, например, в Китае,...
Read More

Лучшая система налогообложения для вашего бизнеса. Как выбрать?

Одна из главных головных болей любого предпринимателя — уплата налогов. И дело даже не в том, что кому-то не хочется...
Read More

Фискальный чек — что это, зачем нужен и что будет, если его не выдать

Кто-то выкидывает их сразу возле кассы, кто-то тщательно собирает, чтобы потом проанализировать траты за месяц, кто-то даже не забирает их...
Read More

Расчет заработной платы по окладу в 2024 году: как понять, сколько заработал сотрудник

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