Verification: a143cc29221c9be0

Perl или php что лучше

Perl или php что лучше

1. Embedded-разработка (разработка встроенного программного обеспечения)

Практически во всех устройствах, окружающих нас в повседневном быту (и не только) используются микросхемы. Автомобили, электрические плиты, роботы-пылесосы, холодильники, банкоматы, стиральные и посудомоечные машины, роутеры, швейные машины...Этот список продолжает расширяться с каждым днем. Все эти многочисленные приборы работают при помощи электроники, которую кто-то должен запрограммировать. Именно этим и занимаются embedded-разработчики.

Основной язык программирования, использующийся в этой области, — это C++, встречается также ассемблер и JAVA, использующиеся преимущественно для низкоуровневого программирования.

Порог вхождения в эту профессию достаточно высок: C++ и ассемблер не относятся к числу самых простых языков. Кроме того, вам понадобится хорошо ориентироваться в том оборудовании, для которого вы будете создавать программы.

Заработная плата в этой сфере достаточно высока, embedded-программисты зарабатывают от 60 до 150 тыс. рублей и выше, в зависимости от уровня квалификации и профессиональных навыков.

Разработка встроенного программного обеспечения — это активно развивающееся направление. Поэтому если вам нравится работать с оборудованием и C++ для вас интересен, то это отличный выбор.

2. Разработка мобильных приложений (Android и iOS)

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

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

Разработчику приложений под операционную систему iOS необходимо изучить языки программирования Objective-C и Swift (разработан компанией Apple). Для создания приложений на Android вам потребуется знание Java или C#.

Доход разработчика мобильных приложений варьируется от 50 до 160 тыс. рублей и выше.

3. Front-end разработчик

Еще одна очень востребованная и интенсивно развивающаяся область программирования — это веб-разработка (подробнее о профессии Web-программист). Через интернет продаются самые разнообразные товары и услуги. Сейчас чуть ли не у каждой компании есть свой хотя бы самый простенький сайт или представительство в социальных сетях, на маркетплейсах. А это означает, что спрос на специалистов в области веб-разработки высок и будет расти. 

Frontend — это та часть сайта или приложения, которую видит пользователь: страницы и разделы сайта, меню, интерфейс и т. п. Соответственно, frontend-разработчик — это специалист, отвечающий за то, чтобы сделать сайт или мобильное приложение максимально удобным для пользователей.

Эта профессия потребует творческого мышления: необходимо придумывать различные формы веб-дизайна, который будет интуитивно понятен для посетителей сайта, и находить способы их реализации с помощью программирования. Такие специалисты востребованы и в небольших компаниях, и в гигантах уровня Google, Яндекс, Microsoft, Apple и др.

Начать работать в этой области сравнительно несложно, веб-разработка предоставляет хорошие возможности для приобретения опыта и профессионального развития. Для работы специалисту необходимо на высоком уровне владеть JavaScript, знать HTML, СSS, серверные языки (Perl, PHP), а также уметь работать с базами данных (MySQL).

Кроме технического образования, важно иметь начальные познания в области психологии, разбираться в особенностях работы человеческого мозга восприятия и познавательных процессов.

Заработная плата web-разработчика — в пределах от 50 до 150 тыс. рублей.

4. Back-end разработчик

Еще одна специализация в веб-программировании — это back-end-программист.

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

Back-end программист работает в постоянном взаимодействии с фронт-енд-разработчиком, получая от него информацию о мнении пользователей и внося в работу сайта соответствующие изменения.

Порог вхождения для работы в этой сфере выше, чем у front-end разработчика. Необходимо знать Ruby, MySQL, MongoDB, PostgreSQL, Python и .NET.

Зарплата back-end-программиста составляет от 60 до 200 тыс. рублей.

PHP, конечно, жив, но Python пролезает в веб: Максим Шамаев о состоянии языка

— Максим, предлагаю разделить наш разговор на несколько блоков. Первый будет посвящён состоянию языка, потом поговорим о рынке труда, о CMS и фреймворках на PHP и о будущем разработки на PHP.

— Да, давайте.

