Если коммерчески успешный и хороший продукт отдается под две лицензии, надо этому только радоваться - и люди, пишущие его, сыты и коммьюнити имеет возможность им пользоваться.
На самом деле лицензия должна быть одна. GPL и точка. всё остальное - от лукавого. Хотя...тролли очень удачно использовали в свое время неспособность девелоперов кде создать свой тулкит и незнание C
ты что, сегодня не с той ноги встал? Наконец то будит проффесиональный тулкит с двойной лицензией (при чем на всех платформах) а ты выступаешь.
Лично я сильно подумываю кое-какие проекты на него с wxWidgets перетащить, если только 2.6 версия не сразит меня неожиданной стабильностью или вдруг появивщейся документацией.
>Наконец то будит проффесиональный тулкит с двойной лицензией (при чем на всех платформах) а ты выступаешь.
а они уберут ограничение, приложенное к gpl и костыли к костылям? в смысле moc к c++? если нет...то нафиг такой "профессиональный" тулкит
>Лично я сильно подумываю кое-какие проекты на него с wxWidgets перетащить, если только 2.6 версия не сразит меня неожиданной стабильностью или вдруг появивщейся документацией.
Человек убил кого-то - он плохой.
Человек сделал деревянную игрушку и продал ее - он нормальный. (MS)
Человек сделал деревянную игрушку и отдал ее народу - он святой! (Linus)
А теперь внимание!
Человек сделал деревянную игрушку и отдал ее по двойной лицензии - он ХОРОШИЙ (QT)
Если у тебя не хватает интеллекта на то, чтобы понять, зачем там moc и что он дает, то это исключительно твои проблемы. Не втыкаешь - так не лезь. Ты небось qt только на картинках видел и в статьях о ней читал, но написать ничего не смог.
Вот же придурки есть: типа, продукт не GPL - значит, он говно. Не, дружок. Говно - это тот, кто сравнивает продукты не по удобству использования и функциональности, а по лицензии и деталям реализации.
Ты на ник его посмотри. И в каждой теме про qt он ведет себя как типичный долбанутый ГопнИК. Аж пена изо рта прет. Это ж не чистая GPL, они лукавят, назначив двойное лицензирование.
слышь ты, с клювом! тебе насильно КуТи внутревенно кто-то пускает? не нравится - не ешь. все поняли, что КуТи не катит для тебя. все: больше ничего говорить не надо... КуТи - полное говно и ваще, все кто проприетарно его юзают - нереально лоханулись: тока ты им этого не говари - могут расстроиться ;)
>Вот же придурки есть: типа, продукт не GPL - значит, он говно.
Вообще-то Qt GPL, значит не проприетарщина дефакто. То, что автор использует продукт как-то иначе - его личные проблемы, нечего в его карман смотреть, это только расширяет свободу (иначе нельзя было бы использовать Qt в не-GPL продуктах) и оплачивает работу людей, которые пишут Qt. А двойная лицензия есть у очень многих GPL-продуктов, только geek об этом не знает...
Что означает, "не чистая"?? Единственная её "нечистость", к тому же, отмененяющаяся, кажется, [постепенно] - это ограничение на платформу Win32.
Во всем остальном - обычная _GPL_ (не LGPL!) лицензия: не хочешь платить - будь добр, derivative work и без никаких вопросов, см п.6 GPL; хочешь платить - ну, замечательно, вот расценки.
По такой схеме, если уж на то пошло, живут MySQL AB, SleepyCat и многие другие производители GPL-_продуктов_.
Что, много желающих сделать у себя на машине rm -rf /lib/libdb*.so* /usr/lib/libdb*.so* ?? Ну, так, чтобы избавиться от "нечистых"? Теоретики, @#$.
долой нестандартные препроцессоры. C++ и так донельзя изуродован. И прикручивание к нему дополнительных костылей от троллей или негрософта - только усугубляет положение
То, что нахреначено, например, в GLIB/GTK в рамках "стандартного" препроцессора, конечно, самый прямой и естественный путь реализации данной задачи. А libsigc++ - вершина программистской изящности.
То-то всяких хавоков и мигелей периодически штормит в выборе между C++, явой и C# :-).
А то, что положение усугубляется - точно. Нужно не маяться, вводить в язык "делегаты" и не парить бабушку.
> Если у тебя не хватает интеллекта на то, чтобы понять, зачем там moc и что он дает, то это исключительно твои проблемы. Не втыкаешь - так не лезь.
А ты у нас очень умный видать, да? Может тогда расскажешь, какая такая непреодолимая нужда в moc файлах и пред-пред-процессорах в КуТи. Единственное к чему это приводит - это к уродованию Makefile'ов.
А что, кто-то пишет Makefile'ы руками? Там, помимо moc'а, еще два препроцессора, уже, знаете ли, неважно.
P.S. И чего это люди нападают на те части Qt, которые, в общем, конкретно обусловлены, и совершенно не говорят о том, без чего можно было бы обойтись с гораздо большей вероятностью?
> А то, что положение усугубляется - точно. Нужно не маяться, вводить в язык "делегаты" и не парить бабушку.
Кстати, микрософтовцы так и поспутают в своем C++/CLI. Кроме прочего, вводят еще и опциональную поддержку GC (сборщик мусора) на уровне самого языка. Есть над чем задуматься, не правда ли?
На мой взгляд существование двойной лицензии имеет смысл для зваимовыгодного сотрудничества. Qt сообществу дает библиотеку, сообщество в свою оченредь занимается тестированием, добавлением фич и шлет немеряно патчей и просто хорогых идей, которые потом включаются в проприетарную версию тоже.
Я - самовар! Объясните, насколько тормознутей или быстрей будет векторная отрисовка виджетов в КуТэ4? И можно ли надеяться на нормальный и красивый Лук'н'Фил, уровня GTK2?
В языке C++ отсутствует, например, такое полезное средство как сохранение адреса _метода_ для последующего вызова.
Сохранение адреса метода - это не то же самое, что сохранение адреса функции, т.к. для метода еще необходимо сохранять и адрес объекта, для которого будет вызван данный метод. Это, в частности, создает определенные трудности (разумеется, решаемые, причем, решаемые библиотечно) для реализации таких например, парадигм, как передача объектного колбэка для последующего вызова в момент, скажем, возникновения какого-либо события итп. Отдельной проблемой является передача параметров этому коллбэку.
Троллтеки решили эту (в числе остальных) проблему, путем введения доп. автогенеруемых прокладок для кода. С одной стороны, этот путь хорош, т.к. он позволяет проводить все возможные оптимизации кода на уровне компилятора (весь OOP имени glib/gtk - уровня исполнения, то есть, например, даже однострочная четко определенная и неизменяемая виртуальная функция будет вызываться по косвенной адресации, а не инлайниться по возможности). С другой, пуристы C++ заходятся в гневном порыве.
Вообще в данном конкретном случае и на _gcc_ проблема решается на уровне темплейта, но имеющийся у меня образец такого темплейта явно переколбасит всякие недо-С++ компиляторы, типа MSVC6.
Это где у GTK2 лук'н'фил "нормальный и красивый"? А вообще они у меня сейчас одинаково выглядят. Вообще. Благодаря теме Qt и соответствующему движку ;-)
"Читайте устав, там все написано". Доки по qt посмотри (например, здесь: http://doc.trolltech.com/3.3/templates.html) - там ответы на все твои вопросы. С moc-файлами вообще проблем никаких нет, особенно при использовании qmake - все само хреначится. Так что если это и недостаток дизайна, то это такая фигня, на которую можно глаза закрыть.
Свою задачу moc выполняет, и выполняет хорошо. А всякие споры типа "кошерно/некошерно" - от лукавого. В троллтехе не дураки сидят, и у них были основания придумать именно moc. В т.ч. потому, что, не на всех компиляторах пройдут альтернативные трюки, а тулкит не одноплатформенный и на gcc не зациклен.
> Я - чайник! Объясните пожалуйста в 2х словах нафига нужен MOC???
The Meta-Object Compiler, moc, is the program that handles Qt's C++ extensions.
The moc tool reads a C++ header file. If it finds one or more class declarations that contain the Q_OBJECT macro, it produces a C++ source file containing the meta-object code for those classes. Among other things, meta-object code is required for the signals and slots mechanism, the run-time type information, and the dynamic property system. (http://doc.trolltech.com/4.0/moc.html)
Проще было создать такую прокладку как moc для уже готового языка C++, чем создать новый язык программирования. Просто та модель ООП, которая реализована в "чистом" C++, не очень пригодна для написания GUI. Поэтому тролтехи решили пойти по пути наименьшего сопротивления. Пока что, это - лучшее из виденных мною решений для C и C++ :)
Видимо, gcc тоже долой ? Всем поголовно писать в машинных кодах и тут же исполнять, потому что компутер - это тоже препроцессор, который преобразует машинные коды в то, что воспринимается нами :)