Back

後付けの型付け - Retrofitted Typing -

This is the diff between the backup and the current copy.

# 後付けの型付け - Retrofitted Typing -

## 型は必須

プログラミング言語に型は必須である。
内部的にはどうしても型があるのだから、表面的にそれを隠蔽しようとしても無駄だ。
だが世間には型無し言語が沢山ある。
それらはプログラミング言語としては偽物だが、動くように見えるから始末が悪い。
Python, JavaScript, PHP, お前達の事だ。

最近になって型無し言語どもは反省した振りを見せ始め、後付けで型を付ける試みをしている。
見苦しいことこの上無い。
本気なら言語仕様を根本から見直す必要があるが、それをしないのは、単に一過性の流行に過ぎないからだ。
とは言え、世間の圧力に屈して型無し言語を渋々使わざるを得ない私のような流離いのプログラマにとっては、少しでも型有りに近付いた気分を得られるのはあり難い。
積極的に使わせてもらおうじゃないか。
型無し派に型の必要性を認識してもらう切っ掛けにもなるだろう。

## 具体的な後付け言語たち

今のところ私が触った後付けの型付け体系は2つのみ。
しかもまだ深くは探求してない。

* [mypy](mypy) : Python用
* [TypeScript](typescript) : JavaScript用

噂ではPHPにも後付けの型付けがあると聞く。
仕事で今後またPHPに触る機会がありそうなので、そのときにでも調べることにする。

## 型無しの思想背景

型無し言語は安全性をトレードオフに掛ける。
安全性を大幅に削り落とし、代わりに多少の効率を得る。
だがその効率は一時的なものに過ぎず、長期的には幻想に過ぎない。
失った安全性が牙を向き、後で修正を余儀無くされるゆえ、全体的な効率は悪くなる。
まぁとりあえず動いてるように見える偽物を作ったつもりになれるためには良いというだけ。
昨今の情報技術界隈の雰囲気そのままだ。
要するに、本当に物を作りたいのではなく、カネと名誉が欲しいだけということだ。
結局のところ、資本主義がどーのあーだこーだ、いやまぁ、やめておく。

安全性は目的のひとつだ。
トレードオフの対象ではない。
確かに、あらゆる目的がトレードオフの対象になり得る、という議論はあり得る。
だがそれは戦時の論理であり、平時のものではない。
平時も戦時だという議論もなり立つが、結局それは資本主義がどーのあーだこーだ、いやまぁ(Rya