Зачем разрабатывать на Linux, если среда для разработки на Windows постоянно совершенствуется? Если вы продуктивно и успешно разрабатываете на Windows — это прекрасно. Цель статьи — объяснить, почему будет полезно научиться разрабатывать в среде Linux.
Три области, которые нужно освоить каждому разработчику
Как-то один специалист сказал мне: чтобы быстрее стать профессиональным разработчиком, нужно освоить три области знаний. Именно они обеспечивают прочную базу, которая помогает понять, как все работает «под капотом», и ускоряет процесс обучения. Этими областями являются C, Unix и компьютерные сети.
Не буду утверждать, что это единственные области знаний, которые должны лечь в основу вашего образования. Что касается меня, то изучение систем C и Unix, а также компьютерных сетей помогло мне создать прочный фундамент, необходимый для приобретения большинства ценных навыков в области компьютерных наук.
Да, Linux выходит из строя, но только из-за вашей некомпетентности
Сначала поговорим о неприятных вещах: в самом начале вы не раз столкнетесь со сбоями в работе Linux.
Я использую Linux последние 11 лет. За это время сбои операционной системы происходили бесчисленное количество раз. Под словом «сбои» я подразумеваю либо повреждения при установке, либо ущерб для пользовательского опыта из-за моего неправильного обращения с ОС, когда я понятия не имел, как восстановить работу системы.
В 99 % случаев Linux оказывается в неисправном состоянии из-за слишком большого количества ресурсов и вашей некомпетентности. Выход из строя системы Linux — исключительно вина ее пользователя. Вы должны понимать, как повредили ОС и какие меры предпринять, чтобы исправить положение.
Моей главной ошибкой было то, что я не пытался вникнуть в причины сбоев в работе ОС. Обычно, погуглив ошибку, я заимствовал наиболее популярное решение из Stack Overflow, надеясь на лучшее. Это плохая практика, потому что, не понимая, как избежать повторения проблемы, можно надолго застрять в цикле «сбой/исправление».
Четыре года назад я изменил свое поведение. В каждом отдельном случае стал выяснять, что послужило причиной сбоя и как сработало исправление. И угадайте, к чему это привело? Сбои Linux прекратились, поскольку я начал понимать, почему происходят проблемы, как их избежать или исправить. За эти 4 года я узнал о своей операционной системе гораздо больше, чем за все предыдущие 7 лет.
Когда у вас выходит из строя Linux, это отличная возможность учиться и развиваться.
Большинство серверов и кластеров в мире работают под управлением Linux
Большая часть интернета работает на Linux, но это еще не все. Linux является общим языком для большинства разработчиков.
Допустим, вы хотите создать или запустить локально инструмент, такой как Apache Kafka. Команды, которые вы увидите в README.md, написаны на bash — наиболее распространенном языке, используемым в оболочке Linux.
А что, если вам надо загрузить установочный скрипт с GitHub и запустить его на компьютере, например как в репозитории Luaver? Вы столкнетесь с командой, подобной приведенной ниже:
curl -fsSL https://raw.githubusercontent.com/dhavalkapil/luaver/master/install.sh | sh -s - -r v1.1.0
Это также bash, который является частью среды Linux.
Тот, кто не знает Linux, будет постоянно натыкаться на препятствия в развитии своих навыков, потому что Linux теперь везде.
Неужели освоить Linux по-прежнему сложнее, чем Windows?
Да, это так. Повторюсь: на первых порах Linux может создавать немало проблем. Вы будете постоянно сталкиваться с неисправностями системы, пока не поймете, как работает ОС.
Но то, что в Linux приходится решать больше проблем, не означает, что справляться с ними сложнее, чем в Windows. Обычно работа по устранению проблем в Linux намного проще, чем поиск решений в Windows. Почему? Потому что пользователи Linux чаще других сталкиваются с проблемами и обращаются за помощью онлайн. Для 99 % проблем вы быстро найдете решения с помощью простого поиска в Google. Эти решения наверняка будут сопровождаться пояснениями, что позволит легко применить их на практике.
Как насчет WSL?
Подсистема Windows для Linux (WSL) — отличное начало. Она позволит получить представление об оболочке Linux и узнать основы работы без необходимости устанавливать Linux напрямую.
Только учтите: по сравнению с полноценной ОС Linux, с WSL у вас может быть больше проблем. Поскольку WSL — это виртуальная машина Linux, работающая под управлением Windows, она будет функционировать намного медленнее и занимать больший объем памяти, некоторые пакеты будут устаревшими, а иногда и лишенными возможностей, которыми обладает дистрибутив Linux.
Смело начинайте с WSL, осваивайтесь с ним. Но не останавливайте на этом свое изучение Linux.
TL;DR
Хотя системы Linux улучшились и стали более удобными для начинающих, они по-прежнему не так удобны, как Windows. У вас будет много проблем с этим: что-то будет выходить из строя, и это нормально. Правильный подход к сбоям ОС позволит довольно быстро забыть о них. Вы станете работать продуктивнее, оперативнее выполнять проекты, эффективнее использовать многие инструменты, необходимые в ежедневной практике разработчика программного обеспечения.
Читайте также:
- Насколько хорошо вы умеете пользоваться Linux?
- Полезные рабочие плагины TMUX
- Настройка современной среды разработки в Windows 10
Читайте нас в Telegram, VK и Дзен
Перевод статьи Piero Capelo: Why You Should Learn Linux