— На PHP работает практически весь интернет, по разным данным, до 80 % сайтов работает на PHP. Только на WordPress работает около 30 % из всех сайтов и около 60 % из сайтов, которые используют CMS. Как вы считаете, почему в таком случае люди обсуждают, жив PHP или нет?

— Смотрите, всё начинается с цели. У любого языка есть цель, и есть люди и бизнесы, которые ведут язык за собой. Раньше, например, в 2010 году, когда программист начинал бизнес, он приходил в веб и работал на PHP. В то время этот язык был «супер-супер», его все изучали.

Сейчас появился класс бизнесов, которые пришли либо из искусственного интеллекта, либо из Data Science, а там Python. Плюс Python с точки зрения университетов — более стройный язык. К нему есть претензии, но в целом этот язык стройнее и богаче. В нём есть перегружаемые операторы, там можно складывать объекты. То есть это язык для математиков, он изумительно хорош для работы с математическими данными.

Python всё чаще преподают в институтах и университетах, потому что он нравится преподавателям, а также потому, что студент после освоения этого языка сможет хорошо кодить математику, какую-то Big Data или искусственный интеллект. Это близко институтам. Поэтому последние лет 5 формируется поколение программистов, которые знают Python. Они начинают бизнес, приходят в веб и делают что-то на Python.

Здесь есть нюанс: эти люди приходят на рынок, начинают искать питонистов, смотрят — а на рынке 80 % программистов на PHP. Здесь они попадают в неудобное положение. У них код уже написан на Python, поэтому они переучивают PHP-программистов. Получается новая прослойка программистов, которые делают какой-то бизнес, в нём часть, которая отвечает за искусственные интеллект, работает на Python, а веб-представление они тоже автоматически делают на Python — не использовать же два языка. Таким образом Python пролезает в веб.

Ведь любой предприниматель делает бизнес своими руками и своими мозгами. Какой язык программирования он знает, на том языке и будет написан его продукт. Раньше знали PHP, потому что другого языка не было. Действительно, все CMS сделаны на PHP. И поэтому PHP свои позиции не сдаёт.

Представьте, что бизнесмен собирается делать сайты-визитки. Он смотрит, на чём их делают на рынке, и видит, что почти все такие сайты делают на WordPress. Тогда он тоже выбирает WordPress. А WordPress написан на PHP. Поэтому всё идёт от бизнеса — какой бизнес, такой и язык.

— А сам язык PHP скорее жив или скорее мёртв?

— Жив конечно.

— А для чего в 2020 году используется PHP? Какая у него сфера применения или ниша?

— Это всё, что связано с вебом: от простейших сайтов до каких-то больших проектов. Например, тот же Skyeng сделан на PHP. Если вы не пишете большой коробочный продукт класса «1С», хотя веб-часть «1С» тоже на PHP написана, а вы пишете какой-то сайт, который предоставляет услуги, как Skyeng, то его тоже можно писать на PHP. Весь вопрос в том, что знал основатель бизнеса. В случае со Skyeng это был PHP, поэтому сайт написан на PHP. Если какая-то контора выходит на рынок веб-программирования, ей надо использовать PHP без вариантов, потому что под него больше серверов, под него больше услуг, под него больше программистов.

— То есть мы можем сказать, что ниша PHP — веб-разработка?

— Да, этот язык ведь начинался как шаблонизатор. Со временем потребовалось писать на PHP много бизнес-логики, поэтому в него добавили возможности хорошо описывать объекты, чтобы трейты, protected, private появились, чтобы можно было отобразить сложные взаимоотношения, например, на 200 акторов. Потому что когда начинаешь сравнивать языки, например, PHP vs. Python, в последнем что хорошо — можно определить, как объект будет складываться, делиться, вычитаться. В PHP этого нет. А вот, например, как определить protected и private? В Python, по-моему, protected вообще нет. Как определить private-свойства, как они визуально выглядят? Python здесь выглядит несерьёзно. В результате на PHP легче описывать какие-то сложные структуры объектов, они визуально лучше выглядят. Есть возможность работать с интерфейсами, наследованием, трейтами, типами. Бизнес-логику хорошо писать на PHP.

— Максим, вы уже несколько раз упомянули Python. Мы можем сказать, что этот язык конкурирует с PHP на его поле?

