FreePascalを得て思ったのだが
Pascalにはいくつか悲しい点がある。
1) VimでC用の便利なキーコマンドが使えない(di}とか%とか)
2) ctagsが吐くタグがちょっと変
そこで思ったのだが
C#ってどうよ?と。
コンパイルは速いようだし( C++で2分40秒ほどかかる規模のソースファイルを、C#では7秒という話を読んだことがある )、文法はC++に似ている。そしてdllも簡単に呼べる。
だが、俺としてはdllを呼べるというのは最低条件。できればCの吐くobjファイルがリンクできればいいのだが…。
さらに言えば、実行速度はだいたいC++の80%程度らしい。コンパイル速度の速さを考えれば20%のパワーダウンは十分納得行く話だ。
そして、LinuxでもmonoというC#処理系があるのは大きい。
まあ、必殺最終兵器として、C#→C++コンバータ書いたらどうかなーと思った。完成後に機械的にコンバートすれば(できれば)、開発速度も最終バイナリの速度も満足いくものになるはずだ。
…とかいろいろ妄想してみたが、いくつか気に入らない点もある。
ひとつは、デストラクタを明示的に呼ぶのが難しいことだ。
というか、呼ばないらしい。
C#→C++コンバータは、デストラクタを呼ばないのでちょっと難しい?という気もしてきたわけだが…まあ、using節やローカルスコープは検出可能なのだから、考えるほど無茶な話ではないのかもしれない。あるいは、自分ルールで空の擬似デストラクタを呼び、コンバート時にそれを実際のdelete呼び出しに繋げる、というのもアリか。
あと、まだOpenGLが無いらしいんだよなぁ。一応CsGLというのがあるのだが、開発が止まってしまっているようだ…SDLは、これはSDL.NETというのがあるらしいので、monoなLinux環境に移行しても、これはさほど問題ではないと思われ。
さて、どうしたもんだか。
Pascalにはいくつか悲しい点がある。
1) VimでC用の便利なキーコマンドが使えない(di}とか%とか)
2) ctagsが吐くタグがちょっと変
そこで思ったのだが
C#ってどうよ?と。
コンパイルは速いようだし( C++で2分40秒ほどかかる規模のソースファイルを、C#では7秒という話を読んだことがある )、文法はC++に似ている。そしてdllも簡単に呼べる。
だが、俺としてはdllを呼べるというのは最低条件。できればCの吐くobjファイルがリンクできればいいのだが…。
さらに言えば、実行速度はだいたいC++の80%程度らしい。コンパイル速度の速さを考えれば20%のパワーダウンは十分納得行く話だ。
そして、LinuxでもmonoというC#処理系があるのは大きい。
まあ、必殺最終兵器として、C#→C++コンバータ書いたらどうかなーと思った。完成後に機械的にコンバートすれば(できれば)、開発速度も最終バイナリの速度も満足いくものになるはずだ。
…とかいろいろ妄想してみたが、いくつか気に入らない点もある。
ひとつは、デストラクタを明示的に呼ぶのが難しいことだ。
というか、呼ばないらしい。
C#→C++コンバータは、デストラクタを呼ばないのでちょっと難しい?という気もしてきたわけだが…まあ、using節やローカルスコープは検出可能なのだから、考えるほど無茶な話ではないのかもしれない。あるいは、自分ルールで空の擬似デストラクタを呼び、コンバート時にそれを実際のdelete呼び出しに繋げる、というのもアリか。
あと、まだOpenGLが無いらしいんだよなぁ。一応CsGLというのがあるのだが、開発が止まってしまっているようだ…SDLは、これはSDL.NETというのがあるらしいので、monoなLinux環境に移行しても、これはさほど問題ではないと思われ。
さて、どうしたもんだか。