やっぱり動的型付け言語は大規模開発で効率が悪い 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/10/22(土) 01:01:12.94反論したいなら語れや。
やっぱり動的型付け言語では安全なソフトは作れない
http://hibari.2ch.net/test/read.cgi/tech/1316887046/
0153デフォルトの名無しさん
2011/10/22(土) 23:08:54.47型注釈を付けても型安全じゃないDart……
0154デフォルトの名無しさん
2011/10/22(土) 23:15:18.56一人で組んでるなら、ドヤ文通り確かに「実は中身が文字列であることをプログラマが知っている」かもしれんが、
そうでない場合のための型安全が欲しいってのに何考えてるんだろうな(;´Д`)
0155デフォルトの名無しさん
2011/10/22(土) 23:21:58.42Dartのどこが原則静的型だかw
0156デフォルトの名無しさん
2011/10/22(土) 23:23:07.29んー、確かにDartについて無知だったな。すまん
規格までいちいち読んでなかったからな。正直「まさか」だったわw
0157デフォルトの名無しさん
2011/10/22(土) 23:29:12.370158デフォルトの名無しさん
2011/10/22(土) 23:31:48.050159デフォルトの名無しさん
2011/10/22(土) 23:32:58.770160デフォルトの名無しさん
2011/10/22(土) 23:34:45.89掌かえしたように逆ギレしてグーグルをドヤ顔よばわり
おもしろいねえw
0161デフォルトの名無しさん
2011/10/22(土) 23:35:56.24なんだ。結局グーグル様のご威光があればひれ伏しちゃうタイプなのか、動的厨は
信念の無いやつだなぁ……
0162デフォルトの名無しさん
2011/10/22(土) 23:38:07.03でもDart自体はどう転んでも動的型付言語だわな。
「大規模開発だろうが、動的型付けをベースに考えざるを得ない。
型注釈ぐらいなら動的型の柔軟性を損わない範囲内で許すけど。」
というグーグルの判断でしょw
0163デフォルトの名無しさん
2011/10/22(土) 23:38:49.40ひれ伏さなかったから、君の無知さ加減が暴かれたわけだがw
0164デフォルトの名無しさん
2011/10/22(土) 23:39:51.90そりゃ、ブラウザ上で動く(実質)唯一無二の言語であるJSに相乗りする以上、動的型付けをベースに考えざるを得ないだろ
0165デフォルトの名無しさん
2011/10/22(土) 23:42:31.76トランスータなんだから、JSを吐こうがネイティブコード吐こうが、Dart自体は静的型付けにできる。
極端に言えば、JSでHaskell処理系を実装すれば完全に静的型付けされたコードをJS上で動かせるだろ。
0166デフォルトの名無しさん
2011/10/22(土) 23:42:50.13静的厨としては、動的厨が動的の素晴らしさをアピールできるなら、是非それにのりたいのだが
0167デフォルトの名無しさん
2011/10/22(土) 23:43:39.71haXeやjs_of_ocamlのような静的型付け言語がある
0168デフォルトの名無しさん
2011/10/22(土) 23:43:42.570169デフォルトの名無しさん
2011/10/22(土) 23:45:41.98前のスレでは何度かやったんだがなあ
今はスレタイ変わっちゃったから「別に大規模開発での静的は否定するつもりねーからいいや」ってなっちゃった
0170デフォルトの名無しさん
2011/10/22(土) 23:45:49.76あれだけドヤ顔で「静的型の優位性をグーグルが認めた」と言いふらしておいて醜態さらしたのに、
馬鹿にするなとか言うのは、馬鹿にされている本人ぐらいなものだろww
0171デフォルトの名無しさん
2011/10/22(土) 23:47:09.88まぁそりゃそうか
大規模開発を動的でやるのがつらいことくらい、1度やったことありゃわかるもんな
0172デフォルトの名無しさん
2011/10/22(土) 23:47:35.19そうなんだよな。静的型付けはドカタ言語としてはピッタリなんだよ。
0173デフォルトの名無しさん
2011/10/22(土) 23:49:48.02トリップつけてくんねーかな
0174デフォルトの名無しさん
2011/10/22(土) 23:50:35.32だからさあ、馬鹿にされたくなかったら、馬鹿なこと言わなきゃいいの。わかった?
0175デフォルトの名無しさん
2011/10/22(土) 23:51:32.54あれ?
そういや、ドカタドカタうるさい奴に
お前どんなシステム作ってるのって聞いたのに
答えがなかったな。
やっぱ、プロじゃないのか。
0176デフォルトの名無しさん
2011/10/22(土) 23:53:10.620177デフォルトの名無しさん
2011/10/22(土) 23:53:21.99少なくとも俺除いてもう1人いるし
>>172で、お前はどんなシステム作ってんの?
0178デフォルトの名無しさん
2011/10/22(土) 23:56:51.150179デフォルトの名無しさん
2011/10/22(土) 23:58:39.450180デフォルトの名無しさん
2011/10/22(土) 23:59:27.34アーキテクチャってものをしっかり考えている所(良いところ)は
自然と開発のルールが出来る。それがいわゆる制約なわけ。
これはアジャイル開発でも同じ事。
何も考えずに適当に好きかって作っていいのは
自分一人プロジェクトだけ。
0181デフォルトの名無しさん
2011/10/23(日) 00:01:05.57開発速度は動的な言語のが高いし柔軟性あるし
折衷案的な選択だわな
互換性に縛られてるJSをオーバーホールするには
ありな仕様だと思うけどね
0182デフォルトの名無しさん
2011/10/23(日) 00:02:59.99それは小さいプログラムだけだよ。
システムとは呼べないような。
0183デフォルトの名無しさん
2011/10/23(日) 00:04:02.270184デフォルトの名無しさん
2011/10/23(日) 00:04:30.80開発速度が動的な言語の方が高いってのが、なんか実感わかないんだよなあ……
ケアレスミスとかが多くなるし
0185デフォルトの名無しさん
2011/10/23(日) 00:06:51.53その当たり前を納得しない動的厨がいたので、じゃあGoogleのDartでドヤ!ってやったらDartがひどい有様だったので逆ドヤされたのが今の状況w
0186デフォルトの名無しさん
2011/10/23(日) 00:07:09.620187デフォルトの名無しさん
2011/10/23(日) 00:09:49.89RubyとかPythonと比べてもDartの方が良いかもしれない。Dart向けのライブラリだったりドキュメントだったりの充実に期待を込めてだけど。
0188デフォルトの名無しさん
2011/10/23(日) 00:10:49.42程度だったら、確かに静的型宣言とかはパワー過剰気味なんだよな
でもそんな小さな仕事、仕事として来ないからなあ・・・
0189デフォルトの名無しさん
2011/10/23(日) 00:14:17.35そういう場合静的だと情報の把握のスピードが違うんだよね。
なにがどれに依存していてどこで書き換えられてとか
影響範囲の追跡がかなり簡単になる。
仮にdataなんて名前のグローバル変数を使っていたとしても、(あくまで仮だからねw)
そこに書きこむコードはほんの数秒で判明するだろう。
0190デフォルトの名無しさん
2011/10/23(日) 00:14:37.301人専任で設計からリリースまで半年ぐらいの条件でも
動的型付けの方が効率良いと思うよ。
メンバが4人になるぐらいから逆転する気がする。
ただし秀才天才しか居ないプロジェクトは除く。
0191デフォルトの名無しさん
2011/10/23(日) 00:17:49.49それ小さくね?
設計からリリースまでで半年なら
開発は2人月ぐらいだろ?
0192デフォルトの名無しさん
2011/10/23(日) 00:18:32.900193デフォルトの名無しさん
2011/10/23(日) 00:19:32.14perlとかphpで泣き見たんか
ヘボに混じってデスマやらされたか。
0194デフォルトの名無しさん
2011/10/23(日) 00:23:29.84PHPで泣き見たわw
0195デフォルトの名無しさん
2011/10/23(日) 00:23:43.41そのくらいの規模でも、ScalaやOCamlなら
動的型付けより効率よく開発できそうだ
一方Javaなら開発に10人月くらいかかりそうw
0196デフォルトの名無しさん
2011/10/23(日) 00:24:57.62ああ、そうだね。それは同意する。
でも、実際にはプログラマーが型を意識できない、スコープを意識できない、だから動的型付けな言語を採用するってパターンなんだよね。
ウェブの開発やってるとそうだとしか思えない。
0197デフォルトの名無しさん
2011/10/23(日) 00:26:07.43動的型付けばかり使ってるわけじゃねーよw.
0198デフォルトの名無しさん
2011/10/23(日) 00:28:50.67それゆえに詳しいことが多い。
「痛くなければ覚えませぬ」
0199デフォルトの名無しさん
2011/10/23(日) 00:29:25.05> なんか静的な型の言語に幻想持ってるのが多いな
逆だ。他人が作った動的型付け言語で作られたシステムを修正するときに
影響範囲がわかりづらいなどの問題点を嫌というほど味わった。
静的型付けの幻想ではなく、動的型付けに幻滅したんだよ。
そもそも昔からCやC++やJavaなどの型付き言語をメインの開発言語で
やってきたんだ。今更幻想なんてものはない。
ただ俺にとってはそれが標準なだけ。
0200デフォルトの名無しさん
2011/10/23(日) 00:30:35.17痛い目にあったら、すぐさま静的型付けが良いってなるだろ。
痛くない方法があることを知らんのか?
0201デフォルトの名無しさん
2011/10/23(日) 00:35:00.39痛くてもすぐに忘れてしまう人がいることを
知っていおいたほうがいい。
0202デフォルトの名無しさん
2011/10/23(日) 00:35:24.10動かなくなったときには、どうしようもなくなっている。
0203デフォルトの名無しさん
2011/10/23(日) 00:37:00.32別に型付けの静的/動的だけが言語の選択条件じゃないから
0204デフォルトの名無しさん
2011/10/23(日) 00:39:33.78何当たり前の事いってんのw
総合的に見て、大規模なら静的型付けの方が
より多くの情報を得られソースコードの把握がしやすいんだよ。
それが選択の理由。
0205デフォルトの名無しさん
2011/10/23(日) 00:41:05.45いまどきJavaなんて誰も選択しないわなw
0206デフォルトの名無しさん
2011/10/23(日) 00:42:56.040207デフォルトの名無しさん
2011/10/23(日) 00:43:39.10確かにIDE駆使した静的型付け言語に比べりゃ多少手間はかかるかもしれんけど
絞り切れないなんて状況は滅多に無いと思うが
0208デフォルトの名無しさん
2011/10/23(日) 00:44:53.490209デフォルトの名無しさん
2011/10/23(日) 00:50:27.60全然違うよ
ほんの数秒で、全プロジェクトの中から
あるクラスのメソッドを的確に調べてくれたりする。
もちろんそのメソッド名がgetであったりしても、無関係のgetと迷うことはない。
動的型付け言語だと対処法的に冗長な名前をつけることがよくある。
タイプ数が増えて、めんどくせぇw
0210デフォルトの名無しさん
2011/10/23(日) 00:53:36.14思い込みで決め付けて容易に間違える。
こういった輩は静的型付けで縛る以外に無いだろう。
0211デフォルトの名無しさん
2011/10/23(日) 00:54:58.77何のシステム作っているのか聞いたが
レスがないようだ。
0212デフォルトの名無しさん
2011/10/23(日) 01:02:07.01書くことにばかり目が言ってしまう。
実際は、書くことよりも読むことのほうがずっと多い。
過去に自分が書いたコードにバグがある。
他人の書いたソースコードを修正する。
他人が書いたソースコードをレビューする。
読むときのことを考えているかという点を見れば
その人がどれくらい出来るの人なのかがわかる。
0213デフォルトの名無しさん
2011/10/23(日) 01:03:58.220214デフォルトの名無しさん
2011/10/23(日) 01:05:19.840215デフォルトの名無しさん
2011/10/23(日) 01:07:07.510216デフォルトの名無しさん
2011/10/23(日) 01:10:30.45型の記述が冗長になりすぎて読みにくかったりするのは確かにあるね。
その冗長な記述を読み解く方が近道だったりもすることも多いが。
0217デフォルトの名無しさん
2011/10/23(日) 01:14:31.77何のシステム作っているのか聞いたが
レスがないようだ。
0218デフォルトの名無しさん
2011/10/23(日) 01:21:36.380219デフォルトの名無しさん
2011/10/23(日) 01:23:59.24JSにトランスレートする場合も原理的にはもう少し型チェックを厳格にできそうだけど
多分そうしないのは効率だよな
0220デフォルトの名無しさん
2011/10/23(日) 06:54:43.72ツールやエディタがやればいい
コーディングルールにしても余計なスペースなんて入れずとも
エディタが調整して見やすくするのが正しい進化だった
読みやすさのためにスペースを何度も叩くのはバカらしい
言語仕様に何もかもを含めすぎてる
もっとツールやIDEのことを考えろ
0221デフォルトの名無しさん
2011/10/23(日) 07:01:31.8620年以上前からある機能
型推論とフォーマットを同列にしてる時点で
0222デフォルトの名無しさん
2011/10/23(日) 07:26:24.030223デフォルトの名無しさん
2011/10/23(日) 07:32:45.09ドカタが「オマエノカイハツケイケンヲイエー!」とか喚いていたから、
まずはお前の経験を書くのが先だろと訊いてみたのに、未だ回答がない。
つまり、そういうことだ。
0224デフォルトの名無しさん
2011/10/23(日) 07:36:37.75君さあ、自動フォーマットも型推論も30年以上の歴史があることも知らないの?
静的厨って本当に不勉強だなあ。
0225デフォルトの名無しさん
2011/10/23(日) 07:41:14.030226デフォルトの名無しさん
2011/10/23(日) 07:42:37.49動的言語で良質なコードを書けるプログラマは単価がドカタの2倍はいくし、
工期全体でスケジュールを押さえるのが難しい。
技術的興味のないプロジェクトは断わるか、ふっかけるのが普通だし。
ドカタ動員で押し切れたほうが管理する側はラクなんだよ。
0227デフォルトの名無しさん
2011/10/23(日) 07:45:08.29君が言う動的型のメリットと、なぜそれが大規模で消えるのかを説明せよ
0228デフォルトの名無しさん
2011/10/23(日) 07:52:00.850229デフォルトの名無しさん
2011/10/23(日) 08:06:25.49テンプレートの実体化をいちいち書いている人は多い
それが無くなるまでは、型推論が普及したとは言えない
0230デフォルトの名無しさん
2011/10/23(日) 08:12:25.99真の型推論が実装されているのはMLやHaskellといった一部の関数型言語だけ
とても型推論が普及したなんて言える現状ではない
また、C#/Java/C++のような「動的型付けな静的言語」のいい加減さを考えれば、
動的型付け言語の開発効率の良さは検討に値する
0231デフォルトの名無しさん
2011/10/23(日) 08:14:00.26例: Yコンビネータ
0232デフォルトの名無しさん
2011/10/23(日) 08:18:46.19Haskellの型推論は完全じゃないよ。MLの型推論は完全だけど。
0233デフォルトの名無しさん
2011/10/23(日) 08:21:25.42効率は価値があるけど動的静的の選択には価値がない
型推論と開発ツールの二択なら開発ツールの方が効率がいいから価値がある
開発効率を考えるなら全ての型推論を持つ言語はVBに劣る
カードの性質を理解してない奴が語るな
型推論という戦術はIDEという戦略の前では無価値に等しい
0234デフォルトの名無しさん
2011/10/23(日) 08:24:16.70ドカタにとってはそうなんだろうね
0235デフォルトの名無しさん
2011/10/23(日) 08:28:55.400236デフォルトの名無しさん
2011/10/23(日) 08:39:53.35ツールやエディタがそれぞれ個別に型推論を実装するなんて無駄もいいところだろ
きちんと言語仕様で決めて、コンパイラが型推論するほうが良いに決まってる
エディタが型情報を必要とするならコンパイラに問い合わせれば良い
0237デフォルトの名無しさん
2011/10/23(日) 08:41:38.98>言葉に詰まって発言者の人格や職をなじる奴はバカだし
崇高な芸術プログラミングを追及するなら、lispという結末が見えている
選民思想に染まったコミュニティは常に少数派になる
それを主張する奴が、地雷が埋まってるとわかってて踏む美学の持ち主なら
その選択肢の末は滅びしかないだろう
ランチェスターの法則を理解するなら
多数のドカタに価値があって
崇高なプログラミングの価値はそれ以下だということも理解できる
まずは多数のドカタを上回る成果を挙げられる何かを提示してみなさい
それができないなら多数のドカタが最強ということだ
0238デフォルトの名無しさん
2011/10/23(日) 08:49:57.78型推論にはコストに見合った価値がない
それを実装し活用する労力以上の価値がない
型推論を言語仕様に含めることで
プログラミング言語、開発ツールそれら全てに実装が必要となる
その実装コストを上回る成果が型推論の採用で得られるとは思えない
その程度ならコード整形ツールのおまけ機能として実装すればいいだけ
俺の主観では
型推論を採用した理由はIDEの実装を困難にすることで
競争を発生させること
IDEによる開発者の囲い込みを行うことで
開発ツールから利益を得ること
つまりバカを騙して効率低下させて金を得ようという
そういう悪意にしか見えない
簡単にIDE作れたら金儲けできないよね
0239デフォルトの名無しさん
2011/10/23(日) 08:53:44.74コンパイラだけが型推論を実装すればいいって
書いてるの読めませんか?
文盲ですか?
0240デフォルトの名無しさん
2011/10/23(日) 09:06:39.70お前は無駄を主張した
だから型推論を採用する方が無駄になるという反論をすればいいのか
>型推論にはコストに見合った価値がない
つまり無駄だ
企業は営利目的で動く
企業が主導している言語の仕様は営利を優先する
金になるなら言語仕様を歪める選択肢がある
java c# dart全て企業主導
なら当然、余計なものが含まれる可能性がある
あの人たちが純粋にすばらしい言語を作り出すために動いている
そう考えるのはちょっと甘いんじゃないの
型推論が罠仕様だと疑う俺の考えの方が自然だよ
最強言語cに型推論がない
これだけでも十分すぎる理由だ
存在が理不尽で無駄でメリットがなくても、多数に受け入れられたら
それは金になるし存在理由になる
そういうものはこの世界にありふれている
型推論は世界にありふれている無駄な金儲けの手段になりうる
0241デフォルトの名無しさん
2011/10/23(日) 09:13:38.840242デフォルトの名無しさん
2011/10/23(日) 09:16:01.59「IDEの実装が大変だから」以外に言えてないのは凄いね。
それすら>>236で反論されてるけど。
0243デフォルトの名無しさん
2011/10/23(日) 09:17:24.74http://queue.acm.org/detail.cfm?id=2038036
0244デフォルトの名無しさん
2011/10/23(日) 09:27:50.96型推論を採用するメリットはほんの少し、それすらもツールで補える
可読性の低い一行に価値があるというのならそれを使えばいい
俺は可読性の高い十行に価値があると考えるからそれを使う
IDEや開発ツールを駆使して長くて読みやすいコードを書く
俺は可読性の高い十行を理解する人の方が
人類の中では圧倒的多数派であると確信するし
そっちの方が目的達成の近道だと考えてるだけ
0245デフォルトの名無しさん
2011/10/23(日) 09:35:27.42おそらくマトモなサイズのコードを書いたことないのだろう。
HaskellやMLで型推論に頼ったコードの型エラーを直すのは、
動的型言語の実行時エラーを直すよりずっと難しい。
だから、本当にHaskellやMLでまとまったサイズのコードを書く香具師は
できるだけ型を明示的に宣言する。
0246デフォルトの名無しさん
2011/10/23(日) 09:44:24.92つーか、トップレベルの関数は型注釈を書くのが当たり前
ただし、自分で一から型を書かなくても、処理系が推論した型を出力させて、
それをそのままコードとして使うなんて日常的に行われてる
OCamlは型エラーがでても、その直前までの型推論の結果を出力してくれる
(そしてエディタで表示できる)から、型注釈を省略してもデバッグが大変にはならない
使った事も無いのに聞きかじりでテキトーなこと書くなよ
0247デフォルトの名無しさん
2011/10/23(日) 10:00:10.96それは動的言語を撃ち落とすための弾丸だったような気がするが
なんで仲間割れしてるの
0248デフォルトの名無しさん
2011/10/23(日) 10:14:39.20型注釈厨(別名Dart厨)がいるから
0249デフォルトの名無しさん
2011/10/23(日) 10:15:31.790250デフォルトの名無しさん
2011/10/23(日) 10:16:26.22コンパイル出来る状態でしか補完効かないIDEとか勘弁して欲しい。
コンパイラはコンパイラで推論して、
エディタはエディタなりの推論をするのが
正しいと思う。
0251デフォルトの名無しさん
2011/10/23(日) 10:23:25.28静的型安全性が欲しい人 -> 静的型付け言語
型注釈を強制したい人 -> 型推論の無い静的型付け言語
簡潔に書きたい/読みたい人 -> 動的型付け言語、型推論のある言語
実行時メタプログラミングしたい人 -> 動的型付け言語
0252デフォルトの名無しさん
2011/10/23(日) 10:25:49.31途中までコンパイルできれば、そこまでの型推論の結果をコンパイラにもらえばいいだろ
MLはそういうことができる言語仕様だぞ
■ このスレッドは過去ログ倉庫に格納されています