— Да, конечно.

— А какие ещё языки конкурируют с PHP?

— Ruby, серверный JavaScript в его реализации через TypeScript. Потому что сам по себе JavaScript — язык нестрогий. Что хорошо в современном PHP — появились типы для аргументов, появились типы для возвратов функций, появилась возможность очень сильно специфицировать код. Мы можем «запереть» код в каком-то слепке: определить, что эта функция возвращает целое число. В JavaScript такого нет, как и в старых версиях PHP. Там наша функция могла строку вернуть, могла число и так далее. TypeScript позволяет специфицировать все входы и выходы.

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

У JavaScript ещё есть важный плюс — серверные и фронтенд-программисты пишут на одном языке. Это большая и важная тема. Если, например, в компании серверный код пишут на PHP, а фронтенд на том же TypeScript, начальнику отдела не удастся быстро перебросить специалиста с фронта на бэк, если понадобится. А если в компании JavaScript и на сервере, и на фронтенде, вы можете это сделать.

— А Java не заходит на поле PHP?

— Нет. Это язык, конечно, присутствует в веб-разработке, но на таком же уровне, как C, C#, C++. У Java не очень большая доля рынка, и этот язык избыточен для веба. Да, приложения на Java будут быстрее и правильнее. Но на Java писать дольше, сложнее. А Java-программистов на рынке меньше.

Если вернуться к бизнесу — вы покупаете хостинг, на него можно поставить PHP и больше ничего. Возможно, вы кое-как найдёте хостинг для Python, для JavaScript, для Ruby. Для Ruby даже вряд ли найдёте. Захотите поставить Java, а на это надо потратить гораздо больше денег.

Java хороша для того, чтобы сайт «М.Видео» на ней написать. То есть этот язык подходит для чего-то большого и сложного. Что важно понимать: когда маленький стартап начинает работать, он толерантно относится к падениям. Ну, упал сайт — клиенты не могли им пользоваться 30 минут. А когда стартап вырос в большую корпорацию, для них эти 30 минут превращаются в миллионные потери. Они на рынок акций вышли, провели IPO. Сайт упал, цена акций снижается, акционеры ругаются. Для них стоимость падения многократно выше по сравнению с маленькими компаниями.

Поэтому у них культура другая. Они стараются 33 раза всё протестировать, выкатывать изменения на прод медленно. Здесь лучше подходит Java. PHP уместен в компаниях, где процесс построен так: «Сейчас выкатим... Ой, что-то упало... Сейчас пофиксим... 7 минут лежал сайт, ничего страшного». Или 7 часов, тоже ничего страшного. А Java лучше подходит для чего-то сложного, тяжёлого и дорогого.

— Максим, немного отвлечённый вопрос: если какой-то пользователь или какой-то бизнес делает свой сайт, на чём ему сегодня лучше его делать? Это будет какая-то CMS, например, WordPress? Возможно, фреймворк — Laravel или Yii2, может, SaaS-решение типа Tilda?

— Это зависит от бизнеса. А бизнес ориентируется на клиента. Я знаю американские бизнесы, у которых остаются телефонные интерфейсы, несмотря на развитие интернета. То есть к ним приходишь на сайт, видишь номер телефона, звонишь и решаешь свои задачи, например, покупаешь шины.

Прежде чем выйти в онлайн, они считают, принесёт ли этот шаг прибыль. Поначалу они стараются использовать что-то дешёвое. Возможно, какие-то SaaS-решения — тот же самый «Эквид». А может, им даже выгоднее на Amazon свои товары выставить на продажу. То есть бизнесы стараются минимально вкладываться, делать всё дёшево.

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

Например, приходит в студию предприниматель и просит сайт. Студия смотрит — предпринимателю нужен редизайн, а денег от него много не придёт. Поэтому студия идёт на какой-нибудь Templatemonster, покупает готовый темплейт. А этот темплейт сделан под WordPress. В результате студия автоматически делает предпринимателю сайт на PHP. Устанавливают WordPress, сбоку WooCommerce и форум, сверху натягивают готовый шаблон.

