Почему программисты не любят windows

Обновлено: 05.07.2024

Почему же большинству программистов не нравиться Windows? Может я ошибаюсь.
Но везде, где не посмотришь шутят о Windows 95 и унижают его.
А над Биллом Гейтсом тем более. Язык WnAPI, как мне кажется, не очень удобный. А Windows мне тем более не нравиться. Что XP что 95 что 98 что NT. Всё одно и тоже, нельзя было просто создать Windows и по мере надобности и выходов продуктов обновлять его. Конечно здесь всё дело в деньгах. Вышел 98 Windows(тогда это новый был), все быстрее бежать в магазины и покупать новую версию. Бред. У всех Windows'ов один и тот же(почти) программный код. Конечно, возможности новые добавляются.. Но как я уже написал, можно просто установить обновление и ВСЁ! В-общем, это я так, мнение высказал по поводу Windows'а. Вопросы следующие:
Кому не нравиться WinAPI? И почему?
Кому нравиться WinAPI? И почему?

Бред. У всех Windows'ов один и тот же(почти) программный код

кто вам сказал такую чушь?

это вообще не язык
и вы знаете отличие технологии NT от предыдущих win9x?
разберитесь с этим и тогда уже высказывайте свои мнения

и что тут нравиться/не нравиться?
API он и в африке API. хоть в виндоусе, хоть в линуксе.
правда организован по-разному

Последний раз редактировалось Роман Радер; 28.12.2008 в 16:48 .
Почему же большинству программистов не нравит ь ся Windows?
Тут я просто недоумеваю. Откуда такие данные? А что должно нравиться, линукс?

Весьма странное утверждение.

Хотя бы в плане стабильности - WinXP и Win95\98 отличаются друг от друга весьма заметно.

Но везде, где не посмотришь шутят о Windows 95 и унижают его
А часто Вы встречаете обоснованные унижения в адрес WinXP?
При грамотной настройке это очень стабильная система. Отличаются они потому что у программистов в Win2k отобрали возможность писать в порты да и система стала отдаленней от программиста. Роман, прав но не совсем, каждое поколение Windows сохраняет в себе часть предыдущего кода для обратной совместимости. Я его ненавижу за радужные глюки. А ненавидят его в общем то в основном системные программисты. Но я думаю прикладным тоже несладко. У меня лично проблемы возникают практически со всем. Больше всего раздражает память и функции. Иногда функция может заюзать стек при вызове и не вернет ESP в первоначальное состояние о побочных регистрах (edx,ebx) я вобще молчу. Иногда пишешь так вполне корректный код и потом обнаруживается вот такая глупость. По мне так эти 40 тактов которые сэкономили разработчики на инструкции pushad popad, не стоят моей нервной системы. Никакого описания функций WinAPI на асм нет а такое описание нужно. Короче самый легкий способ нормально писать это держать под рукой дизассембл и исходник KERNEL32 USER32 NTDLL. Я тоже сторонник того, чтобы Microsoft просто обновляла свои продукты, а не придумывала что-то вроде Vista, но все дело в деньгах. а они являются монополистами.. почему не нравится Windows? А кто вам такое сказал, мне нравиться, даже очень, но только XP.

пс. а автору нада почитать того же Рихтера, у него рассказывается отличие 9x от NT

Компьютерный мир можно условно поделить на 3 категории: светлые («виндузятники» — пользователи Windows), тёмные (или «линуксоиды» — пользователи Unix подобных операционных систем) и нейтралы (любители MacOS или «яблочники»). Почему я их так условно назвал? Все просто — как в магическом мире темные воюют со светлыми, а нейтралы держатся в сторонке.

Так и здесь. Как вы уже поняли в мире есть 3 самые основные операционные системы, о которых я уже написал выше. Исторически сложилось так, что Windows стала самой популярной, а Unix подобные операционные системы (в дальнейшем будем называть просто Linux) в подавляющем большинстве являются некоммерческими, а компьютеры от Apple не всем доступны из за высокой стоимости.

Почему продвинутые айтишники и программисты не любят Windows Почему продвинутые айтишники и программисты не любят Windows

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

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

И что же этим продвинутым пользователям не нравится в Windows?

1. Закрытый исходный код Windows . То есть пользователю не совсем понятно, что внутри и как это работает. Но главным минусом является то, что из-за закрытости системы есть жесткие ограничения по настройкам или доработкам системы. А вот Linux можно кастомизировать под себя, главное хорошо знать систему.

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

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

3. Телеметрия . Разработчики Windows для своих нужд ослеживают поведения пользователя: хоть и данные по утверждению разработчиков приходят обезличенными, многим продвинутым пользователям это не нравится. В Linux’е таких проблем нет.

4. Много платных программ под Windows . И с точности до наоборот ситуация с Linux — платные программы под эти системы есть, но их мало, а все основные программы бесплатны. Такова философия консорциума Linux — если операционная система бесплатна, то и программы должны быть бесплатны.

5. Вирусы и уязвимости . На Windows их больше. Но система тут не виновата — любую операционную систему можно заразить или вывести из строя. Причина в том, что под Linux минимальное количество вирусов исключительно оттого, что % пользователей гораздо меньше. Если бы Linux был бы такой популярный, то и под него писались бы вирусы.

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

Стоит понимать, что пользование Linux’ом гораздо сложнее, чем Windows — иной раз, чтобы подключить какое-нибудь USB устройство, нужно «танцевать с бубном», чтобы оно заработало. Но истинные поклонники Linux на это даже внимания не обратят — воспринимают, как говорится, как должное.

