トップページ⇒tech
1001コメント356KB

やっぱり動的型付け言語は大規模開発で効率が悪い 4

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2011/11/21(月) 11:48:03.35
大規模と書いてドカタと読む。


やっぱり動的型付け言語は大規模開発で効率が悪い 3
http://hibari.2ch.net/test/read.cgi/tech/1320832914/
0951デフォルトの名無しさん2011/12/15(木) 21:39:06.58
>>950
どのコード片をメソッドとして抽出するかを判断するのは人間
抽出すると決めた後はコンピュータ任せにできる

その判断の材料としての実行時情報
0952デフォルトの名無しさん2011/12/15(木) 21:42:46.73
>>951
相当に自信過剰な奴でもないと実行できないだろそれ
0953デフォルトの名無しさん2011/12/15(木) 21:44:15.74
>>951
じゃあ逆にメソッドの展開はどう?
0954デフォルトの名無しさん2011/12/15(木) 21:46:00.25
そうなんだよね。
抽出は出来るんだよ。そこだけ見ればいいから。
だけど展開はできないんだよ。
そのメソッドを使っている所が他にもあり得るから。
0955デフォルトの名無しさん2011/12/15(木) 21:47:24.06
名前の変更と抽出/展開を実行してる動画

http://www.softdevtube.com/2011/09/07/refactoring-with-python-tools-for-visual-studio/
0956デフォルトの名無しさん2011/12/15(木) 21:50:38.32
>>955
静的解析じゃん…。
0957デフォルトの名無しさん2011/12/15(木) 21:50:56.05
どこをどう勘違いすれば、
動的型付けでは通常の静的リファクタリングができない
なんてアフォなことを言い出せるのだろうか。

静的脳って怖いね。
0958デフォルトの名無しさん2011/12/15(木) 21:52:18.63
あ、動画内では展開してなかった。すまん
0959デフォルトの名無しさん2011/12/15(木) 21:54:48.41
>>957
この流れでも理解できてないとは…。
0960デフォルトの名無しさん2011/12/15(木) 21:55:33.99
>>955
名前の変更は、人間が変更する箇所を選んでいるだけ。

extractの話はしているが、methodのinline(メソッドの展開)はできていない。
0961デフォルトの名無しさん2011/12/15(木) 21:55:44.33
>>956
動的型付けでも静的解析(型推論)したって良いじゃない
0962デフォルトの名無しさん2011/12/15(木) 21:56:50.11
展開はできたとしても人間が選んでやるしかできないだろ。

Javaの場合、メソッド名を選んで展開すると、
そのメソッドを使っている所すべてを自動的に展開してくれる。
もちろん間違いはしない。
0963デフォルトの名無しさん2011/12/15(木) 22:01:07.27
>>960
でも結構賢くて、こんなコードでも Foo.foo の名前を変更すると
Foo.foo と bar の中の x.foo だけ変わるんだぜ
(Bar.foo や baz の中身は選択肢に出てこない)

class Foo(object):
    def foo(self, x):
        return x + 1
class Bar(object):
    def foo(self, x):
        return x - 1
def bar(x):
    print(x.foo(0))
def baz(x):
    print(x.foo(1))
a = Foo()
bar(a)
b = Bar()
baz(b)
0964デフォルトの名無しさん2011/12/15(木) 22:02:33.68
>>963
完全に型推論ですねw
0965デフォルトの名無しさん2011/12/15(木) 22:02:42.24
>>963
あぁ、それは動的に変わらないところだから当然だね。
0966デフォルトの名無しさん2011/12/15(木) 22:10:13.82
evalが入った瞬間終わるな。
0967デフォルトの名無しさん2011/12/15(木) 22:11:49.36
もちろんevalは真っ先に試してみたわ
当然のごとくスルーされたw
0968デフォルトの名無しさん2011/12/15(木) 22:17:40.22
>>957
静的型付けを意識して書く(型推論可能にする)事はできるけどさ、
それって静的型付けの型システムの優位性を認めてる事と同義じゃないのさ。
0969デフォルトの名無しさん2011/12/15(木) 22:28:06.85
基本的に静的型システムの恩恵を受けたい
でも時には動的型の柔軟さも欲しい

