Есть темы, на которых программисты, обычно люди спокойные и рациональные, превращаются в болельщиков на футбольном матче. Табы или пробелы. Светлая или тёмная тема. И конечно, операционные системы. Скажите в компании разработчиков, что Windows лучшая система для программирования, и Вы увидите, как вежливые люди начинают грызть друг другу горло.
Я в этих баталиях участвовал, признаюсь, с азартом. Работал на всех трёх системах, ругал каждую и каждую за что-то любил. И с годами пришёл к выводу, который, наверное, разочарует фанатов любой стороны: правильного ответа нет. Есть правильный ответ для конкретной роли и конкретной задачи. А спор «какая ОС лучше вообще» примерно такой же осмысленный, как спор, что лучше: грузовик, спорткар или трактор.
Грузовик, спорткар и трактор
Спорткар прекрасен на трассе, но на нём не перевезёшь мебель. Грузовик перевезёт мебель, но в гонке проиграет. Трактор не годится ни для того, ни для другого, зато вспашет поле, где и грузовик, и спорткар застрянут по самые уши. Каждая машина создана для своей работы, и выбирать нужно не «лучшую машину», а машину под задачу.
С операционными системами то же самое. Выбор ОС зависит от роли: для разработчика одно, для дизайнера другое, для бухгалтера третье, для сервера четвёртое. Давайте пройдёмся по ролям.
Сервер: здесь спор давно закончен
Начну с самого простого, потому что здесь победитель очевиден. Для серверов однозначно Linux. Подавляющее большинство веб-серверов, облачной инфраструктуры, контейнеров и баз данных в мире работают на Linux. Это не мода, это результат десятилетий естественного отбора.
Почему Linux победил? Открытость: можно посмотреть, как всё устроено, и исправить, если нужно. Безопасность и стабильность: сервер на Linux может работать годами без перезагрузки. Отсутствие лишнего графического интерфейса: серверу не нужны окна и кнопки, ему нужно тратить ресурсы на работу, а не на красоту. И главное, мощнейшие средства командной строки, которые позволяют автоматизировать практически всё. Добавьте к этому бесплатность и огромное сообщество, и получите стандарт де-факто.
Windows Server тоже существует и находит своё место, прежде всего в корпоративной среде, построенной на продуктах Microsoft. Если Ваша компания живёт на специфическом корпоративном ПО, которое работает только под Windows, выбора особо нет. Но если Вы строите новую веб-систему с нуля, выбор Linux почти всегда правильный и почти всегда дешевле.
Рабочее место разработчика
Здесь битва интереснее. Для разработчика большинство выбирает macOS или Linux, и причина простая: нативный терминал и окружение, похожее на то, где код потом будет работать. Если сервер работает на Linux, удобно, когда и на рабочем компьютере те же инструменты, те же команды, та же логика файловой системы. Меньше сюрпризов вида «у меня работает, а на сервере нет».
macOS привлекает тем, что сочетает Unix-основу с отполированным интерфейсом и хорошим железом. Всё работает из коробки, не надо разбираться с драйверами. Минус: цена и закрытость экосистемы.
Linux на рабочем месте даёт максимальный контроль и бесплатность, плюс полное совпадение с серверной средой. Минус: иногда придётся повозиться с настройкой, особенно на новом оборудовании, и не все привычные программы для дизайна или офиса там есть.
Windows в последние годы сильно продвинулся: появилась встроенная подсистема для запуска Linux, и для многих разработчиков это решило основную проблему. Для разработки под платформы Microsoft, для игр и некоторых корпоративных инструментов Windows остаётся естественным выбором.
Не только программисты
Для дизайнера часто важнее всего профессиональные графические программы и точная цветопередача. Исторически здесь сильны macOS и Windows. Для бухгалтерии и офисной работы решают конкретные программы, без которых компания не может жить: если учётная программа работает только под Windows, обсуждать нечего. Для геймера Windows остаётся королём по количеству совместимых игр.
Отсюда практический совет для руководителя: не навязывайте всей компании одну операционную систему из принципа. Определите, какие программы нужны каждой роли, и выбирайте под них. Единообразие приятно администратору, но не должно стоить людям продуктивности.
Где спорить действительно не о чем
Есть одна вещь, которая сильно снижает градус спора: веб. Когда Ваша бизнес-система работает в браузере, становится почти неважно, на какой ОС сидит сотрудник. Менеджер на Windows, директор на Mac, программист на Linux, все открывают одну и ту же систему и видят одно и то же. Именно поэтому мы в Ingello делаем учётные системы, включая Forma, как веб-приложения: сервер на Linux, а пользователи на чём им удобно, хоть с телефона.
Это, кстати, и есть мой главный ответ в споре об операционных системах. Лучшая ОС для бизнеса та, о которой бизнесу не приходится думать. Серверы на Linux, потому что это надёжно и дёшево. Рабочие места под задачи людей. А сами бизнес-процессы в браузере, где операционная система перестаёт быть поводом для драки.
Что сделать
Если Вы выбираете серверную платформу для нового проекта, берите Linux, если нет веской причины против. Если выбираете рабочие места, начните с вопроса, какие программы нужны каждой роли, а не с вопроса, какая ОС «правильная». И если в Вашей команде разгорается очередная священная война, напомните участникам, что спорткар и трактор не соревнуются. Они просто едут каждый по своей дороге.