長所。と短所?どのくらい使用しますか?ジャンビはどうですか?
8 に答える
私は数年前から商用開発に Qt を使用しており、非常に満足しています。
Qt の優れた点の 1 つは、多数のライブラリ セットと GUI 要素 (XML 解析、スレッド、ネットワークなど) がすべて一貫したスタイルですべてマルチプラットフォームで提供されることです。これは、ブーストを使用するものもありますが、他のライブラリを使用する必要はほとんどないことを意味します。
私たちにとってもう 1 つの非常に重要な要素は、国際化でした。以前の MFC ベースのアプリケーションでは、サポートする 2 つの言語用に 2 つのローカライズ バージョンを維持する必要がありました。Qt ベースのアプリでは、1 つのバージョンしかありません。
- linguist を使用した Qt 翻訳システムは使いやすく、複数の言語を簡単にサポートできます (もちろん、文字列を翻訳する必要がありますが、これは大変な作業です!)
- ウィジェットがレイアウトに従ってサイズを変更する GUI レイアウト システムにより、すべてがはるかに簡単になります。異なる言語では、文字列の長さが異なります。固定サイズのウィジェット (MFC など) では、各ダイアログを言語ごとに調整する必要があります。そうしないと、ラベルの一部が切り取られます。Qt を使用すると、サイズが変更されます。もちろん、正しく機能しない場合もありますが、それでもすべてがはるかに簡単になります。
- QString はすべてを Unicode で行い、さまざまなコーデックからの変換を非常に簡単に処理します。
非常に価値のあることの 1 つはソースへのアクセスですが、これは確かに Qt に固有のものではありません。Qt ソースをチェックする機能によって、いくつかの奇妙な動作が説明されたり、何かを達成する方法の手がかりが得られたりすることが何度かありました。
Qt にいくつかのバグが見つかりました。そのうちのいくつかは、Trolltech に報告した後に修正されました。他のケースでは、彼らは回避策を提案しています。これらはすべてかなりあいまいであり、私たちの開発に大きな影響を与えていません.
Qt の主な欠点の 1 つは、商用アプリケーションで使用するためのサードパーティ ライブラリがないことです。ただし、Qt はかなり完成度が高いので、開発しているアプリケーションの種類にもよりますが、大きな問題にはなりませんでした。
ジャンビも使っていません。
私は7年間、いくつかのプラットフォームでC++で行ったいくつかのプロジェクトでQtを使用しました。それはかなりうまく機能し、MacでまともなGUIアプリを開発する方が、当時私が知らなかった言語(Objective-C)を使って開発するよりも間違いなく速かったと思います。
信号/スロットのメカニズムは少しファンキーだと思いますが、ひどいものではありません。少し使用すると、ショーストッパーではありません。接続関連のものは簡単にまとめることができ(少なくともそうだった)、アプリが途中で楽しく動作し、機能しなかったとは言わないので、それらのリターンを確認することは常に良いことです。
私はジャンビを使ったことがありません。
Qtの長所と短所を次に示します。
長所:
クロスプラットフォーム
私はこれが常に使用されていることを知っていますが、Qtを使用してWindowsとLinuxの間を行ったり来たりした後、起動して実行するために必要な作業がどれほど少ないかは驚くべきことです。これは、私がVimをQtDesignerでのみ使用しているという事実によって助けられていると思います。
QMake
これはQtの私のお気に入りの側面の1つです。wxWidgetsやFLTKなどで作業した後、さまざまなビルドシステムをいじくり回すのに飽き飽きしていて、手動でmakefileを作成したくありません。現在、Qt以外でCMakeを使用していますが、QtでもゆっくりとCMakeに移行していると思います。ただし、QMakeを使用するのはとても簡単です。
QTestLib
他のいくつかのC++ユニットテストフレームワークを調べましたが、QTestLibを使用してテストを作成したとき、NUnit(C#)と非常によく似ていると感じ、数分以内にいくつかのテストに合格しました。また、独自の継続的インテグレーション環境を作成するのは非常に簡単であることに気づきました。
生産性においてJavaと.Netに最も近い
C++について人々が聞いたり読んだりする最大のことは、「Javaまたは.Netでより生産的になることができる」ということです。個人的な経験から、EclipseやVisual Studioが読み込まれる前に、VimとQtDesignerを使用してQtで実行されているアプリケーションのプロトタイプを入手できます。また、.NetまたはJavaにあるものと非常によく似たライブラリのセットをQtに取得します。ライブラリがない場合は、既存のC++コードを利用できます。
短所:
価格
これが私が今考えることができる最大の要因です。ただし、営業担当者に電話をかけずに何セント節約する必要があるかを知っていれば、コストは1セントの価値があります。私は彼らが中小企業の割引を受けた日にライセンスを購入しました、そしてそれはそれだけの価値がありました、私は3倍の金額を支払ったでしょう、そしてそれは現在の価格だと思います。
商用ライセンスでどこでも開発
できます。どのプラットフォームでも開発できるようにしたいと思いますが、別のプラットフォーム用に構築して販売します。たとえば、Linuxで開発し、Windowsの商用ライセンスを持っている場合は、Windowsでビルドして展開します。私の知る限り、ライセンスを持っているプラットフォームでのみ商用アプリケーションを開発および構築できます。
ベンダーロックイン
そうですね、これは個人的な欠点です。私は会社の方向性と製品の方向性に追われるので、特定のベンダーに縛られるのは好きではありません。TrollTechはNokiaによって購入されました。これは良いか悪いかはわかりませんが、その規模の会社は悪いことをすることができます。
私は今のところ終わったと思います:)。ああ、私はJambiを使用していませんが、C++で開発されたプラグインをJambiで使用するのがいかに簡単かを知るためにいくつかのプロトタイププロジェクトを行うことに本当に興味があります。特に、C++プラグインを使用したWebインターフェイスとしてJambiを使用します。
正直なところ、あまり読んでいないので、無理か簡単かもしれません。
以前の仕事でQtを使用しました。私はその数年前にQtとの接触が非常に短いだけだったので、私はほとんどQtの初心者でした。
私が始めたとき、私は自分の言語と環境を選ぶように言われましたが、クロスプラットフォームのサポートが望まれていました。私はQtとJavaを試してみましたが、C#を試してみました。私は各オプションを評価するために2日間を費やしました。
C ++開発者としての私の歴史に少し偏っていたのかもしれませんが、各オプションに時間を費やした後、長い学習曲線なしで役立つヒントを示したのはQtだけでした。
Qtとサンプルアプリケーションで提供されるドキュメントにより、経験豊富な開発者は非常に簡単になりましたが、Qtの初心者は非常に迅速に起動して実行できます。試用期間の終わりまでに、エンドアプリケーションのUIプロトタイプ/モックアップを作成しました。Java / Eclipse、Java / SunStudio、およびC#/ VS.netでは、その間に重要なことが起こるのに苦労しました。
シグナル/スロットには多少の慣れが必要でしたが、それほど悪くはありませんでした。接続で愚かなタイプミスによるアプリの停止を阻止できなかった場合にアサートする簡単なラッパーをいくつか作成しました。働くことから。
私が気に入ったもう1つの点は、Qtに必要なものがほぼすべて揃っていることです。ストレージ、ネットワーキング、GUI、スレッド、コンテナなどの名前を付けます。Qtにはそれを処理するクラスがあります。ライブラリを混合すると問題が発生することがあるため、どのIMHOが重要か。
Qtのソースコードがあることは大きなプラスであり、単なる興味のためですが、開発中に使用するデバッグバージョンを含め、コンパイラと選択した設定を使用してQtをコンパイルすることもできました。
また、Trolltechのサポートはかなり良いと思いました。Qtでいくつかのバグを報告しましたが、そのうちの1つは、プロジェクトの作業中に修正およびリリースされました(6か月の仕事のみ)。
私が思い出すことができる唯一の欠点は、Qtオブジェクトのデバッグ(VSを使用)の難しさでした-Qtオブジェクトを調べることができるVS用のQtプラグインがありますが、無料バージョンのVSを使用していて、プラグインは機能しません。しかし、それはQtのせいではありませんでした。
私はジャンビを使ったことがないのでコメントできません。
Qt を 2 年以上使用しています。
私が Qt で気に入っているものは次のとおりです。
- 簡単な GUI プログラミング (MFC と比較して)、Qt Designer
- 素敵なコンテナ クラス
- 素敵なグラフィック シーン フレームワーク
- 役立つ例を含む優れたドキュメント
- 翻訳サポート
- 優れた技術サポート
Qt Developer Daysを強くお勧めします。参加する機会があれば、ぜひ参加してください!素敵でとても興味深い話がたくさんあります。
C++ では、他の唯一の選択肢は MFC と wxWidgets です。QT / wxWidgets は主に個人的な好みです。QT は適切なドキュメントを備えたクリーンなデザインだと思います。
QT を GPL で使用していない場合、開発者の給与の約 1 か月分の費用がかかります。
Qt は非常に優れたライブラリですが、シートごとの高価な開発者ライセンスを持っているため、すべてのプロジェクトで常に役立つとは限りません。
ただし、使用しないでください...
長所: QT にはオプションの 3 フェーズ レイアウトがありますが、WX では現在 2 つしか許可されていません (3 フェーズを計画していると思いますが、まだ機能していません)。
レイアウトを使用する際の大きな問題の 1 つは、静的テキストと折り返しです。WX は、最小の幅/高さ、および画面外の部分の大きさを尋ねます。QT には、必要な幅、X 幅の場合に必要な高さを示すオプションがあります。これにより、ページの流れをより適切に表現できます。