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

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

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

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

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-компонет! Рендерим элементы списка.

Читать »

Три примера работы с SQL базой данных в Python (адаптор sqlite3)

Многие приложения на Python используют базу данных для хранения и эфективного использования их в своей работе.

Читать »
Фото Как сделать свою middleware в Django (с примерами)

Как сделать свою middleware в Django (с примерами)

Middleware или "промежуточное программное обеспечение" - элегантный способ установить общие правила обработки запросов и ответов приложения. Давайте напишем парочку middleware, чтобы понять, как они работают.

Фото Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

Современные сайты редко ограничиваются только текстом и вёрсткой. Часто в заметках красуются фотографии, а рядом с описанием товаров - их изображения.

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

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

Фото Нет слов, одни... однострочники

Нет слов, одни... однострочники

На днях вышел пост со списком полезных однострочников для JavaScript программистов. Памятуя Perl-овую молодость, заглянул туда.

Фото Microsoft открывает исходники, а её IDE супер-популярна

Microsoft открывает исходники, а её IDE супер-популярна

Решил сложить пару фактов и немного над этим поразмыслить. Реально ли Microsoft "переобулись"?

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если одни и те же данные нужны в разных местах, лучше сделать свой контекст-процессор.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.