Ядро Math - это не разработка Apple. Всё-таки это мир BSD...
В том виде, в каком представляете Вы, ОС Линукс действительно не существует. Реально существует ядро Linux. И огромные наработки различных сообществ (в частности GNU и BSD), которые используются при создании всяческих дистрибутивов. В том числе и MacOS.
Соответственнно, когда я пишу юзер интерфейс прикладной программы, я точно не знаю, а на какой ОС она будет работать. На одной Linux-based-ОС будет Gnome, на другой - KDE, в результате если делать совсем по хорошему, получается что мне надо делать wrapper-класс, чтобы изолировать себя от подробностей того или иного GUI (а GTK API не совместим с API KDE, разве не так?)
А нафига? Почему нельзя оставить зависимость на одну, удобную библиотеку виджетов? Если будет нужно, пользователь её поставит.
Можно, конечно, заюзать Qt, но если я пишу коммерческий софт, мне за нее надо платить.
Если вы пишете софт на продажу, то почему так коробит мысль заплатить?
Мысль заплатить не коробит вовсе, просто в данный момент я в основном пишу либо на Java, либо
под Mac OS X, по-этому платить, в сущности, пока что некому и незачем - я свой Macinsotsh с установленной Mac OS X честно купил (и XCode забесплатно честно скачал
). Кстати, я вовсе не ругаю ни один из компонентов, входящих в разные linux kernel based операицонные системы - они все вполне приличные и надо, вообще говоря, сильно постараться, чтобы написать хотя бы один из них. Я, например, считаю Qt лучшей из библиотек для построения приложений, которые доступны на текущий момент.
Наработки сообществ GNU и BSD тоже сомнений не вызывают (кстати говоря, для написания софта использую редактор Vim и прочие стандартные утилиты, мне этого вполне достаточно даже для относительно крупных проектов, графическую среду XCode запускаю редко, в сущности, мне оттуда нужен только Interface Builder).
На самом деле в Linux-ообразных меня лично не устраивает отсутствие единообразности и такой стандартизованности, как в Mac OS X. Кстати говоря, принцип библиотеки LibQt - "Code Less. Create More" - полностью воплощен в реализации Mac OS X. На практике получается,что семейство операционных систем Linux переплюнуло по отсутствию единообразности даже UNIX, который, как известно, в процессе своей эволюции разделился на многие семейства. Причем количество возможных комбинаций различных альтернативных вариантов тех или иных компонетов огромно, что вообще делает невозможным разработку софта, который гарантированно заработает после установки без необходимости установки различных зависимостей. Исключения составляют, наверное, только системные утилитки, использующие чистый POSIX или ту же пресловутую libX11.
По большому счету, класс операицонных систем Linux движется тем путем, от следования которому прелостерегал
дятька Фредерик Брукс - этот путь не что иное, как примат реализации амбиций автора того или иного программного продукта в ущерб концептуальной целостности его. Отлично, что есть огромные наработку коммьюнити BSD или FSF. Однако, это не значит, что всех их нужно скопом пихать в одну систему. Если мы делаем, к примеру, самолет, то это не значит, что мы должны удовлетворить интересы всех производителей болтов и напихать в него кучу разнотипных болтов с единственной целью производителей этих болтов порадовать. Или, к примеру, нам нужно выполнить оборонный заказ по постройке парии самолетов. Давайте для каждого самолета выделим своего конструктора - а че, всем конструкторам будет прикольно, даже самолеты получатся "почти одинаковые", всем будет прикольно, только не командирам воздушных частей и не летчикам, которым придется изучать "маленькие нюансы" каждого из пятисот самолетов, которые "в общем то одинаковые"