e
Выбрать язык программирования для изучения с нуля — проблема, которая волнует многих разработчиков. Как выбрать язык, который не только сможет принести вам деньги, но и доставит удовольствие от работы? Разработчики REG.RU Сергей Сединкин, Александр Ткач и Андрей Макарычев ответят на все интересующие вопросы о трёх популярных языках программирования для веб-разработки: Perl, Python и JS.
Легаси-код — код, который писали
мамонтыпредыдущие или сторонние программисты, используя устаревшие языки или технологии.
Сергей Сединкин, старший специалист по решению багов 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.
Сергей Сединкин:
Большое комьюнити, обширная база открытых модулей на CPAN почти под все задачи. Perl становится менее популярным, значит, количество программистов на Perl будет сокращаться. Из-за этого возрастёт ценность каждого конкретного программиста. Значит, жди почёт и уважение в компании.
Александр Ткач:
Правильнее было бы противопоставить в этом вопросе Perl языку PHP, чья доля в сегменте веб-разработки в разы больше доли как Perl, так и Python. Для простых веб-проектов типа лендингов или блогов смысла в Perl действительно нет — есть готовые решения на PHP (CMS — WordPress, Joomla и другие), а на больших и сложных проектах он может составить конкуренцию другим ЯП. Программирование на Perl дает более глубинные знания, чем программирование на PHP, при этом синтаксис проще, чем у Python, и практически любую задачу можно решить на этом ЯП несколькими способами. Я думаю, что человек, освоивший Perl, сможет затем с лёгкостью перейти на PHP или на Python — они кажутся проще после Perl — и писать при этом качественный код.
Сергей Сединкин:
При желании на Perl можно написать очень хитрые конструкции. Неподготовленному зрителю будет сложно понять код. Но ведь можно писать и простой код?
Александр Ткач:
В Perl достаточно запомнить, какие существуют специальные переменные и операторы, чтобы разобраться в синтаксисе. Да, Perl позволяет при желании записывать код очень кратко, но на практике сталкиваться с такой записью придётся редко. По читабельности Perl-код не уступает коду на PHP или Python, при этом, в отличие от Python, в Perl нет строгого требования выделять блоки кода отступами.
Сергей Сединкин:
Если кратко, то это бэкенд, админские скрипты, отчёты, системные демоны.
Александр Ткач:
На Perl есть веб-фреймворки современного уровня с поддержкой MVP и ORM — Catalyst, Mojo, Dancer, которые не уступают фреймворкам на Python (Django) и PHP (Laravel, Yii). Задачи всё те же, что и на других популярных ЯП для серверного программирования, — разработка бэкенда классических веб-приложений, а также микросервисов, платёжных шлюзов, менеджеров очередей и иногда асинхронных решений.
На вопросы о Python отвечает Сергей Сединкин, старший специалист по решению багов REG.RU.
В современном мире программирование движется в сторону решения бизнес-задач. На современные серверы ставят железо, которое работает достаточно быстро. Куда лучше написать программу, решающую конкретные задачи пользователя и приносящую ему благо, облегчающую жизнь, чем написать программу, которая работает быстро, но никакой пользы не несёт. Если ваш проект разовьётся настолько, что надо будет изучать низкоуровневые штуки, то именно тогда это и стоит делать. Изучить их будет намного проще с уже готовым багажом знаний. У программиста будет представление, где и зачем нужны оптимизации.
Всё зависит от человека и требований проекта. Особых препятствий быть не должно.
Советую придумать себе задачу и сразу реализовать её. Например, можно поставить себе цель — создать сайт, в котором будет телефонная книга. В книгу можно добавлять, удалять контакты, менять их. Хранение сделать в базе данных.
С Python в вебе можно делать то же самое, что и с другими языками программирования.
На вопросы о JavaScript отвечает Андрей Макарычев, руководитель группы разработки интерфейсов REG.RU.
Рассматривать JavaScript как полноценный язык для фуллстек-программирования вполне себе можно. И работать с ним даже интересно. Мир ЯП концептуально не так уж и разнообразен, и событийно-ориентированная асинхронная парадигма программирования встречается не так уж часто.
В целом, не стоит относиться к серверному JS легкомысленно. Node.js такой же мощный язык разработки, как и любой другой. А к этому можно прибавить самое активное сообщество, огромный спектр открытых библиотек практически для любых нужд (да-да, даже Data Science и работа с GPU есть). В общем, разрабатывая на нём свой бэкенд-сервис, можно получить полный спектр удовольствия, как и от любого другого языка.
Тут, однако, стоит помнить о нишевости Node.js. Времена хайпа, когда на нём писали всё подряд, прошли, и разработчики стали внимательно относиться к выбору инструментария для своих целей. Но io-bound задачи точно все ваши.
Порог вхождения — это такой фетиш разработчиков. Программирование — это не ракетные технологии, не релятивистская физика, и тут полностью исключён человеческий фактор при общении «человек — компьютер», что безусловно упрощает деятельность. Но, как и везде, спектр твоих знаний ограничивает твои возможности. Для приложений типа «hello world» нет трудных языков, а для чего-то более сложного нужно иметь знания, с которыми пересекается твоя сфера профессиональных интересов. В любой ситуации базовыми знаниями являются алгоритмы и структуры данных, чтобы понимать, как работать с данными; и паттерны программирования, чтобы избегать распространённых ошибок.
Так и есть. Хотя возможно так и было. Волна хайпа давно схлынула, показав сильные и слабые стороны JS. Теперь это отличный инструмент для своей ниши, хотя его ниша до сих пор порождает много холиваров.
Если говорить о чисто клиентском JS — это весь спектр возможных задач: от простейших обработок формочек до построений сложнейших интерфейсов; от элементарных снежинок на экране до крутого (и не очень) геймдева (все же помнят про DOOM и CS-очку в браузере?).
Если про серверный JS: тут ещё больше. Это и BFF, и всякие GraphQL, решение прикладных задач для фронтенда (сборщики, препроцессоры, постпроцессоры и тому подобное), большие серверы на Node.js, маленькие сервисы на Node.js — всё что угодно.
Ещё не стоит забывать про мобильную разработку (всякие pwa и не только), разработку десктопных приложений (Electron и все прочие).
⌘⌘⌘
Если вы уже нашли свой идеальный язык программирования, на котором собираетесь писать сайты или веб-приложения, то самое время выбираться из «локалки» и выбрать надёжный хостинг. Например, в REG.RU все тарифы поддерживают Perl, Python и PHP, а ещё на них есть автоматическая защита от DDoS-атак и две недели бесплатного теста.
Многие предприниматели жалуются на сложный и слишком изобильный документооборот: много документов приходится оформлять. Но при…
Чтобы легально пользоваться результатами чужого труда в своем бизнесе, нужно за это заплатить. И неважно,…
Франшизы предоставляют предпринимателям возможность использовать популярные бренды, эффективные бизнес-модели и поддержку со стороны материнской компании.…
Некоторые компании сосредотачивают в своих руках и производственные мощности, и права на то, что на…
У любой компании есть адрес, по которому она «прописана», то есть зарегистрирована в ЕГРЮЛ. Но…
Подросток может заниматься бизнесом, но с учетом важных условий, прописанных в законе. Разбираемся, как несовершеннолетнему…