Наткнулся на очень интересный комментарий к статье "Windows vs. Linux в настоящее время" (https://habr.com/ru/articles/729842/), который ясно выражает причины, по которым #Linux в принципе не станет главной ОСью планеты (орфография исправлена): К сожалению, десктопный linux это уникальный набор чудовищно плохих инженерных решений. Настолько плохих, что не удивлюсь, если топы дистрибутивов получают зарплату в мокрософте и еппле. Я постоянно поливаю говном Андроид, и, говоря, что он запилен первокурсниками, но на фоне линуксового десктопа кривожопый андроид просто шикарно задизайнен. Посудите сами: например, у ведра есть такая штука, как универсальный формат пакетов — apk. Прикиньте, я могу скачать апк со стора, напрямую от разработчика, или даже васян-сборку с 4pda. И она установится на любой кривейший кастом, на весь перепиленный внутри сток от самсунга, или вообще на мутанта от ксаоми. До чего дошли технологии в 2023 году, а? А что у нас есть в линкусе? Ммм, .deb, rpm, appimage, snap, flatpak... В одном дистре работает одно, в другом другое, куча форматов пакетов - и все по-своему говно! Нет, серьезно, разговор о том, как просто установить программу в ОС, в случае линкуса — это сборник анекдотов. Это все бы не звучало так смешно, если бы линукс считался поделкой типа болгенос, а не серьезной ОС для программистов. Начнем с deb пакетов. Что такое deb пакет? Это просто зипарь, набитый sh скриптами запускаемыми от рута. После этого вы над Виндой смеетесь? А пакетные менеджеры? Это бóльший инженерный ужас, чем приложения на электроне. Типа, чтобы поставить пакет, система должна иметь доступ к серваку, на котором лежат зависимости этого пакета, и всё это разруливать. А если интернета нету? Я иду нахер. А если у меня конфликты версий зависимостей? Я иду нахер. А если у меня версия приложухи немного старая, и нужной либы в репе моей бубунты нету, зато была в прошлогодней? Я иду нахер. А если у меня бубунта старая, а ее репы дропнули? Я иду нахер. Говорите, зато у вас DLL Hell'а нету. Лол, я сел за баранку этого пепелаца во времена Windows XP. И знаете че? Я никогда этого мифического DLL Hell не видел, вообще ни разу. А вот Dependency Hell вижу не так уж и редко. Кто вообще придумал эту больную тему с таким дебильным линкованием либ? Почему нельзя просто взять список общеупотребимых либ, типа libc, libpng и тп, зафиксить в своем дистре целиком и 10 лет поддерживать как API. А остальное пусть аппы с собой таскают в пакете. Что, говорите, какой ужас будет две копии либы на пару килобайт, ужасное расточительство? Да этот комментарий внутри сайта весит в кеше браузера в 100 раз больше, на вашем ssd на 1тб за 100$. Это даже не экономить на спичках, это сидеть считать сколько спичек в каждом коробке. Почему если у меня одна аппа хочет libpng допустим 1.0.0, а другая 1.0.1 я должен какойто лютейший гемор с пакетным менеджером иметь? Сколько лет назад у libpng менялся бинарный интерфейс? 20? Почему я могу взять собрать exe в 7 винде, и запустить его на 10 и на 11. Или собрать бинарник в какойнить мохаве макоси, и запустить на вентуре, причем даже на другой архитектуре процессора, и не иметь никакого гемора. А если я просто соберу бинарь в убунте, в какомнить арче он не заведется. А сама система репозиториев? Десятки дистрибутивов, в каждом десятки мейнтейнеров, годами делают огромный дублирующийся объем работы - копируют себе на серваки кучу разных приложений, следят за их версиями, сборкой и тп. Вместо авторов этих приложений. Огромный набор усилий, который идет только на то, чтобы увеличивать фрагментацию. "Тыничиво нипонимаешь, это другой подход к разработке софта, репозитории с свободным софтом это круто!". Да, например, на Ведре есть F-Droid, с которого в один клик спокойно ставится свободный софт, на любой ведро девайс, без необходимости иметь штат мейнтейнеров на каждый васянский кастом с XDA. Почему под систему, которую написали студенты, набранные по квотам из коррекционных классов, осилили нормально сделать, а под "serious programmer OS" нет? Ох, AppImage, Snap, Flatpak? Можете вот тут коментами обчитаться: https://habr.com/ru/articles/673488/comments/#comment_24477960 чтобы прочувствовать всю боль, посмотрите, что пишет автор AppImage: https://habr.com/ru/companies/southbridge/articles/466301 Хотя если честно, AppImage с Flatpak выглядят даже подающими надежды. Но Snap вообще настолько плох, что я вообще писать про него не буду, игнорирую. И на всем этом фоне про то, что в macOS ты просто берешь .app, кладешь его в папку Applications и все работает, и так уже наверно лет 20, наверное, даже стыдно говорить. А знаете, что еще есть в ОС, которая написана даже хуже, чем Винда, андроиде? Там есть лаунчеры. Ну типа если мне не нравится интерфейс моего рабочего стола, панельки там, доки и прочее, я беру, ставлю другой лаунчер, где все как мне нравится. И каждый может выбрать лаунчер по своему вкусу, свобода! И что, что приложения для одного лаунчера выглядят как говно в другом? Нет. Нужно тащить пол-системы, создавать франкенштейна чтобы завести специфичную прогу для одного лаунчера, в другом? Нет, зачем? Может быть нужно систему с нуля из другой сборки ставить, ну или сидеть перебирать систему в терминале, чтобы другой лаунчер поставить? Нет, ты что дурачок, просто устанавливаешь apk... А знаете почему так? Потому что UI ведра — это универсальное API. Потому что за отрисовку виджетов отвечает API. Потому что лаунчер это просто приложение для специального API, которое рисует envieroment для рабочего стола. Потому что, несмотря на то что этот API чуть ли не эталон дерьма, он все равно в тыщу раз лучше ситуации, когда никакого апи для GUI нет вообще. Если я хочу написать приложение с окошками для десктопной системы на линкусе, я начала должен впилить в него поддержку двух оконных серверов. Ну ладно, хотя бы одного, и так сожрут. Один накостылен в 70е, на который забили, вместо того чтобы допилить, но при этом все юзают. А второй уже лет 10 с лишним костылится, причем так херово, что костыли из 70х кажутся продуманным проектом. И это только пустые окошки. А если я в них кнопки хочу? Правильно, я должен взять одну из двух популярных либ с кнопками, причем с одной либой у меня аппа будет работать на половине дистров, а с другой либой на другой половине. Не, она в принципе заработает, но будет выглядеть как говно. Але, Qt-приложение на Винде и Маке выглядят нативнее, чем на самой популярной линуксовой бубунте. Для андроида я просто верстаю экран в ide, и моя аппа будет нормально работать и выглядеть на любом лаунчере. Че, реально? Как ребятам с умственной отсталостью создавшим ведроид удалось создать такое технологическое чудо? А потом все удивляются почему линукс занимает 1% десктопа. Потому что короля играет свита, а ОС играет софт. А софта под линукс нет. Потому что запить и поддерживать софт под настолько черезжопно спроектированную систему это никому не нужный геморрой. Т. е вместо того чтобы допилить тот же wine до состояния, когда софт под ним в 1 клик запускается, вместо того чтобы принять хоть какой-то стандарт декстопного API, вместо универсального формата пакетов, все развлекаются защитой абсолютно ублюдских технических решений. Все это под рассказы с серьезными щами про ос для программистов. Лучше расскажите, как так получилось, что куча высококлассных программистов, написали для себя систему, в которой архитектурные решения в разы хуже, чем в андроиде? Который считается общепризнанным говном в плане своей внутренней реализации. И под которую нет софта для программистов. Лол, например, под Винду и мак куча годных гуевых git клиентов, а под линкус нет. Под винду и мак нормальные иде для плюсов появились в 90х, а под линукс в только 2009, а совсем нормальная в 2017. Да-да, рассказывайте, что программировать надо в консоли. Или вообще в виме, который чтото среднее между деструктивной сектой и сексуальной ориентацией. А еще лучше сделайте мысленный эксперимент. Представьте себе мир, где еппол делает макось опенсурсной, при этом даже полностью плюя как она работает на немаковском железе. Сколько в таком мире просуществует декстопный линукс? ... Ну да, свободный ELF - формат бинарников, получилось сделать общим для всех юниксов. Свободный гит могли форкнуть миллион раз, но им пользуются все. Но стандартный формат пакетов, стандартный api для окошек в линуксу мешает именно свобода. Есть десяток ублюдских форматов пакетов, пакетных менеджеров, и абсолютно ублюдский подход к линковке либ. Я же не спрашиваю откуда в линуксе столько разных гуев и форматов пакетов. Я спрашиваю почему они все настолько ублюдские? Почему любой пакет в линкусе хуже апк? Почему на смену зипарям со скриптами от рута, пилятся какието контейнерные залупы, которые на запуске аппы fs монтируют? Почему вместо того чтобы довести до ума X11, который дефакто стандарт(откуда он кстати вообще взялся, если свобода мешает стандартам?) пилится еще более ублюдский wayland и mir? Почему Qt аппы на винде и маке выглядят лучше чем под гномом? Нет никакой нужды давать по шапке васянам, если ты просто пилить хорошую реализацию, она сам станет де-факто стандартом.

Теги других блогов: Linux Windows ОС пакетные менеджеры