◆ 他言語使うと一々エラーで過ぎ
◆ 値がないならnull でいいのに
◆ 値がないのは異常ではなく正常でありうるケースのひとつ

JavaScript 以外の言語を使っていてよく思うことなのですが

エラー出過ぎ

  • 配列の範囲外にアクセスしたり
  • 空の配列を pop したり
  • オブジェクトやディクショナリの存在しないキーにアクセスしたり
  • 関数呼び出しの引数の数が合わなかったり

そんなときに一々エラーになるのがすごくストレスです

データがないなら全部 null でいいじゃん
一々エラー扱いしないでほしいです
その面倒さを取るために無いなら null を返すラッパー関数を作ることになってやっぱり面倒です

C くらい低レイヤーになるとそういう便利機能がないのはわかります
しかし Python とかのスクリプト言語や中間言語作ったりする言語ならそれくらいの便利さがほしいです

実行できるかを事前にチェックが必要というのなら 別に null を返したところでなんの問題もないと思います

そもそも無いものへのアクセスは異常系ではなく正常系なんですよね

JavaScript の場合は undefined というそういう例外的な場合の値があるので null とは区別できます
undefined がなくて区別できないからと言ってその他言語でエラーを起こされると catch したりと使う側の面倒さがあがるんですよね
とりあえずエラーじゃなくて エラーオブジェクトそのものでも Symbol 的な何かでも 値を返してほしいです

多くの言語では例外が起きるとパフォーマンス落ちると言われていますし それなりの頻度で起きる前提の実装は避けたいです

最終的にエラーとして throw するとしても生の「範囲外アクセス」とか言われてもわかりづらいので 使い方に即して何がおかしいかを書いたエラーを自分で作ってそれを再度 throw するわけなのでエラーを起こされるメリットがないです