>Новых собственных инновационных идей у них нет а самовыразиться хочется. Вот и
>плодятся бесконечные переделки. Почти сорок лет всё вокруг Unix крутится потому-что
>мало кто способен посмотреть на неё свысока и увидеть её отсталость
>и врождённые недостатки типа "всё есть файл". Денис Ричи: "... есть
>другой подход - объектно-ориентированный когда каждый объект управления имеет свои специфичные
>методы ...".
Посмотрите Plan 9 для разнообразия.>Или этот Лайнус
>со своим девизом "единственно практически правильный путь - монолитное ядро". Ну
>хоть проект Hurd есть и то хорошо.
В проекте Hurd разброд и шатания. Ядра работоспособного и окружения, а так же фреймворка для драйверов просто напросто нет. Даже Haiku на их фоне смотрятся более перспективно и достойно.
> Пойнт первый - бинарная совместимость.
> Бинарная совместьмость - это, как говорят мои американские друзья,
>pain in the ass.
> В сравнении с виндой обыкновенной мы видим, что ее просто
>нет.
Надо не забывать одну вещь... больше 90% софта для linux так же для *BSD систем распрастраняется в виде исходников. Так зачем необходима бинарная совместимость ? Для получения dll hell?
>Программа от дистрибутива 3летней давности (сложная, гуевая) не пойдет
>без телодвижений типа установки compat-библиотек просто с гарантией.
А оно надо ? В таких программах четко указано какую версию дистрибутива использовать. Или какие библиотеки юзать.
> Система библиотек немного отличается от виндовой, однако ж эти
>отличия большие последствия.
Скажем не немного, а несколько подругому. И кстати с использованием пакетного менеджера все гараздо более управляемо чем в windows.
> Во-первых, библиотеки там действительно разделяемые в памяти, а не
>"как получится". Во-вторых, там может быть 1 вариант одной библиотеки.
>Hу два. Hа пять. Hо не 20 вариантов с существенно отличающимся бинарно
>
>АПИ, с непредсказуемым результатом замены одной на другую.
В windows может быть легко 20 вариантов библиотек. В любом нормальном дистрибутиве не больше 4. И то из-за требований совместимости. Я говорю про berkley db. Других библиотек в 20 кратном варианте я не припомню. Если можете припомнить укажите ее.
> Там цикл жизни библиотеки составляет 3 года - пока под
>нее пишется
>софт, и лет 8 - пока она просто лежит, никому не мешая
>и не вызывая
>конфликтов.
Вот из-за этого и возникает dll hell.
> Также сильным минусом является наличие символов типа
>__libc_int_foo__bar, которые также резугярно ломаются.
> Главной же бякой является libc, апи которой не всегда совместимо
>
>снизу вверх, и почти никогда - сверху вниз. Сие есть хамство,
>большинство виндовых программ до сих пор работают на вин95, а
>множество 16битных - на ХП.
Это и не требуется. Совместимость это палка о двух концах. Посмотрите сколько раз ломали совместимость и ничего. В linux так же. При использовании пакетного менеджера все работает как часы.
> Бякой еще более важной - тем, что gcc регулярно меняет
>abi для c++.
> Hе надо мне говорить, что так надо - потому, что
>я уверен, что так
>делать нельзя. Жить так нельзя, блин.
У меня есть около 10 систем которые это пережили без каких либо проблем. В чем проблема? Так сложно пересобрать приложение ? Или воспользоваться пакетным менеджером для обновления ПО и системы?
> Чего хочется в этой области? Hеизменного abi, неизменных в пределах
>generation api, уменьшения количества либ в 10 раз.
Уменьшения каких именно либ ?
> Пойнт второй - объектная модель.
> Так вот. В люнексе большинство "системных", типа cd-writer или
>dialer, програм, являются front endами над консольными. В винде -
>front endами над библиотеками, системными библиотеками с стабильным,
>set in stone API.
> Попытки делать в люнексе второй подход получаются так себе, ибо
>см.
>первый пойнт.
Бред, Это разница в подходах. В windows надо делать через библиотеки т.к. есть стандартное api в linux есть и приложения. Хотя у них тоже есть API.
> В винде есть OLE и COM. Я не понимаю, почему
>майкрософтовцы не
>пиарят эти технологии, ибо в люнексе нет ничего подобного. Hет, не
>было и не будет.
Еще раз напоминаю о разнице в подходах. Если брать linux или любой другой *nix как сервер то где его использовать.
> Есть вещи типа corba и kparts, но они умеются на
>2 порядка меньшим
>процентом приложений, так что обломайтесь.
Если рассматривать KDE и его приложения то они вполне сравнимы. Да может COM вещь полезная, но только в плане идеологии windows. Укажите мне куда нееобходимо размещать COM в linux ?
> Откуда видим, что при разработке любой программы приходится писать
>Фсе с нуля.
В каком смысле с нуля ?
>Оборачивать консольные программы, прикручивать библиотеки
>с кодеками, забыть об обмене объектами и автоматическом встраивании
>фич в соседние программы, поумерить пыл насчет плагинов.
Если вы будете использовать KDE и ее библиотеки нет никаких проблем.
Сравнивайте корректно.
> Еще очень важно - что линковка применяется динамическая. Что
>ужасно, ибл если хоть одной либы не хватает - все, приложение не
>запускается. До запуска даже не дойдет, никак обработать ошибку и
>продолжить не получится - ибо упадет сразу, еще в ld-linux.so.
В windows абсолютно так же.
> Если собрать без либы - то все, поддержки
>кодека/технологии/протокола нет. И не будет, пока не пересоберешь.
Сборка в static для вас пустой звук?
> Еще дебильная привычка - писать плагины, заворачивая в свое API
>кодек. Это дело любят разные xmms.
Не используйте xmms
> API типа directshow могут быть сколь угодно плохи, но самодельные
>недоАПИ - точно будут хуже и работать - реже.
Странно почему ffshow пользуются такой популярностью ? И работают быстрее стандартных виндовых кодеков ? Почему mplayer в X-window системе которая выводит тормознее чем windows работает быстрее windows media player ? Это отчетливо видно на старых машинах или при наложении фильтров.
> IE - отвратительный браузер. Это да. Hо, блин, его внедрение
>в программу доступно любому программисту! В люнексе же такого ничего
>нет. АПИ IE - MSHTML.DLL не менялось уже хрен знает, сколько. Если
>его просто нет - ну нет, и нет, программа обойдется.
А зачем его внедрять ? *nix другая идеология. Не консолидировать в одной программе все что можно, а использовать кучу мелких программ в различных последовательностях.
> Мазила тяжелее на порядок - это ужасно, если ее пробовать
>внедрять в
>почтовую программу или RSS-ридер. К тому же, АПИ у нее меняется -
>
>апгрейд мазилы с 1.2 до 1.4 вызывает смерть разных там галеонов и
>
>ефифаний.
> К тому же, блин, линкуется оно тоже динамически, а не
>на лету, то
>есть - нет мазилы, вместо запуска приложения будет происходить
>"ничего".
Ай-ай. Зачем это делать ? Вы мыслите десктопом, а не сервером. Для десктопа я бы вместо windows лучше буду использовать Mac OS X или на худой конец Haiku. В linux же стоит использовать полноценные среды. К примеру KDE.
> Здесь была бы хороша система объектов типа COM, но чтобы
>объекты
>можно было писать на/использовать из C, C++, perl, python, shell
>хотя бы. Еще чтобы на скриптовых языках подключение объектов не
>требовало кода на нативном языке.
> Впрочем, если это сделать, все равно никто не будет пользоваться.
Потому что это не имеет смысла.
> Пойнт третий - конфликты и совместимость.
> В винде все ясно - есть майкрософт, остальные подстраиваются под
>то,
>что он написал, используют его АПИ и контролы.
> В люнексе есть несколько тулкитов - это не страшно, в
>принципе. Есть
>несколько DE, несколько вариантов любой программы.
> Проблема в том, что они далеко не всегда совместимы между
>собой.
Недавно появился проект для избежания этого.
> Приложения KDE могут очень интересно общаться по DCOP с себе
>
>подобными, но с GNOMEовыми они каши не сварят. С ними надо по
>corba.
>Или по bonobo. Или по еще чему, как получится.
В скором времени когда проект api будет завершен и будет поддерживаться и KDE и Gnome проблемы исчезнут.
> Реестр - это не только единая точка отказа системы, имеющая
>бинарный
>формат, но еще и замечательное средство хранения настроек и, самое
>главное, обмена настройками между приложениями.
В результате он часто бывает сильно засорен.
> В люнексе же - штук 15 "реестриков", что не добавляет
>никому легкой
>жизни, текстовые конфиги, разбросаные где попало, и страшные, тяжелые,
>низкофичные графические конфигурялки вместо легких и надежных
>реестротвикеров.
Все конфигурационные файлы лежат в /etc все каталоги и имена файлов имеют вменяемые названия в отличии от параметров в реестре. Назовите мне хоть один действительно надежный и легкий реестротвикер. Которые в результате своей работы не ломают систему. Так же советуется посмотреть YaST.
> Пойнт четвертый - драйверы.
> Положение с бинарной совместимостью модулей ядерных - аховое.
> Отсутствует система хуков в юзерспейс, из-за чего не очень понятно,
>
>как писать некоторые драйверы - невозможно наладить легкий обмен
>структурированными данными между ядром и юзерспейсовым хелпером,
>скажем, кодеком.
Для файловых систем есть FUSE. Для всего остального хватает файла устройства. Все это очень хорошо работает. Чем вас не устраивает обмен с использованием ioctl + чтение запись в файл устройства ?
> Аховое - оно и есть аховое. Себя надо винить в
>отсутствии драйверов
>под, себя.
В чем аховое ?
>
> ДА, пойнт отдельный - в unix проблема с process management.
>/proc -
>разнится для каждой системы, структурированную информацию о программе
>получать ниоткуда.
> Отсюда появляются ужастные вещи типа lock-файлов. Работающие раз через
>десять.
?! Странно очень странно... то про api соловьем, то теперь про то что из proc плохо читать. Как-то даже странно... posix api посмотрите а ?
>
> Пойнт пятый - unix на распутье.
> Возникает проблема, которая в том, что от традиционных юниксовых
>путей волей-неволей отходят.
> Оказывается, что процессы порождать на каждый чих - роскошь,
и в результате на каждый чих пораждается нить. В windows тоже на каждый чих пораждать процесс дорого пораждается нить. Не путаем теплое с мягким.
>пайпами гуевые приложения, желающие меняться объектами, связывать
>бессмысленно
!? Почему ? Хоть одно обоснование приведите.
>и что каждая программка слинкована с 25 библиотеками и
>весит 15 мегабайт в памяти.
Это вообще бред.
> Пример: Есть gstreamer. Очень мощный фреймворк разнообразных
>аудио-видео кодеков-преобразователей-драйверов.
> Сейчас устройство вывода указывается в реестре. Гномовом. А узнать
>список можно, погрепав вывод консольной команды.
> А могло бы быть так:
> Для каждого приложения можно отдельно указать предпочитаемые кодеки,
>построить цепочку фильтров-преобразователей-эквалайзеров, указать
>устройство вывода, регулировать еще кучу параметров как из
>централизованной программы-апплета, так из самой программы в табе
>конфига (если она это позволяет, с галкой "использовать
>системные/выбираемые программой/свои настройки"), или из легко
>находимых текстовых конфигов. Вот это был бы pure unix way.
это не имеет никакого отношения к unix way. Это имеет к отношение к реализации ПО и использующего им свойств библиотеки. То что вы описали это photon в KDE
> Жаль, только жить в эту пору чудесную уж не прийдется
>ни мне, ни тебе.
KDE 4.0 выйдет довольно скоро.
>Сравнения с виндой производились потому, что нудна
>борьба противоположностей.
Вы хорошо знаете что такое windows но слабо что такое *nix.
>Я нигде не имел в виду, что винда заведомо лучше по каким-то
>параметрам, просто показывал, где в ее пользу отличия.
А вот как мне видится, что вы указываете только на приемущества windows и на то что она лучше ;)