Здравствуйте, alexey_sz, Вы писали:
MZ>>В разных случаях для написания GUI на С++ используют разные библиотеки. _>А что еще распространено помимо MFC, Qt , Gtk ?
wxWidgets вроде живет. В отличии от Qt не использует расширений языка и соответственно каких-либо препроцессоров, используется что-то типа карт сообщений MFC. Мне сигналы/слоты как-то не особо понравились.
Здравствуйте, kaa.python, Вы писали: KP>Лицензия давно бесплатная
Это если лицензировать продукт по GPL. А если код открывать никому не собираешься — то плати 3000 USD за рабочую лицензию http://qt.nokia.com/products/pricing
Далеко не все фирмы горят желанием лицензировать продукт по GPL.
Сам раньше не занимался этим — насколько успешна комбинация с++ с gui на другом языке (С#,java) ?
Здравствуйте, alexey_sz, Вы писали:
_>Здравствуйте, MasterZiv, Вы писали:
MZ>>В разных случаях для написания GUI на С++ используют разные библиотеки. _>А что еще распространено помимо MFC, Qt , Gtk ?
Основной плюс Qt то, что за ним стоит мега монстр — Nokia. В отличии от wxWidgets поддрежка гиганта позволяет Qt захватывать рынок, т.к. есть доверие, что продукт будут развивать, поддерживать, а не превратится в очередной Nemerle. Сейчас уже очень многие под Qt сидят.
Здравствуйте, agronom25, Вы писали:
A>Здравствуйте, kaa.python, Вы писали: KP>>Лицензия давно бесплатная A>Это если лицензировать продукт по GPL. А если код открывать никому не собираешься — то плати 3000 USD за рабочую лицензию http://qt.nokia.com/products/pricing A>Далеко не все фирмы горят желанием лицензировать продукт по GPL.
<b>L</b>GPL. L. Если вкратце — раскрыть исходники только в том случае, если слинковались статически. Если слинковались с dll — как происходит в Qt чуть ли не "по умолчанию" — тогда раскрывать не нужно:
Ru.Wiki:
GNU LGPL позволяет линковать с данной библиотекой или программой программы под любой лицензией, несовместимой с GNU GPL, при условии, что такая программа не является производной от объекта, распространяемого под (L)GPL, кроме как путём линкования.
Здравствуйте, agronom25, Вы писали:
A>Стоит ли тратить время на изучение Qt (для повышения своих карьерных перспектив)?
GUI на C++ не самое перспективное направление.
A>понимаю Qt сейчас является стандартом де-факто при написании графики на C++.
Зависит от платформы, еще есть GTK.
A> С другой стороны будущая востребованность данной технологии вызывает сомнения из-за довольно приличной стоимости лицензий на разработку для коммерческих предприятий и небольшое число вакансий для QT.
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, agronom25, Вы писали:
A>>Здравствуйте, kaa.python, Вы писали: KP>>>Лицензия давно бесплатная A>>Это если лицензировать продукт по GPL. А если код открывать никому не собираешься — то плати 3000 USD за рабочую лицензию http://qt.nokia.com/products/pricing
У бесплатного QT лицензия не GPL (так было раньше), а LGPL, то есть можно писать коммерческий closed source софт, но линковаться надо динамически, а также публиковать все изменения внесенные в саму QT, коммерческая версия QT таких ограничений не накладывает.
KP>Что-то я считал что QT для коммерческого использования тоже бесплатна, даже читал на эту тему. Ты меня реально озадачил
A>>Сам раньше не занимался этим — насколько успешна комбинация с++ с gui на другом языке (С#,java) ?
KP>Про C# и Java ничего не скажу, но C++ демон с Objective-C (Cocoa) GUI сочетаются просто великолепно
Здравствуйте, agronom25, Вы писали:
A>Стоит ли тратить время на изучение Qt (для повышения своих карьерных перспектив)? Насколько я A>понимаю Qt сейчас является стандартом де-факто при написании графики на C++. С другой стороны будущая востребованность данной технологии вызывает сомнения из-за довольно приличной стоимости лицензий на разработку для коммерческих предприятий и небольшое число вакансий для QT.
Здравствуйте, agronom25, Вы писали:
A>понимаю Qt сейчас является стандартом де-факто при написании графики на C++
Пока еще отнюдь не является.
A>С другой стороны будущая востребованность данной технологии вызывает сомнения из-за довольно приличной стоимости лицензий на разработку для коммерческих предприятий и небольшое число вакансий для QT.
...но растет число новых приложений и новых версий старых, используюших qt, растет число вакансий, так что в будущем как раз может и будет являться.
Немного помешать этому может то, что это не просто либа для C++, а фреймворк, даже с собственным препроцессором. Но богатство фич по сравнению с альтернативами дает много шансов, что станет.
A>Стоит ли тратить время на изучение Qt (для повышения своих карьерных перспектив)?
Стоит ли тратить время на изучение Qt (для повышения своих карьерных перспектив)? Насколько я
понимаю Qt сейчас является стандартом де-факто при написании графики на C++. С другой стороны будущая востребованность данной технологии вызывает сомнения из-за довольно приличной стоимости лицензий на разработку для коммерческих предприятий и небольшое число вакансий для QT.
Здравствуйте, agronom25, Вы писали:
A>Здравствуйте, kaa.python, Вы писали: KP>>Лицензия давно бесплатная A>Это если лицензировать продукт по GPL. А если код открывать никому не собираешься — то плати 3000 USD за рабочую лицензию http://qt.nokia.com/products/pricing
Что-то я считал что QT для коммерческого использования тоже бесплатна, даже читал на эту тему. Ты меня реально озадачил
A>Сам раньше не занимался этим — насколько успешна комбинация с++ с gui на другом языке (С#,java) ?
Про C# и Java ничего не скажу, но C++ демон с Objective-C (Cocoa) GUI сочетаются просто великолепно
Здравствуйте, kaa.python, Вы писали:
KP>Что-то я считал что QT для коммерческого использования тоже бесплатна, даже читал на эту тему. Ты меня реально озадачил
Честно говоря не знаток GPL — коммерчески использовать вроде можно, но код открыть обязан. 3000 USD за лицензию — тут даже Билли с Visual Studio в сторонке курит
Здравствуйте, kaa.python, Вы писали:
KP>Что-то я считал что QT для коммерческого использования тоже бесплатна, даже читал на эту тему. Ты меня реально озадачил
Да, бесплатна — они распространяют Qt под коммерческой лицензией (с тех. поддержкой и т.п.), под GPL и под LGPL: http://qt.nokia.com/products/licensing
Что должно быть при таком раскладе раскрыто, так это (цитата) "Changes to Qt source code must be shared" (в смысле, изменения в самой библиотеке).
Здравствуйте, agronom25, Вы писали:
A>Честно говоря не знаток GPL — коммерчески использовать вроде можно, но код открыть обязан. 3000 USD за лицензию — тут даже Билли с Visual Studio в сторонке курит
Не-не. См. мои два ответа ниже по дереву.
agronom25 wrote:
Насколько я > понимаю Qt сейчас является стандартом де-факто при написании графики на > C++.
Таких стандартов нет и никогда не будет.
В разных случаях для написания GUI на С++ используют разные библиотеки.
С другой стороны будущая востребованность данной технологии > вызывает сомнения из-за довольно приличной стоимости лицензий на > разработку для коммерческих предприятий и небольшое число вакансий для QT.
Проснись. QT сейчас LGPL. Стоимость лицензии на разработку -- 0.
Здравствуйте, MasterZiv, Вы писали:
MZ>В разных случаях для написания GUI на С++ используют разные библиотеки.
А что еще распространено помимо MFC, Qt , Gtk ?
Software frameworks have these distinguishing features that separate them from libraries or normal user applications:
1. inversion of control — In a framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework.[1]
2. default behavior — A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of no-ops.
3. extensibility — A framework can be extended by the user usually by selective overriding or specialized by user code providing specific functionality.
4. non-modifiable framework code — The framework code, in general, is not allowed to be modified. Users can extend the framework, but not modify its code.
Ключевым является пункт 1. Фреймворк в том или ином масштабе навязывает свои механизмы и свои архитектурные решения. Например, в случае с Qt вы как минимум начинете наследоваться от QObject и пользоваться сигналами/слотами. В случае с Cocoa вы наверняка начнете писать наследников NSObject и пользоваться всякими NSArray, вместо std::vector и так далее.
В случае с либами, тенденции строить весь проект по ее примеру не наблюдается. Либу можно выкинуть и поменять на другую. Фреймворк без тотального переписывания не выкинуть, обычно он раз и навсегда.
Кодёнок wrote:
> В случае с либами, тенденции строить весь проект по ее примеру не > наблюдается. Либу можно выкинуть и поменять на другую. Фреймворк без > тотального переписывания не выкинуть, обычно он раз и навсегда.
ОК, я вообще пытался намекнуть, что вообще-то других GUI библиотек
и не особенно бывает. QT тут ничем от других подобных "рамкоработ"
не отличается. Так что не думаю, что это "может немного помешать ЭТОМУ",
хотя я и не очень ЭТОГО хотел бы.
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, alexey_sz, Вы писали:
_>>Здравствуйте, MasterZiv, Вы писали:
MZ>>>В разных случаях для написания GUI на С++ используют разные библиотеки. _>>А что еще распространено помимо MFC, Qt , Gtk ?
S>Основной плюс Qt то, что за ним стоит мега монстр — Nokia. В отличии от wxWidgets поддрежка гиганта позволяет Qt захватывать рынок, т.к. есть доверие, что продукт будут развивать, поддерживать, а не превратится в очередной Nemerle. Сейчас уже очень многие под Qt сидят. http://blog.qt.nokia.com/2011/02/12/nokia-new-strategic-direction-what-is-the-future-for-qt/
Здравствуйте, agronom25, Вы писали:
A>Стоит ли тратить время на изучение Qt (для повышения своих карьерных перспектив)? Насколько я A>понимаю Qt сейчас является стандартом де-факто при написании графики на C++. С другой стороны будущая востребованность данной технологии вызывает сомнения из-за довольно приличной стоимости лицензий на разработку для коммерческих предприятий и небольшое число вакансий для QT.
Nokia перелицензировала Qt под LGPL. Так что если техподдержка не нужна, можно использовать ее совершенно бесплатно, в т.ч. в коммерческих приложениях. Единственное ограничение: линковаться с Qt надо динамически, а не статически, ну и правильные слова в своей документации написать.
Здравствуйте, Pzz, Вы писали:
Pzz>Единственное ограничение: линковаться с Qt надо динамически, а не статически, ну и правильные слова в своей документации написать.
ню-ню. попробуй напиши серьёзную программу, не позаимствовав в своих классах код из стандартных
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, BulatZiganshin, Вы писали:
Pzz>>Единственное ограничение: линковаться с Qt надо динамически, а не статически, ну и правильные слова в своей документации написать. BZ>ню-ню. попробуй напиши серьёзную программу, не позаимствовав в своих классах код из стандартных
Ээээ... А вы делаете cut&paste из библиотечного кода?!?
Если что, для заголовков, наследования и шаблонов в LGPL предусмотрены исключения.
Здравствуйте, Cyberax, Вы писали:
BZ>>ню-ню. попробуй напиши серьёзную программу, не позаимствовав в своих классах код из стандартных C>Ээээ... А вы делаете cut&paste из библиотечного кода?!?
а по-твоему ООП автоматически решает все проблемы переиспользования? например, делаю d&d: стандартный хендлер всем хорош, но пару вещей для меня делает неправильно. вот и выбирай — либо переписывать нужные мне фичи с нуля, либо копировать и править код из qt, либо чего-то лишаться
Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>ню-ню. попробуй напиши серьёзную программу, не позаимствовав в своих классах код из стандартных C>>Ээээ... А вы делаете cut&paste из библиотечного кода?!? BZ>а по-твоему ООП автоматически решает все проблемы переиспользования? например, делаю d&d: стандартный хендлер всем хорош, но пару вещей для меня делает неправильно. вот и выбирай — либо переписывать нужные мне фичи с нуля, либо копировать и править код из qt, либо чего-то лишаться
Ну свой напиши, тогда.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>ню-ню. попробуй напиши серьёзную программу, не позаимствовав в своих классах код из стандартных C>>Ээээ... А вы делаете cut&paste из библиотечного кода?!? BZ>а по-твоему ООП автоматически решает все проблемы переиспользования? например, делаю d&d: стандартный хендлер всем хорош, но пару вещей для меня делает неправильно. вот и выбирай — либо переписывать нужные мне фичи с нуля, либо копировать и править код из qt, либо чего-то лишаться
Или как вариант — выносишь изменения в отдельную DLL и публикуешь её исходники под LGPL, всё как полагается.