このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

bashの素晴らしきワロサ

ワロサは、「いとわろし」のワロサ=悪さと、ワロス=笑える/笑かしてくれるの両方の意味。

bashは古い言語の悪しき特徴を満遍なく現代に受け継いでいる。

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