Открыть список
Как стать автором
Обновить

Комментарии 161

Множество программистов со стажем сидят на Линуксе/macos (все же unicode как ни как). я же слишком привык к окну (да и в программировании новичок). думаю для тех кто не может решиться, лучше сначала попробовать поставить линукс на виртуалку oracle (говорят слишком много подводных камней при паралельной установке винды и линукса).
Вот я пересел на линух недавно. Тоже попробовал установить рабочее окружение на виртуалку. программировал на этой виртуалке меньше дня. и вдруг понял что я просто рыба в воде. Хотя на винде сидел всю жизнь
Теперь имею дуал лоад. Винду оставил на всякий случай( пока не всё умею делать под линухом)

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

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

Последние версии винды даже научились сохранять линуксовый загрузчик.

Это довольно оперативно восстанавливается с помощью USB Live Linux.
У меня на макбуке EFI всегда слетает при обновлении macOS (там еще и EFI нелюдский).
15 минут работы и снова всё нормально (до следующего обновления macOS, ага).

(говорят слишком много подводных камней при паралельной установке винды и линукса)

всё же интересно, что же там за камни? не раз ставил параллельно. работают.
Огрёб в своё время ворох проблем на организации общего доступа из разных ОС к рабочим файлам. Windows не умел писать на ext, а специальный драйвер ext2fsd не уследил за какими-то обновлениями ext, что вылилось в потерю части файловой системы. Не камень, но на гравий потянет.
Общий доступ можно организовать с помощью любого ntfs раздела (системный виндовый или другой). Ядро линукса умеет читать ntfs с коробки. Для полноценной работы есть мультиплатформенный опенсорсный драйвер ntfs-3g, который доступен в репозиториях дистрибутивов и устанавливается как пакет.

С правами, на файлы, там всё плохо. По крайней мере со стороны линукс. Для таких вещей, как по мне, лучше завести NAS, с доступом по SMB / NFS. Да и вообще штука полезная, для хранения и резервирования. Да и централизованные бэкапы организовать проще.

Знакомо. Поэтому, теперь, общие данные на ФС NTFS. Для Windows это родная ФС, а семейство Linux умеет его поддерживать. Есть одно «НО» — если Windows не завершил работу, а ушёл в один из энергосберегающих режимов. Тогда, диск (в частности, системный) доступен только для чтения. Очень неприятно.
Я когда-то сам использовал не ext2fsd, а другой проект — ext2ifs.
Но я не включал его постоянно, только когда нужно было какие-то документы с раздела Linux достать.

В те далекие времена, также, исследовал какие ФС читаются обеими ОС и можно использовать для обмена. Список был удручающе мал: нативно поддерживаются FAT32 и UDF, еще через FUSE можно подключить NTFS и exFAT. Сейчас поддержку exFAT добавили в ядро, можно использовать его.

На данный момент использую драйвер WinBtrfs, т.к. Proton от Steam использует симлинки и просто так игры, расположенные на NTFS/exFAT, запустить под линуксом не удалось. Но последнее время думаю о том, чтобы снести винду полностью, а освободившееся место использовать под BCache.
На самом деле немало, но когда постоянно используешь просто забываешь об этом и не считаешь подводными камнями. Навскидку
  • разный формат времени
  • если не выключить fastboot в винде (по-умолчанию вкл) то линукс не сможет корректно работать с ntfs разделами и монтирует их только для чтения.
  • разница файловых систем рождает лулзы, хотя делати вспомнить не могу
  • мразотные драйвера Nvidia. Я немало провел времени подстраивая цвета в панели управления nvidia т.к. цвета в винде и линуксе были разные настолько что с установками по умолчанию разглядеть некоторые цвета было невозможно. Т.е. если настройками монитора получаю нормальный цвет в линуске, то в винде его не видно или он желтит/краснит. Удовлетворительного результата добился только заменой Nvidia на AMD. Хотя думаю это мне так повезло и это скорее исключение.

Лулзы некоторые в том, что в ext* совершенно спокойно живут файлы с именами '?' и '*', а вот в ntfs…

Это ограничение windows, а не ntfs. Из-под линукса/мака на разделе с ntfs замечательно создаются и работают файлы с практически любыми символами в именах (очень удобно хранить электронные книги с полным именем издания в качестве имени файла). Но вот когда потом под windows пытаешься открыть файл вида "QNX_UNIX: анатомия параллелизма.pdf" — эти ограничения вылезают.

Странно, у меня при попытке по *nix на ntfs записать что-то в '*' или '?'.
arxont@potex /run/media/arxont/0C6C0A526C0A36CC $ echo "ZZZZ" > "?"
bash: ?: Недопустимый аргумент
arxont@potex /run/media/arxont/0C6C0A526C0A36CC $ echo "ZZZZ" > "*"
bash: *: Недопустимый аргумент
arxont@potex /run/media/arxont/0C6C0A526C0A36CC $ cd ~
arxont@potex ~ $ echo "ZZZZ" > "*"
arxont@potex ~ $ echo "ZZZZ" > "?"

первое — ntfs, второе — ext4

Зависит от *nix, видимо. На маке я могу писать звёздочки и вопросики, но не могу двоеточия. На убунте (сейчас попробовать не могу, нет под рукой) двоеточия, насколько помню, можно.
Ну и вишенкой на торте остаются разные "магические" имена вроде prn, lpt1 и т.д., которые винда по старинке считает именами спец. устройств и приходит в замешательство, когда сталкивается с файлами с именно такими именами, но на диске. Это тоже, очевидно, ограничения ОС, а не ФС.

