C++ コードをグラフィカルに開発できるアプリケーションを設計する可能性を考えています。Scratch を発見したときは驚きました (サイトとチュートリアル ビデオを参照してください)。
プリプロセッサ命令とおそらく関数ポインタを除いて、ほとんどの C++ はグラフィカルに表現できると思います。
グラフィカルな項目で表現できる (または表現できない) C++ 機能は何だと思いますか? このようなアプリケーションの長所と短所は何ですか? 「プレーンな」C++ よりもどれだけ簡単になるでしょうか?
要約と詳細:
長所:
- 直感的
- 小さなアプリケーションではシンプル
- タイプミスを避けるのに役立ちます
短所:
- 大規模(中規模?)のアプリケーションでは判読不能になる可能性があります-サイズのアプリケーション
- 経験豊富なプログラマーにとっては、手動コーディングの方が高速です
- C++ は、そのようなアプローチには複雑すぎる言語です。
私の仕事では、すでにかなりの数の既存の C++ コードがあることを考えると、まったく新しいプログラミング方法を探しているわけではありません。レガシ コードと完全に互換性のある別のプログラミング方法を検討しています。人々が新しいコードに使用するある種の「バイラル言語」であり、うまくいけば、最終的には既存のコードを置き換えるためにも使用されます (有用な場合)。
このバイラルなアプローチについてどう思いますか?
手動プログラミングとグラフィカルプログラミングに関しては、私はあなたの答えに同意する傾向があります. これが、理想的には、ユーザーがタイピングとグラフィカル プログラミングのどちらかを常に選択できるようにする方法を見つける理由です。行ごとのパーサー (+部分インタープリター) は、型付きコードをグラフィック デザインに変換できる場合があります。可能です。指を交差させましょう。
タイピング機能とグラフィカル プログラミング機能の両方を提供する際に、慎重に検討および分析する必要がある注意事項はありますか?
私はすでにテンプレート クラス (およびより一般的には型レベルの C++) とそのグラフィカル表現に取り組んできました。テンプレート クラスのグラフィカルな表現の例については、そこを参照してください。ボックスは、クラスまたはクラス テンプレートを表します。最初の最上位ノードはクラス自体であり、次のもの (存在する場合) はクラス内の typedef 命令です。下部ノードはテンプレート引数です。もちろん、エッジはインスタンス化のためにクラスをテンプレート引数に接続します。このような型レベルのダイアグラムに取り組むためのプロトタイプはすでに持っています。
このテンプレート クラスの表現方法が明らかに間違っていると思われる場合は、遠慮なくその理由をおっしゃってください。