
ログ出力の有無で顕在化する並行処理のバグとか過剰なログ出力でディスクがあふれてシステム停止とかを見ているので、多くの言語が採用する「ログ出力は副作用のないものとして扱う」という姿勢に疑問を持つ。むしろ積極的に言語機能で保護・制限すべき部分なのでは。デバッグ時のprintは別としても。
2018-03-25 18:38:37
ログって必要だから出してるんですよね。単に型などで制限するという方針だと、ログを出さないプログラムが書かれるだけなのでは
2018-03-26 17:56:15
入出力が昔は言語の機能で(ライブラリじゃなく)、古臭い教科書(から更新されてない教科書)だと、どんな言語にも必ず入出力の機能がある、とか書いてあったりするが、最近また入出力が絡む機能を言語が持つようになってきているとかいうあたりか
2018-03-26 18:01:15
多くのプログラミング言語はUNIX風のstdin, stdout, (stderr)を標準で持っているけど、ALGOLやJSのようにそういうのがない状態で登場する言語もたまにある
2018-03-26 18:04:21
単に難しいというだけだとMalbolgeになってしまうので、「一見普通のプログラミング言語だけど、あらゆるプログラミング言語から落とし穴を拾い集めてきていて、ちゃんと動くプログラムを書くのが非常に難しい」あたりが狙いどころだろうか。
2018-03-26 18:13:13
null、配列が共変、ダイアモンド継承問題、スライシング問題、多彩なリテラルのための複雑な字句解析器、トークンベースのマクロ、実体化のタイミングでの名前解決、挙動を変える特殊化、ダイナミックスコープ、複雑な型構文
2018-03-26 19:47:42
関数とコンストラクタが区別されていない、シングルスレッド、暗黙のthis、暗黙のthisを増やせる構文、実装ファイルとインターフェースファイルに同じことを二度書く、比較演算子における暗黙の変換
2018-03-26 19:53:45
@cobodo これのことを想定していました developer.mozilla.org/ja/docs/Web/Ja…
2018-03-26 20:01:10
代入が=、代入演算子が代入された値を返す、暗黙の下位型変換、デフォルトグローバル変数、演算子オーバーロードの乱用、不必要にステートフルなライブラリ、弱い擬似乱数
2018-03-26 19:59:19
名前のググラビリティーが低い、名前のググラビリティーが危険、複数の競合するビルドツールがある、複数の競合するパッケージマネージャーがある、エヴァンジェリストが初心者を萎縮させている、言語自体に競合するフォークがある(或いは多すぎる)
2018-03-26 20:19:03
標準入出力がないために他ツールとの噛み合わせが悪い、単純に標準ライブラリが貧弱(自身のコンパイルのために必要な分しかない)、抽象的なライブラリ関数と具体的なライブラリ関数が併存している
2018-03-26 20:22:58