WordPress все знают, с ним работает много программистов. Здесь всё уже известно, багов мало. То есть здесь мыслят не категориями языка, язык здесь вторичен. А если человек хочет сделать какой-то аналог «Яндекс.Такси», он будет думать, на чём писать. В первую очередь будет писать на том, что знает сам. Если ему лет 30, будет, скорее всего, на PHP писать. Если он помоложе, его в институте уже на Python учили — будет на этом языке писать.

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

— То есть пока есть WordPress, Laravel и другие популярные решения, PHP остаётся востребованным. А может сложиться такая ситуация, что через 10 или 15 лет вместо WordPress на рынке будет доминировать что-то другое, условный Django и Python или что-то ещё?

— Теоретически такое может быть, новые сайты могут делать на чём угодно. Но существующие сайты никуда не денутся. Например, есть какая-то кузница, она делает решётки, у неё сайт с каталогом на WordPress, сайту уже лет 10. Какая цель у кузницы? Они как ковали решётки, так и будут это делать. Возможно, будут выпускать больше продукции.

Появится больше посетителей на сайте, потребуется каталог побольше. Но сайт останется тот же. Кузнице надо закрывать дыры в безопасности и обновлять дизайн раз в 10 лет. И всё — это вечная тема. Через 20, через 50, боюсь, даже через 100 лет они будут работать на WordPress.

Посмотрим на бум мобильников — люди стали через мобильные устройства заходить на сайты. Но появились скины, которые позволяют сайту нормально выглядеть на мобильном экране. Это уровень HTML, CSS и немного JavaScript, к CMS это отношения не имеет.

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

Вот мобильное приложение будет написано на мобильном языке — Swift, Objective-C, на той же Java. А данные это приложение будет получать из WordPress по API, которое есть уже сейчас. Этот сайт на WordPress будет жить, пока живёт стоящий за ним бизнес. И это касается тысяч и миллионов бизнесов: кузнецы, продавцы машин, запчастей, ремонтники, те же кафе. Может со временем бизнесы будут чаще пользоваться какими-то SaaS-решениями. Но здесь уже появляется противоречие между желанием иметь своё и необходимостью пользоваться кусочком в чём-то общем. Это можно сравнить с выбором между своим небольшим магазином и лоточком внутри большого супермаркета.

И ещё здесь появляется вопрос стоимости решения. Возможно, если бы кузнецы делали сайт сейчас, решение на Тильде обошлось бы им дешевле. Но им быстро перестало бы хватать возможностей Тильды. Понадобится какой-то каталог прикрутить — и вот мы снова на WordPress! То есть новые решения будут появляться на Python и на других языках. А старые решения останутся на PHP.

Читайте также

Зачем изучать PHP: рейтинг, перспективы, сферы применения

Если новичок не ленится, если с головой порядок, он через 2 или 3 или 4 года становится мидлом с большой зарплатой: о рынке труда

— Мы определились, что PHP жив. Теперь можно плавно перейти к вопросу, который особенно сильно волнует наших студентов. Это рынок труда. И здесь первый вопрос: с одной стороны говорят, что на рынке очень много специалистов по PHP, а с другой стороны можно услышать, что таких специалистов не хватает. Где правда?

— Смотря о каком специалисте идёт речь. Если у вас маленькая контора, вы пишете сайты на WordPress, вам нужен дешёвый специалист. Он немного знает PHP, немного вёрстку, немного ещё что-то. Таких на рынке десятки тысяч.

А если взять тот же самый Skyeng, там высокие требования к специалистам. Надо знать Symfony, PosgreSQL и другие вещи. Кстати, PostgreSQL не совсем специфична для PHP, здесь роднее MySQL. Так вот, программистов, которые знают много и умеют много, не хватает. Они нужны Skyeng и ещё нескольким десяткам компаний. А остальным 20 тысячам компаний, которые пилят на WordPress маленькие магазинчики, специалисты с такой квалификацией не нужны.

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

— Правда ли, что PHP проще изучать по сравнению с другими языками?

