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

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

АналитикаWebLinuxMacOSJust For FunPythonWindowsJavaScript

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

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

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

Фото Как отрендерить список (массив) в React
Как отрендерить список (массив) в React

Очередной простой рецепт. На этот раз - для React-компонет! Рендерим элементы списка.