В чем разница программирования под windows и linux

Обновлено: 04.07.2024

Привет с вами Сергей Никонов. Я получаю большое количество вопросов и в этом видео я постараюсь ответить на популярный вопрос — какую операционную систему выбрать для веб-разработки?

Уже много много лет не утихают споры о том, что лучше Windows, Mac или Linux. И в этом нет ничего удивительного, потому что у каждой ОС есть свои плюсы и минусы.

Видео Windows, MacOS или Linux

Итак, начнем с Linux

Linux - обобщенное название, в честь программиста Линуса Торвальдс, который написал так называемое ядро операционной системы (в вкратце, ядро - важное звено в операционной системе, которое координирует работу всех запущенных программ).

Разновидностей операционных систем на базе Linux существует огромное количество, посмотрите например этот список из википедии.

Ты точно найдешь для себя любимый дистрибутив и одна из особенностей таких операционных систем, что ты можешь настроить и изменить систему полностью под свои нужды или даже выпустить свою операционную систему на базе линукс.

Например, ты можешь полностью изменить дизайн, сделать футуристический внешний вид, в лучших традициях фильмов в жанре cyberpunk. Или тебе привычен внешний вид Windows? Нет проблем, скачивай Linux Mint и у тебя будет привычный интерфейс.

Операционная система на базе Linux создана программистами для программистов.

Следующая часть статьи содержит информацию о программном обеспечении, использование которого, в злонамеренных целях запрещено законами большинства стран. Информация носит ознакомительный характер. Автор видео и текста не призывает нарушать законы вашей страны. Ответственность за использование в злонамеренных целях полученную далее информацию ложится полностью на вас.

Есть даже специальные дистрибутивы Linux для хакеров, один из самых популярных - это Kali Linux. В нем из коробки доступны программы для взлома Wi-Fi, программы поиска уязвимостей на сервере, различные брутфорсеры, программы для сканирования сети и много всего полезного, для специалистов по информационной безопасности.

Из плюсов всех дистрибутивов Linux стоит отметить наличие программы терминал. Эта невзрачная на вид программа позволяет полностью управлять компьютером, серверами и многие операции производить через терминал намного быстрее, чем через программы с графическим интерфейсом. Стоит заметить, что большая часть сайтов в интернете работает на серверах на базе Linux. И если ты повседневно используешь Linux, а также программу Терминал, у тебя не будет проблем управлять твоими сайтами через эту программу.

Кстати, если ты совсем незнаком с терминалом Linux, рекомендую пройти мой курс Linux/GIT/Hosting на сайте FructCode. В нем ты узнаешь основы работы с терминалом Linux для веб-разработчика, научишься подключаться к серверам хостинга, на которых будет размещен твой веб-сайт, а также узнаешь что такое контроль версий кода GIT и как его использовать.

А сейчас давайте рассмотрим плюсы и минусы использования Linux

Выбрав ОС на базе Linux, ты найдешь все необходимые программы для разработки.

И редакторы кода, например PHPStorm, один из моих любимых редакторов кода Visual Studio Code, о нем я кстати рассказывал в одном из своих предыдущих видео, ссылка есть в описании. Ты найдешь различные инструменты, например Docker и все, что связанно с разработкой.

Также выпускается достаточно большое количество аналогов программ как частными программистами, так и сообществом Linux. Да, еще одно из преимуществ Linux, что это свободная операционная система, пользоваться ей можно бесплатно, поддерживают Linux сообщества программистов и различные компании, как мелкие, так и крупные, например Microsoft.

Из минусов стоит отметить, что не все привычные тебе программы есть в Linux. Например, нет под Linux программы iTunes или в Linux нельзя напрямую установить программы от компании Adobe, например Photoshop, Illustrator и другие. Есть Steam под Linux, но не все игры из своего стима ты сможешь запустить.

Но не спеши ставить крест на этой операционной системе. Например Steam позволяет в Linux запускать некоторые игры в специальном режиме, без дополнительных программ. Для включения этого, пока еще экспериментального режима, в программе Steam нужно нажать буквально несколько кнопок в настройках и с высокой вероятностью, твоя любимая игра запустится в Linux

Что касается других программ и игр, для одних есть аналоги, например альтернативой iTunes для прослушивания музыки может быть не менее крутая программа и сервис под названием Spotify. Многие программы можно запускать с помощью специальной программы, которая называется Wine.

Простыми словами устанавливается программа Wine, скачивается необходимый exe-шник Windows программы и запускается через Wine. Некоторые программы имеют веб-интерфейс и работают в браузере.