— Я занимаюсь программированием уже 20 лет, и мне кажется, что сложность изучения PHP, Python, Ruby, JavaScript примерно одинаковая. Нельзя сказать, что PHP проще других. Просто из-за его шаблонной природы проще писать первые приложения. Не надо что-то объявлять, не нужен какой-то сервис. Разработчик написал в файле код на PHP, у него уже какой-то сервер установлен, и если к нему обратиться, он в браузере уже что-то выдаёт. То есть первые шаги на PHP действительно делать легче, и в этом плане другие языки не сравнятся с PHP. Но эти шаги длятся два дня, а обучение год. А дальше — у PHP есть проблемы с именованием функций, с порядком аргументов. В других языках тоже есть проблемы — к любому можно придраться.

— Максим, а если бы вы сегодня начали изучать программирования, вы бы начали снова с PHP?

— Я изучал язык под контору. Хотел работать в X-Cart, а в этой конторе требовались PHP-программисты. Купил книгу, месяц почитал, пошёл на собеседование — всё нормально, меня приняли. Человек никогда не изучает языки «абы куда», он всегда изучает языки «почему-то». У него есть целевая контора, которая программирует, например, на Erlang. И он будет изучать этот язык.

Ещё один вариант — человек зашёл на «Хедхантер» и посмотрел, а каких программистов хотят видеть работодатели? Увидел, что нужны специалисты по PHP, Python, C и так далее. Почитал отзывы и выбрал, например, Python. То есть это зависит в том числе от личных предпочтений, потому что, например, не все любят веб.

Возвращаясь к вопросу — мне тяжело судить. Скорее всего, выбрал бы PHP. Просто сейчас я уже хорошо знаю этот язык. И поэтому мне интересно изучать Python или, например, Go. Но я понимаю, что сегодня мной движет любопытство. Это даже не вопрос денег. Зарплаты плюс-минус одни и те же у специалистов по этим языкам.

— Если взять гипотетического новичка, который прилежно изучал PHP, у него голова на месте, руки на месте. Этот человек найдёт работу?

— Конечно.

— А где сейчас работают PHP-программисты? Это аутсорс, продуктовые компании, энтерпрайз, что-то ещё?

— В целом это веб-разработка. Это и маленькие студии, которые делают маленькие сайты, и средние студии, которые делают сайты каким-то заводам, и большие студии, которые делают проекты масштабов «М.Видео». Это и аутсорс на Запад, там тоже много работы для PHP-программистов. Аутсорсеры пишут для Европы, для США и Канады, даже для Аргентины и Бразилии. Есть конторы, которые делают коробочные продукты. Есть аутсорс для коробочных команд. Есть команды, которые делают сайт как продукт или как сервис. Например, Skyeng. Даже Facebook на PHP работает. Понятно, что сейчас его там мало осталось, но тем не менее. То есть это весь спектр веба — буквально всё.

— Максим, вы уже упоминали о требованиях Skyeng. А если абстрагироваться и попробовать дать рекомендации новичкам: что нужно знать начинающим PHP-программистам, чтобы уверенно выйти на рынок труда?

— Сейчас много онлайн-курсов. Новичок приходит на курс, его учат основам языка. Потом учат работать с веб-сервером, с фреймворками типа Laravel или Symfony. Также на курсах новичок пишет какие-то учебные приложения. И после этого приходит на «Хедхантер», говорит, что он джуниор, готовый работать за 35 000. Его берут на работу, дают его условные 32 000. Там он набирается опыта. И здесь появляется вопрос мотивации и головы. Если новичок не ленится, если с головой порядок, он через 2 или 3 или 4 года становится мидлом. Он переходит в другую контору на другую зарплату. Здесь ему уже платят 80 000 или 100 000. Проходит ещё 2-3 года — он становится синьором с зарплатой от 120 000. То есть в начале пути надо набраться опыта: научиться работать с базой, с API и так далее. Есть такой нюанс: заранее углубляться в какие-то темы — это не всегда хорошо. Может, за исключением каких-то абстрактных вещей, например, архитектурных паттернов. Нельзя заранее знать, с чем придётся работать.

Большинству продавцов машин, бутербродов или кошек с собаками всё равно, на чём у них сайт: о WordPress и других инструментах

— От рынка труда предлагаю плавно или не очень перейти к фреймворкам и CMS, которые есть в экосистеме PHP. WordPress — явный лидер на рынке CMS и вообще в вебе. А за счёт чего ему это удаётся?

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