Кстати, я недавно писал про отечественную операционную систему, рекомендую прочесть: Лучшая российская ОС в 2021/2022 учебном году

А что пользователи MacOS?

Так сложилось, что они всегда держались в сторонке. Как правило, MacOS пользуются из-за любви к экосистеме Apple и в 90% случаях у владельца макбука будет iPhone и другие гаджеты от Apple. Как говорится, кто привык к MacOS вряд ли променяет эту систему на другую — говорю это вам как пользователь данной системы с большим стажем.

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

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

Руслан, backend-разработчик Инфомаксимум, кратко о том, почему топит за связку Linux+Git+Docker и почему не любит Windows.

Здравствуйте. Сегодня мне бы хотелось поделиться своим опытом использования такого стека технологий как Linux + Git + Docker. Я расскажу:

  • как получить рабочую сборку, где можно начать вести разработку;
  • как поднимать сервис;
  • как посмотреть различия в коммитах и т.д.

Мой опыт говорит, что большинство разработчиков работает в OS Windows. Делают они это не от огромной любви к этой операционной системе, а просто не умеют или не хотят переходить на что-то другое в силу своей инертности и нежелания разбираться с чем-то новым. Однако давно известно, что вести разработку в OS Linux проще, чем в Windows. Эта операционка изначально не позиционировалась как удобная среда для разработки. Да, в ней работает большинство вещей, которые работают и в Linux, но сделано это не от “хорошей жизни”, а в стремлении не потерять часть аудитории, сидящей на этой системе. Ни Git, ни Docker не работают там нативно.

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

Это извращение чистой воды. Git ставится в своей оболочке GitBash и обратиться к нему прямо из системной консоли попросту невозможно, т.к. это не системная утилита, а некая внешняя программа, и для Windows она ничем не отличается от программы Блокнот.

Во-первых, идем в великий Google и набираем там слово Linux. Заходим в Wiki и находим там очень интересную картинку с иерархией Linux систем. Приведу кусок этой картинки.

Дерево систем на самом деле гораздо больше, посмотрите какое разнообразие. Критериев много, про Linux написаны целые тома, и мы, естественно, не будем говорить об особенностях пакетных менеджеров, графических оболочках и прочем. Я привык работать с Debian, Ubuntu и его форками. Поэтому, сильно не выдумывая, выбираем Elementory OS. Во-первых, это все тот же привычный apt-менеджер, во-вторых он стилизован под Mac, в-третьих репозитории базируются на Ubuntu. Хотите Mac? Пожалуйста, купите ноутбук Apple по цене «чугунного моста», а можете взять бесплатную Elementory OS и получить примерно тоже самое, только в Linux. Выбрали, устанавливаем ее. Это несложно, туториал можно посмотреть в сети или YouTube. Все. У нас есть Mac-подобная операционка, она бесплатная, она классная, она поддерживает кучу крутых технологий нативно, у нее отличная консоль, ну и так далее.

Следующим шагом ставим себе Java (рассматриваем вариант java-программирования, хотя без проблем можно организовать gcc любой версии с кучей бесплатных IDE). Забиваем в Google openjdk 8 или oraclejdk 8 (можно 9, 10, 11, 13, 14, какая необходима). Попадаем либо на сайт Oracle либо на любой сайт и скачиваем архив, чаще всего *.tgz, содержащий необходимую jdk. В Windows, например, вам бы пришлось скачивать exe-шник, инсталлировать его, чтобы система прописала его в PATH. В Linux же можно ничего не устанавливать. Не забываем добавить себя в группу sudo командой usermod -aG sudo user, где user - вы. Необходимо распаковать этот архив в удобную директорию и кинуть пару ссылок куда-нибудь, например в /usr/local/bin. И все. Этот пусть уже изначально находится в PATH. Сделать ссылку очень просто, например, вы распаковали архив в /opt/jdk-8.205. Соответственно командой

вы пробросите необходимые ссылки. Все, java в системе есть, можно начинать работать.

git config --local user.name. пишем имя, git config --local user.email пишем почту, git config --local core.edit

пишем любимый редактор, например gedit или mousepad, или pluma, или еще что-нибудь, к чему привыкли. Ок, среду настроили. Теперь вы можете уже обновлять ветки, например.

Можно смотреть диффы:

Как пример, если взять два последних коммита. Не нравится смотреть в консоли? Не вопрос. Скачиваем любую мерж утилиту, например, p4Merge, прописываем ее в difftool git'a. Вуаля! У нас графическая оболочка для мержа и диффа. Можете заливать ветки git push -u origin название вашей ветки и так далее и тому подобное.

А вдруг вам нужно создать локальную ветку и настроить ее на удаленную? Один момент, git checkout --track origin/название ветки. Элементарно. Описывать все возможности Git нет никакого смысла. Хотите прокачать Skill по Git, читайте С. Чакон, Б. Штрауб “Git для профессионального программиста”. Как говорится, must have. Ок, с git разобрались.

Допустим, в вашем проекте есть база данных, и вам нужен ее локальный вариант. Можно скачать БД, прописать ее в системе. Возможно, она даже есть в репозитории Linux. Это вероятно, если это MariaDB, например, форк MySQL. Однако зачем это делать? Зачем загрязнять систему ненужными программами, когда есть такое великолепие как система виртуализации Docker? Как ее ставить? Я не помню, потому что это и не нужно. Чтобы поставить самую свежую версию, идем в Google, пишем docker docs, идем на официальный сайт, находим там раздел установки и делаем как просят:

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