Не хочу, чтобы это выглядело холиваром, поскольку у меня в ленте есть и пользователи Windows, но цитата крайне доставляет:
">всё это создает большой оверхед, абсолютно не нужный на системах, имеющих свой api.
Вы исходники Windows видели? Я когда-то смотрел именно те части, которые занимаются отрисовкой. Огромная часть кода - не поддерживаемый код из далеких времен Windows 3.11, другая - наспех сколоченные обращения к 2D графическим функциям ядра.
А теперь по порядку. Winapi как такового не существует - это несколько dll, входящих в поставку винды и экспортирующих разные функции. Проблема в том, что с далеких времен Windows NT 3.x эти функции не претерпели изменений, за исключением нескольких нюансов. Изменение в winapi как оказалось вносить нежелательно, т.к. старые программы откажутся работать под новыми виндами, что мы и наблюдаем регулярно. Поэтому MS выдумала сначала MFC - это уже не winapi, это как раз "оверхед, абсолютно не нужный на системах, имеющих свой api". Но проблема оказалась не решенной и изменения вносить опять таки нельзя, можно только расширять существующую функциональность. От MFC отказались в пользу COM, те же dll, только с уникальным номером. И снова "новые технологии", и снова в бой - .Net, WinForms, библиотеки классов. То есть на каждый новый чих теперь создается новая Framework, а старая программа обязана требовать старый.
>кроссплатформенный фреймворк должен быть тонкой абстракцией или даже набором макросов для существующего api
А теперь вопрос, какой такой WinApi используют любые относительно новые Win приложения? И ежу понятно winapi - старый как говно мамонта, свой предел исчерпал ещё в далеком 2000 году с выходом Windows 2000.
Огромное преимущество Qt в том, что троллтехи без фанатизма отобрали те части винды, которые можно и нужно использовать, все, что необходимо было реализовать самим - реализовали сами."
Таки вопрос к тем, кто реально видел эти потроха. Неужели там реально всё настолько плохо, ил это всё же редкостное преувеличение. Как бы я не относился к этой системе, но подобное меня несколько гхм... пугает. Никто не просветит? Само обсуждение лежит здесь, если кому-то интересно.
Ты забыл ещё COM+ и ActiveX - те ещё весёлые технологии. Которые, собственно, лишь названием отличаются..
ОтветитьУдалитьНу и наверное все мы знаем такое адское определение "DLL HELL" :-)
PS Не зря его, кстати, придумали..
Говоря честно, ну очень сложно сохранять обратную совместимость. Вот троллтехи смогли так сделать. Раз - и выкинуть все те программы, которые были написаны на QT3 и более того, достаточно агрессивно пересадить людей на QT4 (я ничего не напутал, могу ошибаться тут)
А ребята, пилящие GTK2, действуют ну очень осторожно.. Понятно что вся ветка GTK2 - костыль на костыле, но по крайней мере, программы работают.
Ух.. Прогресс.. Всегда что-то теряем :)
С COM+ и ActiveX (особенно со со вторым) я натрахался в своё время как сисадмин. Поскольку программы необходимые для работы обслуживаемых мной манагеров требовали именно их.
ОтветитьУдалитьDLL HELL - да, та ещё помойка. В Linux/FreeBSD этого избежали, но тоже не без кривых решений. Но это значительно меньшее зло, если подумать.
Что касается разработки QT4 - не всё так страшно. Там есть такая вещь, как qt3support. Они не идиоты, в конце-концов. А GTK это костыль на костыле в настоящий момент. Мигель Де Икаса это, похоже, признал. Поскольку GTK3, над которым он работает будет тоатльно несовместим с GTK2 да и вообще, похоже, написанным с нуля.