bashの素晴らしきワロサ
ワロサは、「いとわろし」のワロサ=悪さと、ワロス=笑える/笑かしてくれるの両方の意味。
bashは古い言語の悪しき特徴を満遍なく現代に受け継いでいる。
- 汚い変数構文
- ブロックスコープがない。
- それなのに、呼び出し階層による入れ子スコープ
- 動的なくせに、実行時メタ情報が取れない/取りにくい
- 例外や構造的なエラー処理がない。
- 構文解析が区切り文字と文脈に頼る。
- テキスト処理、マクロ処理の雰囲気
- 評価規則がハッキリしない
- 複合データ構造がない
- リテラルが極めて貧弱
- 型システムがない
- 宣言が書けない
- モジュールやパッケージ機構がない
- クラスやインターフェイス機構がない
- 構文に、例外的規則や個別規則が多い。
- 文脈がデータとして取り出せない
- 関数が第一級のオブジェクトではない
- 参照がない
- 戻り値が制限が強くて、使い物にならない
- 名前の管理は、ユーザーの負担
- 引数に名前がないし、データ型も制限が強い。
- 制御とデータフローが一致してない
- 無名の関数がない。
- 色々な制約から、高階関数が書けない。
- 型の代わりに変数属性を付けると、酷いコアージョンをされる。