名前付き引数の是非

named arguments considered harmful – ものがたり

名前付きパラメータと位置によるパラメータの一致の不一致 – L’eclat des jours(2008-05-27)

結論的には今はいらない。今いらないのはVBがマルチパラダイム言語になって、普通のオブジェクト指向言語的な書き方や関数のオーバーロードが書けるようになったから。

しかし、関数のオーバーロードがなかったVB6まではそれがだめな方法であったにしろ名前付き引数は必要悪だったと思う。

また、VB.VBAのあのIDEがあったからこそ成り立っていたとも言えるかもしれない。

VBに限らず、歴史のある言語の言語仕様について、今の視点で単純に話してしまうといささか誤解が生じるかもしれない。なんというか、VBxに関するあれこれを読んでいると一度VB.NETで断ち切ろうとしたもろもろを結局断ち切れないのだなぁという、ある種残念な気分になる。それだけ普及して、プログラマに染み付いてしまったのであれば、意識改革じゃ済まないかもしれないな。

僕は昔からExcel VBA(これは関数の引数多すぎて使わないと無理)以外では使用しないようにしてきたので、なくなっても困らないんだけど。後いらないといえば、With句もなくしてほしい。

また、monoのVBにこうした下位互換性が必要かどうかはまた別で、それはmonoの中で議論されればいいと思う。 まぁきっとなくす方向の話にはならないんだろうけど。

コメントを残す