— Но это ведь опенсорсный проект, там нет централизованной разработки, насколько я понимаю?

— Рядом с любым опенсорсным проектом всегда есть какие-то конторы, которые на нём зарабатывают деньги. Здесь можно передать привет, например, Red Hat. Сам проект может быть опенсорсным, а коммерческие конторы, которые находятся рядом с ним, адаптируют продукт так, чтобы его могли использовать люди и сторонние бизнесы. Это фактически сегмент B2B. Например, бизнесу надо сделать сайт. Он смотрит — вот хороший партнёр! Большинству продавцов машин, бутербродов или кошек с собаками всё равно, на чём у них сайт, они этого могут даже не знать. Зато они знают, что у них есть хороший партнёр, которому можно доверить сайт.

— Максим, на профессиональных ресурсах можно найти скептические комментарии насчёт WordPress. Можно заметить, что профессионалы его не любят. Так ли это, и если да, то почему?

— Это старый разговор про продукт, у которого очень много пользователей. Когда продуктом пользуется много людей, ему сложно идти вперёд в технологическом плане. То есть он без багов, но он построен по-старому. Старый код тянет за собой старые технологии. С одной стороны, людям хочется использовать что-то новое. А с другой стороны, они хотят преемственности и совместимости — чтобы на новый WordPress без проблем становились их модули. Если выйдет обновлённый WordPress, который будет сделан строго под PHP 7.4, и на него не встанут модули, программисты об этом узнают постфактум, когда их уволят. Потому что гипотетическая контора, которая делает модули под WooCommerce, вдруг понимает, что ей придётся переписывать все модули, у неё просто денег на это не хватит. Она закроется. И вот тут радостные программисты, которые получили WordPress с новыми фишками и фреймворками, вдруг оказались уволенными. Поэтому в реальности программисты будут вечно недовольными из-за использования старых технологий, но у них будут зарплаты.

— Вы вспомнили фреймворки. Скажите пожалуйста, в каких ситуациях они подходят лучше, чем CMS?

— CMS подходит, когда нужен простой сайт, на котором будет информационная часть, небольшой каталог или магазин и всё. Фреймворк нужен, если вы делаете «сходу неведомо чего». Это может быть какой-то сервис, например, конкурент «Яндекс.Такси», систему доставки, у которой не будет пересечений с CMS. То есть CMS предоставляет много готового кода, а при использовании фреймворков нужно писать код самим. Это можно сравнить с такой ситуацией: нужно перевести пять коробок с футболками из Ульяновска в Москву, вы заказываете услуги СДЭК и решаете задачу. А если нужно перевезти по этому же маршруту дом, СДЭК не поможет.

— Немного подробнее о фреймворках в PHP: у нас есть Laravel, Zend, Yii2, Symfony и другие решения. За какими из них настоящее и будущее?

— У Yii2 есть свои апологеты. Это нормальный фреймворк, он не слишком тяжёлый, как Symfony. Под Symfony есть много бандлов, но он тяжеловатый и слишком энтерпрайзный. Laravel полегче. Но, опять-таки, всё зависит от цели. Если нужно строить что-то большое, и вы знаете Symfony, вы будете использовать этот фреймворк. Если нужно что-то не очень большое, какой-то интернет-магазин, можно выбрать Laravel. Все фреймворки похожи, в них используется модель MVC. Надо знать хотя бы один. Фактически бизнес выбирает то, что знает. А разработчик не выбирает. Он приходит в компанию, где пишут на Laravel. Что делать? Придётся выучить. На это уйдёт 3-4 дня.

— В Ruby есть «рельсы», в Python есть Django — фреймворки-лидеры, вокруг них всё крутится. А в PHP несколько лидирующих фремворков. Это хорошо или плохо для разработчиков, для сообщества?

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

Большое количество фреймворков — следствие того, что самого языка PHP много. Его использует огромное количество людей, у них свои мысли и идеи. Здесь крутятся миллиарды долларов. Какая-нибудь контора выпускает свой фреймворк. А эта контора — второй по размерам интегратор в США. Этот фреймворк будет использоваться на десятках тысяч сайтов.

