VB.NETは色々な意味でC#.NETよりも遅いよ

今更ながら蒸し返す様な投稿ですが、巷では
VB.NETとC#.NETは同じ.net上で展開されるので
処理速度は変わらないよーどっち使っても一緒だよ~

。。。というお話でしたが。。。

約30万行のVB.NETプロジェクトからC#.NETへ
移管が終了した今改めておもったのは

VB.NETやっぱり重いよ。。。

一番の問題はプログラム自体の構文解析に
C#よりもパワーが要るんでしょう。

言語自体曖昧な記述でも動くように親切(余計なおせっかい)設計なため、そのツケが構文解析に来てるんだと思います。

例1) 配列の記述と関数の記述が一緒
C# 配列 →[]  関数→()
VB 配列→() 関数→() 一緒

例2)関数なのかプロパティなのかわからん
C# 関数には必ず () が必要
VB 無くても合ってもいいやつ多数(ToString,Count,Trim)

だからこんなの来たらわからない場合も
VBの場合
SomeFunction(SomeArray())(0)
C#
SumeFunction(SumeArray[])[0]

VBで自作関数とか使ってて名前が適当だと全くわからん
Something(Something2())()
↑↓解釈したらこんなのかも
Sumething[Something2()][0]

そのおかげで、コンバートツール使ってもこのあたりは殆ど正常に解釈してくれません。。トホホ

Visualstudio等の統合開発環境はリアルタイムに構文解析を行って開発者にエラーなどをフィードバッグしてくれるのですが、同じプロジェクトなのにVBではPCのファンが回る回る、、、

新しい仕組みを入れるのでも、それまでの曖昧なルールが邪魔して、ナカナカC#のように進化するのは難しいでしょうね(もちろん別の意味のほうが大きい)

LINQなんかVBとC#を行き来してたら嫌になってしまう。

プリコンパイルの状態もILDSMというツールを使って見ることが出来るけど、VBはWithEventの影響でやたらプロパティを生成しまくってます。

結果、プロジェクトが大きくなればなるほどVBでの開発効率はヒジョーに悪くなります(断言)


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

About Me

Nobody knows

Featured Posts