Двоеточие у меня тоже в пролёте.
Эх, сколько народа пыталось у меня с локальной помойки скачать файл по адресу /video/porno/Teens/[удалено цензурой]/*.avi…
bash: ?: Недопустимый аргумент
bash: *: Недопустимый аргумент

Экранирование? Не, не слышал :)


echo 1234 > \*

Отрабатывает без ошибок. Главное теперь не забыть экранировать при удалении

Главное теперь не забыть экранировать при удалении
Вот так: rm -rf /*
как раз закончил свою дипломную работу и перед тем как скинуть ее на флэшку попробую ваш вариант создания и удаления
Кхем, а "" по вашему я зачем там вводил?
На счёт первого пункта, винда, через некоторое время, приходит в себя и дата показывается актуальная.
Второй пункт — бесит. Особенно, когда нужно по-быстрому, что-то скопировать на системный раздел. Выручают несистемные диски.
С третьим пока не сталкивался или просто не особо пользовался «общими» данными. Возможно, что основная система у меня Linux. А Windows — вспомогательная, своего рода замена wine.
А четвёртый — я просто предпочитаю AMD. Ни разу не брал Nvidia, поэтому не могу сказать как они ведут себя.

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

Нет. С опенсорсными драйверами Intel и AMD, в линуксе всё более чем хорошо. В отличие от проприетарных (ибо, из-за закрытых спеков, опенсорсные нвидия дрова неюзабельны чуть более чем полностью) дров Nvidia, вокруг которых приходится постоянно плясать. Особенно плохо владельцам ноутбуков с двумя видеокартами. Вообщем не зря Nvidia многие называют её ненавидия.

Ни разу не слышал о подводных камнях в линукс-системах. Вот в дистрибутивах — возможно. Кстати, можно установить виртуалку на линукс, кто уверенно хочет использовать её, но и винду жалко оставлять без внимания)

Каждой задаче свой инструмент. Если у вас разработка под линукс, то логично в качестве среды разработки выбрать линукс/macos так как процесс развертывания будет один и сюрпризов можно не ждать.
Так что если вы разрабатываете под win, то и не стоит ничего менять.
Год как без винды на линухе, да еще и на raspberry pi 4 (мне 14)
Linux, в то же время, даёт нам и разумный набор слоёв абстракции, применимых в ситуациях, когда прямой доступ к чему либо или ручное написание некоего кода может вылиться в больший объём работы, чем тот, к которому готов программист. Много удобных инструментов можно найти в Qt и Java, есть целые стеки вспомогательных технологий, вроде Pulse Audio, Pipewire и gstreamer. Linux стремится к тому, чтобы её пользователи могли бы заниматься программированием, и не скрывает этого.


При чем тут Linux? JVM может быть установлена на любой (практически) платформе. Qt — мультиплатформенный фреймворк…
> Qt — мультиплатформенный фреймворк…
Только ставить его на винду — одни проблемы. Ещё хуже с Питоном. Не, когда пользуешься парой библиотек через pip — вопросов нет. А вот когда нужен в одном проекте Питон 3.5, в другом 3.8, в третьем две либы, из них одна доступна только через конду, второй в конде нет…
из них одна доступна только через конду, второй в конде нет…

Делаем в конде два окружения. Ставим самой кондой, что она может, а чего в конде нет — через pip (не забыв, конечно, активировать окружение сперва). Да, не совсем удобно, но по крайней мере работает.
Совершенно верно. Я не знаю, почему не дописал предыдущий комментарий, видимо отвлёкся. Так вот, когда так делаешь, под виндой то и дело либо библиотека тащит с собой wheel, который не может скомпилироваться, потому что у тебя VisualStudio стоит 2019, а у разраба 2015. Или библиотека из конды тащит свою .dll, а бибилотека из pip теперь видит её вместо системной, и изредка плюётся исключениями потому что там маленькая несовместимость. Ну или pyinstaller выдаёт пакет, который весит 2 гига, потому что он решил взять с собой весь Qt вместе с отладочными файлами.
Под Linux тоже бывают такие косяки. Но намного реже. Я не знаю, почему так происходит, но таков мой многолетний опыт хождения туда-обратно.

Я вам расскажу почему так происходит.


Основная масса тулчейнов писалась под линукс. И эти "упоротые" товарищи только декларируют портируемость, но не следуют ей.


Поэтому часто их (тулчейнов) использование под вин требует дополнительных танцев с бубнами.


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

Сейчас при наличии MaintenanceTool уже нет проблем.
Хочешь ставь двоичные образы любой версии, хочешь — качай исходники и собирай.
Одно время приходилось пользоваться Qt под виндой. Никаких проблем с установкой не припомню. Поставил и работал.
От питона бог миловал, так что ничего не скажу.
Сколько не ставил не Qt на винду — ни разу проблем не было. С питоном тоже вроде все норм. Да, со связями не так все гибко как в линухе.
В то время как космические корабли…
Практически во всех случаях, за исключением каких-то совсем уж экзотических, код, чтобы стать полноценной программой, обращается к заголовочным файлам и использует внешние библиотеки. Это происходит на всех платформах, но Linux подталкивает программиста к тому, чтобы он сам бы во всём этом разобрался, а не доверял бы заботу обо всём этом исключительно инструментам разработчика для некоей платформы.
Но ведь это актуально только для «старых» языков, без нормальной системы сборки и управления зависимостями. Сегодня и Rust и Go сами разруливают все связи и сборку.
Не все комбинации горячих клавиш в IDEA под ubuntu работают.

Много лет пользуюсь IDE от JetBrains под Ubuntu, с особыми проблемами не сталкивался. Если какие-то комбинации клавиш сталкиваются с комбинациями графического окружения (при использовании floating-окружений типа Gnome, KDE, Cinnamon — с i3wm вообще не помню таких проблем), то проблема решается элементарно переназначением клавиш либо IDE, либо окружения.

Скорее, это зависит от рабочего окружения. У меня были конфликты с используемыми горячими клавишами рабочего окружения. Решается сменой горячей клавиши в IDEA. Других проблем с горячими клавишами в *ubuntu не встречал.
Для меня серьезной проблемой вот было что многие Electron-приложения(в частности vscode) вызывали свое меню верхнее при переключении раскладки по alt-shift(переучиться на другую, для меня вот, просто нереально). И это проблема именно рабочего окружения. Работало нормально лишь окружение DDE(на Deepin и UBuntuDDE), да еще и в окружении которое использует AstraLinux, но у последних полгода назад когда я пробовал при установке nodejs не подтягивалось npm. Проблема на форуме создана уже года два, и походу ее решать они не собираются. Но благо в последней версии linux mint(cinnamon) данная проблема решена. Спустя наверное, всего лишь пять лет.

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

Что касается Windows, то тут у программиста есть два громадных преимущества.
Первое — отличная документация. MSDN и пачка связанных SDK — это просто охрененная вещь. Хотите написать драйвер? Без проблем, вас научат пошагово, покажут кучу примеров и даже намекнут на подводные камни. Вас интересует создание мультимедийных приложений? А может, работа с 3D-графикой посредством DirectX? Всё будет показано и разжёвано, описание всех функций находится на расстоянии двух кликов мышью, и вся информация собрана в одном месте.
В случае Linux вы будете, проклиная всё на свете, собирать информацию по крупицам со 100500 ресурсов, форумов и новостных групп, а потом ещё и актуализировать её, потому что значительная её часть, конечно же, давно устарела. И грабли все положенные будете собирать своим собственным хребтом, потому что никто даже не намекнёт, что вот это вот — deprecated и в следующей версии библиотеки уже будет убрано, а вот это только для отладочных целей и сильно просаживает производительность всей системы.
Можно считать, что по сравнению с виндой у Linux-программистов документации вообще нет. Есть какой-то полуфабрикат, на основе которого вы путём кропотливых исследований шаг за шагом накапливаете в вашем блокнотике актуальные доки по вашей проблеме.
Второе — это отличная совместимость на уровне софта. Если вы хотите не только программировать, но и распространять напрограммированное без раскрытия исходников, то под Linux у вас возникнут существенные сложности. Фактически, вам придётся взять на себя работу майнтейнера, раз за разом пересобирая ваш софт хотя бы для самых популярных дистрибутивов.
Мало того, Linux-софт требует постоянной поддержки. Он очень быстро протухает и перестаёт запускаться на новых версиях системы. Вы не можете просто написать один раз, зарелизить и забыть на 15 лет, вам придётся постоянно тратить ваше время, просто чтобы оно не перестало работать. Это чудовищная и совершенно непроизводительная растрата ценного времени, которому можно найти лучшее применение.
Есть какой-то полуфабрикат, на основе которого вы путём кропотливых исследований шаг за шагом накапливаете в вашем блокнотике актуальные доки по вашей проблеме.

Сейчас пишу PCI драйвер на linux и не могу передать словами как вы правы. Mailing листы состоят на половину из статей 2003-2007 года, на вторую половину из простых патчей. Очень много структур и функций с похожим функционалом. Release notes только грепать, нормальное summary там просто невозможно увидеть.


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

Что касается драйверов, то такая проблема есть. В частности, могу сказать про связанное с видео моментами. Производители видеокарт не особо заморачиваются с драйверами и документациями для ОС семейства Linux. Хотя, в последние несколько лет ситуация могла измениться в лучшую сторону. По крайней мере, хочется надеяться.

Что касается совместимости, то тут проблема, скорее, связана с зависимостями. Частично решается статической сборкой (когда это возможно, конечно).

Но проблема с зависимостями есть и под Windows. Проявляется всплывающим сообщением об отсутствующем dll/ocx/vxd и пр. Особенно для специализированного софта. И тогда приходится бегать по сайтам и искать их. А одну ошибку с .NET пока так и не удалось подправить — пакет элементарно не ставится на ОС.
Про документацию (MSDN) +100500!
От линуха бог миловал, но сейчас работаю под AS/400 (IBM i) — доки от IBM (Knowlege Center) на порядок хуже MSDN. И написаны кривым языком и с примерами так себе. Правда, и система посложнее винды и линуха вместе взятых…
Еще добавлю, что под линухом имеются проблемы со спецсофтом. Например для разработки под некоторые микроконтроллеры и плисы. Они то в целом бывает появляются, но не сразу и не такие стабильные. Видимо большинство разрабов, для которых покупают этот софт, сидят на винде. Поэтому тут даже выбора порой нет.
Эмм, с Vivado/Quartus особых проблем не замечал, даже наоборот, частенько линуксовые версии работали гораздо стабильнее. Modelsim да, та ещё история, но он сам по себе то ещё legacy.
У вас не было, у меня, к сожалению, было.
Камень преткновения был Altera MAX 10 FPGA.
Под Linux Quartus 15/16/17/18 — через JTAG только мог конфигурировать FPGA, а вот при попытке прошить проект во внутренню flash-память (CFM/UFM), Programmer вис и по таймауту давал ошибку. Приходилось ходить к Windows машине и там перепрошивать MAX10.
Надо будет проверить, как там новый Intel Quartus, может уже починили.
Quartus у меня с 14 по 19 версии спокойно шил JIC-ом Cyclone/Arria/Stratix, десятых максов да, не было, были только II и 5.
Перенес всю свою железячную разработку под лин уже лет 8 как. Немного сожалею, что не сделал это раньше.
С добавлением нового семейства мк в разработку все просто: нужен компилятор+либы, а ide остается старая, давно освоенная. Иногда нужны просто либы.
ide для плис (altera|xilinx|lattice) под лин нативные.
jtag отладчики работают. Хотя им пользуюсь редко.
Разрабатывать/отлаживать интерфейсы связи с помощью rpi/python — очень удобно. Практически любая тестовая последовательность на кончиках пальцев.
Да и шить зоопарк мк/пзу предпочитаю опять же через rpi.
Что еще нужно то?
Открываешь и читаешь исходники нужного куска системы/ПО. Берёшь любой уже написанный модуль ядра и делаешь из его исходников что угодно. Часто код самодокументируемый.

Про поведение проприетарных продуктов, не соответствующих документации, боюсь вспоминать.

Смотря с какой стороны смотреть :)

Я не программист, но:

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

Про совместимость бинарей — ну, Neverwinter Nights для Linux 2003 года у меня совсем недавно перестала работать из-за того, что в моем случае iglx сломали в xf86-video-intel, с modesetting работает. Вы же можете, как и в винде делают, тащить с собой часть библиотек нужной версии и так далее.

Про дистрибутивы — чушь собачья. В стародавние времена линуксовые версии софта распространялись без оглядки на конкретный дистрибутив, обычно в архиве со скриптом-инсталлятором, клавшим все в /opt. Есть люди, которые запускают линуксовые версии разного древнего софта ради ностальгии и тому подобного.

В стародавние времена линуксовые версии софта распространялись без оглядки на конкретный дистрибутив, обычно в архиве со скриптом-инсталлятором, клавшим все в /opt.

А ничего по сути и не поменялось ). Только вместо /opt теперь всё чаще /var/lib/docker или /snap если на десктопе ).

Фу, докер. Фу, снап. =/

Вот недавно вычистил все поставленное через flatpak, подумал, что Zoom можно и в веб-версии пользоваться.

Тоже так думал.
Но в течение уже второго крупного апргейда (16 на 18, теперь на 20) вижу, что все программы, установленные снапами, этих апгрейдов вообще не заметили. Просто работают, как раньше. Те же скайп, зум и другое. А вот с другими каждый раз приходится возиться…
Это отличный способ "заморозить" программу, чтоб не протухла. Естественно, с учётом сторонних издержек (лишние копии файлов и т.д.)

Danke schön. Не было в репах — подумал, что вообще нетуть.

EDIT: undefined symbol: _ZdlPvm, version Qt_5. Не прокатило, кароч. Void.
Может про какой-то системный софт вы и правы, но вот про драйверы — вообще нет. Во-первых, есть сам код всего ядра и можно тупо посмотреть, как оно работает. Код ядра довольно высокого качества. Читать его — одно удовольствие. Во-вторых, есть обширная документация ядра (в папке /Documentation). В-третьих, автора каждого фрагмента легко установить, и если что-то осталось непонятным, можно прямо спросить у автора.
Он очень быстро протухает и перестаёт запускаться на новых версиях системы. Вы не можете просто написать один раз, зарелизить и забыть на 15 лет, вам придётся постоянно тратить ваше время, просто чтобы оно не перестало работать

Уже 3 года пытаюсь убедить коллег использовать ip вместо ifconfig. Ведь его последний релиз произошёл в 2001-м году
Уже 3 года пытаюсь убедить коллег использовать ip вместо ifconfig. Ведь его последний релиз произошёл в 2001-м году

Это ладно. Всякие курсы вбивают в голову, проходимцам этих курсов, netstat, вместо ss, например.

Я бы сказал, не только программирование, но и использование операционки в целом, подразумевает 2 сценария:
1. У вас вызывает чувство удовольствия техническая сложность. Мозг радуется, когда вы в силах не задумываясь написать в консоли команду на пол-листа. Даже сам процесс установки, с выкачиванием зависимостей, компиляцией, многокилометровым полотном текста в консоли — радует глаз. Что, камера в Скайпе показывает перевернутое изображение? Сейчас загуглим, наверняка кто-то чинил. Вы чувствуете себя почти что Богом компьютера, в консоли вы можете всё.

2. Вам нужно поставить операционку несколькими кликами мыши, и чтобы всё работало. Не так: ВСЁ работало. Сразу и из коробки. Вы не хотите забивать голову командами, и вам приятнее визуальный интерфейс. У вас нет времени ковырять систему (ну, разве что отключить надоедающие автообновления), строчить команды на клавиатуре. И да, вы готовы заплатить за это, т.к. цените своё время. Для вас компьютер, программирование — это инструмент для реализации чего-то.

К сожалению, эти две альтернативы были возможны лет 10 назад. Сейчас уже не так. У меня, например, третий сценарий. Я готов порешать технически сложные проблемы, повозится в консоли и погуглить. И потом у меня будет рабочая система. Не буду говорить, что она идеально под меня и что она не глючит — это не так. И глючит иногда, и некоторые вещи сделаны не так, как мне нравится. Но она не выжирает дисковое пространство бесконечными обновлениями, не предлагает где-то зарегестрироваться и залогинится, не шумят вентилятором фоновые индексирование и антивирус… И еще куча подобных мелочей. Вот как-то так.


P. S. Подумал, что под ваш второй пункт MacOS еще пока подходит. Современная винда, имхо, немного тамагочи.

2. Вам нужно поставить операционку несколькими кликами мыши, и чтобы всё работало. Не так: ВСЁ работало.

P. S. Подумал, что под ваш второй пункт MacOS еще пока подходит. Современная винда, имхо, немного тамагочи.

А мне кажется под второй пункт не подходит ничего, MacOS уж тем более. А с выходом десятки и винда движется в противоположную сторону. Тут скорее вопрос в задачах, но ВСЁ не работает нигде. Серьёзные и нерешенные проблемы есть в любой экосистеме.
Проблемы, конечно, есть везде, но всё сильно зависит от восприятия. Я не фанат open-source, мне жалко время на ковыряние и допиливание, с моей точки зрения, подавляющее большинство бесплатного софта сильно уступает по качеству и возможностям платным аналогам (особенно это касается сложного софта, типа видеоредакторов. И да, я покупаю лицензию). Может быть, в светлом будущем, нам не нужно будет работать, а сейчас компания, оплачивающая труд программистов и менеджеров, создает более крутые вещи, чем группа энтузиастов, работающих за идею. А работать в качественном софте, где есть поддержка, мне нужно сейчас, а не в светлом будущем. Цинично, но вот к чем жизнь привела, когда-то был фанатом open-source и на компе стоял Линукс.
Мало того, Linux-софт требует постоянной поддержки. Он очень быстро протухает и перестаёт запускаться на новых версиях системы.


Обновил Mint с 19 на 20. И Mono Runtime уже не работает. Почему? А хрен его знает.

Вот что то про MSDN у меня другой опыт. Поиск находит только сишарп, а я на нем не пишу. Ищешь функцию винапи-он все равно шарповую находит. Както смотрел как мне написать драйвер usb устройства — самый простой вариант был "возьми libusb" и хотя звучит стремно- работает без проблем (да еще и кросс-платформенно). Вчера ставил TeamCity агента как сервис- вылезла ошибка, по коду ошибки на МСДН стало ясно что то-ли количество бананов в холодильнике не достаточно, толи папуасы новой гвинеи танцуют не в ту сторону. Оказалось что винде не нравится запускать сервис от имени пользователя без пароля.

MSDN в целом весьма хорош.
Но часто ускользает разница между MSDN и спец. разделами вроде platform sdk, которые тоже выдают результат в то же окошко поиска.
Ну и встречаются порой забавные накладки, вроде справки по poll (который есть на линуксах) — оно вроде пытается его имитировать, и даже копирует доку. Но вдруг оказывается, что по докам, к примеру, деактивация записи — это поставить её со знаком "минус" (типо было 10 — поставил -10 — и вроде как и число сохранил, и оно больше неактивно), а по факту тип идентификатора под виндой — беззнаковый. Упс...

В случае Linux вы будете, проклиная всё на свете, собирать информацию по крупицам со 100500 ресурсов, форумов и новостных групп, а потом ещё и актуализировать её, потому что значительная её часть, конечно же, давно устарела
я может что то упускаю, но в случае линукса у вас весь исходный код драйвера перед глазами. Более того через git вы можете отследить что, как и когда менялось. Разве это не лучшая документация для программиста? А что в случае windows?

Мало того, Linux-софт требует постоянной поддержки. Он очень быстро протухает и перестаёт запускаться на новых версиях системы. Вы не можете просто написать один раз, зарелизить и забыть на 15 лет, вам придётся постоянно тратить ваше время, просто чтобы оно не перестало работать
зависит от способа сборки бинарника. Так то и под windows если приложение требует условно .net 2.X, вы не запустите его на ос которая поддерживает только .net 1.x. Вам напомнить как они directx урезали на 7ке, а перед этим на XP?
я может что то упускаю, но в случае линукса у вас весь исходный код драйвера перед глазами. Более того через git вы можете отследить что, как и когда менялось.

Это не совсем так. В случае с драйверами, есть много с закрытым кодом и без документации. Если для какого-то устройства, всё же, есть драйвера в открытом доступе, то разбирать чужой код ещё то удовольствие. У каждого свой стиль и свои навыки. Разобрать код, конечно же, можно, но сколько это потребует времени — это вопрос.
Это не совсем так. В случае с драйверами, есть много с закрытым кодом и без документации.
Неужели под windows эти самые драйвера доступны ввиде исходников? Под linux я имел ввиду вот эти исходники

У каждого свой стиль и свои навыки. Разобрать код, конечно же, можно, но сколько это потребует времени — это вопрос.
а что под windows у всех один стиль написания драйверов?
Я имел в виду, что, несмотря на то, что Linux — семейство ОС с открытым кодом, система может работать и с проприетарными драйверами.

Если нужно написать свой драйвер под определённое устройство (необязательно своё), то тут нужно искать в сети все документы и описание и эти данные не всегда есть или не всегда актуальные.

Что касается разбора исходного кода, то там мало зависит от ОС или языка.

Под Windows, признаюсь, драйверов делать не приходилось. Даже не знаю есть ли какие API или документации для этого.
Seth Kenlon is a UNIX geek, free culture advocate, independent multimedia artist, and D&D nerd.

Автор статьи не является «программистом». Все что он описывает касается «автоматизации», «написания несложных скриптов». Его аргументы не имеют никакого отношения к «программной инженерии», «разработке программного обеспечения (под какие бы то ни было платформы)».

Если вы занимаетесь чем-то (например мультимедиа), и любите автоматизацию — эта статья для вас, присмотритесь к Linux. Если вы хотите заниматься «программированием» (разработкой программного обеспечения) — проходите мимо.
Если вы хотите заниматься «программированием» (разработкой программного обеспечения) — проходите мимо.

Оу, спасибо за ваши аргументы, конечно же вы меня сразу убедили! (нет)

Мимо этой статьи, конечно. Ничего против Linux'a для программистов я не имею. Сам занимался разработкой используя и Win, и Linux, и MacOS. И Linux-опыт оцениваю как положительный. Но если выбираете ОС для «разработки ПО» — поищите другую статью :)

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


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

Да черт бы с ними, с холиварами. Меня беспокоит, что новички, прочитав эту статью, сделают неправильные выводы о том, что такое зеленый, а что — красный. К ним свой призыв и обращаю — автор не из этой индустрии, то что он пишет — не имеет отношения к «разработке под Linux», как и сам автор. Это про автоматизацию.

Хотел детально натыкать автора носом в то, где он пишет чушь, но это же споры с копипастой. Автор смешивает в одну кучу разработку ПО и написание скриптов для обработки десятка документов, а я начну докапываться, что системы управления зависимостями во всех ОС работают примерно одинаково, мавены-градлы там, ну смешно.
Ну да, очень «удобная» для работы операционная система. Шаг влево-шаг вправо — не работает. Почему? Непонятно — в лучшем случае получишь полотенце лога, которое разбирать можно часами. За каждым вопросом надо лезть в гугл. При этом подавляющее число рецептов по его разрешению — частные случаи от тех, кто ничего не понимает.

А под Виндовос как-то подругому? Разве что без полотенца лога и даже нет ключевых слов для погуглить.

виндоус ошибки вида 0x12931834y71893719 обратитесь к администратору something goes wrong не намного приятней.
Линукс очень приятно ковырять и настраивать под себя. После этого если ничего не обновляешь, ничего не ломается годами.
Винда приходит и обновляет тебя насильно. 10 винда ещё и ресурсы ест как не в себя.
На линуксе у меня кастомный виндоус менеджер летает, а на винде не то, что кастомного вм нет, так ещё и тормозит всё безбожно.

Вообще, плюсы есть и там и там, линукс действительно требует задрачивать настройку и вечно красноглазить — но в последние годы он постабильней.
Вообще, плюсы есть и там и там, линукс действительно требует задрачивать настройку и вечно красноглазить — но в последние годы он постабильней.


Не знаю, я тупо ставлю linux mint и работаю, без красноглазия.
Вам везет. Мне пришлось пересесть на ubuntu из-за того что из под windows 10 проект на java + tomcat8.5 не хотел выполнять update метод для базы mysql. Так скажу вот что: Установить то установилось сразу, но второй монитор из коробки не завелся(в отличии от windows) К слову у меня ноут с двумя видеокартами(amd ryzen 4600h + nv 1650ti). погугилв, нашел решение, вуаля второй монитор подключился, но какое же разочаровании меня ждало, когда я перезагрузил комп, а родной экран ноута система тупо не видела=) И ясного ответа я так и не нашел. Пришлось отказаться от второго экрана. Следующая проблема — при видеоконференциях в браузере chrome микрофон живет своей жизнь — он сам себе увеличивает громкость. Так же из-за окружения Gnome в IDEA не работали часть комбинаций — выяснил только погуглив…

Но да, работать вполне нормально что в windows что в ubuntu если привыкнуть к соответствующей ide. Но вот такие проблемы в обычных вещах — не делают Linux лучше windows для разработки ПО… Мелкие косяки, с которым мне приходилось сталкиваться во время разработки в новой ide и программными продуктами, бесили до жути. При этом за 4 месяца с покупки ноута на Windows и использованием там VS 2019 + mysql(разработка серверной части и десктопного приложения) проблем не было от слова совсем. Включил, установил, работаешь.
микрофон живет своей жизнь — он сам себе увеличивает громкость

Было такое в скайпе, кажется, раньше. Лечилось снятием галки "automatically adjust microfone settings". Посмотрите в хроме или на уровне системы что-нибудь похожее.

у меня тоже второй монитор заводиться не хотел после ребута.
оказалось виноват встроенный опенспорсный драйвер на видеокарту нвидиа.
пробовали устанавливать пропиетарный-оригинальный драйвер от нвидиа? click
Да. После него было чуть лучше, но были свои косяки — например основным монитором считался подключённым через hdmi. Потом, при отключении монитора, главным не становился дисплей ноута=) Короче Видимо сложная для меня эта ОС… Точнее так — время на разбор всего этого жалко…

Mint при очередном обновлении угробил видеодрайвер — началось адовое мерцание экрана — глаза покраснели сами по себе. Пришлось тащить драйвер с сайта amd и ставить ручками. А после этого и mint выкатил новую версию драйвера. Только теперь они конфликтуют при обновлении и любое обновление падает с ошибкой. Вполне себе линукс вей.

По крайней мере можно обратиться к базе MSDN и ошибка вполне конкретная. При необходимости можно воспользоваться системными утилитами и выявить источник сбоя. При этом все в удобоваримом виде, а не в виде терминального окна с вырвиглазными огромными белыми буквами на черном фоне с терминальным же шрифтом. Использование текстового редактора для просмотра логов- ужасно, это прошлый век. Хотя для Windows есть древняя утилита ProcMon. Даже тогда разработчики подумали о пользователях и сделали удобную систему фильтров. Аналогов полноценных в linux-подобных системах нет. Все, что есть, дальше текстового лога не ушли. Ну и о чем говорить?

Уже довольно давно в линуксе нет текстовых логов (вернее они опциональны), а стандартное средство просмотра логов — journalctl.

Не обобщайте так пожалуйста. journalctl это только для тех кто реально перешел на systemd и только для просмотра логов контролируемых им сервисов. Обычные же приложения пользовательского режима весьма успешно пользуются stderr чтобы рассказать о своих проблемах и вполне себе текстом.

Я имел в виду системные логи, для них, на мой взгляд, journalctl является стандартом де-факто: с линуксом без systemd вы сейчас скорее всего не столкнётесь, если специально искать не будете.

Стандартный способ репорта об ошибках — stderr. Ну ещё вызов syslog. И туда направляется именно текст, может быть с какими-то вспомогательными метаданными (важность и т.д.). На этом всё, пули вылетели!
Куда оно пойдёт и где осядет дальше, и какой тулзой вы будете всё это просматривать — это уже не задача приложения, чем и обеспечивается гибкость.

Ну вообще-то уже давно не так все однозначно. И journalctl именно для этого и придумали, потому что syslog с его facility уже давно не удовлетворял многим запросам.

не в виде терминального окна с вырвиглазными огромными белыми буквами на черном фоне с терминальным же шрифтом
Цвета и шрифт можно менять как вздумается. Хотите чёрный по белому с Comic Sans — пожалуйста.
Использование текстового редактора для просмотра логов- ужасно, это прошлый век.
Ну используйте графический, если вам текстовый не нравится для просмотра текстов. Мне Gnome при падении какой-нибудь программы выдаёт вполне себе графическое окошко с кнопочками, даже предлагает багрепорт создать.
дальше текстового лога не ушли
А что может быть «вместо»? бинарный? systemd уже, вроде, давно в бинарном пишет, приходится journalctl использовать вместо любого из текстовых инструментов.

А в целом, если я всё правильно понял, вы не прониклись Unix-стилем, когда каждая программа делает что-то одно, но хорошо, с вытекающими пайпами.
Ладно ладно. Я пожалуй засуну свои tail, head, grep, awk, sort и прочие инструменты работы с логами и не буду вам про них рассказывать. Вы же наверняка мне ответите, что вы не испытываете в них необходимости и можете легко работать с логами любого размера. А читать логи в текстовом редакторе — и правда неудобно, так не стоит делать.
Сможете вытащить, например, к какой записи в ini файле обращается программа, в какой последовательности и в какой момент? И что делать с программой, которая НЕ ВЕДЕТ логи?
> tail, head, grep, awk, sort
а в procmon достаточно кликнуть на фильтр и указать интересующее слово. Например, имя файла процесса. Потом кликнуть на кнопку включения мониторинга. Когда надо выключаешь. И интересующая тебя информация перед глазами. Причем этот мониторинг на уровне операционной системы. Я уж не говорю про мощную службу журналирования Windows.

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

>Возможностей фильтрации и агрегации логов в командной строке больше чем в UI
В подавляющем большинстве эти возможности не востребованы. Достаточно того, что обеспечивает UI. Это экономит массу времени и требует минимум усилий для освоения инструмента. Мало того, в отличие от командной строки, UI обеспечивает выбор доступных рабочих вариантов и ограничивает количество ошибочных. Командная строка всегда следствие отсутствия адекватных инвестиций в ПО, за что платит своим временем пользователь. Серьезные коммерческие продукты с командной строкой не делают.
> Серьезные коммерческие продукты с командной строкой не делают.
Серьезные коммерческие продукты без консольного доступа и возможности автоматизации развертывания и конфигурации даже не будут рассматриваться к покупке. Но, вероятно, мы о разных продуктах говорим.
Назовите хоть один продукт под Windows, основанный на консоли, подпадающий под вашу сентенцию.
Автоматизацию развертывания и конфигурации ПРЕКРАСНО можно сделать на UI — мастера давно придуманы. Консольный вариант является абсолютно не User-Friendly и гордиться тут нечем.

"В подавляющем большинстве эти возможности не востребованы." Это вы конкретно про свои потребности утверждаете?

Про strace уже сказали. А как вам возможность повесить хук на вызов и завершение любой функции с чтением аргументов/возвращаемого значения? Как возможность в любой момент (без перекомпиляции) загрузить в ядро программу, которая будет выполнять какие-то действия в ответ на определённые события? И такую программу можно воткнуть практически в любое место любой другой программы, не перезапуская её или так же, "на горячую", в любое место ядра.

дебагером и в windows можно пользоваться. Вопрос в том, сколько человек это делают. Два или три?

Ну, например, я использую это в продакшене — небольшие eBPF программки, перенаправляющие сетевые пакеты куда нужно, в зависимости от содержимого. Да что там, iptables на этом построен.

Вообще-то если программа НЕ ВЕДЁТ логи, с ней сложно что-то существенное делать под любой ОС. Отследить, какие файлы открывает и системные вызовы делает — да, но обычно не более того. Но надо понимать, что в обоих случаях это некие сторонние тулзы (руссинович под виндой, strace/bpftrace под линуксом). И в обоих случаях это "мониторинг на уровне файловой системы". Ну и про мощную службу журналирования говорить не стОит, покуда — ну, так же она есть и под никсами. Т.е. возражение в целом непонятно; чем одно "качественно лучше" другого? На обоих системах можно как работать с логами (если приложение их ведёт), так и анализировать поведение профилировщиками/трейсерами.

Расскажите нам пожалуйста, как использовать Procmon при проблемах класса «не логинится», «мышь не двигается» или «чёрный экран».?
Procmon это не менеджер паролей. Если память плохая — записывайте на бумажке. Батарейки в мышке тоже желательно вовремя менять и на оперативную память денег не жадничать. А по поводу черного экрана что-то не припоминаю подобных проблем под Windows. Любые сбои под Windows сохраняются в системном журнале, также как и различные авторизации. Если какие-то регулярные проблемы, все это журналирование можно донастроить и выловить ошибку. Опять-же, в графическом интерфейса и справиться с этим может даже школьник и домохозяйка, при должной мотивации.
Вместо того, чтобы задавать дурацкие вопросы, наберите в гугле «process monitor». Может, оцените качество проработки интерфейса этой утилиты по сравнению с любой терминальной программой. Я не собираюсь заявлять, что эта утилита панацея, но свои задачи она выполняет прекрасно и пользоваться ей удобно.
А как прекрасно под Win отлаживать ошибки ACPI, я в своё время чуть не всобачил от такого счастья в документацию строчку «Windows in ACPI mode is not supported».
Как тестировщик добавлю +1 в пользу Linux. Часто замечаю что у коллег при использовании специфических инструментов, таких как эмуляторы (к примеру Android Studio) или снифферы (Charles) меньше всего проблем с установкой и использованием возникает именно при работе под Linux
Главная причина, почему я НЕ сижу на Linux — отсутствие там среды разработки уровня Visual Studio.
Я вполне нормально работаю с линуксом как пользователь, в том числе на работе у меня заведена небольшая виртуалка с линуксом для «личных», не относящихся к работе дел. Одно время даже пытался дома полностью перейти, просидел где-то полгода и вернулся на винду. Хотя почти для всего софта подобрал аналоги. Да, мелкие баги и недоделки тоже раздражают, но главное — именно из-за отсутствия Студии, в том числе ее отладчика.
Qt Creator неплох, но он далеко не идеален. Родные линуксовые IDE… даже не знаю. Как-то помню, давно это было, запустил KDevelop, куда-то щелкнул — и он упал. В общем вот так.
Главная причина, почему я НЕ сижу на Linux — отсутствие там среды разработки уровня Visual Studio.

Есть прекрасные IDE от JetBrains.

тут про c++ и clion все-таки не идеальна
Нет, конечно, но в последнее время разрабатывая на c++, python для меня самым удобным средством оказалась Visual Studio Code. Про большую VS ничего не могу сказать, так как я уже лет десять на linux. Все мои попытки завести PyCharm и CLion оказались безуспешны, но я собираюсь вновь попытаться, так как intellij для JVM действительно вне конкуренции.
Все мои попытки завести PyCharm и CLion оказались безуспешны

А можно подробнее? У меня на Ubuntu нормально работают IDEA, PyCharm, PhpStorm. CLion когда-то тоже запускал, правда, давно.

Большой проект:


  1. несколько сотен файлов на смеси python, c++ и автогенерация из protobuf,
  2. необходимость собирать и редактировать на удаленной машинке
  3. есть всякие извращения вроде подгрузки модулей из билд директорий
  4. несколько нестандартная настройка linter-а для обоих языков
  5. scons в качестве билдсистемы

В "идее" (тут я пробовал вроде clion с плагином для питона, может стоит наоборот) все равномерно красное и лаг в несколько секунд при попытке редактировать.

Visual Studio Code сложно сравнивать с CLion. Первая — продвинутый текстовый редактор со свистелками. Вторая — именно IDE.

ну тут есть о чем поспорить с точки зрения терминологии. но зачем?). Что я хотел сказать: на крупных проектах на смеси питона и c++ CLion превращается в текстовый редактор: навигация через глобальный поиск по файлам, рефакторинг отсутствует, билды через терминал…

Так-то да. Причём не просто в текстовый редактор, а весьма тормозной. Если не использовать его возможности как IDE, то смысла особого в нём нет. Разве что ради работы с vcs. Но тут, думаю, проблема больше не в нём как таковом, а в том, что он не умеет со скунсом. Я сам ради этого перетащил один проект на cmake, уж очень хотелось в нём комфортно шариться (и, кстати, перетащилось достаточно "линейно", даже с тестами. В смысле, не рокет-сайенс, а достаточно механическое переписывание кода с питона на cmake).

У Visual Studio есть несколько киллер-фич:


  1. Современная Visual Studio Community бесплатна, причём даже для коммерческого использования. При этом Community-версия полнофункциональна и лишена только фич, которые востребованы в кровавом энтерпрайзе. А вот у Rider нет бесплатной лицензии. Да, ничто не мешает пользоваться EAP-версиями или каждый месяц сбрасывать триал, но это немного извращение.


  2. Visual Studio поддерживает полноценную работу с несколькими языками одновременно. Например, можно одновременно разрабатывать библиотеку на C++ и графический интерфейс на C#, который эту библиотеку использует. Также возможна одновременная отладка кода на C++ и C#. А вот с JetBrains такой фокус не прокатывает: вы отдельно пишете C++-библиотеку в CLion и отдельно интерфейс в Rider.


  3. Отладка кода в Visual Studio, с моей точки зрения, сделана намного лучше. Например, Expression Evaluation в студии удобнее.


IDE от JetBrains не тот уровень?
Меня удовлетворяет качество их продукции. Тем более с одной лицензией я могу запускать их средства разработки как на Windows, так и на Linux.

Есть один пунктик к С/С++ — система сборки. CLion отлично работает, даёт кучу свистелок, подсветку синтаксиса и т.д., когда весь проект в целом собирается с помощью cmake. А если там autotools, скунс или вообще голый баш-скрипт или мейкфайл — увы. Что-то с мёртвой точки в этом направлении стало сдвигаться лишь в последний год-полтора.
Ну и помимо этого есть особенности в производительности. Студия, скажем так, гооораздо шустрее, особенно на больших файлах. Но зато clion не изобретает велосипедов и использует для анализа стоковый clangd, который тоже умеет очень многое.

Попробуйте Visual Studio Code — там как минимум последний год хорошо работает отладчик C/C++-кода при установке расширения «C/C++». По функциям, виду и поведению очень похоже на Visual Studio на Windows.
Да, инструменты рефакторинга кода пока слабо развиты, но как минимум Go To Definition хорошо работает.
А я просто люблю програмировать.
Ну кому что кому ехать а кому шашечки
Где-то в десятом году, на новой работе пришлось с болью и большой неохотой переходить на Линукс, там он требовался для проекта. Потом как-то быстро привык, приспособился, и сейчас у меня на основном моем ноутбуке, на котором и работаю и использую повседневно, стоит Линукс, по необходимости приходилось периодически использовать десятую винду. Не скажу что прямо так плевался, но было не очень комфортно.
У Линукса как и у всего в этом мире есть свои недостатки, как и свои плюсы по сравнению с альтернативами. Поэтому и все эти холивары будут бесконечными. Уже то хорошо, что у нас есть альтернатива, было-бы печально жить в мире, в котором есть только одна Винда.
В 2021 году Linux выглядит как никогда привлекательно.

Ха. Ха. Ха.

Содержательный комментарий. Огромное вам спасибо за него. Благодаря вашему тексту я осознал многое! Очень благодарен!
Пожалуйста, не останавливайтесь, порадуйте сообщество массой развернутых текстов в таком-же духе. Ну, вы знаете там — «хе-хе», «хо-хо», «Огонь!», «ыыыы!»

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

Оригинальная философия. С такой, наверное, действительно тяжело жить.
Что касается Windows,… Хотите написать драйвер? Без проблем, вас научат пошагово, покажут кучу примеров и даже намекнут на подводные камни.

Так вот ты какой, северный олень писатель драйверов для Windows...

Приходилось много работать с PDF на винде и именно через pdftk.
А также прекрасно работают пакетные инструменты Adobe, которые под Linux не взлетят.

Открытость кода рабочих программ тоже никак не связана с операционкой.
И там и там есть разные типы софта.

При чём тут Linux?

А программировать это в принципе удовольствие )) Независимо от среды.
Добавлю свои 5 копеек в пользу линукс. С линуксом уже много лет. Даже не помню сколько. Настолько, что уже привычнее именно линукс. Пытался недавно перейти на W10(ну как пытался, просто дома появился ПК на 10ке и решил на нем поработать). Результат — не смог нормально работать. Сначала опишу среду: VSD с плагинами для разработки в докер, сам докер на WSL2. 3 докер машины: одна бек, вторая фронт VUE, третья Postgres. Проблема возникла именно с машиной под фронт — при изменении файлов внутри докера не запускался процесс повторной сборки проекта. Система не видела изменений в файлах. Наверняка те, кто давно работает в примерно такой связке на Windows(хотя мне это даже сложно представить) знают как это исправить, но я так и не победил. Или может не сильно и хотел… Кстати, если отпишетесь как решаете подобную проблему — будет весьма позновательно. Может вообще столкнулся с багом, но сравнивать мне не с чем.
А мне в Linux нравится, что можно создавать каталоги прямо в оперативной памяти и работать с ними как с обычными каталогами и файлами. Скорости доступа на порядки выше SSD. Перекодировка часового видео в пару минут укладывается.

Привет вам из 1996 года когда еще в DOS RAM-диск был.

Привет Вам из 2021, где винда 10 жрет память как не в себя. О каких там еще виртуальных дисках можно говорить?
Зато в линуксе добавил одну строчку в настройках(в винде еще надо танцы с отдельными прогами) и диск сам подключается.
На линукс 300 мб оперативки под систему, остальная память для работы.

Без GUI — да, памяти немного ест. А вот в GNOME у меня Firefox и SublimeText выедают примерно 5-7 Гб на двоих.
Винда меня поражает не запросами к памяти, а вот требованию к дискам — сколько ни дай — все мало. Отвел 100Гб на диск C: — папка Windows растет и растет. :(
Захотел поставить VisualStudio — попросило 3Гб и еще каких-то дополнений накачало на хз сколько.
Это я еще в игры не играю...

Пользуюсь XFCE. 300 Мб оперативки и GUI. Правда сейчас уже Plasma KDE оптимизирована, что меньше XFCE даже потребляет.
Я с линуксом дружу около 5 лет, использую в основном в качестве десктопа. Лучшее что для себя нашел это Арч+i3. Сейчас вот начал изучать С++ и обнаружил, насколько винда превосходит линукс в этой сфере. IDE способного потягаться с VisualStudio просто нет, библиотек нет итд. Коммерческий продукт отличается от free так же, как общественный туалет от платного. Продолжаю ненавидеть виндовс и пытаюсь грести в сторону андроид разработок, ибо андроид все же никсовыя система, хотя и среда блин разработки для него опять только на винде! А я категорически не хочу снова на винду!))) Короче печалью наполнились думы мои

Среда разработки под андроид есть не только под винду.

/me посмотрел на AndroidStudio под gentoo linux, установленную штатным менеджером из дефолтной репы дистрибутива и улыбнулся.
А у меня, наоборот, с VisualStudio проблемы. В частности, когда нужно перевести проект старой версии VS в новую версию. Всё время чего-то не хватает: требует установки компонентов/файлов. Один из проектов, так и не смог нормально перевести — ругался на отсутствие lib файлов, хотя они там были. Я только под Linux смог спокойно разрабатывать, сфокусировавшись на задании, а не об очередной проблеме с настройками.
Ну, тут каждому своё, я полагаю. Поэтому, нельзя однозначно сказать какая ОС лучше. Нужно попробовать и решить для себя.
2% пользователей работают на Linux, в пределах статистической погрешности. Писать программы надо под той ОС на которой работает 80%, а это знаете какая — Windows.

Как вы думаете, на какой ОС работает веб-сайт, на котором вы оставили свой комментарий?

А на какой ОС работает браузер в котором читают хабр большинство пользователей?

Ну и на какой же, по вашему мнению?
Лень долго искать, взял первые релевантные результаты из гугла по поиску "habr статистика ос":
https://habr.com/ru/post/357646/ — 2016 год, "… статистика со Stack Overflow"
https://habr.com/ru/post/243183/ — 2014 год, "Под какой ОС и на чем вы программируете?"

Вам лень, а у меня нет данных. Данные есть у АНБ США, но оно нам не скажет.

Как вам там в 2000 году?
В 2021, если вы собираетесь делать коммерческое приложение, вам надо будет выбрать, писать сначала под веб или под мобилки. Если выберете мобилки, то надо определится, будет ли первым Андроид или iOS.
Потом уже речь пойдет про десктоп — под Windows, где много неплатежоспособных, или под Мак, где пользователей мало, но они любят покупать.
И где-то тут появится светлая мысль покрыть максимальное количество платформ, написав ваш софт на электроне.
И вот так мы получили тот софт, который имеем сейчас ...

Я пишу на 1С, 99,9% это десктоп, чисто коммерческие приложения, все платежеспособные и почти все под Windows, сервера сейчас чаще ставят на Linux чтобы использовать Postgres, импорт замена MSSQL. Посмотрел специально статистику доли рынка в РФ: Windows-56%, Android-22%, iOS- 8%, OS X-8%, Linux-5%. Это суровая реальность, 1С это всегда деньги. А вы на электроне ищите платежеспособных, удачи.

Ну логика понятна теперь. "Я пишу на 1С, мне удобнее Windows, значит все должны сидеть под Windows?". Океу.

Не манипулируйте, и не лгите, я нигде не писал, что все должны сидеть под Windows.
Писать программы надо под той ОС на которой работает 80%, а это знаете какая — Windows.

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

Удачи вам с 1C, люди, пишущие под FPGA, смотрят на ваши «деньги» и ржут. И да, они не привязаны системой(1С), используемой по большей части только в РФ, к месту работы.
На вашу попытку оскорбить отвечу так, Билл Гейтс тоже ржет над вашими деньгами «люди, пишущие под FPGA» и более не собираюсь общаться с вами, пока не умерите свое ЧСВ.
1) ЧСВ из ваших комментов начало течь раньше, я просто добавил толстоты в своём.
2) Пора наконец признать, что 1С нужен только в РФ и СНГ, а всякие JavaScript/PHP/C++/Java и т.д. — во всём мире Если уж вам так дорого программирование под всякими ERP и прочим, перейдите на ABAP и получайте ещё больше в SAPе.
80% пользователей питаются всякими вредными для здоровья продуктами. Производить надо именно вредные продукты.
Большая часть серверов в Microsoft работает на Linux. Это все что вам нужно знать про сервера на Windows.
Если 80% работает под Windows, то и программировать надо именно под этой системой. Почему? В любой программе есть ошибки, отладка и UI именно под Windows позволит обнаружить специфичные ошибки. В любой ОС есть свои особенности. Если вы пишите под Linux, вы не сразу нарветесь на особенности Windows, вам позднее пользователи скажут, а это влияет на ваш авторитет, т.е. и на будущие деньги которые потом будут платить за работу. Но у нас не диктатура и я лишь советую, в любом обществе найдется 5-10% которые будут идти против течения и это нормально.

А если не 80%? И откуда вы вообще взяли эту цифру?


Если вы пишите под Linux, вы не сразу нарветесь на особенности Windows

Пишу распределенный бэкенд для серверов. Определенно, очень не сразу нарвусь на особенности Windows. Авторитет, конечно, жаль, но что ж делать..

Из личного опыта, так себе представлял, но gs.statcounter.com дает такие данные по всем ОС и платформам в РФ: Windows-56%, Android-22%, iOS- 8%, OS X-8%, Linux-5%. А таких кто пишет распределенный бэкенд для серверов очень немного, думаю 1С-ков поболее будет.
[sarcasm mode]Ну так разворачивайте ваши сервера на Windows 98, что бы, так сказать, познать юзе экспириенс[/sarcasm mode]
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Информация

Дата основания
Местоположение
Россия
Сайт
ruvds.com
Численность
11–30 человек
Дата регистрации
Представитель
ruvds

Блог на Хабре