5 причин, по которым я люблю программировать в Linux
Linux — это отличная платформа для занятий программированием. На нашей стороне — логичность, высокая эффективность, лёгкость работы с исходным кодом.
В 2021 году Linux выглядит как никогда привлекательно. Я собираюсь написать материалы, в которых расскажу о 21 способе использования Linux. А в этой статье я хочу поговорить о том, почему так много программистов выбирают Linux.
Когда я начал пользоваться Linux, я работал в сфере кинопроизводства. Я выбрал Linux из-за того, что эта ОС замечательно поддерживала работу с мультимедийными данными. Мы выяснили, что обычные коммерческие приложения для редактирования видео не способны обрабатывать большинство тех записей, которые мы извлекали из практически любых устройств, оснащённых камерами. Тогда я не знал о том, что Linux имеет репутацию операционной системы, рассчитанной на серверы и на программистов. Чем больше задач я решал с помощью Linux, тем сильнее мне хотелось научиться управлять всеми свойствами этой ОС. В итоге я выяснил, что компьютер показывает всю свою мощь тогда, когда его пользователь способен «говорить» на его языке. Через несколько лет после перехода на Linux я уже писал скрипты для автоматического редактирования видео, для объединения аудиофайлов, для пакетного редактирования фотографий, и для решения любых задач, которые мне удавалось сформулировать, и для которых удавалось найти решение. Мне не потребовалось много времени на то, чтобы понять, почему программисты любят Linux. Но именно Linux научила меня любить программирование.