てわけで、型推論して静的型が付かないところだけ警告出してくれればベスト
0970デフォルトの名無しさん2011/12/15(木) 22:28:32.82
>>969
C#じゃん…。
0971デフォルトの名無しさん2011/12/15(木) 22:29:15.68
evalは警告すらなく無視されたぞ。
0972デフォルトの名無しさん2011/12/15(木) 22:31:03.04
>>970
実はそうなんだよ……
0973デフォルトの名無しさん2011/12/15(木) 22:35:33.02
>>972
ほんとC#はいい人どまりだな。
0974デフォルトの名無しさん2011/12/15(木) 22:36:39.46
あれぐらいが好きなんすけどねえ
0975デフォルトの名無しさん2011/12/15(木) 22:44:53.25
存在しないメソッド呼び出しを弾きたいだけだったら構造的部分型が一番柔軟なんじゃないかね
これを本格的に採用する言語はオーバーロードを捨てる事になるだろうが
0976デフォルトの名無しさん2011/12/15(木) 22:55:22.02
C#は確かにいいよね。
でもMonoはgtkに逃げちゃったし、Windows圏じゃないと使わない…。
せめて dalvikVM で動けば一気に情勢が変わっただろうに。
0977デフォルトの名無しさん2011/12/15(木) 23:34:17.92
>>975
ダックタイピングしたいだけなら構造的部分型で良いと思う
どうせ動的型付け言語でもオーバーロード(マルチメソッド)は殆ど使われてないし
0978デフォルトの名無しさん2011/12/16(金) 00:53:54.99
というかJavaな人はメソッド名変えるリファクタリングしかしないのかよ。
そればっかり言うけど。
0979デフォルトの名無しさん2011/12/16(金) 01:32:17.33
相手の弱点を見つけたら、それを徹底的に追求して相手を潰す
ディベートの基本だね

javaな人は「討論に勝つ」ことが目的だから、しかたがないと思われ....
0980デフォルトの名無しさん2011/12/16(金) 01:36:36.74
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
0981デフォルトの名無しさん2011/12/16(金) 01:38:27.58
守る方は論点逸らしに必死だろ
もう毎回ワンパターンでつまんねーよ
0982デフォルトの名無しさん2011/12/16(金) 02:31:12.27

い-635
ちなみに、平成18年度の民主党の収支報告書だが、
 電通が  690,150,988円(約6億9千万円)
 博報堂が 19,425,964円 (約2千万円)
 読売グループ系列(読売広告、読売メディアセンター)が 72,058,917円(約7千万円)なw
 フライシュマンヒラードジャパンが、1974000円かw
フライシュマンの本社はアメリカにあって、アメリカ政界や企業のPRも担当してる湯田ヤ系の会社だなw
ここが「マニュフェスト」っていう横文字を考えたんだなw

そういえば、今東電と電力総連がフライシュマンを雇ってるらしいじゃないww
札束で学者引っぱたいてうまい具合にテレビで喋らせれば馬鹿な老人なんかはまだまだテレビのいうことを信じるからなw
0983デフォルトの名無しさん2011/12/16(金) 03:09:21.41
適所適材ってあったりまえの結論が何度も出てるのにこれだからな。
頑なに静的型付け言語を否定する奴は何なんだろう。
0984デフォルトの名無しさん2011/12/16(金) 06:01:59.46
Χ 頑なに静的型付け言語を否定する奴は何なんだろう。
○ 頑なに動的型付け言語を否定する奴は何なんだろう。
0985デフォルトの名無しさん2011/12/16(金) 07:21:46.37
>>978
ドカタはリフレクションすら使った事無いんだろ
そんなドカタ仕事なんてJavaで十分
IDEで存分にメソッド名を変えるが良いさ
0986デフォルトの名無しさん2011/12/16(金) 07:23:47.19
>>979
そんな基本は聞いたことがない。参考ソースの提示を頼む。
あと、あんたの中でのディベートを日本語にすると何になるのかも。
0987デフォルトの名無しさん2011/12/16(金) 07:48:28.87
そういえば、どうしてJavaはメソッド名やクラス名が馬鹿みたいに長いんだ?
可読性落ちるだろ。