Следующий минус Linux - это отсутствие драйверов для некоторых устройств. Но из плюсов стоит отметить, что драйвера под устройство может выпустить как производитель, так и Linux сообщество.

Из плюсов стоит отметить, что существуют Linux дистрибутивы, которые хорошо подходят для слабых компьютеров.

И да, если ты на каком-нибудь из форумов получишь совет, что лучший дистрибутив Linux - это собранный из исходников или рекомендацию ставить какую-нибудь Gentoo в качестве домашней ОС или все вместе, не трать свое время. Закончится это красными глазами и несколькими бессонными ночами. Но в Linux ты конечно прокачаешься, особенно в гуглении ошибок, типа Kernel panic. Ссылку на ОС Gentoo на всякий случай оставлю.

Операционная система MacOS

Следующая операционная система к рассмотрению - это MacOS.

Эта операционная система поставляется вместе с компьютерами компании Apple. Легально вы не сможете установить MacOS на ваш компьютер, если это компьютер не от Apple.

MacOS - это Unix-подобная операционная система. Простыми словами - это как Linux, только с закрытым исходным кодом, написанная и поддерживаемая только компанией Apple. Плюс в том, что если вы ранее работали в Linux, в MacOS вы найдете привычный терминал, который конечно будет немного отличаться, но функциональность и большинство команд будут как в Linux.

Под MacOS есть огромное количество программ, как для веб-разработки, так и для мобильной разработки под устройства iOS. Иными словами, если вы когда-нибудь заходите попробовать писать приложения для iPhone и публиковать их в App Store, без MacOS вы не сможете это сделать.

MacOS хорошо подходит под веб-разработку. Для этой операционной системы вы найдете все необходимые программы и инструменты. Если ты любишь поиграть в игры, в перерыве от написания кода, под MacOS портировано достаточно большое количество популярных игр.

Mac используют большое количество разработчиков по всему миру из-за надежности MacOS, удобных комплектующих, особенно клавиатуры MacBook удобны для печатания кода.

Из минусов стоит отметить - это цена. Маки достаточно дорогие. Тем не менее, мак служит долго, и при должном обращении на вторичном рынке остается долгое время востребован, поэтому продать БУ мак по выгодной цене не составит труда.

Операционная система Windows

Windows очень популярная операционная система и для Windows есть практически все программы, работает практически со всеми устройствами и в противовес этому минус, что из-за большой популярности под нее пишутся большое количество вирусов, бэкдоров, скрытых майнеров криптовалюты, рекламных программ.

Под Windows есть всевозможные редакторы кода, инструменты для разработки, как и в Linux, но у них есть свои особенности и минусы. Например, если у вас Windows Home, вам потребуются дополнительные действия при работе с Docker или функционал некоторых инструментов для разработки не будет полноценно работать.

Windows часто поставляется вместе с компьютером, однако со временем текущая редакция Windows вам может не подойти для некоторых задач и придется покупать нужную редакцию Windows.

Вы, наверное, уже не раз слышали, что программировать лучше на 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

Выводы

Как видите, причин программировать на Linux вполне достаточно чтобы попробовать. Конечно, всё зависит от конкретного человека и ситуации. Если вы всю жизнь программировали в Windows и знаете всё тонкости настройки, то возможно, вам и не будет хотеться переходить на Linux, так как там всё новое и надо разбираться заново. Но если вы ещё не разобрались с программированием в Windows, то в Linux будет удобнее. А вы программируете в Linux? Почему? Напишите в комментариях!

Нет похожих записей


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

Оцените статью:

(26 оценок, среднее: 2,42 из 5)

Об авторе

13 комментариев

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

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

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

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

в п.3 слово Enterprice - прям отлично 🙂

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

Конкретно ваши примеры консольных команд из статьи это вообще не аргумент. В винде можно использовать 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-овском железе. То, что на серверах везде Линух и все делается там для Линух - это очень толстая ложь.

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

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

Поправил статью. Надеюсь теперь она больше соответствует действительности.

С автором согласен на все 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.

У каждой ОС есть свои плюсы, минусы и особенности, и как правило программисты выбирают ОС на основе своих предпочтений и представлений. Но что, если отбросить личные симпатии и попытаться взглянуть объективно: какая ОС даёт больше всего преимуществ программисту? Мы задали этот вопрос экспертам, и вот что они ответили.

старший backend-разработчик .defa

