JVM の中からシェルとかネイティブのコマンド叩くの、現実的には仕方のない場面も多いと思うんだけど、何がキモいのかというのをうまく言語化できない。
2015-03-26 00:06:32全てのメソッド宣言にnativeというキーワードをつけることが義務付けられているコーディング規約のJava開発案件
2015-03-26 00:13:28@okapies せっかく小綺麗なJVMワールドに入ったのにそっから外に出る感じが気持ち悪いんじゃないですかね。自分はそういう気持ち悪さは感じます
2015-03-26 00:09:48@kmizu 感覚的にはそういう感じですねー。ただ、具体的にどういう陥穽があるのかというのをちゃんと整理したことないなーと思いまして。なぜ、普通のスクリプト言語だとカジュアルにそういうことやってもあんまりキモくないのかとか。
2015-03-26 00:12:08@okapies PerlもRubyもですけど、独自のワールド作らなくてUnix文化に混ぜ合わさってる感じじゃないかと思いました。JavaはコマンドラインオプションからしてUnix文化から離れている感じが
2015-03-26 00:16:04@kmizu あー、それはありますね。「何でもファイル」とか「何でもプレインテキスト」みたいな概念が JVM の中でうまく安全に収まらないというか。
2015-03-26 00:17:54.@okapies うーむ…そう言われるとそんな気もするけど(と言いつつ #GroovyLang しか使わないので "ls -l".execute () …)
2015-03-26 01:13:16JVM の外側のコマンドとかデーモンを、ある種のオブジェクト or サービスとして抽象化して見せるラッパとか作ったらキモさ減るかなぁ…。単に隠蔽してるだけで問題が解決してないんじゃないかって気もするけど。
2015-03-26 00:36:31@okapies そうですね。あとは成功してる限りはまあ何でもよくて、失敗したときのヒントがアレかなと思うので、OS レベル(シェルレベルというか何というか)の問題だぞみたいな例外投げるとか?
2015-03-26 00:56:16@okapies JVMで動かすからには30億のデバイスで動かしたいですからね!中には shell のないやつも。。。
2015-03-26 08:15:51@kawachi @okapies 同じ意見だ!!Java = アプレットみたいなイメージが強い(特に初期)ので、気軽にそこにしかないシェル叩かれてもという感じです。ちなみにボクが唯一お仕事で使ったJavaはIBMのZ/OS上で動いてました。
2015-03-26 08:33:40.@okapies 枠外ぽい内容なんで混ざっていいのか非常に恐縮です。そう言えばキモい理由に『Windows だと引数が vector でなくて、更に quote が多重化しちゃうのでややこしい』ってのがある気がします(というか今日正に焼かれました orz)
2015-03-27 01:52:07