StackOverflow でもネタにされてるし。
http://stackoverflow.com/questions/2230871/when-is-a-java-method-name-too-long

>>883-913まで読んでも理由が分からないんだけど。
Javaの人は途中で逃げないで教えてよ。
0988デフォルトの名無しさん2011/12/16(金) 07:57:51.56
>>987
> Javaの人は途中で逃げないで教えてよ。
なにを? 逃げるとか何の話?
0989デフォルトの名無しさん2011/12/16(金) 07:59:03.18
動的型で正しく設計するとメソッド名の変換で困らない
=> それだとメソッド名が長くなりすぎる
=> でも実際にはJavaの方が長いよね

という話だったのに、なぜかスルーされてメソッド名を変える話になったよなw
0990デフォルトの名無しさん2011/12/16(金) 08:05:53.61
Javaが長いだけで、たとえばScalaは短い。
動的型付けや静的型付けとは関係ない話だよな。
0991デフォルトの名無しさん2011/12/16(金) 08:07:12.47
動的型付け言語は名前を長くしたほうが
名前がかぶらなくて安全という話か?

904 名前:デフォルトの名無しさん[sage] 投稿日:2011/12/14(水) 23:50:29.23
>>900 >>901
いやいや、Customerならまだましかも知れないけど、

Pointとかだったらかぶるかもしれないじゃないか?
(実際に被ったw)

Graphic3D_Point.get_point_graphic3d();

ここまでやらないとだめだろう。


0992デフォルトの名無しさん2011/12/16(金) 08:42:02.57
動的型付け言語で長いメソッド名といえば
JavaScriptがあるね。

document.getElementById() とか。

メソッド名の長さは動的・静的とは関係ない。
0993デフォルトの名無しさん2011/12/16(金) 08:44:21.13
ドカタ向けの言語ほどメソッド名が長い
0994デフォルトの名無しさん2011/12/16(金) 10:33:08.27
>>987
プログラムを後日、または他人が読む時の想定の違い。
基本ロジックをすぐ理解出来る者が読むという想定だと、メソッド、変数名が短かくても支障が無い。
一方、スキルが保証出来ないという想定では、まず「英文っぽく」読める事が重要。
大規模になるとスキルのバラツキは避け難いし、ハンコを押す人間(大抵はIT無知)への受けを考えると、英文もどきの方が有利だ。
0995デフォルトの名無しさん2011/12/16(金) 11:35:31.90
>>994
それはモジュールシステムや名前空間が無い言語限定の話

それとも、本当にこんなコードが読み易いと思ってんのか?
http://thedailywtf.com/Articles/Really-Descriptive-Names.aspx
0996デフォルトの名無しさん2011/12/16(金) 12:12:50.04
「一般論に対して一部の事例を持ち出す」ってのが何とかの10か条にあったな。
0997デフォルトの名無しさん2011/12/16(金) 13:16:21.70
>>994
つまりSmalltalk最強っすね!
0998デフォルトの名無しさん2011/12/16(金) 13:17:38.21
もちろんSmalltalkのメソッド名が長いという意味ではなくw
0999デフォルトの名無しさん2011/12/16(金) 14:08:25.12
何故そこで、Smalltalkに絡めるのか判らんな。
Pharosとかは使ってみて良かったと思える位便利だが、今の話とは関係ないだろ。
1000デフォルトの名無しさん2011/12/16(金) 14:10:45.80
X Pharos
O Pharo
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。