Выбор ОС в первую очередь зависит от того, в какой области разработчик работает, а ещё это дело привычки и субъективных представлений об удобстве. Я веб-разработчик и успел попробовать несколько операционных систем. Вот мой личный рейтинг удобства ОС именно для разработки веб-решений.

Первое место — macOS. Практически всё идеально, могут возникать проблемы с Docker, поскольку не всегда оптимально используются ресурсы (бывает >= 70 % CPU). Но это мелочи. macOS — это практически идеальный баланс между ОС для работы и для повседневных задач.

Второе место отдам Windows. Здесь можно спокойно вести разработку. При наличии такого софта как Docker или Vagrant многие проблемы можно легко обойти. Чего мне действительно не хватает в Windows, так это нормального терминала (ConEmu, Git Bash и другие не в счёт). Зато софта под эту ОС гораздо больше, чем на Ubuntu или macOS.

В качестве заключения отмечу, что всё-таки выбирать стоит ту ОС, в которой разработчику привычнее и комфортнее работать. Если всё в операционной системе устраивает, то переход на что-то другое вызовет лишний стресс и трату времени на изучение возможностей новой ОС. В конце концов, в ту же Windows потихоньку внедряется WSL.

инженер-программист компании ICL Services

На вопрос, какую операционную систему выбрать для программирования, в большинстве случае нет чёткого ответа, т. к. это больше субъективный выбор каждого человека: как по удобству взаимодействия с самой системой, так и с используемыми инструментами для разработки. Большинство популярных языков и сред разработки в основном присутствуют на всех платформах.

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

Также для нашей страны актуален вопрос цены рабочей машины. Например, для многих, а тем более для начинающих, продукты компании 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? Работайте дальше, если это не ограничивает ваши возможности. К тому же при необходимости в простых случаях можно воспользоваться виртуальной машиной. А переучиваться работать на другой системе просто «потому что» — пустая трата сил и времени.

Почему писать программу в текстовых файлах или через терминал лучше (как я читал), чем использовать IDE, такие как Visual Studio в Windows? Существуют ли функции, которые предоставляет среда IDE (например, отображение ошибок компиляции), или это ручной процесс?

Некоторые люди занимались программированием в течение долгого времени и стали очень эффективными в выполнении того, что они делают из текстовой командной строки. Они могут также найти редакторов vim по своему вкусу. Это очень субъективная область! Однако многие люди используют IDE в Linux, поэтому вы объединяете несколько вещей здесь. Я считаю, что IDE - не главное в этом вопросе. Существует множество IDE для ОС Linux. Например, все интегрированные среды разработки JetBrains (IntelliJ / PyCharm и т. Д.) Работают в Linux. Eclipse работает на Linux. QtCreator работает на Linux. Стремясь сохранить вопрос в чистоте от мета-дискуссии, я открыл отдельную мета-тему, чтобы конкретно обратиться к ней . Пожалуйста, перефразируйте этот вопрос, чтобы иметь больше смысла, в частности, название. Ubuntu не заставляет вас избегать IDE и придерживаться текстовых редакторов для разработки программного обеспечения больше, чем Windows.

Ubuntu бесплатна. Windows и VS могут быть чрезвычайно дорогими.

Ubuntu бесплатна . Windows и VS дают вам очень мало контроля над тем, как вы их используете.

Ubuntu - это среда программирования прямо из коробки. Такие инструменты , как Bash, grep , sed , awk . Windows исторически является большой болью в сценарии. Пакетные файлы ужасны и даже с PowerShell, опыт командной строки в Windows становится ничтожным по сравнению с Bash и инструментами GNU. Вы можете перенести часть этого на Windows, но это не то же самое.

Сложные настройки легко автоматизировать и копировать с помощью apt-get таких инструментов, как Puppet , Chef , Juju , Fabric и простых сценариев.

Это не значит, что нет монолитных IDE. Затмение и Netbeans. MonoDevelop. KDevelop4 и QT Creator. У всех есть свои пользователи, которые клянутся ими.

Ubuntu лучше для вас ? Кто знает. Это очень способная и очень настраиваемая система. Если вы дадите ему шанс и измените свой рабочий процесс, чтобы он помог вам, вы должны быть в состоянии заставить его придерживаться.

«Бесплатно» - это и стоимость, и хлопоты. Я использую Mac, но такой инструмент, как Vagrant, позволяет легко настроить чистую виртуальную машину Linux для любого проекта и отказаться от нее после завершения проекта. "Чего я хочу?" это единственное соображение, а не "есть ли у меня лицензионный ключ для этой ОС и как мне его распознать . " +1 Для того, чтобы оставаться объективными, когда столь многим людям легко иметь отношение колена «Виндоз сосет во всем». Стоит отметить, что Visual Studio более свободен, чем раньше, он уже некоторое время поддерживает файлы MAKE, а плагины позволяют писать и отлаживать приложения cygwin полностью внутри Visual Studio. even PowerShell scripts lack the power of Bash - Я бы сказал, что вы не очень хорошо знаете PS; это невероятно мощно, и я не встречал ничего такого, что вы могли бы сделать в Bash, чего нельзя делать в PS

Я хотел бы добавить еще одну важную причину; Ubuntu отлично подходит для экспериментов с новыми библиотеками, языками, IDE и компиляторами. Все очень хорошо.

Итак, вы слышали о необычном языке Haskell :

О, вы слышали необычный редактор для Haskell:

По сути, речь идет не о том, как быстро вы можете настроить свою повседневную рабочую среду. Это также о том, насколько быстро вы можете настроить экспериментальную среду. Я верю, что это ускоряет процесс обучения в Linux.

apt-get и менталитет, что все должно быть установлено таким образом, возможно, лучшая вещь в Linux. Ни OSX, ни Windows не сравниваются здесь. Да, но вы должны получить установщик каждого приложения вручную: тот факт, что они используют один и тот же установщик внутри, не приносит вам большой выгоды (это экономит им некоторые усилия). Это не то же самое, что встроенный менеджер пакетов. @NathanLong Я сделал то же самое, используя Macports: sudo port install ghc. Свеже скомпилировано из источников. The MacPorts Project currently distributes 17699 ports , Разница лишь в том, что он всегда компилируется. @karadeniz: И это не говоря уже о yum , pacman , emerge , petget , pkgadd . Мне нравится MacPorts (и я поддерживаю несколько пакетов там и на Homebrew), но он не может сравниться с Debian. Эти небольшие проекты просто не имеют полномочий поддерживать большой репозиторий по тому же стандарту. То же самое касается Cygwin и Coapp на стороне Windows. Ключевое различие заключается в культурном, я думаю, что менеджеры пакетов linux являются частью системы и используются всеми для всех, они не являются слегка пренебрегаемой подпоркой надстроек.

Ценность набора инструментов Microsoft в том, что он очень интегрирован. От IDE до управления исходным кодом, управления проектами, сборки, развертывания, базы данных, облачной инфраструктуры, до тошноты . Microsoft делает это ОЧЕНЬ легко, если вы используете полноценную платформу.

Но если вы останетесь в экосистеме Microsoft . этот ребенок будет петь для вас как издевающаяся птица. В руках компетентного разработчика программного обеспечения платформа Microsoft подобна PED для талантливого спортсмена. Это не позволит программисту-любителю создать следующий Facebook. Но это даст преимущество талантливому разработчику, который понимает, как части сочетаются друг с другом.

Аргумент в пользу бесплатной (как в пиве) стоимости начала работы с Ubuntu уже открыт, есть ряд программ, которые Microsoft предлагает вам бесплатно начать работу с их инструментами. В том числе Bizspark, который дает вашей стартап-компании 3 года лицензий (включая лицензии на использование их инструментов в производственных целях). И Мечта Искры, которая дает это студентам бесплатно.

При этом, если вы хотите исследовать и изучать новые языки и платформы, вы найдете более эффективные инструменты для начала работы с Ubuntu, и если вы ищете работу вне экосистемы Microsoft, вам нужно быть знакомым с Ubuntu.

Да +1 за долгожданное противоядие от полуинформированного снайперского действия против MS.

Я использую оба инструмента, Иды и текстовые редакторы с C ommand- L ине I nterface (ниже упоминается как CLI ), чтобы писать программы.

Linux предлагает полезный интерфейс командной строки, начиная с установки по умолчанию. Если вам это не нужно, и вы все равно используете IDE, то разницы больше не будет (ИМХО).

  • IDE очень хороши, когда дело доходит до интеграции многих функций и представления их в графическом графическом интерфейсе.
  • Недостатком является то, что он может ошеломить кого-то нового в этом. Теперь у вас будет две вещи для изучения: IDE и язык программирования.
  • Текстовые редакторы и инструменты CLI не занимают много времени, чтобы учиться.
  • Если что-то не работает, легко увидеть, какой инструмент работает не так, как ожидалось.
  • Так же проще искать проблемы с Google, так как все основано на тексте.
  • Программирование с помощью текстовых редакторов и инструментов CLI происходит быстрее и быстрее, особенно если сравнивать их на старом оборудовании.
  • Вы можете работать с ними даже на экранах низкого разрешения.
  • Это позволяет программировать и отлаживать с минимальными ресурсами на удаленном сервере.

Я часто делаю свои прототипы с помощью текстовых инструментов. Позже, когда есть еще файлы для управления, я ценю инструменты рефакторинга, которые предлагает мне IDE.

Для дальнейшего использования CLI - это сокращение от интерфейса командной строки. CLI обычно относится к интерфейсу, подобному aptitude, который похож на GUI, но в текстовом виде. Vim будет редактором CLI, но grep не будет CLI, у него нет интерфейса (это будет просто инструмент командной строки) Однозначность это хорошо. Исходя из опыта программирования Windows, CLI может обозначать Common Language Infrastructure . @ minerz029 CLI - программы в стиле grep (одна команда [строка] за раз). Вы думаете о «консольных приложениях» в стиле aptitude / vim. @ minerz029 Интерфейс для grep аргументов, stdin и stdout - слово не подразумевает ничего графического или псевдографического. Другие типы интерфейсов включают веб-API, последовательные протоколы и так далее.

Я брошу свой ответ на ринг (хотя я верю, что все они тоже хорошие).

Самый простой ответ, который вы можете получить, заключается в том, что все дело в философии.

В мире Microsoft это немного религиозно - у вас есть боги на горе. Редмонд, которому нужно ходатайствовать, если ты хочешь что-то реализовать. Иногда они будут слушать, а иногда ваши жертвы и просьбы не будут услышаны. Возможно, они были на охоте. Microsoft контролирует всю экосистему - им принадлежит ОС, им принадлежит IDE, и они связывают их вместе способами, о которых, вероятно, не следует говорить в сети SE. Даже в пределах IDE части тесно связаны - это можно назвать интегрированнымно я думаю, что в сочетании является более точным. Если вы хотите немного изменить положение вещей, Гейтс запрещает вам изменять то, что явно не разрешали разработчики Windows или Visual Studio. А затем добавьте такие технологии, как IE, IIS, серверы Microsoft, MS SQL Server и Office . и все это - большая хорошая счастливая семья. Но если вы хотите оставить часть семьи? дрожь !

С другой стороны, у вас есть Linux, который наследует философию Unix, согласно которой каждый компонент должен отвечать за свою небольшую сферу ответственности. Это должно сделать одну вещь, и делать это хорошо. И желательно, чтобы общение происходило посредством текстовых строк. Как уже отмечалось, sed , awk , grep и т.д. являются прекрасными примерами этого. Они делают одну вещь, для которой они предназначены, и делают это очень хорошо. Если вам нужно сделать две вещи, то вы объедините два инструмента. Что очень легко сделать.

Поскольку sed кроме входного ввода ничего не ожидается, будет текст, это означает, что все, что может генерировать текст, не должно заново изобретать колесо. Они могут просто использовать sed . А поскольку sed создает текст, все, что может читать текст, может использовать вывод из sed . Текст очень универсален (есть некоторые исключения из этого), и очень легко комбинировать эти типы вещей вместе.

Мало того, что их легко объединить, но и очень легко разделить их - если я решу, что мне больше не нужно редактировать поток, но я хочу отфильтровать результаты, а не передавать свой текст sed , я могу передать это grep вместо.

Вы можете комбинировать инструменты, которые вы хотите, и вам нужно. И если на вашем пути есть что-то, вы можете изменить это на 100%. Даже если у вас нет такой возможности, вы, безусловно, можете заплатить кому-то за разработку этого изменения - или даже предложить его кому-то еще, у кого есть ноу-хау.

Причина, по которой это лучше для программирования, заключается в том, что когда вы сталкиваетесь с трениями , вы можете исключить это из своего рабочего процесса. Поскольку разработка сложна, есть много вещей, о которых вы должны подумать, чтобы стать успешным программистом, и чем больше вы должны думать о том, чем сложнее думать о других вещах .

Устранение трения является ключевым.

Так что, если религия экосистемы Microsoft - это то, где вы чувствуете себя как дома, и вам настолько нравятся эти инструменты, что они не доставляют вам больших / каких-либо трений . ну, тогда, вероятно, это просто прекрасно.

Но если вам не подходит Microsoft Mold (tm), заявка на патент подана, то вы столкнетесь с трениями. Развитие будет болью. Каждый раз, когда вы хотите что-то сделать, но не можете, это истощит драгоценные когнитивные ресурсы. И если это так, то среда разработки Linux, вероятно, для вас.

Читайте также: