Многие начинающие программисты не знают, что от выбора операционной системы, в которой пишется код, зависит всё: и скорость выполнения программы, и её качество, и количество ошибок в коде, и количество требуемых ресурсов. Рассказываем, какая операционная система лучшая, чтобы никто больше не ошибся при выборе.
Так себе: Windows
По статистике, Windows — самая популярная операционная система, на которой работают новички в ИТ. С одной стороны, это объяснимо — на Windows запускается большинство игр, поэтому начинающие разработчики выбирают эту систему, чтобы потом отвлечься от работы и немного поиграть. С другой — более неудобной и медленной системы для программирования сложно себе вообще представить.
Интерфейс. Интерфейс — это то, что программист видит перед собой большую часть времени. Чем хуже интерфейс, тем хуже получается код, который в нём пишется. С интерфейсом в Windows всегда было не очень — один постоянный хаос на рабочем столе чего стоит. Попробуйте с первого раза найти ярлык запуска редактора кода или браузера:
А теперь представьте, что вам такое видеть изо дня в день, каждый раз, когда вы включаете компьютер и хотите написать какой-нибудь код. Проще не заниматься программированием, чем пользоваться Windows.
Работа с кодом. Чтобы написать хороший код, используя компьютер на Windows, — это нужно очень хорошо постараться. Во-первых, Windows не умеет подсвечивать код в редакторах — это работает только в Developer-версиях ОС, простым пользователям это недоступно. Например, в любимом (почему-то) многими редакторе Sublime Text 3 нет подсветки синтаксиса — как здесь вообще можно программировать?
Во-вторых, код, который получается на Windows, часто перегружен лишними функциями — его добавляет сама операционная система, чтобы обеспечить обратную совместимость с предыдущими версиями ОС. В итоге мы получаем после запуска раздутый в 2–3 раза файл, где появились служебные команды, которые нельзя трогать. Отлаживать такую программу и поддерживать её в будущем — что-то из разряда геройства, не советуем никому испытать подобное.
Быстродействие. Наконец, Windows славится тем, что код, который там получается, работает очень медленно (даже на быстрых компьютерах). Это связано с тем, что перед запуском кода компьютеру на Windows нужно провести ряд подготовительных моментов:
- загрузить дополнительные библиотеки для кода;
- сформировать рабочую среду;
- проверить обновления (включая драйверы, на тот случай, если программа будет обращаться к железу напрямую);
- запустить и добавить как мастер-функцию в код ключевые .dll-файлы (как раз для обратной совместимости);
- выделить программе минимум памяти, потому что остальное уже чем-то занято.
Всё это приводит к тому, что код, скомпилированный на любом компьютере с Windows, сразу будет работать гораздо медленнее, чем мог бы в других условиях. При этом система загружается полностью, включая память или процессорное время — и это тоже фиксируется кодом и замораживает производительность.
Типичный вид диспетчера задач при выполнении даже самого простого кода:
Уже получше: Mac OS
Те, кто занимаются программированием дольше 3–5 месяцев, приходят к тому, что покупка макбука или любого другого устройства с Mac OS — жизненная необходимость, а не прихоть. По статистике, однажды написав любой код на компьютере с Mac OS, 95% программистов никогда больше не возвращаются на Windows. И это вполне объяснимо.
Интерфейс. По сравнению с Windows здесь максимально дружелюбный и простой интерфейс: всё аккуратно, лаконично, с красивыми кнопками и симпатичным курсором мыши. Всё, что нужно, — всегда под рукой, ничего не отвлекает от работы и всё всегда на своём месте. Посмотрите, какая красота, когда все нужные инструменты для программиста собраны внизу в Доке и всегда готовы к запуску:
Работа с кодом. Главный принцип Mac OS, который ввёл ещё Стив Джобс, — это простота во всём. На маках примерно половина написанного кода после запуска становится проще. А всё потому, что система сама во время выполнения понимает, как всё упростить, чтобы было легче и проще пользователю. В настройках системы можно даже включить галочку «Удалять функции, которые не нужны в готовой программе» — и тогда Mac OS будет сама анализировать код и убирать то, что не соответствует принципам красоты и простоты.
Что касается базовой подсветки синтаксиса в редакторах, вот тот же самый Sublime Text 3, только для Mac OS. Обратите внимание, насколько понятнее и визуально приятнее стал выглядеть код. Теперь его может понять даже новичок, который вообще не разбирается в программировании:
Быстродействие. Скорость работы интерфейса любой программы — база для Mac OS. Чем красивее программа, тем быстрее она работает. Для этого в ОС используется специальный движок Krueger, который по своим алгоритмам оценивает красоту интерфейса и изящность написания кода, и в зависимости от результата повышает быстродействие программы. Именно по этой причине большинство программ в Mac OS такие быстрые (и красивые).
Вам может быть интересно:
Идеально: Linux (совсем идеально — Gentoo)
Наконец, мы дошли до идеальной операционной системы для программиста — Linux. Это система для тех, кто хочет сразу писать идеальный код, в котором никогда не будет ошибок, а компилятор запустит программу с первого раза (а если не запустит, всегда можно пересобрать компилятор заново, возможно, там что-то нарушилось).
Интерфейс. Главный плюс интерфейса Linux в том, что он может быть любым. Даже не так: ЛЮБЫМ! Например, он может быть таким:
…таким:
…или даже таким:
С таким управлением интерфейсом любой программист сразу понимает, как контролировать код и всё, что с ним связано. Он видит все ошибки, понимает, какая команда должна идти следующей, и знает, как реализовать тот или иной алгоритм.
Работа с кодом. В Linux работа с кодом — самая эффективная среди всех операционных систем. Если нужно максимальное быстродействие даже очень тяжёлых программ — это сюда. Подсветка синтаксиса работает ещё лучше, чем в Mac OS — она подсвечивает только неправильный код и тут же предлагает варианты на замену. Продвинутые программисты не пишут код сами, а объясняют системе с помощью Linux-команд в терминале, какая программа им нужна, а компьютер выдаёт результат:
Быстродействие. Моментальное — программа выполняется сразу в момент нажатия кнопки запуска или даже быстрее. Скриншотом это показать невозможно — программа закрывается ещё быстрее, чем закрывается, поэтому придётся поверить на слово.
Так что же выбрать?
На самом деле ответ очевиден: Linux. Больше тут добавить нечего.
Мнение автора может не совпадать с мнением редакции, контент-менеджера, эсэмэмщика, корректора, аналитика, дизайнера, Линуса Торвальдса и особенно — с мнением Кернигана и Ритчи.
Вёрстка:
Маша Климентьева
У каждой ОС есть свои плюсы, минусы и особенности, и как правило программисты выбирают ОС на основе своих предпочтений и представлений. Но что, если отбросить личные симпатии и попытаться взглянуть объективно: какая ОС даёт больше всего преимуществ программисту? Мы задали этот вопрос экспертам, и вот что они ответили.
Выбор ОС в первую очередь зависит от того, в какой области разработчик работает, а ещё это дело привычки и субъективных представлений об удобстве. Я веб-разработчик и успел попробовать несколько операционных систем. Вот мой личный рейтинг удобства ОС именно для разработки веб-решений.
Первое место — 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, мы расскажем, как это сделать.
#Подкаст
-
0
Подкаст «Люди и код», выпуск №125: Константин Шибков.
Иллюстрация: Polina Vari / Skillbox Media
Пишет об истории IT, разработке и советской кибернетике. Знает Python, JavaScript и немного C++, но предпочитает писать на русском.
Гость
Senior Java-разработчик в «СДЭК». Эксперт Skillbox, работает над программой курса по Java, был его программным директором. Автор телеграм-канала «Три монитора».
- Почему важно правильно выбрать ОС
- По каким критериям выбирать ОС, и как выбор ОС зависит от технических параметров железа
- В каких случаях выбор ОС может быть продиктован особенностями технологического стека и другими внешними факторами
- Виртуальная машина, WSL и другие компромиссные решения для тех, кто не хочет полностью переходить на другую ОС
- Стоит ли ставить отдельную ОС или покупать компьютер только для разработки
- Полезные особенности Windows и существенные недостатки с точки зрения разработчика
- Начинающим программистам часто рекомендуют отвыкать от Windows и переходить на Linux. Почему?
- Общая характеристика Linux-систем. Краткий экскурс в мир дистрибутивов
- С какого дистрибутива начать, если никогда не имел дела с Linux. Какие трудности ждут начинающего пользователя
- Общая характеристика macOS. Правда ли, что это идеальная ОС для разработки
- Какие ещё ОС существуют, и стоит ли начинающему разработчику обращать на них внимание
- «Лучшие дистрибутивы Linux: какую версию операционной системы выбрать»
- distrowatch.com — всё о Linux-дистрибутивах
- «PowerShell для чайников: что это и как с ним работать»
- mave
- Castbox
- «Яндекс Музыка»
- YouTube
- VK
- Apple Podcasts
Научитесь: Профессия Java-разработчик
Узнать больше
Originally published on my blogging site ajeet.dev
Disclaimer:
I am new to the blogging world. This is my first post at Dev.to platform.
Please feel free to suggest how can I improve my tech blogging skills.
At Dev.to, I aim to share my tech-learning, and my writings will be dedicated to the absolute beginners who are new to the tech world. I don’t have a Tech degree, but always wanted to get into tech domain. I started teaching myself, I learnt Excel and mySQL by myself, then data visualization software Tableau.
This post will help the newbies choose the right OS to start their journey in programming or web dev. Let’s start.
In this article, I will quickly compare some key features of both the Linux and Windows Operating Systems. We will see the advantages of Linux over Windows, which will help you choose the right OS for programming or web development purposes.
I am a big fan of Windows OS, and have been using it for years. It is super user-friendly, well-designed, and convenient. However, if you are thinking of getting into programming or web development, a Linux distro (such as Ubuntu, CentOS, and Debian) is the best Operating System to start with.
Since this article is mostly focused on using a Linux distro, I will share with you lots of free learning resources related to Linux. This will help newbie coders to get comfortable with a Linux distro.
Linux is a kind-of-descendent of Unix, which means it is similar to other Unix-based system.
Linux Vs Windows ⚔️ Feature Comparison
Let’s compare the features of Linux and Windows Os.
🧡 Open Source
Unlike Windows OS which is commercial, Linux is an open source software that is freely available to download. There are hundreds of Linux distributions available out of which almost five-hundred distro are in active development. One of the most popular desktop Linux distributions is Ubuntu. I am currently using it.
🛡️ Secure
Linux is considered to be more secure than Windows. No antivirus is needed. Since it is open source, several developers are working on it and everyone can contribute code. It is likely that someone will find a vulnerability long before hackers can target a Linux distro.
🚀 Faster Software Updates
You will get faster software updates. If the bugs are found by someone, the users get updates immediately, they don’t have to wait for long. Development tools and libraries are available for free.
⚡ Performance
Linux is more powerful and versatile than Windows. It is light-weight, which makes Linux faster than Windows. You will notice a significant improvement in speed on a Linux distro when you start working on this OS.
👨💻 Programming Friendly
As I said in the beginning of this article, a Linux distro is the best OS for a budding programmer to start with. Developers ❤ Linux. Let’s see some key features of Linux
- Linux supports almost all of the programming languages such as Clojure, Python, Julia, Ruby, C, and C++ to name a few.
- The Linux terminal is better than Window’s command line. If you want to learn command line basics quick and super fast, you will find this course helpful. Here is a comprehensive guide to learn Linux command line for beginners. You can also use this guide to learn command line for iOS and Linux.
- Bash scripting — Bash is extremely useful for developers and it is available by default on Linux. Learn how to create and use bash scripts. Here is a cheat sheet on bash scripting.
- Linux has inbuilt support for SSH. With this, you can easily manage your servers. Learn how to use SSH using this DigitalOcean guide.
- You can easily customize and personalize your Linux distribution.
- It also supports several efficient tools for developers that makes the life of developers a lot easier.
💯 Great Community Support
Since hundreds of Linux distros are in active development and they are open source, the community is big. All newcomers can find help on any of the Linux forums. If you are stuck somewhere in your development process or need help in your coding process, just Google it. You can find several Linux based helpful resources.
⏳ How to install and use a Linux distro
There are many ways to install and use. A few ways to install Ubuntu (a popular Linux distro) are mentioned below:
- You can download Ubuntu and freshly install on your system. Also, google it and you will find several free resources on how to install this OS.
- Install Ubuntu alongside Windows 10 dual boot
- Install Ubuntu on Windows 10 using Virtualbox
🤔 Downside of using Linux (for the absolute beginners)
Is there really a problem switching to Linux ? I think, yes but for the absolute beginners, and it should be considered on a case-by-case basis. While there is absolutely no downside of switching to Linux, some absolute beginners might find Linux a bit uncomfortable while using it.
Image Credit: https://bit.ly/2qpYluK
Consider a case where your computer is only running Linux (using installation approach 1 and 2 mentioned above). You have been using Windows since the beginning. You have never used a Linux distro before (similar to my case). Here are a few problems I had faced.
- A computer with only a Linux distro installed means newbies might end up googling several commands to do simple tasks. Even you are not familiar with Start Menu. The same task could have done with a few clicks of buttons in Windows.
- Running Microsoft products (such as Excel, Word, and PowerPoint) in Linux is not an easy task. That was a big disappointment to me. I was an Excel-person, and even now I use it everyday. Though you can use open source alternatives to Excel, but they are not advanced and mature enough.
- I am a big fan of Tableau — a data visualisation software, and I use it create charts and running some quick analysis. The problem is Tableau Desktop is not available for Linux, but only for Windows and Mac.
The problem could be fixed by using installation approach 3 (install Ubuntu on Windows 10 using Virtualbox). You can use Windows and Linux side by side. However, the biggest problem with this approach is the performance of the Linux machines inside Windows. Virtual Machines take a lot of resources and you will have a disconnected experience when using VMs with Windows.
If you have good amount of RAM, video graphics and a good processor, you can optimize the Linux machine. However, that might be costly, time taking and overwhelming for newbies. So, what now.
💡 What’s Next
One of the best solutions of the problem I explained in the previous section is to use Windows Subsystem for Linux (WSL). I have written a step by step guide on WSL on my blogging site ajeet.dev
Part 1: How to Install Windows Subsystem for Linux
Part 2: A Beginner’s Guide to Use Windows Subsystem For Linux
Do read it. Thank you for your time. Feedback welcome
Edited on 25 Jan 2020: Based on several comments and a little research, I find this sentence «While there is absolutely no downside of switching to Linux..» too extreme. That’s why the strikethrough
Don’t forget to subscribe to my weekly Newsletter 📧
Credits 🙏:
*Image Credit: ManyPixels
*Image Edit with BlogCover
*Windows and Linux logos taken from SimpleIcons
*Emojis taken from Emojipedia
Нету никаких проблем.
Если только ваше конкретное используемое для ваших задач ПО нормально работает с Windows.
Например, в моем случае используется Ansible и Docker, который не поддерживается на Windows. Приходится использовать Vagrant. Это достаточно удобно. Но ресурсы все же кушает.
А так — даже Vim хорошо себя чуствует на Windows. Нативный. Не cygwin.
Microsoft это тоже понимает.
И вот уже они встроили подсистему Linux Ubuntu в Windows 10. Это не виртуализация, а именно полноценная подсистема.
И многие вещи, например, те же шрифты — в Windows работают лучше, чем под Linux.
Могут сказать — что лучше использовать для разработки ту же среду что и для production.
Но дело в том, что даже если вы сидите на Ubuntu Desktop, то ваша среда серьезно отличается от среды сервера FreeBSD, CentOS, Debian, Ubutntu Server. И для полноценного CI все равно умные дядьки категорически рекомендуют и на Linux даже использовать Docker для полноценной эмуляции.
Но ведь Docker-то можно использовать и на Windows. Правда, запускается он там подольше.
Где именно вести разработку, где вам удобнее — это ваше личное дело. Вопрос ваших предпочтений. Никаких объективных причин в наше время, когда существуют Docker, Vagrant и виртуальные машины, когда куча приложений изначально сделанных для *nix запускаются в native под Windows — нет никаких причин себя строить. Кроме любопытства — а как оно там на других системах живется.
У тех кто вас троллит есть еще одна причина: им приятно показать себя более умными. Как же — ведь Linux можно сконфигурить руками.
Ага, конечно.
Или используют готовые десктопные дистрибутивы. Не зря Ubuntu так популярна.
Или если освоили ArchLinux — то построили себе совершенно убогое окружение по готовым мануалам.
Чтобы действительно набрать скиллы ручной настройки Linux — нужно огромное количество упроства и времени, чем ваши друзья, которые вас троллят, вряд ли обладают.
На деле 99% твердящих о гибкости Linux — далее чем ставить Apache и MySQL из пакетов — ничего сами и не умеют. Фактически работая в то же настроенной другими людьми десктопной среде. Но разве вы не умеете делать то же самое под Windows?
Другое дело, что разворачивать и тестировать нужно под аутентичным операционным окружением.
Неважно под Ubuntu ты сидишь или под Windows.
Лучшие практики советуют использовать полностью изолированный и независимый от рабочего места разработчика инструментарий — виртуальные машины, Vagrant, Docker, отдельные физические сервера.
В этом случае под твоей любимой ОС работает только текстовый да графический редактор. А все развертывание для тестирования и для продакшн проводится в совсем другой среде.
Используя Docker хоть под Windows ты будешь получать даже больше преимущество повторяемости рабочей среды чем тем кругом, кто советуют тебе просто перейти на Linux. Если на более слабом железе это и было бы существенно (Docker под Linux стартует быстрее), то на твоем — несущественно на чем работать.