Чому програмісти вибирають mac

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? Працюйте далі, якщо це не обмежує ваші можливості. До того ж при необхідності в простих випадках можна скористатися віртуальною машиною. А переучуватися працювати на іншій системі просто «тому що» — марна трата сил і часу.

Нагадуємо, що ви можете задати своє питання експертам, а ми зберемо на нього відповіді, якщо він виявиться цікавим. Питання, які вже задавалися, можна знайти в списку випусків рубрики. Якщо ви хочете приєднатися до числа експертів і надіслати відповідь від вашої компанії або особисто від вас, то пишіть на experts @ tproger.ru, ми розповімо, як це зробити.

Хінт для програмістів: якщо зареєструєтесь на змагання Huawei Cup, то безкоштовно отримаєте доступ до онлайн-школі для учасників. Можна прокачати по різним навичкам і виграти призи в самому змаганні.

Перейти до реєстрації

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *