Какой виндовс используют программисты

Обновлено: 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.

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

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

советую один из дистрибутивов UNIX. лучше всего FreeBSD. приведу пару доводов:
1. система абсолютно бесплатна (aka Linux)
2. Линух - это множество разных дистрибутивов. FreeBSD (да и другие юниксы) разрабатываються централизованно, что в некоторой степени гарантирует стандартизацию и надежность ПО.
3. что же касаеться собственно программирования, то FreeBSD (опять же aka Linux) распространяеться с открытым кодом, однако (на мой взгляд) реализация этой системы более удачна. Например реализация TCP/IP, разработанная для систем xBSD считаеться эталонной. А ведь нет лучшего способа стать хорошим программистом, чем изучать исходники написанные профессионалами. Согласись, научиться писать как Ричи, Керниган и т. п. было бы неплохо :)

какую считаешь для себя удобнее ту и используй
софт есть под все
стабильность работы тебе по барабану(не сервак ставишь)
так что исходи из уютности работы
я юзаю линукс Originally posted by programist121
Я вот решил занятся серьезным изучением программирования и не знаю под какой ОС это лучше всего делать. Что выбрать Linux или Windows?


Если хочешь заняться серьезным программированием под Windows, выбираешь Windows, под Linux - выбираешь Linux. А если серьезно, мне кажется, что НАЧИНАТЬ программировать лучше всего под Windows. Эта ОС более дружественна и требует меньше начальных знаний как у пользователя, так и программиста. По программированию под Windows имеется очень большое количество примеров, справочной литературы и т. д.

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

Думаю, мысль понятна

Originally posted by smartsoft

Если хочешь заняться серьезным программированием под Windows, выбираешь Windows, под Linux - выбираешь Linux. А если серьезно, мне кажется, что НАЧИНАТЬ программировать лучше всего под Windows. Эта ОС более дружественна и требует меньше начальных знаний как у пользователя, так и программиста. По программированию под Windows имеется очень большое количество примеров, справочной литературы и т. д.

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

Думаю, мысль понятна

Не совсем с тобой согласен.
Хочешь сказать, что кодеры под форточку - ламеры, а под Линукс - гуру?

Originally posted by _udaff_
Хочешь сказать, что кодеры под форточку - ламеры, а под Линукс - гуру?


Перечитай еще раз пост - я этого не утверждал.

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

Я имею в виду обычных программеров, которые пишут программы, не скрипты для Веба. Наверное, потому, что RAD-средства разработки под Linux появились сравнительно недавно, и далеко не так популярны, как аналогичные средства для Windows.

Зайди, например, на любой программерский форум, где тусуются линуксоиды. Вопросов от чайников там меньше всего. Никто не спрашивает, как сделать круглые кнопки, скачать компоненты, и т. п.

Originally posted by smartsoft

Перечитай еще раз пост - я этого не утверждал.

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

Я имею в виду обычных программеров, которые пишут программы, не скрипты для Веба. Наверное, потому, что RAD-средства разработки под Linux появились сравнительно недавно, и далеко не так популярны, как аналогичные средства для Windows.

Зайди, например, на любой программерский форум, где тусуются линуксоиды. Вопросов от чайников там меньше всего. Никто не спрашивает, как сделать круглые кнопки, скачать компоненты, и т. п.

Линукс не для чайников. Для чайников МАЗДАЕВСКИЕ ФОРТОЧКИ.

Линукс не для чайников. Для чайников МАЗДАЕВСКИЕ ФОРТОЧКИ.

Угу. Особенно когда мелкийсофт глючить начнёт. Тут конечно только чайник разобраться может. "На тысячу строк кода, по теории вероятности, приходится одна ошибка"(Цитата, не помню чья)

Угу. Особенно когда мелкийсофт глючить начнёт. Тут конечно только чайник разобраться может. "На тысячу строк кода, по теории вероятности, приходится одна ошибка"(Цитата, не помню чья)

Собственно есть винда , которая досойна уважения -
Windows 2000 Professional, но только с 3-м паком.

Зачем мне навязывать этот мультимудиа плеер, я люблю Winamp(многие меня поддержат, а многие - нет). Встроенные средства записи компактов просто жалкая пародия на Nero. А эта(как будто) "красивая графика". Ну её ладно отключить можно. А ошибок как-раз в ХР больше , чем в 2000
(вспомните кол-во твикеров и других примочек для ХР).

Originally posted by smartsoft

Я имею в виду обычных программеров, которые пишут программы, не скрипты для Веба.

Ты когда нибудь скрипты для веба писал? Если да, то чем отличается от "обычного программирования"?

На тему дружественности маздая- сел я как то, решил освежить свои знания, покодить на асме с GUI, так оно на том и осталось. Не то что бы совсем низя, но как ни бейся, а красивый код не получишь. И на сях не получишь. Потому как криво в принципе. Сейчас вот к миграции готовлюсь. Ось однозначно FreeBSD. Книжечек приобрел - Разработка сетевых приложений, Взаимодействие процессов- посмотрел- блин, все четко, понятно, логика. блин.

Ты когда нибудь скрипты для веба писал? Если да, то чем отличается от "обычного программирования"?

На тему дружественности маздая- сел я как то, решил освежить свои знания, покодить на асме с GUI, так оно на том и осталось. Не то что бы совсем низя, но как ни бейся, а красивый код не получишь. И на сях не получишь. Потому как криво в принципе. Сейчас вот к миграции готовлюсь. Ось однозначно FreeBSD. Книжечек приобрел - Разработка сетевых приложений, Взаимодействие процессов- посмотрел- блин, все четко, понятно, логика. блин.


Во Франции Мелкий софт Запрещён. Там Статья за поддержку терроризма. А писать на асме под винды мне нравится. Что хошь то и пишешь

Originally posted by alibabaich

Во Франции Мелкий софт Запрещён. Там Статья за поддержку терроризма.


Ссылки на конкретные докумены, плз! :x

Originally posted by alibabaich

А писать на асме под винды мне нравится. Что хошь то и пишешь


А на С++ пишешь только то, что заставляют! :D
А на С под Linux только то, что прикажут! :D

Originally posted by chigevara

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


Может, не в мастдае проблема? Может, что-то другое "криво в принципе"?

Originally posted by alibabaich

Угу. Особенно когда мелкийсофт глючить начнёт. Тут конечно только чайник разобраться может. "На тысячу строк кода, по теории вероятности, приходится одна ошибка"(Цитата, не помню чья)


О да! Куда проще чайнику настроить оборудование в Linux для нормальной работы. :D

Originally posted by smartsoft

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


Подготовленных к чему?
Программистов каких? Системных, прикладных?

Originally posted by smartsoft

Если хочешь заняться серьезным программированием под Windows, выбираешь Windows, под Linux - выбираешь Linux. А если серьезно, мне кажется, что НАЧИНАТЬ программировать лучше всего под Windows. Эта ОС более дружественна и требует меньше начальных знаний как у пользователя, так и программиста. По программированию под Windows имеется очень большое количество примеров, справочной литературы и т. д.
Originally posted by smartsoft

какую считаешь для себя удобнее ту и используй
софт есть под все
стабильность работы тебе по барабану(не сервак ставишь)
так что исходи из уютности работы


Тоже неплохой ответ.

Originally posted by squirL

советую один из дистрибутивов UNIX. лучше всего FreeBSD.

UNIX [COLOR=red]!=[/COLOR] FreeBSD

Originally posted by Green

UNIX [COLOR=red]!=[/COLOR] FreeBSD

знака равенства никто и не ставил. но ты же не будешь отрицать, что FreeBSD - одна из веток развития UNIX?

FreeBSD is an advanced operating system <. > It is derived from BSD, the version of UNIX® developed at the University of California, Berkeley

или это не довод?

знака равенства никто и не ставил. но ты же не будешь отрицать, что FreeBSD - одна из веток развития UNIX?

FreeBSD is an advanced operating system <. > It is derived from BSD, the version of UNIX® developed at the University of California, Berkeley

или это не довод?

Это слишком обще и расплывчато.
UNIX - это довольно сложная и специфичная ОС, персональное применение которой бессмысленно и слишком обременительно.

Linux, FreeBSD - это ОС, которые взяли за основу упрощенную концепцию UNIX, но внутри они отличаются от неё.

Это слишком обще и расплывчато.
UNIX - это довольно сложная и специфичная ОС, персональное применение которой бессмысленно и слишком обременительно.

не согласен. в таком случае - говорить о существовании сейчас системы UNIX вообще бессмысленно. то что называлось UNIX изначально, разработанное в AT&T уже не существует в чистом виде. На ее основе в Беркли сделали BSD UNIX от которого и пошла в итоге вся ветка - NetBSD, OpenBSD, FreeBSD. а AT&T начала продавать лицензии на систему SVRx.
сейчас же все UNIX подобные системы обьединены базовым программным и пользовательским интерфесом (более или менее единым) и базовыми особенностями архитектуры, которые опять же - со времен "чистого" UNIX развивались, но работают по тем же принципам. единственное о чем можно говорить - о том, принадлежит ли конкретная версия UNIX к ветке SVRx (AIX, IRIX, Solaris) либо к ветке xBSD.


Linux, FreeBSD - это ОС, которые взяли за основу упрощенную концепцию UNIX, но внутри они отличаются от неё.

почему упрощенную? и чем они внутри отличаються? от чего отличаються? за Linux говорить не буду, а FreeBSD включает в себя многие классические реализации подсистем UNIX в частности - систему сокетов, организацию файловой подсистемы, подсистемы управления процессами. концепция сокетов со времен Беркли особенных изменений не претерпела. Реализация TCP/IP в BSD системах до сих пор считаеться эталонной (по моей информации).
если я в чем то заблуждаюсь, приму критику и конструктивные предложения.

Ещё не так давно Windows была обречена. Разработчики покупали оборудование Apple, и каждый доклад на технических конференциях освещался сотнями светящихся логотипов Apple. В этом нет ничего удивительного: под капотом macOS является производной от BSD-Unix, что позволяло разработчикам быстро устанавливать на своих ноутбуках те же наборы инструментов, что и на их серверах или в облаке. В случае отсутствия нужных приложений, разработчики могли установить виртуальную машину Parallels Desktop и запускать нужные приложения для Windows, как если бы они были частью рабочего стола macOS.

Разработчики – первопроходцы. Куда бы они ни пошли, все в конечном итоге последуют за ними. Пришло время для Windows измениться, предоставив среду, ориентированную на разработчиков, без изменения способа использования ПК всеми остальными. Это было сложной задачей для Microsoft, но компания прошла долгий путь к ее решению. Теперь разработчики снова покупают ПК, и эти светящиеся яблоки больше не доминируют в конференц-залах.

Смена Windows, оборудования и программного обеспечения

Как это произошло и, что более важно, как это произошло так быстро? Частично эта история связана с переходом Microsoft на аппаратное обеспечение при пониманием того, что сочетание аппаратного и программного обеспечения Apple было большой причиной ее успеха. Это привело к появлению линейки устройств Surface с высококачественным дисплеем формата 4:3, а также с удобными для разработчиков высококачественными устройствами Surface Book и Surface Laptop, которые поставляются с мощными процессорами и видеокартами, большим объемом памяти, а так же с отзывчивой клавиатурой.

Поскольку разработчики подолгу сидят за экранами, создание правильного оборудования было первым шагом на этом пути. Теперь Windows должна была стать лидером среди операционных систем, привлекательных для разработчиков. Так переход от Windows 8 с сенсорным управлением к гибридной среде Windows 10 стал большим стимулом для перемен. Новая операционная система сохранила функции мультитача и планшета Windows 8, но объединила их со знакомым меню и окнами Windows 7.

Хотя оборудование Surface помогло вернуть разработчиков, модель Windows 10 «Windows как услуга» с двумя выпусками в год позволила Microsoft быстрее реагировать на запросы разработчиков, чем в более ранних версиях Windows. В то же время компания начала отделять SDK и инструменты разработчиков от монолита Windows, заменяя редкие обновления более последовательным циклом выпуска и более быстрым исправлением ошибок.

Терминал – дорога к разработчикам

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

Одним из ключевых достижений является разработка нового терминала – Windows Terminal. Заменив старый cmd.exe, новый терминал использует современный подход к командной строке, используя уроки, извлеченные из Linux и кроссплатформенных приложений терминалов. Windows Terminal можно установить и из магазина Microsoft Store и из репозитория GitHub. Последние сборки поддерживают многопанельные представления в окне, полноцветную поддержку, а также поддержку окон с несколькими вкладками, поэтому вы можете работать с несколькими терминалами одновременно.


Новый терминал от Microsoft упрощает разработчикам работу в Windows или, например, с удаленными серверами при использовании недавно добавленной в Windows встроенной поддержки SSH для безопасных подключений (одна из первых функций Windows, которая зависит от проекта с открытым исходным кодом). Поскольку Windows Terminal поддерживает 24-битный цвет и стандартные соединения ANSI, вы можете перейти из знакомой командной строки Windows прямо к удаленной системе Linux без изменения контекста и с полной поддержкой всех функций терминала Linux.

Linux в Windows

Одновременно с запуском терминала с открытым исходным кодом Microsoft представила вторую итерацию своей подсистемы Windows для Linux (WSL 2). Первоначальный WSL 1 был разработан для обеспечения эмулируемой среды Linux с использованием набора инструментов для преобразования системных вызовов Linux в вызовы Windows, что позволяло запускать код в Windows. Идея заключалась в том, чтобы ключевые элементы цепочки инструментов Linux могли работать в Windows, что в свою очередь предоставит разработчикам возможность работать со знакомыми инструментами и тестовым кодом, не покидая своего ПК.

WSL оказался очень популярным инструментом среди разработчиков, тем более Apple поменяла способ поддержки UNIX в macOS.Сосредоточившись на облачных моделях разработки, таких как контейнеры, Microsoft превратила Windows в портал для разработчиков.

Во втором выпуске WSL использовался другой подход, основанный на низкоуровневом гипервизоре Microsoft Krypton. Являясь частью семейства Hyper-V, Krypton тесно связан с ядром Windows, что позволяет лучше распределять ресурсы между хостом и виртуализированной ОС. Krypton также используется для обеспечения безопасности на основе виртуализации в Windows 10, запускает изолированную тестовую среду Windows Sandbox и режим Application Guard в браузере Microsoft Edge.

С WSL 2 компания Microsoft теперь поставляет собственное ядро Linux и упрощает поддержку контейнеров Linux в Windows. Реализация Docker для Windows теперь основана на WSL 2, что упрощает создание и тестирование контейнеров Linux в Windows перед их развертыванием в Kubernetes в облаке. С контейнером, работающим в Windows, вы можете использовать режим удаленного редактирования Visual Studio Code для работы с кодом внутри контейнера, что дает вам бесшовную среду разработки с редактором и отладчиком внутри контейнера и графическим интерфейсом пользователя, работающим внутри Windows.

Комбинация популярного редактора и конвергентной кроссплатформенной среды разработки оказалась именно тем, чего не хватало в Windows для разработчиков. Вдохновленные линейкой устройств Surface, поставщики оборудования, такие как Dell, Lenovo и Razer, начали поставлять ориентированные на разработчиков ноутбуки, которые дополнили изменения в Windows и предоставили как индивидуальным, так и корпоративным разработчикам доступ к выбору оборудования.

Воспользуйтесь скриптом для установки инструментов с помощью Winget

Остальные изменения менее очевидны. Microsoft работает над улучшением установки приложений и инструментов с намерением предоставить скрипты для установки всего набора инструментов. Вы, конечно, можете использовать сторонний установщик, например, Chocolatey, но Microsoft экспериментирует с двумя собственными подобными инструментами.

Первый инструмент – интеграция командной строки Windows с магазином Microsoft Store. Просто введите «python», и Windows предложит установить популярный язык программирования из Microsoft Store. Добиться подобного удалось благодаря сотрудничеству между проектом Python с открытым исходным кодом и разработчиками командой командной строки Windows и магазином Microsoft Store.


Компания Microsoft сейчас разрабатывает инструмент установки, управляемый из командной строки. Winget работает с размещенным на GitHub репозиторием манифестов пакетов, которые ссылаются на загружаемые установщики. Манифест содержит подробную информацию о приложении с управлением версиями и поддержкой различных установщиков, которые поддерживают разные архитектуры процессоров.

Добавление удобных для разработчиков настроек и функций в Windows

Другие удобные для разработчиков функции появляются в надстройках, таких как набор утилит Microsoft PowerToys. С помощью PowerToys вы можете настроить опцию Fancy Zones для управления макетами экрана, добавить поддержку предварительного просмотра изображений SVG в проводнике, изменить размер изображений и настроить средство запуска приложений на основе поиска. Power Toys – это проект с открытым исходным кодом, в который регулярно добавляются новые функции – одна из последних – это список комбинаций клавиш Windows, который идеально подходит для разработчиков.

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

Влияет ли выбор операционной системы на возможности программиста? Какую ОС выбрать конкретному разработчику?

На днях увидел занимательный опрос:

PHP folks, what is your primary OS for development?

@mankms

Само собой, занимательными мне показались результаты:

  • macOS 31,2 %
  • Linux 32,4 %
  • Windows 34,4 %
  • Other (please comment) 2 %

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

Но сначала, само собой предыстория.

Как я писал на PHP в Windows

Ещё в 2007-ом году, когда я ещё не переехал на Linux, но уже хотел писать Web, я озадачился вопросом: под IIS на asp я писать не хочу - что же мне выбрать?

Вариантов у конкретно меня было не много: я знал Perl, пару раз "трогал" PHP. Посмотрев на сайте вакансий спрос на тех и других, мой выбор пал на PHP. Оговорюсь, что позднее я до 2014-го года иногда таки писал Web на Perl. Спасибо, Mojolicious!

Тем не менее, Web тогда хостился в основном на FreeBSD и Linux. А я на тот момент только раз пытался слезть на OpenSolaris (травмирующий опыт). Но недолгое гугление мне выдало "Denwer" - джентельменский набор Web-разработчика.

Скачал, "Далее", "Далее", двойной клик на появившуюся иконку на рабочем столе - работает. Поменял HTML в index.php - работает, добавил if на обработку query-параметра - работает!

В общем, так я написал 4-ый сайт в своей жизни, залил на бесплатный хостинг через FileZilla - работает, чёрт возьми!

Так что никакого входного барьера я почти не почувствовал. Про IDE я тогда особо ничего не знал, разве что плевался от перегруженного интерфейса Eclipse. Notepad++ - наше всё!

Ну как переехал - далеко не все игры шли под Wine, поэтому - dual-boot. Но тем не менее, до сих пор на рабочем столе «Выносливая Цапля». Зацепило, в общем.

На смену Notepad++ пришёл gedit, после которого я уже не мог видеть несглаженные шрифты в Notepad++. А далее - Komodo Edit. Там глаза наливались не кровавыми слезами, а полными счастья.

Немного конфигурировать Apache я научился за прошлый год - пара xml-тегов и полетели! Учитывая, что в прошлом, когда такая потребность возникла, я довольно быстро разобрался - не считаю это болью. apt-get мне поставил mysql и phpmyadmin.

Вуаля - всё снова работает!

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

"Другие операционные системы"

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

Особо всё усугубилось, когда я стал работать в веб-студии, где сайты хостились на FreeBSD. Ну и понеслась душа в рай - DesktopBSD, TrueBSD, ну и чистая Фряха, где всё сам себе настраивал.

В общем, после Gentoo/Slackware меня было сложно испугать.

Само собой, все различия в плане разработки для меня были заменить apt-get на pkg_add, да возлюбить jail-ы, ибо OpenVZ (или Xen) тогда иногда прямо в проде сбоила.

Удобен ли Mac OS, как его малюют?

1 год я по глупости дома работал на MacOS, ещё 2.5 года на работе. В общем то, всё, что вы можете на Linux или FreeBSD в плане разработки, вы можете и на MacOS. Но через одно место - brew.

В принципе, это не так уж и утомительно, пока система, будто гопник с окраины не подойдёт к вам и не попросит "пробить на технику". И вот вы соглашаетесь на обновление.

Отвалились симлинки, а бинарные пакеты не собираются? Ну а что вы хотели - brew же сторонний пакетный менеджер! Когда разработчик-альтруист починит - тогда и заработает! "Прости парниш, я случайно пыром пробил".

В остальном, если не вдаваться в мои чисто пользовательские муки, крайне странный UX - всё также работает, как и "везде".

К слову, к тому времени я уже не писал на PHP, поэтому могу лишь сказать как "мимокрокодил". Но Python и JavaScript, как мне кажется, имеют подобные PHP проблемы на MacOS.

IDE, менеджеры пакетов и прочие тулзы

Почти все популярные IDE ныне кросс-платформенны, так что придётся только переучивать хоткеи.

Менеджеры пакетов - экосистема в экосистеме: один раз через пакетный менеджер ОС поставил пакетный менеджер языка программирования, после чего различия почти заканчиваются. А если написать на базе уже этого пакетного менеджера ещё и свой пакетный менеджер - вообще счастье!

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

И что в итоге?

А в итоге радость от того, что удобство (общеприменимость) разработки на Linux сравнялось с прочими. Инфраструктура разработки на языках/технологиях программирования, не зависящих от платформы, почти идентична на всех ОС.

Ну и какую ОС ставить разработчику? Ответ стар как мир - ту, на которой сидит знакомый гуру.

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