Главная >> Информация >> Почему лучше программировать на 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? Почему? Напишите в комментариях!

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

17 комментариев к “Почему лучше программировать на Linux”

  1. У меня ubuntu. Что первое мне понравилось это не тупи и не надо переустановливать каждый год ОС(у меня была windows 7, других не было) из-за синиго экрана или ещё из-за чего нибудь. Нравится терминал очень удобная штука, когда сел на Винду было очень не удобно что не авто дополнение. Из минусов нет Фотошопа а так вообще нет желания обратно пересодится на виду. А ещё чуть не забыл там прикольный тачпауд, удобный.

    Ответить
  2. Кроме того, Windows скрывает расширения файлов и вы не можете их менять прямо в проводнике без дополнительных программ.

    Серьёзно?

    Ответить
  3. Это ещё почему я не могу создавать файлы .htaccess или .env? И какие такие программы нужны для изменения расширения файла?

    Ответить
  4. ько используется Линукс на 2% компьютеров, а на домашних их используют странные люди, для которых одной из важнейших вещей в жизни является покричать в интернете какой Линукс прекрасный по сравнению с виндоуз, а обычные пользователи, которые хотят поиграть совсем без проблем, подредактировать видео или написать музыку как-то туда не стремятся. Энтузиасты опять начнут кричать что аналоги есть, только там где на виндоуз 7 аналогичных программ на Линукс одна и та не совсем доработанная.

    Ответить
  5. Лично я ни разу не программер, и то знаю, что "Windows скрывает расширения файлов" есть просто настройка отображения, и то звучит как "скрывать зарегистрированные расширения файлов". То же самое и по вопросу .htaccess или .env В декстопном Linux, к слову, .htaccess или .env по умолчанию тоже в менеджере файлов отображаться не будут пока не тиснешь включение отображения скрытых файлов.

    Ответить
  6. Вот есть в инете одна нехорошая штука: если один напишет ерунду, то все ее прочитают и кто- то решит, что это истина 🙂

    Ответить
  7. Сколько лет этим статьям? Windows давно использует кодировку UTF по умолчанию. В Windows давно есть WSL как раз для разработчиков, нуждающихся в каких-то Linux-специфичных штуках иногда. В Windows есть цивилизованные VisualStudio и OpenServer для разработчиков. OpenServer для удобной веб разработки как раз таки и в Linux нет ничего такого простого и работоспособного, чтоб без возни скачал, запустил и пользуешься. Даже без установки. В Windows по любому лучше всего кодить на C#, а на нем нынче много всего делается. Программы, игры, сайты, приложения для Андроида и прочее. А разные имена файлов в зависимости от регистров букв - это скорее минус, чем плюс.

    Конкретно ваши примеры консольных команд из статьи это вообще не аргумент. В винде можно использовать find вместо gpep. Например, для поиска файла по названию (или части названия), так: dir /s /q c:\ выведет вообще все имена файлов на диске C. Вообще из всех папок, все файлы какие есть. Можно ещё другие ключи добавить. А вместо gpep использовать find для выборки, что показать. Имя или часть имени файла, который надо найти. Так:
    dir /s /q c:\ | find "какашка"
    Так зачем писать то, о чем вы не знаете?

    А по поводу серверов, всему свое место. Во многих корпорациях плотненько сидят на инфрастуктуре Майкрософта. На Windows Server, Active Directory, Microsoft SQl Server, Microsoft Exchange Server, Microsoft Teams и всё у них нормально. Кто-то юзает FreeBSD на серверах и оно имеет место быть в некоторых случаях. Например, Netflix хорошо заточили фряху под нужные им функции, WhatsApp работает на FreeBSD, да много кто. Кто-то даже проприетарную Solaris гоняет на фирменном San-овском железе. То, что на серверах везде Линух и все делается там для Линух - это очень толстая ложь.

    Ответить
    • Поправил немного статью. В статье сделан акцент на веб-разработку. Естественно, что программировать на C# лучшие в Windows, потому что эта платформа была разработана специально для Windows. Но касательно веб-разработки в Windows приходится использовать много компонентов Linux. Тот же WSL или Docker, использующие код или дистрибутивы Linux целиком. А если использовать эти компоненты, то можно уже установить Linux. Хотя это, конечно, дело привычки.

      Ответить
  8. >> то все ее прочитают и кто- то решит, что это истина
    Это и расстраивает. Но думаю этот бред несут осознано.

    А вот это, для ДМИТРИЯ. Действительно, не надо каждый год windows7 переустанавливать. Если что, не фотошоп, моя рабочая система.
    https://i116.fastpic.org/big/2021/1102/44/da3c2e7f3f527e5e0f40d2ddeec97944.png

    Ответить
  9. Автор(ADMIN), ну пожалуйста имейте совесть. Весь пункт 4, начиная с третьего предложения и далее чушь. Вдруг и взаправду люди будут читать и верить. Некрасиво же, право слово. Вот Win7.
    https://i116.fastpic.org/big/2021/1102/cd/cc520c0134c86d0d6efb219c324814cd.gif
    P.S.
    Про клавишу "F2" в файловом менеджере windows (explorer) тоже надо показывать?

    Ответить
  10. С автором согласен на все 100%. Я знаю, что у Windows есть свои поклонники и с ними спорить невозможно, они принимают критику программы как личную атаку. Это я понимаю и с этим не спорю. Каждому своё.
    С Windows я работал очень долго. Около 15 лет назад попробовал Linux. С тех пор поработал на 10-15 разных дистрибутивах, сейчас остановился на Mint. Около 3-х лет назад перестал пользоваться Windows совсем, хотя она есть на диске в dual boot. Поясню, это касается Windows desktop, я всё ещё пользуюсь MS Hyper V, так как нужно поддерживать контролер Active Directory.
    Это вступление, теперь мои 5 копеек о преимуществах Linux.
    - Бесплатное. Нет ни регистраций, ни авторизаций, ни пиратства. Полностью бесплатно, без исключений. И не говорите что Windows можно добыть тем или иным способом. Воровство - есть воровство и кроме моральных протестов есть ещё обязательные и подтверждённые опастности, что в самый не подходящий момент эти трюки подведут. Кстати скоро без Microsoft account никуда и ничего. Браво Наделла, даже Гейтс до такого не доходил.
    - Вся разработка Linux нацелена на удобство и надёжность. Как сложно добавить в Windows историю командной строки? Или сделать просмотры и мониторинг system logs удобным? А сравните Windows Registry и файлы конфигурации в Линуксе! И это только из незначительных замечаний. Все не перечислить, их 100-ни.
    - Backup and Restore. Полная трагедия. В Линуксе rsync скопирует всю систему за 3-5 минут. И ГАРАНТИРОВАННО восстановит систему на любом другом носителе с которого вы без проблем загрузите систему. B Windows нет никакой уверенности, что после часовых процессов со стандартными средствами вы сможете загрузить то, что смогли восстановить из копии. И забудьте про удобные способы сохранить свои личные файлы и, упаси бог, программные установки. Системные обновления Линукса занимают около ... минуты! Нет часов ожидания завершения апдейтов Окон и бесконечных перезагрузок. Do not turn off your computer ушло в далёкое прошлое для Линукса, туда и дорога.
    - Наличие пользовательских программ. Прошли времена когда неыозможно было найти замену Windows программе. Теперь на каждую есть несколько вариантов в Линуксе. Процесс инсталяции, это небо и земля. Не хочешь из репозитория - установи Snap или Flatpak. И это не нравится - возьми исходники и скомпилируй самую новую версию. Легко. 3 команды. сonfigure/make/install и у тебя новая программа. Процесс удаления ненужного тоже до смешного прост и эффективен.
    - Система безопастности. В Окнах это насмешка. Количество вирусов превышает количество полезных программ. Авторизация доступа в Линуксе проста и надёжна. NTFS ни в какое сравнение с ext4 или XFS не идёт. Ни по производительности ни по удобству ни по надёжности.
    - В статье упоминаются средства програмирования. И здесь у Линукса больший выбор. Есть на любой вкус. Работа с медийными файлами? Линукс отвечает - нет проблем. И не ограничен только одним разработчиком. Есть разнообразные уровни сложности.

    Я не претендую на всесторонний анализ этих ОС-ов. И совсем не сторонник того чтобы выбросить Окна на свалку, но их история сильно напоминает времена начала 90-х и войну MS Windows и IBM OS-2. Тогда динозавр пал в бою с молодым и инновационным конкурентом. Теперь этот динозавр - Microsoft Windows.

    Ответить
  11. Под винду неодобно программировать, потому что очень много специфики. Тебе надо знать, как система поведет себя в том или ином случае. На ровном месте может быть затык.

    Раздражает, когда файлы или каталоги блокируются каким-то приложением - не просто так понаплодили всяких анлокеров.

    В LInux при программировании такого не чувствуется. Сложность настройки компенсируется стабильностью при использовании. С Ubuntu можно без особых проблем пересесть на RHEL, а с RHEL - вообще на какую-нибудь из BSD-систем.

    Ответить
  12. Web разработка на windows сегодня тоже удобнее чем на Линукс. Для проверки под линуксом есть vmware. Я занимаюсь web разработкой больше 15 лет и меня вполне устраивает windows. Кроме того у меня есть один проект на с++ для embedded системы. Сейчас все наши российские заказчики переводят серверные части на российские линуксы, также отказываются от sql сервер (как СУБД, так и олап), однако я все равно остаюсь на windows, просто использую wmware. Для пробы установил на одном из рабочих ноутбуков убунту и настроил всё рабочее окружение, как на windows. Убунту порадовала тем, что все железо запустились из коробки, включая все функциональные клавиши и тачпад-дисплей, который стал вторым дисплеем (функции тачпада при этом тоже работают). Практически всё, чем я пользуюсь на windows есть за мелкими исключениями, но есть аналоги (правда к ним надо ещё привыкать). Сказать, что на убунте более удобно не могу. Практически также, чуть хуже из-за привычек. По скорости и отзывчивости интерфейса разницы не заметил (но у меня все ноутбуки мощные core i7, i9, rizen 9, память 16-32гб, диски nvme).

    Ответить
  13. То что вы не используете windows 15 лет заметно по вашему комментарию (windows вы не знаете). Я программирую под разные ОС, в том числе под мак ос, iOS, (теперь это в прошлом), андроид (одно кооперативное приложение), Линукс (сейчас 80% работы) и для встраиваемых систем (управление оборудованием в реальном времени). Примерно 60% времени за последние 15 лет заняла web разработка. И всё это время я остаюсь под windows (хотя с линуксом познакомился в 1995 г.). Единственное пришлось купить МакБук, хотя конечно и без него можно было обойтись при разработке под яблочные ос, но неудобно (и соответственно не выгодно). Все так называемые проблемы, которые вы перечислили прекрасно решаются под windows, с гораздо большими удобствами, чем под Линукс, но за это надо платить деньги. Но т.к. это повышает производительность разработки, то в целом это выгодно. Просто я рассматриваю виндуос, Линукс и т.д., как инструменты для зарабатывания денег и с этой точки зрения windows меня вполне устраивает. Правда в сегодняшних условиях мы решили наладить тестовое рабочее окружение на линуксе (включая сервер бэкапов и аналог активной директории), но это из-за текущей ситуации.

    Ответить
  14. Автор забыл упомянуть еще немаловажный фактор: старое железо. Не у всех в наличии Ай Семь -Дувять и Райзены.
    У меня на старом компьютере было 4 гига ОЗУ и проц Пентиум какой-то. Винда Семерка на этом железе работала боль-мень, но когда запускал Фотошоп или ИДЕ приходилось тосковать. Также антивирусы (всякие перепробовал) так неслабо торомозили систему. Ну а последнее что меня достало это постоянное соединение с американским военным сервером spawar.navy.mil и соединение это невозможно было закрыть ничем, никаким фаерволом. Причем эта военщина была и на всех компьютерах знакомых и коллег на работе.
    В итоге накатил Лубунту и о чудо, мое железо стало летать. Фотошоп, Иллюстратор портативные запускаю из Вайна. Потом у меня появилось более новое железо, а старичка отдал отцу, у него ноут на Винде накрылся. Хоть отец и ретроград, но Линукс освоил, уже знает как фотки с фотика на комп перекидывать.

    Ответить

Оставьте комментарий