Оказалось, что Linux — это отличная платформа для программистов, и для начинающих, и для опытных. Нельзя сказать, что Linux необходима для того, чтобы писать программы. Успешные разработчики пользуются самыми разными платформами. Но у Linux есть много такого, что она может предложить разработчикам. Кое о чём из этого я и хочу рассказать.
1. Логичность Linux
Linux построена вокруг идеи автоматизации. Основные приложения Linux совершенно осознанно сделаны такими, чтобы их можно было бы, как минимум, запустить из терминала, указав дополнительные опции. А часто их можно и полностью использовать тоже из терминала. Эту идею иногда ошибочно считают чем-то вроде примитивной модели организации вычислений, так как существует распространённое (и неправильное) мнение о том, что писать программы, работающие из терминала, это значит — прилагать абсолютный минимума усилий к тому, чтобы получить работающее приложение. Это — печальный результат непонимания того, как работает программный код, но многие из нас периодически страдают таким вот непониманием. Мы думаем, что больше — это всегда лучше, поэтому приложение, содержащее 1000 строк кода должно быть в 100 раз лучше, чем приложение, содержащее 10 строк кода. Так? Но правда заключается в том, что, при прочих равных условиях, лучше выбрать приложение, отличающееся большей гибкостью, при этом то, из скольких строк кода оно состоит, значения не имеет.
В Linux решение некоей задачи вручную может занять, например, час. То же самое можно, воспользовавшись подходящими инструментами командной строки, сделать буквально за минуту, а возможно — и за меньшее время, если прибегнуть к GNU Parallel. Для того чтобы к этому привыкнуть, нужно определённым образом изменить взгляд на то, как именно работают компьютеры, нужно научиться мыслить не так, как прежде. Например, если задача заключается в том, чтобы добавить к 30 PDF-файлам обложки, можно решить, что приемлемая последовательность действий будет выглядеть так:
- Открыть PDF-файл в редакторе.
- Открыть файл с обложкой.
- Присоединить PDF-файл к файлу с обложкой.
- Сохранить полученный документ в виде нового PDF-файла.
- Повторить эти действия при обработке остальных старых файлов (а вот новые файлы, полученные из старых, обрабатывать уже не нужно).
$ pdftk A=cover.pdf B=document_1.pdf \ cat A B \ output doc+cover_1.pdf
После того, как удастся убедиться в работоспособности команды при обработке одного документа, надо будет вложить некоторое время в изучение утилит для обработки наборов данных. В ходе изучения можно обнаружить команду parallel :
$ find ~/docs/ -name "*.pdf" | \ parallel pdftk A=cover.pdf B=<> \ cat A B \ output .cover.pdf
Тут представлен подход к размышлениям над задачами, несколько отличающийся от обычного, так как «код», который мы пишем, обрабатывает данные не так, как мы привыкли. Обычно мы ограничены представлениями о последовательной ручной обработке данных. Но выход за границы старых представлений важен для того чтобы позже писать соответствующий код. А побочным полезным эффектом такого «выхода» является получение возможности писать более эффективные программы, чем раньше.
2. Возможности по управлению связями кода
Неважно, для какой платформы вы программируете, вводя в редакторе код. Всё сводится к тому, что программист плетёт сложную сеть из невидимых связей между множеством различных файлов. Практически во всех случаях, за исключением каких-то совсем уж экзотических, код, чтобы стать полноценной программой, обращается к заголовочным файлам и использует внешние библиотеки. Это происходит на всех платформах, но Linux подталкивает программиста к тому, чтобы он сам бы во всём этом разобрался, а не доверял бы заботу обо всём этом исключительно инструментам разработчика для некоей платформы.
Надо сказать, что нет ничего плохого в том, чтобы доверять инструментам разработчика решение задач по нахождению библиотек и по включению в состав программ внешних файлов. Это, наоборот, полезная возможность, наличие которой должно вызывать у программиста лишь чувство благодарности. Но если программист совершенно ничего не понимает в том, что происходит, ему будет гораздо сложнее взять управление всем этим на себя в том случае, если инструменты разработчика просто не будут знать о том, как справиться с некими проблемами.
Это имеет отношение не только к Linux, но и к другим платформам. В Linux можно писать код, который планируется запускать и в Linux, и в других операционных системах. Понимание того, как именно компилируется код, помогает программисту в достижении его целей.
Надо признать, подобным вещам нельзя научиться, просто пользуясь Linux. Можно счастливо писать код в хорошей IDE и никогда даже не задумываться о том, какая версия некоей библиотеки была установлена, или о том, где именно находятся какие-то заголовочные файлы. Но Linux ничего не скрывает от программиста. Очень просто углубиться в недра системы, найти в ней то, что нужно, и прочитать соответствующий код.
3. Удобство работы с существующим кодом
Полезно знать о том, где находятся заголовочные файлы и библиотеки, но возможность видеть их код — это ещё один пример дополнительного преимущества программирования в Linux. В Linux можно посмотреть код практически всего, о чём можно подумать (за исключением приложений, работающих на Linux, но не являющихся опенсорсными). Невозможно переоценить полезность этой особенности Linux. По мере того, как некто всё лучше и лучше осваивает программирование в целом, или разбирается с чем-то новым для себя, он может многое узнать, читая существующий код в своей Linux-системе. Многие программисты научились делать своё дело, читая опенсорсный код других людей.
При работе с системами, код которых закрыт, можно найти документацию, ориентированную на разработчиков и содержащую примеры кода. Это хорошо, документация — это важно, но это не сравнить с возможностью обнаружить именно тот функционал, который планируется реализовать, и с возможностью найти исходный код, демонстрирующий то, как это сделано в приложении, которым вы пользуетесь каждый день.
4. Прямой доступ к периферии
Я, после того, как разрабатывал на Linux программы для медиакомпаний, иногда принимаю как должное возможность доступа к периферийным устройствам. Например, при подключении к Linux-компьютеру видеокамеры можно загрузить входящие данные из /dev/video0 или из подобного устройства. Всё что нужно, можно найти в /dev , и это — всегда кратчайший путь из точки A в точку B.
А вот на других платформах это не так. Подключение к системам, находящимся за пределами ОС — это всегда лабиринт, построенный из SDK, библиотек с закрытым кодом, а иногда — и из соглашений о конфиденциальности. Ситуация, конечно, не везде одинакова, она зависит от того, для какой именно платформы пишет код программист, но другим системам сложно поспорить с простотой и предсказуемостью интерфейса Linux.
5. Хорошо продуманные абстракции
Linux, в то же время, даёт нам и разумный набор слоёв абстракции, применимых в ситуациях, когда прямой доступ к чему либо или ручное написание некоего кода может вылиться в больший объём работы, чем тот, к которому готов программист. Много удобных инструментов можно найти в Qt и Java, есть целые стеки вспомогательных технологий, вроде Pulse Audio, Pipewire и gstreamer. Linux стремится к тому, чтобы её пользователи могли бы заниматься программированием, и не скрывает этого.
Итоги
Есть гораздо больше причин того, что программировать в Linux — это удовольствие. Некоторые из них представляют собой широкомасштабные концепции, некоторые — мельчайшие детали, которые избавили меня от многих часов тяжких поисков решения неких задач. Linux — это место, в котором приятно находиться, при этом неважно — на какой именно платформе будет запускаться код, который пишут в Linux. Кем бы вы ни были — человеком который только начал осваивать дело написания программ, или опытным кодером, который ищет себе новый цифровой дом, нет лучше места для программирования, чем Linux.
Какой ОС вы пользуетесь при написании программ?
Почему лучше программировать на Linux
Вы, наверное, уже не раз слышали, что программировать лучше на Linux и программисты используют его чаще, чем Windows. Но почему сложилась такая ситуация? Конечно операционные системы на базе ядра Linux бесплатны и имеют открытый исходный код. Это огромное преимущество, по сравнению с Windows, на какие же преимущества важны именно для программирования?
Открытый исходный код системы ничем не поможет если вы веб-программист. А что касается бесплатности. то и Windows бесплатную в России найти не проблема. А тем не менее многие программисты предпочитают Linux. В этой небольшой статье мы рассмотрим почему стоит программировать на Linux.
Почему стоит использовать Linux для программирования
1. Простота настройки среды
Благодаря архитектуре Linux рабочую среду для программирования здесь настроить намного проще. Конечно, в последние годы появился Docker и WSL, упрощающие настройку среды для программирования и проверки работы программ в Windows, но в Linux это по прежнему проще сделать. Например, если вы хотите программировать на C/C++, то установить все необходимые инструменты можно с помощью одной команды и после этого больше ничего настраивать не нужно. В Windows же придётся потратить некоторое время на то чтобы найти и установить инструменты компиляции, а затем ещё и заставить операционную систему их видеть.
Для веб-программирования намного проще будет установить и настроить веб-сервер и интерпретатор PHP в Linux с помощью пакетного менеджера дистрибутива. Расположение конфигурационных файлов в файловой системе стандартизировано и вы можете без труда их найти и настроить всё, что вам нужно. В Windows придется скачивать и настраивать всё вручную или использовать готовый комбайн вроде XAMPP, что тоже не плохо, но не так удобно.
2. Полноценный терминал
Терминал — огромное преимущество Linux. Ещё во времена операционной системы Unix был разработан набор консольных утилит и способы взаимодействия между ними, вроде построения туннелей или перенаправления вывода, с помощью которых можно делать многие полезные вещи. Например, с помощью grep можно выполнять поиск по большому количеству файлов, утилита find позволяет искать по имени, правам и дате изменения. Это всё может быть очень полезно если надо разобраться в чужом проекте и найти какой-нибудь метод не используя интегрированную среду разработки.
Кроме того, в Linux все программы делятся на сервисы и программы, привязанные к терминалу. Сервисы сообщают о своих ошибках системе инициализации, программы, привязанные к терминалу — прямо в терминал. Это удобно. Если в графическом приложении возникает ошибка, вы можете запустить его из терминала и посмотреть какая именно ошибка возникла.
3. Среда близкая к производственной
Если вы не занимаетесь разработкой приложений для рабочего стола, а пишите веб-приложения или Enterprice решения на Java, то скорее всего, они в будущем будут работать на серверах под Linux. Windows и Linux достаточно сильно отличаются и то, что работает у вас в Windows может не заработать или заработать не правильно на сервере с Linux. Поэтому среда близкая к производственной это тоже важно и удобно.
4. Контроль над именами файлов
Если вы пользовались Windows, то знаете, что для этой операционной системы файл FILE и file, это одно и то же. В файловой системе Ext4 в Linux это будут разные файлы. Кроме того, Windows по умолчанию скрывает расширения файлов и вы не можете их менять прямо без дополнительных настроек. В большинстве файловых менеджеров Linux раcширения файлов отображаются по умолчанию.
5. Так сложилось исторически
Изначально операционные системы Windows по умолчанию использовали кодировку CP-1251, в то время как в дистрибутивах Linux использовалась кодировка UTF-8. А поскольку на веб-серверах чаще всего был установлен Linux, то было нужно чтобы все исходники программ были в UTF-8. При работе с ними в Windows их приходилось вручную конвертировать или же использовать специальные среды разработки, в которых всё это было предусмотрено.
До недавних пор в Windows не было нативного SSH клиента. Конечно, всегда можно было пользоваться Putty или другими сторонними программами, однако встроенного клиента для SSH не было и это было неудобно. Встроенный клиент на основе SSH появился только в Windows 10. А в Linux SSH клиент всегда был легко доступен в терминале.
Поскольку раньше не существовало WSL и Docker, то любые специфичные для Linux вещи требовали либо установки Linux рядом/на виртуальную машину либо установки и настройки программ для кросскомпиляции что не всегда было просто. В Linux же большинство программ было установлено уже по умолчанию либо же ставились в несколько команд с помощью пакетного менеджера и не требовали никаких настроек.
Когда Windows лучше для программирования чем Linux
Всё выше перечисленные аргументы больше актуальны для веб-программирования и разработки на C/C++. Однако Microsoft разработала и поддерживает свою экосистему для создания программных решений. Это язык программирования C# и платформа .NET. Долгое время .NET в Linux поддерживалась только силами энтузиастов. Несмотря на то, что недавно у .NET официально появилась поддержка Linux в виде NET Core, экосистема, разрабатываемая годами для Windows там всё ещё лучше чем в Linux. Например, хотя компания Microsoft выпустила VS Code для Linux всё ещё нет и, скорее всего, не будет интегрированной среды разработки Visual Studio.
Выводы
Как видите, причин программировать на Linux вполне достаточно чтобы попробовать. Конечно, всё зависит от конкретного человека и ситуации. Если вы всю жизнь программировали в Windows и знаете всё тонкости настройки, то возможно, вам и не будет хотеться переходить на Linux, так как там всё новое и надо разбираться заново. Но если вы ещё не разобрались с программированием в Windows, то в Linux будет удобнее. А вы программируете в Linux? Почему? Напишите в комментариях!
Лучшая операционная система для программирования
Существует множество видов операционных систем. Но выбор правильной операционной системы полностью зависит от вашего увлечения.
Какие существуют типы операционных систем?
- Windows;
- Mac OS X;
- Linux.
Windows
- Наилучшим преимуществом для операционной системы Windows является привычный вид, который мы использовали ранее;
- большинство программных продуктов создаются в первую очередь для Windows (с учетом базы пользователей операционных систем);
- многие программы поддерживают только Windows;
- с Windows вы можете в свободное время играть в игры с высококачественной графикой.
- Когда речь заходит о программном обеспечении, большинство из них платные, а некоторые из них не работают, как ожидалось, по цене;
- если вам нужна скорость, то Windows не будет вам по душе;
- но подождите, Windows также является платным. Так что, если вы хотите использовать Windows с полным доступом, то вы должны приобрести операционную систему Windows;
- вредоносные коды / вирусы создаются в основном для операционной системы Windows (поскольку хакеры хотят взломать ваш компьютер).
Итак, давайте вернемся к нашей теме.
Mac OS X
Если вы человек, обеспокоенный приватностью, и не хотите, чтобы кто-либо из окружающих мог легко взломать вашу систему, тогда вы должны рассматривать операционную систему Mac как лучшую среди разработчиков. Не каждому хакеру по силам взломать Mac OS.
- Лучшая операционная система для лиц, заинтересованных в конфиденциальности;
- с операционной системой вы получаете лучшие инструменты;
- вам не нужно ограничивать себя в скорости, так как Mac OS разработан специально для компьютеров Apple и, если речь идет о производительности, Mac Os будет работать лучше всего;
- вы будете вне зоны действия вирусов, так как большинство вирусов не работают на Mac OS.
- Большинство вещей в Mac OS платные, и вы должны платить за все;
- MAC OS — это опция для компьютеров Apple, поэтому для использования Mac OS вам также следует приобрести компьютер Apple, стоимость которого достаточно высока;
- вы не сможете играть во все игры в Mac OS, поскольку она поддерживают не каждую игру.
Linux
Linux это операционная система, изначально разработанная Линусом Торвальдсом (Linus Torvalds), который является отцом Git. Поэтому, если вы видите разработчика, то у него обязательно есть навык под названием Git и GitHub (созданный на основе Git). За это всенадо платить?? Нет. Никогда, поскольку Linux представляет собой разработку с открытым исходным кодом. Весь код для Git доступен на веб-сайте GitHub.
- В операционной системе Linux все полностью бесплатно и не нужно ничего платить;
- Linux работает на каждой машине, которая находится в рабочем состоянии. Он будет работать очень хорошо на всех компьютерах, в отличие от MAC OS;
- он будет работать с максимальной скоростью на каждом компьютере, независимо от того, сколько лет системе, в отличие от Windows;
- Linux вне сферы действия вируса, поскольку Linux не подвергается атаке. Наоборот, он используется для атаки на Windows;
- под Linux можно легко выполнять хакерские дела.
- Для пользователем Windows интерфейс может выглядеть не так хорошо, как у Windows, но у него есть собственный стиль;
- вы не можете играть в игры на Linux, так как он не предназначен для игр и не-разработческих задач. Некоторые дистрибутивы Linux созданы для игр, но я должен отметить по геймингу на Linux, что пока он не поддерживает игры.
Так какую операционную систему вы должны использовать для программирования?
Итак. Если вы занимаетесь разработкой, то вы наверняка можете проникнуть в операционную систему Windows, поскольку у вас есть все бесплатное программное обеспечение для этого. Если вы не хотите отражать атаки злоумышленников на ваш компьютер, и предпочитаете передать вопросы безопасности компании Microsoft, то вы можете выбрать Windows.
Если вы хотите решить вопрос конфиденциальности информации, то вы можете свободно использовать Mac OS X, поскольку в ней решены большинство вопросов конфиденциальности, и вы можете бесплатно получить свое программное обеспечение бесплатно через Интернете в качестве официально объявленного Microsoft Visual Studio Code с бесплатными обновлениями, которые отдадут вопросы безопасности Apple.
И если вы хотите получить все бесплатно с конфиденциальностью, с новейшими программами бесплатно и хотите заняться техническими делами, такими как предотвращение взлома злоумышленниками вашего компьютера и создание пользовательских настроек безопасности, тогда вы можете выбрать Linux, поскольку он полностью бесплатный и обеспечит лучшее использование вашей машины.
Мое мнение??
Я всегда советую вам, что если вы начинающий, то вам всегда следует начинать на Windows и изучать некоторые технические материалы, а затем, изучив их, вы можете перейти на Linux, если захотите.
Но если вы хотите попасть прямо в фоновый режим Linux, тогда я должен остановить вас прямо здесь, потому что, если вы без подготовки запрыгнете в Linux, то можете столкнуться с проблемами и потерять данные, которые хранили долгое времени.
Но если у вас есть небольшая сумма денег, которую вы можете потратить, вам нужно просто войти в Mac, потому что это даст вам лучшие вещи, за исключением Linux. Apple хороша для конфиденциальности и безопасности в отличие от Windows, но вы не можете установить свои собственные параметры безопасности.
Источник
Главная причина, почему программисты выбирают Linux
Слышали ли вы о том, что программировать лучше на Linux, чем Windows? Именно так нередко говорят многие программисты. Но почему так? Конечно ОС на базе ядра Linux бесплатны и имеют открытый исходный код. Это ощутимое достоинство по сравнению с Windows, на какие же преимущества важны именно для программирования? Открытый исходный код системы ничем не поможет веб-программистам. Фактор стоимости один из определяющих при выборе среды для программирования, но здесь нужно сказать, что и Windows можно найти абсолютно бесплатную Несмотря на это, большинство программисты предпочитают Linux.
За какие качества выбирают Linux?
Есть несколько определяющих факторов, за которые программисты, девелоперы выбирают Linux в качестве основы для разработки и программирования. Особая архитектура Linux создает рабочую среду для программирования, при этом настроить ее здесь значительно проще.
В последние годы появился Docker и WSL, посредством которых значительно проще выполнить настройку среды для программирования, а также проверки работоспособности программ в Windows. Несмотря на это, в Linux это все равно проще сделать. Представим, что вы желаете начать программировать на C/C++. Установить все необходимые инструменты вы сможете, выполнив одну простую команду. Сделав это, вам не нужно будет ничего настраивать не нужно. В Windows вам придется приложить гораздо больше усилий, чтобы решить эту задачу, а после еще и выполнить работу для создания условий, при которых система видит ваши рабочие инструменты.
Для программиста будет значительно проще установить и настроить интерпретатор PHP в Linux, использовав пакетный дистрибутив. Расположение конфигурационных файлов в файловой системе стандартизировано и вы сможете без проблем найти, а после настроить все так, о. В Windows придется скачивать и настраивать всё вручную или использовать готовый комбайн вроде XAMPP, что тоже не плохо, но не так удобно.
Теперь вы знаете главную причину, почему программировать на Линукс проще.