言語設計論では、基本「書くコスト」と「保守(読む)コスト」の2種類にわけて考えればいいと思ってる / 言語のAPI仕様を最小にするのには正規表現リテラルの導入が有効というのが僕の論 / “プログラミング言語内の正規表現リテラルにつ…” http://t.co/whvioxMAII
2013-12-20 14:14:16@kazuho だったら正規表現なんて完全に外に出しちゃったほうが「言語のAPI仕様は最小」なのでは? あとその2つのコスト、優先順位を付けるならどっち?もしくはその優先順位が変わる条件でも良いけど。
2013-12-20 14:17:41@kaoriya 正規表現を完全に外に出すと、そのぶん文字列処理関数でカバーする必要がある範囲が広がるということです。「言語処理系がどのような目的で、どのような開発者に使われるのか、処理系開発者のバランス感覚によって決まる問題」かと
2013-12-20 14:23:01@kazuho 文字列操作そのものも言語仕様外で良いのでは。Javaのように文字列に対する操作はシンタックスシュガー扱いで。
2013-12-20 14:25:55@kazuho あと私の後半の疑問はその「処理系開発者のバランス感覚」が何を元にしているかを知りたい、というところです。
2013-12-20 14:26:29.@kaoriya そう、そこの話も面白いんですよね(言語設計者のはしくれとしての自分には)。20年前は、文字列型を言語処理系のコアに入れるべきか、が結構判断の分かれるところだったと思うけど、最近は普通に入るようになりつつあるのかなみたいな。さまざまな要因があると思いますが
2013-12-20 14:27:37.@kaoriya 言語がどの程度文字列処理に利用されるのか、正規表現に対して利用者がどの程度習熟しているかand/or拒否感をもっているか、あたりですかねぇ。また、書きやすさを重視するなら両方サポートしてもいいんだし、rubyは実際そういうアプローチなのかなと感じています
2013-12-20 14:30:18@kazuho え。「元々はコア系に入ってた(メモリ操作だったからw)のにJavaあたりで分離した」のかと思ってた。
2013-12-20 14:31:28あー文字列、私の認識が間違ってるな。シェルスクリプトとかPerlあたりでコア文法に文字列操作が入ったんだ。で、それを文法と実装とで分離したのがJavaなんだな。
2013-12-20 14:34:09@kazuho ruby君は書きやすければなんでも有り感w 読みやすさはプログラマのセンスに任せてひどいことになってる…いやプログラマじゃない人が書いてるというのが実情かもですが。
2013-12-20 14:32:59.@kaoriya perlが息しないレベルの酷評ですねわかります。言ってることはわかるんですが、そういうのが人それぞれのバランス感覚なんだろうなと。自分の足を撃ち抜く自由は与えつつ適宜自制して使え、みたいなアプローチはある(例えばCもそう)なので、一概に否定すべきとは思いません
2013-12-20 14:36:28@kaoriya Unicodeが普及するまでは、そもそも「文字型」が何かから揉めてましたし、C言語のように文字型はあっても文字列型はなかったりとか
2013-12-20 14:37:23.@kaoriya そこはコード片の独立性の問題もあって、たとえばウェブプログラミングだと、互いに独立した小さなコントローラを大量に作るので、あまりグループ作業とかないんですよね。縛りを入れるのは多人数で長期間作業する場合ほど重要になりますが、そうでない現場もある
2013-12-20 14:54:32@kazuho そう思うでしょ。ところが小さなコントローラ同士が密結合してとんでもないことになってる業務Webアプリ(Rails+Backbone)が私の目の前に横たわっているのです。ルータとかほとんど使ってないでやんの。 (´・ω・`)
2013-12-20 14:57:52@kaoriya あー心中お察しします (-人-) 自分たちで作って自分たちで使わないものの場合は、品質を強制する仕組みがないと辛いですよね
2013-12-20 15:00:12