О шароваре и десктопном Линуксе
Sep. 17th, 2009 01:46 pmВнезапно всплывший перевод интервью двухлетней давности с кернел-разработчиком, который пытался улучшить поведение декстопного Линукса, но не мог толком эти улучшения продемонстрировать, вызвал очередные дискуссии про перспективы Линукса на десктопе.
Да нет у него никаких перспектив.
Основная его проблема - мало нужного, качественного и удобного софта. И главная ее причина, на мой взгляд, - отсутствие бинарной совместимости. Когда есть куча плохо совместимых дистрибутивов, в них куча несовместимых версий, единственный более-менее работающий способ распространения софта - в исходниках, со сборкой на месте. Кому это подходит?
Сильно дорогой софт может себе позволить распространяться в исходниках или поставляться сразу с настроенной системой и даже аппаратурой. Но среднему юзеру на десктопе он не по карману, да и не нужен вобщем-то - нет у него ни терабайтных баз, ни тысячи процессоров, для которых такой софт делается.
Бесплатный софт может поставляться в исходниках, но он пишется либо гиками для себя, либо большими корпорациями для продажи чего-то другого (оборудования, например), поэтому никогда его авторы не будут делать его настолько простым и удобным в использовании, чтобы им могли пользоваться рядовые хоум-юзеры, не гики.
Типичные слова линуксоеда: "Если бы люди умели пользоваться vim, grep, sed, awk, то миллионы программных продуктов так никогда и не были бы созданы (C) кто-то умный". В том-то и беда. Именно так теряется 95% аудитории - основная масса юзеров не будет тратить по полгода на изучение этих ваших vim, grep, sed, awk, perl и bash. Им нужна программа с красивым окошком и кнопкой "сделать п%$дато", а не набирать в консоли "ps aux | grep dmz | awk '{ print $3, " ", $2 }' | sort | tail -n 5 | awk '{ print $2 }' | xargs kill -9". Нужен простой и удобный в использовании софт, решающий конкретные задачи рядовых и не очень пользователей. Такие программы будут только там, где будут коммерческие разработчики, которые смогут их продавать за доступные хоум-юзерам деньги. А для такого софта дистрибуция в исходниках никак не годится.
Вот есть, например, Маки. Там дистрибуция и установка программ в бинарной форме была отточена отлично, оттого куча удобного, приятного и радующего пользователей софта, за который те с радостью платят деньги. Есть винда, где я компилю в Win7 бинарник с минимумом зависимостей, и он прекрасно работает и в Висте, и в ХР, и даже в Win98. В нем я могу реализовать какую-то пусть не идеальную, но работающую защиту от взлома, и спокойно его продавать. А вот понадобилось мне недавно простейшую консольную прогу запустить на хостинге с этим вашим линупсом, так нет - нужного компилятора там не стоит и прав нет поставить, просто собранный бинарник не работает из-за другой версии GLIBC, а статически собранный - не работает, потому что ядро, дескать, слишком старое, хотя и там и там 2.6.чего-то. При таком подходе я буду продолжать делать шаровары для винды и мака, а линуксоеды пусть дальше довольствуются своими поделками.
Да нет у него никаких перспектив.
Основная его проблема - мало нужного, качественного и удобного софта. И главная ее причина, на мой взгляд, - отсутствие бинарной совместимости. Когда есть куча плохо совместимых дистрибутивов, в них куча несовместимых версий, единственный более-менее работающий способ распространения софта - в исходниках, со сборкой на месте. Кому это подходит?
Сильно дорогой софт может себе позволить распространяться в исходниках или поставляться сразу с настроенной системой и даже аппаратурой. Но среднему юзеру на десктопе он не по карману, да и не нужен вобщем-то - нет у него ни терабайтных баз, ни тысячи процессоров, для которых такой софт делается.
Бесплатный софт может поставляться в исходниках, но он пишется либо гиками для себя, либо большими корпорациями для продажи чего-то другого (оборудования, например), поэтому никогда его авторы не будут делать его настолько простым и удобным в использовании, чтобы им могли пользоваться рядовые хоум-юзеры, не гики.
Типичные слова линуксоеда: "Если бы люди умели пользоваться vim, grep, sed, awk, то миллионы программных продуктов так никогда и не были бы созданы (C) кто-то умный". В том-то и беда. Именно так теряется 95% аудитории - основная масса юзеров не будет тратить по полгода на изучение этих ваших vim, grep, sed, awk, perl и bash. Им нужна программа с красивым окошком и кнопкой "сделать п%$дато", а не набирать в консоли "ps aux | grep dmz | awk '{ print $3, " ", $2 }' | sort | tail -n 5 | awk '{ print $2 }' | xargs kill -9". Нужен простой и удобный в использовании софт, решающий конкретные задачи рядовых и не очень пользователей. Такие программы будут только там, где будут коммерческие разработчики, которые смогут их продавать за доступные хоум-юзерам деньги. А для такого софта дистрибуция в исходниках никак не годится.
Вот есть, например, Маки. Там дистрибуция и установка программ в бинарной форме была отточена отлично, оттого куча удобного, приятного и радующего пользователей софта, за который те с радостью платят деньги. Есть винда, где я компилю в Win7 бинарник с минимумом зависимостей, и он прекрасно работает и в Висте, и в ХР, и даже в Win98. В нем я могу реализовать какую-то пусть не идеальную, но работающую защиту от взлома, и спокойно его продавать. А вот понадобилось мне недавно простейшую консольную прогу запустить на хостинге с этим вашим линупсом, так нет - нужного компилятора там не стоит и прав нет поставить, просто собранный бинарник не работает из-за другой версии GLIBC, а статически собранный - не работает, потому что ядро, дескать, слишком старое, хотя и там и там 2.6.чего-то. При таком подходе я буду продолжать делать шаровары для винды и мака, а линуксоеды пусть дальше довольствуются своими поделками.
no subject
Date: 2009-09-17 08:19 am (UTC)no subject
Date: 2009-09-17 08:48 am (UTC)А вот когда я собрал QT прогу на lenny и попытался запустить на etch - а вот хрен. Того нет, этого нет, glibc не тот и прочее не то.
no subject
Date: 2009-09-17 09:04 am (UTC)То есть, все ваши проблемы в том, что есть 2 эталонных винды: 9x и NT и производители софта, которые хоть что-то соображают, явно указывают совместимость с ними. А выделенного линупса, с которым надо указывать совместимость, - нет. И если кто-то вдруг задумает выбрать эталонные дистрибутивы, то линупсоеды мигом подерутся. Вот BSD всего 3 основных, так у большинства именно-BSDшных софтин чётко указана совместимость.
no subject
Date: 2009-09-17 11:29 am (UTC)И для 99.9% говноприкладных программистов эти вообще не проблема - они в те технологии, где есть несовместимость/версионность даже не нюхали.
no subject
Date: 2009-09-18 09:38 am (UTC)Google Chrome, например требует минимум Windows XP SP2, на Windows 2000 не работает, не говоря уже про '98
Clozure Common Lisp тоже.
(no subject)
From:no subject
Date: 2009-09-20 01:58 am (UTC)no subject
Date: 2009-09-17 09:00 am (UTC)Линукс неприменим для продвинутых пользователей-непрограммистов. Для начинающих и незнакомых с компом - еще куда ни шло, обычно их компы все равно обслуживает кто-то обученный. Для администраторов, опытных программистов и прочих гиков - это по долгу службы знать положено, ибо линуксовый стиль и на винде работу ускоряет сильно.
А вот для людей которые сами настраивают/работают/обслуживают свой комп, но не являясь при этом профессиональными гиками - тупичок-с, однако. Им требуются более сложные варианты работы с компом, чем доступно из графических сред, но если они полезут в редактирование конфигов и командную строку - им придется осваивать это дело на уровне профессиональных админов.
no subject
Date: 2009-09-17 09:05 am (UTC)no subject
Date: 2009-09-17 09:37 am (UTC)no subject
Date: 2009-09-17 09:46 am (UTC)no subject
Date: 2009-09-17 11:17 am (UTC)Во, сразу пример нашёл: собрать Network.Curl под виндой. Какая программа из интернетов такое умеет? А продолжительное ковыряние в исходниках и конфигах таки даёт результат. Говорят. Сам ещё не пробовал.
И в линухах всё то же самое. Не с Network.Curl, оно там само встаёт без звука. С другими вещами. Которые юзеру знать, в общем-то, вовсе и не хочется.
no subject
Date: 2009-09-17 11:26 am (UTC)(no subject)
From:no subject
Date: 2009-09-17 11:35 am (UTC)Еще добавлю важный момент - это входной порог. Низкий входной порог для программистов-прикладников. Именно эта армия студентов-кодеров и позволила решить тот пласт проблем и реализовать тот объем "систем АСУ" разных уровней для всех областей бизнес.
Входной порог на линукс неимоверно высок. Вот в том и проблема. В мире разработки прикладных систем нет гиковства (или минимум) - там всем рулят финансы и хозяин скажет писать под Win, т.к. физически не найдет программиста под линукс, и стоимость часа будет в итоге х10.
Второй аспект - это да, монолитность приложений. Я у себя в ЖЖ пытался этот вопрос выяснить у линкус-гуру. Ответ практически один: в таком стиле делать НЕ ПРИНЯТО.
no subject
Date: 2009-09-17 01:49 pm (UTC)no subject
Date: 2009-09-17 03:03 pm (UTC)Производили тесты с написанием кроссплатформенного софта (QTcreator), скорость разработки в 5 раз ниже. Причина - несовершенная отладка и т.п.
no subject
Date: 2009-09-17 12:35 pm (UTC)no subject
Date: 2009-09-17 02:10 pm (UTC)no subject
Date: 2009-09-17 02:47 pm (UTC)Если в MacOS X делать создавать высокую дисковую активность (например, копировать файл), то MacOS X также может начать тупить, но это сложнее воспроизвести.
Под Windows я могу мало сказать, потому что с Windows стараюсь не сталкиваться.
Навскидку, одна из проблем Windows — не POSIX. Серверная программа, которую я пишу на работе, должна работать под Linux, FreeBSD, MacOS X и Windows. Поддержка совместимости с Windows обходится мне в разы дороже, чем поддержка всех остальных операционных систем.
У Windows страшные API, этих API много, все они сложные, и они друг друга исключают. Например, в POSX есть poll, он работает с файловыми дескрипторами. В Linux есть epoll, он тоже работает с файловыми дескрипторами, и это простая замена poll. В Windows poll работает только с сокетами. Есть WaitForMultipleObjects, но он, то ли не работает с сокетами, то ли работает как-то через жопу. Ну то есть есть отдельный API для сокетов, и отдельный API для файлов.
Windows, фактически, одноплатформенная система (т. е. i386/x86_64), линукс работает на десятках платформ.
В линуксе есть Shell как язык программирования, с помощью которого можно быстро решать простые задачи. В Windows таких простых инструментов нет.
Плюс в Windows есть реестр — и это большая проблема.
В общем, не знаю я, что не так в Windows. Раз в месяц приходит письмо, что наш внутренний сервер перезагружается. Наверное, это от технологического несовершенства. Наши сервера под Linux/FreeBSD не перезагружаются месяцами, а то и годами.
(no subject)
From:(no subject)
From:no subject
Date: 2009-09-17 01:43 pm (UTC)подсказка
Date: 2009-09-18 07:58 am (UTC)Re: подсказка
Date: 2009-09-18 10:57 am (UTC)Re: подсказка
Date: 2009-09-18 02:30 pm (UTC)Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
Date: 2009-09-18 02:34 pm (UTC)Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:неясно
From:Re: неясно
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:Re: подсказка
From:случаи всякие бывают ;)
From:Re: случаи всякие бывают ;)
From:Re: случаи всякие бывают ;)
From: