できるだけ詳しく書いてみました^^
参考になれば嬉しいです^^
・GUIプログラムの作成(Windows上)
・HSP,C#,VB
・大変容易
・C++
・プラットフォーム(OS)のAPIをじかにたたく、または、Qtなどを利用する
・CUIプログラムの作成(Windows上)
・HSP,C++,C#,VB
・大変容易
・プログラムの実行スピード
・HSP
・大変遅い
・JIT実装もあり、生HSPと比較すると高速化される
・C++
・他と比較すると最速になる場合が多い
・書く人の技量次第
・C#,VB
・C#で書いたコードのすべてがJITされるので高速に動作する
・ランタイム配布の必要性
・HSP
・基本的にHSPコンパイラによって作成される.exe以外を配布する必要はない
・外部ライブラリなどを使う場合は別
・C++
・基本的にC++コンパイラによって作成される.exe以外を配布する必要はない
・外部ライブラリなどを使う場合、静的リンクするか動的リンクするかによっていろいろ変わる
・また、プラットフォーム(OS)ごとに違うファイルを配布する必要がある
・C#,VB
・コンパイラから出てきた.exeの他に、.net frameworkをインストールしてもらう必要がある
・世間一般に使われる最低バージョン(サポートの)のWindows Vistaであれば3.5がインストール済み
・スレッド
・HSP
・そんなものはない
・C++
・言語レベルでのサポートはない
・OSの物をじかに利用、または、なんらかのライブラリを利用
・C#,VB
・ネイティブスレッドを言語レベルでサポート
・外部ライブラリ
・HSP
・使いたいライブラリは自分で探す
・ライブラリレポジトリで稼働している物はない
・もしくはすべて手書きする
・C++
・C++利用の全体をカバーするライブラリレポジトリはない
・QtやBoostなどよくつかわれるライブラリはある
・C#,VB
・使いたいライブラリはNuGetなどから探すのが一般的
・NuGetでは約35000のライブラリが登録されており簡単に検索できる
・言語仕様
・HSP
・仕様書はない
・しかし、設計が過去の遺産を引きずっている
・C++,C#
・仕様が国際標準化されている
・改定が進み、新しい機能が続々取り入れられている
・VB
・仕様が標準化されている
・しかし、設計が過去の遺産を引きずっている
・他言語(C)との連携
・HSP
・大変難しい
・例えば構造体を引数に取る関数を呼び出す際には自分で構造体のメンバの位置を計算しなければならないなどはまりどころが多い
・C#,VB
・HSPほど難しいわけではない
・C#などは構造体を言語でサポートし、メンバの位置計算はほとんどの場合自動で行われる
・ポータビリティ
・HSP
・基本的にWindows上でしか動かない
・Wineなどを使うとLinuxやMac OS Xの上で動かすことができる場合がある
・おまけとしてAndroid, iOSアプリが作成できる
・C++
・OS (CPU)ごとにコンパイルが必要
・標準で用意されている関数(標準ライブラリ)は仕様が決まっているため、どのOS上でも同じように動作することが期待される
・しかしながら、C++はプラットフォーム(OS)と結びついたプログラムになることも多々ある
・Windows APIを使うとWindows専用になる
・ただし、QtやBoostなどを使うとプラットフォームの違いを吸収できる場合がある
・C#,VB
・Windows (MSの.net runtime), Linux/Mac OS X(Mono, CoreCLR)で動く
・例えばMonoではWPFの実装はないため使えない機能もある
・Android, iOSアプリが作成できる。(Xamarin)
・「Windows専用」は明らかな誤り
・開発環境
・HSP
・付属エディタ
・無料
・軽い
・その代わり付いている機能はそれなり
・C#,VB
・Visual Studio
・無料
・HSPの付属エディタと比べると重いが、家庭用のPCで動かすくらいは問題ない
・テンプレートや補完などの機能があり、効率的にプログラムを書くことができる
C#が圧勝ですね♪