Аналитика
Важна ли Операционная Система для программиста?

Важна ли Операционная Система для программиста?

Влияет ли выбор операционной системы на возможности программиста? Какую ОС выбрать конкретному разработчику?

На днях увидел занимательный опрос:

PHP folks, what is your primary OS for development?

@mankms

Само собой, занимательными мне показались результаты:

  • 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". Тут мне немного непонятен страх, либо нерасторопность. Хотя... Всё ясно - люди боятся нового, да и в целом не сильно то любят менять насиженное место. То есть вопросы скорее психологические, а не технические.

Ну и какую ОС ставить разработчику? Ответ стар как мир - ту, на которой сидит знакомый гуру.