На Python и Ruby меньше сайтов. Там есть один фреймворк — и хорошо. А чтобы появились новые фреймворки, нужны десятки тысяч контор, которые зарабатывают миллионы и миллиарды. Тогда появятся люди, которые скажут, условно, что Ruby on Rails нам не нравится, мы сделаем свой новый фреймворк.

Все эти фреймворки — «рельсы», Django, Flask и так далее, их разработчики отталкивались от фреймворков, которые написаны на PHP и Java.

Большое количество фреймворков в PHP — это ещё и следствие его эволюции. Люди выясняли, каким будет веб. Была статика, были шаблоны, потом появился AJAX, что-то стало на фронтенд перетекать... Это следствие эволюции — старый фрейморк попадал в ловушку, как WordPress. Люди ждут фреймворк с новым кодом, в котором работают старые методы. А такого не бывает.

Так, например, ушёл Zend — его съела Symfony. Zend ушёл, но не умер. Он остался на старых сайтах, которые нужно поддерживать. И программисты вынуждены его знать. Появился сложный Symfony, потом появился Yii, который проще — это эволюция.

Если ты строишь свой Ruby на чём-то уже готовом, например, на PHP — все ошибки до тебя уже сделаны. Поэтому и фреймворков будет меньше.

Что может PHP?

  1. Во-первых, с его помощью можно создать огромное количество страниц сайтов из модулей. Как ранее говорилось, PHP легко “вписывается” в HTML, позволяя заранее создавать макеты, заготовки и использовать в дальнейшем. Стоит заметить, это позволяет сократить время и труд программиста. Крайне часто это используется, когда на многостраничном веб-ресурсе нужно расположить что-то сверху (header), например, логотип компании или снизу (footer) её контакты.
  2. Во-вторых, PHP упрощает работу с формами. Конечно, их можно оформить и с помощью HTML, однако в таком случае ожидать качественной и быстрой работы не стоит. Благодаря своей “продвинутости”, указанный язык программирования лучше справляется с данными, эффективно используя и выделенное место в памяти, и время на отправление информации куда-либо, будь то сервера или другой портал.
  3. В-третьих, если хочется создать форму авторизации пользователя, опытные разработчики рекомендуют использовать PHP. Причина всё та же: данный язык программирования лучше и эффективнее использует информацию, проводит с ней манипуляции и отправляет по нужным интернет-адресам. Модульная система позволит подключать окно регистрации (и авторизации) к любому проекту, изменяя только дизайн.
  4. В-четвёртых, PHP развивается до сих пор. Первые версии были полны “дыр” и вольностей в обращении с переменными, операторами (например, внутренний компилятор позволял использование одной и той же буквы в разных типах данных). Однако разработчики заметили эти проблемы и исправили в дальнейших версиях. Несмотря на то, что остался “осадок” громоздкого кода, сейчас всё гораздо проще. Не нужно изучать тонны научной литературы, чтобы понять закономерности.

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

А сложно ли будет изучать PHP с нуля?

Всё будет зависеть от возраста и желания начинающего программиста. В первую очередь, стоит рассматривать востребованность языка. Эксперты подмечают, что не менее 85% сайтов на данный момент используют PHP как обычную практику написания сайтов. Однако никто не может гарантировать, что через лет тридцать понятие “веб-сайт” не потеряет своего смысла и технологии не зайдут настолько далеко, чтобы давать возможность полного погружения.

Если человек никогда ранее не имел дело с программированием и решил заняться вебом в 40-50 лет, потому что это крайне прибыльно, по словам интернет-маркетологов, то ему может быть сложно освоить даже базисы управления языком. Однако лишь практика и постоянная мотивация учиться и работать помогут ему побороть сложности. С такой же проблемой могут столкнуться и школьники, услышавшие о PHP от видеоблоггеров.

Грамотно подобранное учебное пособие (будь то чтение книги или работа с наставником), а также постоянная практика — вот, что поможет даже самому “ржавому чайнику” в компьютерах освоить PHP. Он же мало чем отличается от С++ или Pascal.

Код PHP

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 в вебе можно делать то же самое, что и с другими языками программирования.