- Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
- Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
- Тельман Мажлумов
- старший backend-разработчик .defa
- Олег Степанов
- инженер-программист компании ICL Services
- Иван Овчинников
- декан профессии «Программист С++» образовательного портала GeekBrains
- Александр Сибречный
- ведущий frontend-разработчик TalentTech
- Александр Пантелеев
- разработчик в Kodix Auto
- Итак, кому какой системой стоит пользоваться?
- Mac или windows для разработчиков
- Почему большинство программистов выбирают Mac?
Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
У каждой ОС есть свои плюсы, минусы и особенности, и как правило программисты выбирают ОС на основе своих предпочтений и представлений. Но что, если отбросить личные симпатии и попытаться взглянуть объективно: какая ОС даёт больше всего преимуществ программисту? Мы задали этот вопрос экспертам, и вот что они ответили.
Тельман Мажлумов
старший backend-разработчик .defa
Выбор ОС в первую очередь зависит от того, в какой области разработчик работает, а ещё это дело привычки и субъективных представлений об удобстве. Я веб-разработчик и успел попробовать несколько операционных систем. Вот мой личный рейтинг удобства ОС именно для разработки веб-решений.
Первое место — macOS. Практически всё идеально, могут возникать проблемы с Docker, поскольку не всегда оптимально используются ресурсы (бывает >= 70 % CPU). Но это мелочи. macOS — это практически идеальный баланс между ОС для работы и для повседневных задач.
Ещё одно первое место — Ubuntu/Mint (и другие Linux-дистрибутивы). Именно для разработки я считаю это семейство ОС лучшей. Из плюсов перед macOS — близость к production-окружению, «нативная» работа Docker. Из минусов — всё-таки иногда всплывают ошибки, которые без консоли не поправить (пример, проблемы со звуком), ну и софта гораздо меньше.
Второе место отдам Windows. Здесь можно спокойно вести разработку. При наличии такого софта как Docker или Vagrant многие проблемы можно легко обойти. Чего мне действительно не хватает в Windows, так это нормального терминала (ConEmu, Git Bash и другие не в счёт). Зато софта под эту ОС гораздо больше, чем на Ubuntu или macOS.
В качестве заключения отмечу, что всё-таки выбирать стоит ту ОС, в которой разработчику привычнее и комфортнее работать. Если всё в операционной системе устраивает, то переход на что-то другое вызовет лишний стресс и трату времени на изучение возможностей новой ОС. В конце концов, в ту же Windows потихоньку внедряется WSL.
Олег Степанов
инженер-программист компании ICL Services
На вопрос, какую операционную систему выбрать для программирования, в большинстве случае нет чёткого ответа, т. к. это больше субъективный выбор каждого человека: как по удобству взаимодействия с самой системой, так и с используемыми инструментами для разработки. Большинство популярных языков и сред разработки в основном присутствуют на всех платформах.
Конечно, есть немало случаев, когда выбор ограничен. Например язык программирования плохо адаптирован под конкретную операционную систему или требуется конкретная платформа для выполнения, тут стоило бы или даже необходимо использовать то, что есть.
Если ограничений нет, то, я считаю, самый правильный выбор — попробовать каждую из систем, для того чтобы решить, что же конкретно тебе удобнее. У каждой системы есть как плюсы, так и минусы: где-то удобнее разворачивать среду и работать с ней, где-то есть более удобные инструменты разработки и т. д., поэтому говорить, что для веб-разработки нужна обязательно macOS или для разработки на .net core нужен Windows, я считаю, неправильно.
Также для нашей страны актуален вопрос цены рабочей машины. Например, для многих, а тем более для начинающих, продукты компании Apple могут показаться дорогими при прочих равных. У компьютеров на Windows или Linux ценник более доступный.
Если подытожить, то если нет ограничений на выбор системы, советую попробовать все системы и выбрать ту конфигурацию системы и инструментов, которую удобно использовать именно вам.
Иван Овчинников
декан профессии «Программист С++» образовательного портала GeekBrains
В первую очередь нужно быть уверенным, что инструмент, с которым человек будет работать, удобен. А операционная система — это инструмент и ничто иное. Если говорить о выборе операционки, то неплохо было бы сразу знать, где ваше приложение будет в дальнейшем крутиться. Если человек предполагает разработку под операционную систему OS X (под MacBook, iOS, iPhone, iPad), то ему обязательно нужен опыт работы в macOS и собственно сама OS X, потому что все остальные операционки хоть и поддерживают языки Swift и Objective-C, но на довольно слабом уровне. Инструментарий разработки под OS X внутри OS X хорошо настроен и нативен.
Дальше у нас встает извечная борьба между Windows и Linux. Начинать холивар, я думаю, смысла нет. Если у пользователя есть привычка работать в Windows — то имеет смысл в этой операционной системе и оставаться, так как в принципе, 80 % задач разработки можно закрывать в Windows. Если хочется попробовать что-то другое — это, бесспорно, Linux. Желательно делать Linux на виртуальной машине, чтобы не потерять своё текущее окружение, но иметь возможность «пощупать». Очень много всякого софта для разработки написано под обе операционки, тут тоже стоит сразу оговориться, что если предполагается разработка на Android — то надо быть по крайней мере знакомым с операционной системой Linux. Необходимо представлять, что это за окружение, как оно работает, знать про открытые драйверы, системные настройки, потому что Android — это тоже Linux.
Есть специализированный стек разработки под Windows: это разработка под Active Directory, разработка разнообразных протоколов, разработка под Microsoft Office и прочие штуки. Понятное дело, что с Microsoft Office перейти на Linux будет нельзя, под него стопроцентно нужен Windows. Тут встает вопрос лицензирования. Если у человека всю жизнь был Linux, то ему не с руки покупать лицензию, которая условно стоит 8 000 рублей. Поэтому в большинстве случаев пользователи остаются на Linux.
Я, в свою очередь, несмотря на то, что веду свои уроки с макбука, активно пропагандирую Линуксы разного рода: это и всякие попсовые Debian и Ubuntu, разного рода Arch Linux, даже Red Hat и прочее, прочее. Соответственно, если у вас есть какие-то опасения, то стоит помнить, что инструментарий на Linux такой же, как на Windows, то есть все среды разработки (всё, что не касается Microsoft Visual Studio) портированы и работают кроссплатформенно. Для новичка будет несложно сориентироваться, главное, не надо сразу начинать лезть в консоль или жить в терминале и пугать себя.
Александр Сибречный
ведущий frontend-разработчик TalentTech
Выбор операционной системы, как правило, происходит на усмотрение самого программиста. Это дело вкуса — кому-то нравится macOS, другие считают Linux топовой системой. Одно важное условие: если ваш продукт будет иметь дело с iOS, то поле выбора ограничено — тут не обойтись без macOS. Иначе ничего не получится, если только разработка не идёт на удалённых серверах. Также эта система считается более user-friendly. То есть все мобильные разработчики, чьи продукты будут запущены в AppStore, не имеют другого выбора, кроме Mac.
Веб-разработка менее требовательна к ОС. Лишь два браузера – Explorer и Safari являются специфическими: первый будет работать только на Windows, а второй – на Mac. Когда разработчику нужно тестировать то, что он разработал, — ему понадобится соответствующий браузер.
Linux считается немного более сложным вариантом — она также бывает простой в использовании, но есть и «хардкор-версия», она скорее для тех, кто «пишет» драйверы и в целом больше работает с «железом». Преимущество этой системы в том, что можно собрать её целиком «под себя» и иметь над ней полный контроль. Это сложнее, требуются мозги и навыки, но использование в таком случае будет немного производительнее.
Разработка игр, как правило, происходит на кроссплатформенных системах. А вот приложения backend-разработчиков чаще выпускаются на Linux, соответственно будет удобно держать именно эту систему на своей машине разработки — это может быть и локальная машина, и нет. Часть разработчиков работает на удалённых серверах, а их локальная машина — это по факту просто интерфейс доступа.
Также если вы привыкли работать на macOS, то будет довольно трудно «переключиться» на Windows, и наоборот. То, чего на Mac можно добиться простыми действиями, на «винде» делается сложно.
Александр Пантелеев
разработчик в Kodix Auto
На такой вопрос сложно дать однозначный ответ. Скорее, это больше зависит от предпочтений разработчика. Но очевидно следующее:
- Если пишете программы для какой-то определённой платформы, то её и нужно выбирать.
- Если это веб-разработка, то вероятность того, что сервер будет крутиться на Unix — 80 %, а значит, стоит выбирать Linux или Mac.
Прежде всего следует разобраться, в чём отличие Unix от Windows, и выбрать то, что нравится и больше подходит. Писать хороший код можно везде. В этом вопросе нет серебряной пули, и это самое главное, что нужно понимать начинающему разработчику.
Итак, кому какой системой стоит пользоваться?
Всё зависит от двух вещей: что вам удобно и чем вы занимаетесь. Например, если вы разрабатываете iOS-приложения, то вам придётся пользоваться macOS; если вы пишете бэкенд и сервер крутится на Linux, то, скорее всего, на нём вам и удобней будет работать. Если не принимать во внимание завязанные на конкретной платформе стеки разработки, то всё зависит от ваших предпочтений, ведь очень много софта работает на всех основных системах. Нравится работать в Windows/Linux/BolgenOS? Работайте дальше, если это не ограничивает ваши возможности. К тому же при необходимости в простых случаях можно воспользоваться виртуальной машиной. А переучиваться работать на другой системе просто «потому что» — пустая трата сил и времени.
Mac или windows для разработчиков
Действительно любопытно, потому что я слышал, что Mac лучше для такой работы
Все сводится к личным предпочтениям и типу работы, которую вы делаете.
Во-первых, не забывайте о Linux. Подавляющее большинство Интернета работает на серверах Linux по многим причинам:
- Это бесплатно — нет смысла платить абонентскую плату за каждый сервер в огромном дата-центре
- Это с открытым исходным кодом, так что вы можете настроить все
- Он предназначен для полного управления командной строкой, если хотите — локально или удаленно. Это очень хорошо работает для управления большим парком серверов.
Программисты, работающие с большим количеством кода серверного веб-сервера, часто используют macOS для своего персонального компьютера, потому что он основан на Unix и легко запускает практически все программное обеспечение Linux — в сочетании с тем фактом, что Apple создает отличное оборудование, и такими повседневными вещами, как просмотр видео работает немного проще на macOS, чем на Linux.
Тем не менее, Windows также имеет много других преимуществ. Если вы программируете для предприятия, Windows по-прежнему король. Visual Studio — удивительно хорошая IDE, и весь стек разработки Microsoft просто фантастический. Есть несколько удивительных сторонних инструментов для графики, отладки, профилирования и многих других вещей — они, как правило, являются проприетарными и дорогими, но, с другой стороны, они, как правило, очень чистые, надежные, хорошо документированные и простые -использовать.
Действительно великое рациональное объяснение без религиозной догмы
Почему большинство программистов выбирают Mac?
Не все программисты, а PHP, Python, Ruby и прочий веб.
Среди Ruby и вовсе поголовно, в винде они себя плохо чувствуют, в особенности руби. Среди питона не 99%, но тоже большинство.
Макось выбрана методом исключения: в винде проблема с установкой софта (сложно собирать из исходников, нет стандартизации) и совместимостью (не юникс).
В линуксе проблема с десктопом — с железом не дружит (попробуйте 3 монитора воткнуть), нестабильно, очень мало софта (я, например, так и не нашел хороший клиент СУБД).
Остается мак, без этих недостатков.
Если занимаетесь вебом, то покупать однозначно.
Разработческий Linux в виртуалке под виндой — и всё прекрасно, мак не нужен. 🙂
> Если занимаетесь вебом, то покупать однозначно.
Не однозначно. Занимаюсь вебом. Подскажите, в каком ноуте от Apple можно увидеть 32Гб памяти сейчас? Для меня это был решающий фактор, поэтому взял игровой 15» ноут MSI с прекрасным 3К-IPS экраном, i7-4710 и 32Гб памяти, с SSD на 512Гб, при этом в 1,5 дешевле чем Macbook Pro. Соглашусь, что для рубистов-хипстеров и iOS-разработчиков лучше брать мак, но для остальных — не так однозначно.
dna:
> Ясно.
О, круто! Буду к вам обращаться как к ясновидящему, можно? 🙂
Не ставя под сомнение, что вам ясно, попрошу только показать мне ноуты, куда можно запихнуть 32Гб памяти с 3-4K hidpi-экраном, чтобы с мощным железом и стоил вменяемых денег. Под вышеуказанные критерии подошли только игровые ноуты от MSI. Причём именно позиционирование их как игровых делает их намного дешевле (те же ноуты, с таким же железом, но с приставкой «рабочая станция» и другой, столь же нахрен мне не нужной видеокартой увеличивают ценник в 1,5 раза). Если бы это железо продавали бы без дискретной видюхи и ещё дешевле — я взял бы его. Но такого просто нет на рынке. Есть ещё, правда, Asus ROG’и, да. Но почитали бы вы, какие слёзы люди льют, пытаясь использовать этот тотальный заводской брак за $2000.
Да, конечно MBP был бы безупречным вариантом. Только в 2014 году даже в самую дорогую модель (а там даже «дешёвые» вовсе недёшевы) больше 16Гб оперативы не запихнёшь. Потому что Джобсу, или кому там ещё, так захотелось. Промолчу, что я об этом думаю.
А в игры, кстати, я лет 10 уже не играю. Игра в жизнь намного интереснее и ощутимого, не виртуального профита с неё больше. Ой, простите, опять нарушаю вашу ясность. 🙂
Не «программистов», а «людей, которые за компьютером РАБОТАЮТ».
Примерно вот почему:
Сейчас цена на технику Эпл сильно подскочила, тот бук, что полгода назад стоит 90 тыс, сейчас стоит 180 тыс на сайте Эпл. Так что один из фундоментальных минусов — это цена на данный момент.
Второе — если брать в внимание php/mysql — то windows машина тоже с этим справляется. Ruby и прочее не трогал, не знаю.
Третье — длительность работы и нет необходимости в мышки, так как тачпэд действительно удобен для работы.
Четвертое — просто стильно. Изначально, я мак брал себе в качестве игрушки (понт перед клиентами), но через 2 года владения маком, купил ретину 2013 late с nvidia чипом, и стационарный комп теперь просто собирает пыль.
И обязательно, добавьте большой жирный плюс — это сохранение ликвидности бука.
Например, я знакомому помогал, в первой половине 2013 году купили ему macbook pro 2012 за 33 т.р.
В второй половине 2014 мы его продали за те же 33, правда на буке была увеличена оперативка, и добавлен блок подключения второго жесткого. (+ 2 тр).
Общая идея выше уже описана.
Начинал с Windows, потом долго работал на Linux и в конце концов пересел на Mac.
Как выше отметили переход на Mac для программиста оправдан если это web-разработка. Так сложилось что большая часть сайтов работают под unix-системами.
По этой причине под windows не совсем удобно работать. Поэтому приходим к мысли что нужно что-то unix-like.
Сейчас меня забросают минусами, но у всего unix-like IMHO не особо хорошо с интерфейсом (мне лично чего-то не хватает: порой кажется, что окошки зря расходуют место) и самое главное — если заниматься не только кодингом, то нет некоторого софта (типа photoshop etc).
Вообще под linux вполне можно жить, но некоторых типов софта там либо нет, либо он еще развивается.
Плюс нужно так или иначе заниматься ОС. Что-то настраивать/подстраивать. В общем, это как ни крути, а система для гиков. Не то чтобы мне это не нравится, но порой надоедает и хочется просто заниматься кодингом.
Что касается Mac OS, то это UNIX с графической оболочкой которую разрабатывал профессиональный дизайнер. И как ни странно, она просто работает и многие вещи очень неплохо продуманы. Мне не надо постоянно что-то подкручивать после обновления. Думать как поставить какую-то программу потому что конфликт и тп. Устанавливать драйвера на железо через одно место.
Плюс довольно неплохая поддержка производителями железа/софта. IMHO, не сильно хуже Windows.
В общем фактически под этой ОС занимаешься своим делом, а не администрированием.
Насчет цены, она конечно немного завышена (хотя как посмотреть, ведь полноценная ОС идет бесплатно). Но если сравнивать одинакового уровня железо, то разница до скачков курса была не такая уж и большая.
В итоге обычно рано или поздно выбор становится вполне очевидным и осознанным. 🙂