Многие из Вас наверняка используют на своей рабочей машине Windows как для разработки, так и для развлечений. В одной из своих статей я поделился мнением, какие дистрибутивы Linux стоит рассмотреть начинающим разработчикам. Возникает вопрос: "А зачем вообще мне ставить Linux? Чем он лучше Windows?"
В этой статье я попробую назвать несколько причин, почему Linux нужен начинающему разработчику. И чем раньше - тем лучше.
Почти весь "бэкенд" живет на Linux
Практически все сервера работают под управлением операционной системы Linux. Более того, многие другие устройства - тоже! Да что там и говорить: Android - это практически Linux. А iOS и MacOS - это Unix-подобные системы, то есть местами взаимодействие с ними может быть очень похоже на работу с Linux.
Наверно, это не просто так.
А почему так?
Потому что Linux - это стабильная, безопасная и довольно гибкая система.
Из стабильности следует предсказуемое поведение. У меня никогда Linux не "зависал", не тормозил без причины и не выкидывал в самый неподходящий момент синий экран смерти.
Гибкость, например, означает, что практически любой функционал можно отключить за ненадобностью. Как пример, для серверов абсолютно не нужна графическая оболочка, и она элементарным образом отключается на Linux (скорее даже, просто не устанавливается). С Windows такое сделать гораздо сложнее.
Один из элементов безопасности - это хорошо продуманная система прав и разрешений. Если следовать хорошим практикам при раздаче прав, то приложение или пользователь никоим образом не смогут навредить системе.
Обычно сервера очень требовательны к таким свойствам. Ведь любая дыра в безопасности может стоить очень больших денег компании, и нанести огромный урон репутации. Отсутсвие стабильности - привести к дополнительным накладным расходам на эксплуатацию и сопровождение серверов. Гибкость же может помочь в более оптимальном использовании ресурсов, что тоже помогает экономить деньги.
Знакомое окружение
Из этого всего следует, что разрабатывая у себя на локальной машине под Linux, у Вас будет похожее окружение на то, в котором Ваше код в итоге будет работать. Это тоже влечет за собой много плюсов.
Во-первых, есть много софта (преимущественно, это - софт для разработчиков), который написан и нативно запускается под Linux, или же просто лучше работает. В свое время я был очень приятно удивлен, когда Apache Spark завелся у меня под Linux "из коробки". Нельзя не упомянуть Bash - язык командной оболочки, который поможет вам во многом упростить и автоматизировать рутинные задачи.
Во-вторых, запуск на локальной машине становится более похожим на запуск в реальных условиях. То есть какие-то проблемы, специфичные для окружения, может получиться обнаружить уже на стадии разработки.
И, наконец, работая и разрабатывая на Linux, Вам наверняка придется лучше освоить терминал и многие другие особенности системы. Эти знания наверняка понадобятся Вам в дальнейшем, когда вы попадете на реальный сервер.
Linux - user-friendly
Вопреки молве, долгие годы ходящей вокруг всего семейства Linux, сейчас появилось очень много дистрибутивов, которые невероятно дружелюбны к пользователю! Мой топ-3 можете найти здесь.
Это значит, что сейчас Вы можете использовать Linux не только для работы, но и для практически любых повседневных дел и хобби.
- Установка системы до безобразия простая. Достаточно буквально прокликать несколько раз "далее" и вот Вы уже имеете полностью настроенную и готовую для работы систему.
- Во многих дистрибутивах по умочанию установлены браузеры, видео-кодеки и аналоги Microsoft Office. Просто устанавливаете систему, и у вас под руками оказывается все, что нужно!
- Для пользователей Windows: можете ли Вы представить, что можно не перегружать систему НЕДЕЛЯМИ и она после этого все-равно не будет тормозить? Лично для меня это было большим удивлениям
- Когда уходишь с "винды", начинаешь забывать такие вещи (к хорошему быстро привыкаешь), как антивирус. Для Linux практически НЕТ вирусов, и Вам не нужно беспокоиться о покупке антивируса. Ну разве это не прекрасно?..
- Linux - БЕСПЛАТНАЯ система. Тут без комментариев :)
Linux дает выбор
Одно из следствий модульности - это то, что у Вас, как у пользователя, всегда есть выбор.
Начнем с того, что есть ГРОМАНДЫЙ выбор дистрибутивов. Если Вы не хотите "париться", то в наличие имеется множетство дистрибутивов, ориентированных на пользователя. Если Вам интересно "ковыряться" во внутренностях и иметь хорошее понимание работы системы - есть такие дистрибутивы, как Gentoo, Slackware или даже LFS. Если же Вам нужна "золотая середина" - таких дистрибутивов тоже предостаточно, стоит только поискать. Дистрибутивы для игр, дистрибутивы для безопастности и даже дистрибутивы для мультимедия - Вы легко можете выбрать дистрибутив себе по нраву.
Для пользователя зачастую важна графическая составляющая операционной системы. Что ж, Linux может похвастать тем, чем не может похвастать ни Windows, ни даже MacOS. Это - наличие множества так называемых Desktop Environment - графических оболочек для Linux.
То есть Вы можете выбрать и сконфигурировать внешней вид системы так, как Вам заблогорассудится! Есть красивые и более "тяжеловесные" оболочки, есть супер-легкие и простые - это значит, что Вы даже сможете при желании дать вторую жизнь своему старом компьютеру.
Docker - нативный
Небольшой пункт, но лично мне, как разработчику он очень важен. Если Вы знакомы с такой технологией, как Docker, то поймете о чем я говорю. Если нет - настоятельно рекомендую ознакомиться.
Благодаря этой технологии гораздо проще раворачивать на своей машине множество софта для разработки. Docker создавался именно опираясь на концепции и возможности Linux, и именно здесь он работает лучше всего. В MacOS и Windows для поднятия Docker-контейнера задействуется тяжеловесный механизм виртуализации, что бьет довольно сильно по производительности системы в целом. Лично я натерпелся проблем с докером на своем маке.
На Linux можно играть!
Возможно, это может прозвучать удивительно, но за последние годы Linux сделал ОГРОМНЫЕ шаги в сфере игр. Такие проекты, как Wine и Proton позволяют запускать большинство игр на Linux. Если Вы любитель старых игрушек, то, скорее всего, их будет на порядок проще запустить, чем на "винде".
А еще недавно компания Valve выпустила свою консоль Steam Deck, которая в качестве операционной системы использует дистрибутив Linux - Steam OS! Я считаю, что это гигантский шаг в популяризации и развитии Linux. Теперь еще одна большая компания "стоит за" Linux, что, безусловно, очень важно.
Это интересно!
В конце концов, разбираться с Linux может быть безумно интересно!
Существует бесчисленное множество дистрибутивов, и в какой-то момент Вам может захотеться попробовать все! Для такого случая даже есть специальный термин - distro-hopping: так говорят о людях, которые непрерывно "прыгают" с одного дистрибутива на другой.
Linux вполне может стать Вашим хобби, в изучении которого Вы можете проводить довольно много времени вне работы. Вам будет интересно, и в то же время, это косвенно будет помогать Вам в работе.
Заключение
Разработчик - это профессия, которая требует непрерывного развития. Нужно всегда стараться быть в курсе новых трендов и тенденций. Linux - одна из таких технологий, ее повсеместно используют в IT. Если Вы хотите стать хорошим разработчиком, рано или поздно Вам придется столкнуться с линуксом. Чем раньше Вы это сделаете - тем проще будет потом!
Если Вам понравилась эта статья, подписывайтесь на канал и ставьте лайки.
Я не упомянул о недостатках операционных систем семейства Linux. Если Вы хотите рассказать, чем же Вам так не понравился Linux - пишите в комментариях!