На днях увидел занимательный опрос:
PHP folks, what is your primary OS for development?
Само собой, занимательными мне показались результаты:
- macOS 31,2 %
- Linux 32,4 %
- Windows 34,4 %
- Other (please comment) 2 %
494 голоса... Вполне неплохая выборка. Сразу захотелось как-то это проанализировать, заняться величайшим враньём - даже не статистикой, а интерпретацией статистики!
Но сначала, само собой предыстория...
Как я писал на PHP в Windows
Ещё в 2007-ом году, когда я ещё не переехал на Linux, но уже хотел писать Web, я озадачился вопросом: под IIS на asp я писать не хочу - что же мне выбрать?
Вариантов у конкретно меня было не много: я знал Perl, пару раз "трогал" PHP. Посмотрев на сайте вакансий спрос на тех и других, мой выбор пал на PHP. Оговорюсь, что позднее я до 2014-го года иногда таки писал Web на Perl. Спасибо, Mojolicious!
Тем не менее, Web тогда хостился в основном на FreeBSD и Linux. А я на тот момент только раз пытался слезть на OpenSolaris (травмирующий опыт). Но недолгое гугление мне выдало "Denwer" - джентельменский набор Web-разработчика.
Скачал, "Далее", "Далее", двойной клик на появившуюся иконку на рабочем столе - работает. Поменял HTML в index.php - работает, добавил if на обработку query-параметра - работает!
В общем, так я написал 4-ый сайт в своей жизни, залил на бесплатный хостинг через FileZilla - работает, чёрт возьми!
Так что никакого входного барьера я почти не почувствовал. Про IDE я тогда особо ничего не знал, разве что плевался от перегруженного интерфейса Eclipse. Notepad++ - наше всё!
В 2008-ом я переехал на Ubuntu
Ну как переехал - далеко не все игры шли под Wine, поэтому - dual-boot. Но тем не менее, до сих пор на рабочем столе «Выносливая Цапля». Зацепило, в общем.
На смену Notepad++ пришёл gedit, после которого я уже не мог видеть несглаженные шрифты в Notepad++. А далее - Komodo Edit. Там глаза наливались не кровавыми слезами, а полными счастья.
Немного конфигурировать Apache я научился за прошлый год - пара xml-тегов и полетели! Учитывая, что в прошлом, когда такая потребность возникла, я довольно быстро разобрался - не считаю это болью. apt-get мне поставил mysql и phpmyadmin.
Вуаля - всё снова работает!
При чём фактически это заняло ещё меньше времени, чем на Windows - ведь на серверах, куда выкладывались в публичный доступ сайты, было всё примерно то же самое.
"Другие операционные системы"
Думаю, многие начинающие линуксоиды после "инициации" начинают судорожно пробовать разные дистрибутивы в поисках самого-самого. Так было и со мной.
Особо всё усугубилось, когда я стал работать в веб-студии, где сайты хостились на FreeBSD. Ну и понеслась душа в рай - DesktopBSD, TrueBSD, ну и чистая Фряха, где всё сам себе настраивал.
В общем, после Gentoo/Slackware меня было сложно испугать.
Само собой, все различия в плане разработки для меня были заменить apt-get на pkg_add, да возлюбить jail-ы, ибо OpenVZ (или Xen) тогда иногда прямо в проде сбоила.
С кодировками был косяк, вроде. Система на koi8-r была, но это мелочи. Тем более, что через пару апдейтов Фря на UTF-8 перешла.
Удобен ли Mac OS, как его малюют?
1 год я по глупости дома работал на MacOS, ещё 2.5 года на работе. В общем то, всё, что вы можете на Linux или FreeBSD в плане разработки, вы можете и на MacOS... Но через одно место - brew.
В принципе, это не так уж и утомительно, пока система, будто гопник с окраины не подойдёт к вам и не попросит "пробить на технику". И вот вы соглашаетесь на обновление...
Отвалились симлинки, а бинарные пакеты не собираются? Ну а что вы хотели - brew же сторонний пакетный менеджер! Когда разработчик-альтруист починит - тогда и заработает! "Прости парниш, я случайно пыром пробил"...
В остальном, если не вдаваться в мои чисто пользовательские муки, крайне странный UX - всё также работает, как и "везде".
К слову, к тому времени я уже не писал на PHP, поэтому могу лишь сказать как "мимокрокодил". Но Python и JavaScript, как мне кажется, имеют подобные PHP проблемы на MacOS.
IDE, менеджеры пакетов и прочие тулзы
Почти все популярные IDE ныне кросс-платформенны, так что придётся только переучивать хоткеи.
Менеджеры пакетов - экосистема в экосистеме: один раз через пакетный менеджер ОС поставил пакетный менеджер языка программирования, после чего различия почти заканчиваются. А если написать на базе уже этого пакетного менеджера ещё и свой пакетный менеджер - вообще счастье!
Тулзы также стараются не отставать друг от друга. Часто и кросс-платформенны, разве что могут быть разные мейнтейнеры, да версии билдов...
И что в итоге?
А в итоге радость от того, что удобство (общеприменимость) разработки на Linux сравнялось с прочими. Инфраструктура разработки на языках/технологиях программирования, не зависящих от платформы, почти идентична на всех ОС.
В комментариях к сообщению из твиттера увидел "I'm windows user and want to change but don't know which one will be suitable" и "Hope to migrate to Linux soon". Тут мне немного непонятен страх, либо нерасторопность. Хотя... Всё ясно - люди боятся нового, да и в целом не сильно то любят менять насиженное место. То есть вопросы скорее психологические, а не технические.
Ну и какую ОС ставить разработчику? Ответ стар как мир - ту, на которой сидит знакомый гуру.