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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/11/09(水) 19:01:54.58
まあいろんなところで証明済みなんだが、
反論したいなら語れや。


やっぱり動的型付け言語では安全なソフトは作れない 2
http://hibari.2ch.net/test/read.cgi/tech/1319212872/
0153デフォルトの名無しさん2011/11/11(金) 23:14:38.94
>>130
標準で組み込まれているというのは、果たしてメリットと言えるのでしょうか?
そういったものは言語とは独立のシステムなのですから、
チームが使い慣れたものを選べるようにプラグインとして提供されるのが
あるべき姿ではないかと思います。
0154デフォルトの名無しさん2011/11/11(金) 23:26:00.47
>>153
泥仕合になる前にとりあえずこれに目を通して Smalltalk の基本的な考え方を知っておいて欲しい。

「Smalltalkの底を流れる設計思想」
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24

あと svn が使いたければ、そういうのもあるから。130は不必要に挑発的だけど、ようするに
組み込みのヤツの方がいろいろ便利なことも多いと思うメンバーが多ければ、チーム合意の上で
そのまま組み込みのを使えばいいというだけ。
0155デフォルトの名無しさん2011/11/11(金) 23:31:29.42
別にSmalltalkがまともなIDEを備えていたとしても、

じゃあ、他の動的型付け言語は?
備えてないのなら、話しにならないよね。

静的型付け言語 or Smalltalk使ってないなら、黙っとれ。
0156デフォルトの名無しさん2011/11/11(金) 23:54:20.08
別にIDEのカタログスペックの優劣だけで
開発効率が決まるわけじゃないしなぁ

>>103のリンク先では、IDEの出来がお粗末なRubyでさえ
優秀なIDE+Javaで開発するよりも優れてると結論付けてるわけだし

このスレが「動的型付け言語用の優秀なIDEは開発出来ない」ならまだ分かるよ
といっても、それもSmalltalkの存在が反証になってしまうけど
0157デフォルトの名無しさん2011/11/11(金) 23:58:02.05
>>156
リンク先のは優秀な開発者がいれば、
Rubyでもそれなりに開発できるってだけだよ。
0158デフォルトの名無しさん2011/11/12(土) 00:06:09.28
その優秀な開発者は、Rubyで開発する方が
優れたIDE+Javaで開発するよりも効率的だと感じているようだね
0159デフォルトの名無しさん2011/11/12(土) 00:07:31.35
そりゃ自分一人でやるなら、そうだろうさ・・・

でもそれは現実的ではない。
自分の知らないコードがたくさんになったら・・・。
現実を見ようぜ。
0160デフォルトの名無しさん2011/11/12(土) 00:10:05.06
コードを書く効率と
読む効率は別だと思うんだよね。
0161デフォルトの名無しさん2011/11/12(土) 00:13:06.55
うん、いろんな人が書いたたくさんのコードを
把握して、バグを修正するという観点から
どっちが効率がいいか調べる必要があるだろうな。
0162デフォルトの名無しさん2011/11/12(土) 00:33:11.17
開発者は一人だけのケースに限るとか、書く効率だけで読む効率は考慮しないとか
そういったことは>>103のどこにも書いてないんだが……
0163デフォルトの名無しさん2011/11/12(土) 00:37:41.74
つーか日本の標準的な組織でどうかって話じゃないと意味なくね?
ファウラーの環境を引用してどうすんの?
君らファウラーに匹敵するスキルを持っていて、周りもそういうレベルの奴に囲まれた環境で仕事してんのか?

0164デフォルトの名無しさん2011/11/12(土) 00:40:45.11
>>162
じゃあ答えは出てる。
そういった情報が書いてない記事を信用するな。
0165デフォルトの名無しさん2011/11/12(土) 00:42:56.66
>>163
つまり日本の底辺ドカタに動的型は使いこなせるか?を議論すればいいのか

じゃあスレタイも「動的型付け言語ではドカタは大規模開発できない」に変更しなきゃな
0166デフォルトの名無しさん2011/11/12(土) 00:46:08.38
>>165
そうしたけりゃそれでもいい。
そうやって皮肉を言おうと蔑もうとそれが日本の現実だ。
0167デフォルトの名無しさん2011/11/12(土) 00:46:16.75
rubyハカーの俺天才と言ってる奴が
マーチンファウラーの本を読んでるとは思えないんだけど
この人の本ってjavaやc#使ってる人の方が読んでるだろうから
javaをバカにしてる奴は絶対に読まない
0168デフォルトの名無しさん2011/11/12(土) 00:48:52.93
Rubyは馬鹿にする奴は視野が狭い(キリッ
0169デフォルトの名無しさん2011/11/12(土) 01:02:05.15
Ruby使ってるのは、開発者が日本人だからだからね。
英語の論文なんて読まないでしょうね。
0170デフォルトの名無しさん2011/11/12(土) 01:47:52.51
>>163
我田引水なんだって、欲しい答えが決まってて、その答えに合わすために
問題を変えるって事自体が。
>>169
いま実装の人ってとーだいのせんせーちゃうん?
0171デフォルトの名無しさん2011/11/12(土) 02:04:19.11
ああささだはだめだ。ろくに論文なんか読んでねーし、YARV程度で力出し切ったって感じ。
0172デフォルトの名無しさん2011/11/12(土) 07:34:34.84
>>163
> 君らファウラーに匹敵するスキルを持っていて、周りもそういうレベルの奴に囲まれた環境で仕事してんのか?

はい。
0173デフォルトの名無しさん2011/11/12(土) 07:45:49.45
まじオススメ
http://www.facebook.com/groups/295568806304/
0174デフォルトの名無しさん2011/11/12(土) 08:08:11.22
昔、JavaはC++の20倍速いって話が有ってね。
最近はRubyがJavaより速いって話があるね。
すると、RubyはC/C++の400倍速い可能性があるんだよね。
ってことはだ、C/C++で書かれたコードをRubyで書き直せば、100円の
チップで4万円の性能が出せる。
0175デフォルトの名無しさん2011/11/12(土) 09:22:01.93
>>174
素人さんはお帰りください
0176デフォルトの名無しさん2011/11/12(土) 10:49:30.03
>>175
踊り子さんに手を出さないで(≧∇≦)
0177デフォルトの名無しさん2011/11/12(土) 10:51:43.02
まあガートナーの人のこういうのはあったね。

Here a simply equation. In terms of mental fortitude…

1 Smalltalk developer = 2.5 C++ developers
1 C++ Developer = 1.5 Java developers

http://blogs.gartner.com/mark_driver/2008/10/09/remember-smalltalk/
0178デフォルトの名無しさん2011/11/12(土) 11:45:00.51
smalltalk製のソフトが使われているの見たことないけど
smalltalkerは実在してるの?
0179デフォルトの名無しさん2011/11/12(土) 12:14:32.30
fortran製のソフトが使われているの見たことないけど
fortran programerは実在してるの?

cobol製のソフトが使われているの見たことないけど
cobol programerは実在してるの?
0180デフォルトの名無しさん2011/11/12(土) 12:18:46.25
うん、それで存在しているの?
0181デフォルトの名無しさん2011/11/12(土) 12:48:59.90
>1 Smalltalk developer = 2.5 C++ developers

FortranもCOBOLもこんなふうなこと言わないわけで
0182デフォルトの名無しさん2011/11/12(土) 13:08:51.07
1 Smalltalk developer = 3.75 Java developers. うーん。
密度的な事なら 1 Sml. dev. = 20 Java dev. くらい?
知識量だったらたぶん 1 sml. dev. = 5 Java dev. たぶんsmalltalkerだったら
他の言語も使えると思うんで。
0183デフォルトの名無しさん2011/11/12(土) 13:10:56.07
そうか、Javaの人ってakb商法なんだ。一盛りなんぼで売り出している
ようなものなのか 謎
0184デフォルトの名無しさん2011/11/12(土) 13:20:32.12
>>178
まあSmalltalk処理系・IDE自身やScratchとかはSmalltalkで組まれているんだが
そういうことを聞きたいわけじゃあないとおもうんで他の例を挙げると、

比較的名の知れたところではVisualAge for JavaをはじめとするかつてのIBM開発環境付き処理系製品群
Twitterに買収されたDabbleDB。http://dabbledb.com/demo/
米海軍での採用やインテルの技術/資本参加でニュースになったTeleplace(旧Qwaq)http://www.teleplace.com/
アジャイル界隈では名前の挙がることの多いMetaEdit+ http://www.fuji-setsu.co.jp/products/MetaEdit/index.html

…とかかな。あと、Smalltalkユーザーのイベントとか結構定期的に行なわれていて、
海外だと ESUG とかよく聞くしhttp://www.esug.org/wiki/pier/Conferences/2011
日本では東京と京都で月いちペースで勉強会が催されている。http://www.smalltalk-users.jp/
0185デフォルトの名無しさん2011/11/12(土) 13:24:13.59
VisualAge for Java
昔ちょっと使ったわ
あれsmalltalkで出来てたんか
1 Smalltalk developer = 3.75 Java developers. が本当なら
なんで廃れてしまったんだろうね
0186デフォルトの名無しさん2011/11/12(土) 13:40:36.29
環境を揃えるのが大変だったんだと思うよ。費用的にもね。
0187デフォルトの名無しさん2011/11/12(土) 13:46:00.53
>>185
土方を集める方が遙かに容易で安価だからその等式がほんとならむしろ必然じゃない?

というのは半分冗談として、マジレスすると、処理系にいろんなコストがかかりすぎたのが敗因。

今でこそフリーの処理系があるし、ネットブックレベルでマシンパワーも十分だけれども、
かつては処理系からEWSまでまともに揃えていたら数百万〜一千万仕事だった。

VisualAge Smalltalk の身売り先での価格を見れば受け継がれた強気度がうかがえる。
http://www.instantiations.com/products/purchase.html

もしろんその特殊性な設計思想(>>154 ) ゆえに、
既存の処理系に熟達した人ほど頭の切り替えが難しいというのもある意味コスト高かも。
0188デフォルトの名無しさん2011/11/12(土) 13:51:44.99
売れない商品は高くなるってだけじゃないのか?
0189デフォルトの名無しさん2011/11/12(土) 14:01:01.58
twtterってrubyからScalaに移ったんでしょ?
ScalaとかOCamlとか、LL系と同じくらい記述が簡潔な言語を使えたら、静的のほうがいいでしょ。
LLがもてはやされるのって、動的だからってより記述が簡潔だからってほうが大きいんじゃないの。
0190デフォルトの名無しさん2011/11/12(土) 14:02:39.14
>>188
もちろんあるだろうね。だからクオリティが低くてもSqueak/Pharoとかのほうが賑わっちゃう。
で、SqueakはSqueakで人が集まるからTraitsとかの新機能が生まれ他言語へ輸出されたり
する反面、あちこちいろいろいじられてクオリティの低下を招くって面もあって痛し痒し。
0191デフォルトの名無しさん2011/11/12(土) 14:08:33.53
>>189
機能や仕様が流動的なうちは動的言語の方がベターだけど、
だいたい決まったら静的言語で書き直す―っていうのが古くからのよくあるパターン。
0192デフォルトの名無しさん2011/11/12(土) 14:12:20.53
仕様が流動的で試行錯誤する場合でも
IronPython使うより
C#使った方が楽なんだけど
0193デフォルトの名無しさん2011/11/12(土) 14:12:34.19
>>191
それいうなら、動的型付け言語だろ。
今の言語はほぼすべて動的言語だ。
(インターフェースなどで実行時に呼び出す関数が決まる)
0194デフォルトの名無しさん2011/11/12(土) 14:13:58.38
動的型付けは型を省略できるという点で楽を出来るのであって、
修正するという点では楽ができないからな。

静的型付け言語だと、修正するときが楽になる。
修正漏れがあったら警告してくれるからね。
0195デフォルトの名無しさん2011/11/12(土) 14:18:02.32
大学にいけばNeXTとかxeroxのwsとかIRISなどは1000万単位でも簡単に
見られて触れる所があったけど、普通じゃかえないもんな。
0196デフォルトの名無しさん2011/11/12(土) 14:20:36.17
>>194
よく考えて作ってないと動的はごちゃごちゃするのは仕方がないかも。
設計がうまい人ならば、問題はないと思うが、作る前に熟考を要する
からなぁ。
私が知る中で、書く人がタイピングよりも考える事に費やす時間が長い言語は、SQL, Lisp, Haskellだけだ。 - Philip Greenspun
0197デフォルトの名無しさん2011/11/12(土) 14:25:00.61
select * from user where name = 'hoge';

絶対、考えるよりもタイピングする時間のほうが長いよw
0198デフォルトの名無しさん2011/11/12(土) 14:26:29.01
いや、
君ら静的型派の言う「仕様が流動的で試行錯誤する」レベルは
動的型派の言う「だいたい決まったら」フェーズのうちだから。^^;
0199デフォルトの名無しさん2011/11/12(土) 14:29:04.61
>>198
つまり動的型は勘違いしてるってことかw
0200デフォルトの名無しさん2011/11/12(土) 14:37:07.46
動的型付けが効率がいいのは、ちゃんと設計もできて
最初から書くときだけ。つまり修正する必要がないときだけ。

試行錯誤するフェーズというのは、そこで書いたコードは捨てるレベル。
捨てるのだから修正する必要はない。だからここでも動的型付けは効率がいい。
だいたい決まったフェーズとか完全に間違い。

実際のプロジェクトの多くは、修正がメインになる。
プロジェクトが大きい物ほど、すでに作られたものを修正することのほうが多い。
そしてプロジェクトが大きい物ほど、人の入れ替わりも多く
つまり「なにも知らない人がいきなり修正を任される」ってことが多くなる。

バグの原因は、想定外のことが発生したから。
なぜ想定外のことが発生するかというと知るべきことに気づかなかったから。
なぜ気づかなかったかというと、その知るべき情報を手に入れられなかったから。

これが静的型付け言語だと、簡単の情報を手に入れることができる。
メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
すべて判明する。これは一例であり静的型付け言語だともっと多くの情報を手に入れられる。

よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。
0201デフォルトの名無しさん2011/11/12(土) 14:49:35.66
試行錯誤は修正ってことじゃないかと言うかもしれないが、
そういう話ではない。

試行錯誤の段階は、コード量は少ない。
少ないから、それを書き換えるのは楽。

俺が言っている修正っていうのは、
一旦は完成されたものとして、出来上がってしまったものに
手を入れるという話。影響範囲が大きく、一つ変更するだけでも
他に修正しないといけない箇所が出てくる状態。
それを動的型付け言語で把握するのは大変な作業。
0202デフォルトの名無しさん2011/11/12(土) 14:52:35.43
> これが静的型付け言語だと、簡単の情報を手に入れることができる。

だうと
0203デフォルトの名無しさん2011/11/12(土) 14:53:44.26
>>202
それは、反論とは言わんよw
0204デフォルトの名無しさん2011/11/12(土) 14:56:25.82
>>201
> それを動的型付け言語で把握するのは大変

そこらへんはもう分かっていることで、だから「だいたい決まった」フェーズでは
静的型のほがいいし、動的型で引っ張るなら修正が入る前にテスト書いとけっていうのが
最近の流れなんじゃないの?
0205デフォルトの名無しさん2011/11/12(土) 15:00:14.87
>>201
設計変更の影響がどこまで出てくるかを見極めるのは設計者の技量でも
あるよ。何も考えずにだらだら作るのと、変更する箇所を予めよそくして
変更しやすい設計にしておくことでは、全然違うから。
0206デフォルトの名無しさん2011/11/12(土) 15:02:33.04
>>201
> それを動的型付け言語で把握するのは大変な作業。

それは能力が低すぎるぞ。
0207デフォルトの名無しさん2011/11/12(土) 15:02:45.72
>>200
Smalltalk環境を体験したことない童貞がしそうなドヤ顔だな。
0208デフォルトの名無しさん2011/11/12(土) 15:04:15.95
今さらsmalltalkを体験しても何のメリットもないだろ
0209デフォルトの名無しさん2011/11/12(土) 15:06:12.82
>>200
> メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
> すべて判明する。

その機能、動的言語のIDEでは遅くとも70年代には実装されていたのだが…

> これは一例であり静的型付け言語だともっと多くの情報を手に入れられる。

Squeakなら今実行しているソース、バイトコード、そのバイトコードを実行するVMのソースまで簡単に手に入れられるのだが、
Javaの場合はどうなんだい?
0210デフォルトの名無しさん2011/11/12(土) 15:06:48.63
>>206
動的型付け言語だと、能力が必要になることなのかい?w
0211デフォルトの名無しさん2011/11/12(土) 15:07:32.94
>>209
> その機能、動的言語のIDEでは遅くとも70年代には実装されていたのだが…

じゃあ、今の動的型付け言語で
同じことが出来るIDEを教えて下さい。

smalltalkは知らないし、あまり使われていないので

それ以外で!
0212デフォルトの名無しさん2011/11/12(土) 15:08:34.92
>>209
> Squeakなら今実行しているソース、バイトコード、そのバイトコードを実行するVMのソースまで簡単に手に入れられるのだが、
> Javaの場合はどうなんだい?

CGLIBやJavassistはバイトコード(クラスファイルの中身)を操作するライブラリ
代表的なのはこの3つ

・ASM
ttp://asm.ow2.org/
低水準なライブラリ
JVM言語の処理系では自作を除けばこれが定番
Java7リリース前からinvoke dynamic に対応するなどJSR292チームと連携して開発されてる

・CGLIB
ttp://cglib.cvs.sourceforge.net/viewvc/cglib/cglib/
ASM上に作られたやや高水準のライブラリ
SpringやHibernateで使われたため有名だが開発は停滞してる
Springが依存するcglib-nodep-2.2.jarにはASMのクラスファイルが含まれてる

・Javassist
ttp://www.csg.is.titech.ac.jp/~chiba/javassist/
東工大の千葉先生が開発した高水準のライブラリ
現在はJBossでメンテされてる
HibernateやSeasar2で使われてる

これらを使うと動的にクラスを作ったり、クラスファイルを読み込んで
フィールドやメソッドの追加、メソッドの書き換えができる
0213デフォルトの名無しさん2011/11/12(土) 15:08:47.46
図星だったらしい…
0214デフォルトの名無しさん2011/11/12(土) 15:10:35.40
>>212
おk、おk。じゃあそれで、>>152をさくっとやってみてくれ。
0215デフォルトの名無しさん2011/11/12(土) 15:10:40.10
少なくとも今の動的型付け言語のIDE機能が
静的型付け言語用に比べて大きく劣っていることは事実だろう。
0216デフォルトの名無しさん2011/11/12(土) 15:11:28.81
>>214
めんどくえから、ソースコードでも読んでろ。

ttps://src.springframework.org/svn/spring-framework/trunk/org.springframework.aop/src/main/java/org/springframework/aop/framework/Cglib2AopProxy.java
Cglib2AopProxy#getProxy(ClassLoader classLoader)から抜粋

Class rootClass = this.advised.getTargetClass(); //これが元のクラス
Class proxySuperClass = rootClass; //元のクラスと同じ
if (ClassUtils.isCglibProxyClass(rootClass)) {
//元のクラスが既にCGLIBでエンハンスされてた場合なのでここは無視
}
enhancer.setSuperclass(proxySuperClass); //元のクラスをスーパークラスに設定
proxy = enhancer.create(); //動的にクラスを生成

CGLIBによって作られるクラスは元のクラスを継承したクラス
0217デフォルトの名無しさん2011/11/12(土) 15:12:41.00
>>211
おまえは馬鹿すぎて話しにならん
0218デフォルトの名無しさん2011/11/12(土) 15:13:20.30
>>210
つまり静的言語では能力は必要ないってことか?
だから静的厨はみんなバカなんだなw
0219デフォルトの名無しさん2011/11/12(土) 15:14:33.37
センダサーチぐらい、なんならgrepでもできるだろw
静的厨ってEclipseがないと何もできないの?

もっとも、Eclipseがあっても何もできないようだがww
0220デフォルトの名無しさん2011/11/12(土) 15:14:45.40
>>211
>smalltalkは知らないし、あまり使われていないので
>
>それ以外で!

ついには静的厨もSmalltalkには敗北を認めざるをえなかったみたいだなw
レベルの低い相手にしかイバルことができない卑屈なヤシwww
0221デフォルトの名無しさん2011/11/12(土) 15:15:59.93
実際に、中国人が作ったバグだらけ、重複コードだらけ、
継承関係もおかしいコードをリファクタリングしたことあるけど、
Javaじゃなければ無理だと思ったよ。

リファクタリングフェーズでは、人間による修正は
最小限コードの順番を整えるだけにして、
あとはEclipseに付いているリファクタリングブラウザを使って
自動的にメソッドの移動を移動したり継承関係を整えていった。

あれが他の動的型付け言語だと完全に不可能だね。
まず、リファクタリングブラウザがついてるIDEあるの?

まあ無いことはないけど、ローカル変数書き換え程度しかないような
とても実用レベルには達しないものだった。
0222デフォルトの名無しさん2011/11/12(土) 15:16:38.83
でさ、Smalltalk厨ってさ、
やっぱり他の動的型付け言語用のまともな
IDE知らないんじゃないか。
0223デフォルトの名無しさん2011/11/12(土) 15:18:46.83
>>222
そこまでしてSmalltalkを避けたいわけ?
0224デフォルトの名無しさん2011/11/12(土) 15:19:18.30
>>218
お前日本語おかしいよ。

簡単なことに能力は必要ないって言ってるだけ。

なぜ、「簡単なこと」を省略して
どんなことにも能力は必要ないってことに
しちゃうのか?
0225デフォルトの名無しさん2011/11/12(土) 15:19:19.79
>>221
リファクタリングブラウザの元祖はSmalltalkだということすら知らないの?
0226デフォルトの名無しさん2011/11/12(土) 15:20:02.82
>>223
お前仕事したことある?

Smalltalkを避けたいのではなく、
使われてないんだよ。

実用レベルの話しようぜ。
0227デフォルトの名無しさん2011/11/12(土) 15:20:20.72
>>225
Smalltalkは使われてないんだよ。

実用レベルの話しようぜ。
0228デフォルトの名無しさん2011/11/12(土) 15:20:40.78
>>224
> なぜ、「簡単なこと」を省略して

元レスのどこに「簡単なこと」なんて書いてあるの?

>>210
> >>206
> 動的型付け言語だと、能力が必要になることなのかい?w

おまえ、日本語つーより頭おかしいよ?
0229デフォルトの名無しさん2011/11/12(土) 15:20:53.92
でさ、Java厨ってさ、
やっぱり他の静的型付け言語用のまともな
IDE知らないんじゃないか。
0230デフォルトの名無しさん2011/11/12(土) 15:20:58.71
>>216
すまん。
これのどこに「3+4」のバイトコードを書き換えてかけ算をさせる要素が含まれるの?
0231デフォルトの名無しさん2011/11/12(土) 15:21:03.40
くだらん奴は相手にせず、本題に戻そう。


最初から書くときだけ。つまり修正する必要がないときだけ。

試行錯誤するフェーズというのは、そこで書いたコードは捨てるレベル。
捨てるのだから修正する必要はない。だからここでも動的型付けは効率がいい。
だいたい決まったフェーズとか完全に間違い。

実際のプロジェクトの多くは、修正がメインになる。
プロジェクトが大きい物ほど、すでに作られたものを修正することのほうが多い。
そしてプロジェクトが大きい物ほど、人の入れ替わりも多く
つまり「なにも知らない人がいきなり修正を任される」ってことが多くなる。

バグの原因は、想定外のことが発生したから。
なぜ想定外のことが発生するかというと知るべきことに気づかなかったから。
なぜ気づかなかったかというと、その知るべき情報を手に入れられなかったから。

これが静的型付け言語だと、簡単の情報を手に入れることができる。
メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
すべて判明する。これは一例であり静的型付け言語だともっと多くの情報を手に入れられる。

よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。
0232デフォルトの名無しさん2011/11/12(土) 15:21:07.08
>>227
FedExは実用されてないの?www
0233デフォルトの名無しさん2011/11/12(土) 15:21:42.90
コピペミスったw

動的型付けが効率がいいのは、ちゃんと設計もできて
最初から書くときだけ。つまり修正する必要がないときだけ。

試行錯誤するフェーズというのは、そこで書いたコードは捨てるレベル。
捨てるのだから修正する必要はない。だからここでも動的型付けは効率がいい。
だいたい決まったフェーズとか完全に間違い。

実際のプロジェクトの多くは、修正がメインになる。
プロジェクトが大きい物ほど、すでに作られたものを修正することのほうが多い。
そしてプロジェクトが大きい物ほど、人の入れ替わりも多く
つまり「なにも知らない人がいきなり修正を任される」ってことが多くなる。

バグの原因は、想定外のことが発生したから。
なぜ想定外のことが発生するかというと知るべきことに気づかなかったから。
なぜ気づかなかったかというと、その知るべき情報を手に入れられなかったから。

これが静的型付け言語だと、簡単の情報を手に入れることができる。
メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
すべて判明する。これは一例であり静的型付け言語だともっと多くの情報を手に入れられる。

よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。
0234デフォルトの名無しさん2011/11/12(土) 15:22:07.66
>>232
俺はFedEx社員じゃないもの(笑)
0235デフォルトの名無しさん2011/11/12(土) 15:22:09.50
>>231
> メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
> すべて判明する。

Smalltalkでは70年代から実装されている機能ですが何か?
0236デフォルトの名無しさん2011/11/12(土) 15:22:34.00
>>235
Smalltalkは使われてないんだよ。

実用レベルの話しようぜ。

0237デフォルトの名無しさん2011/11/12(土) 15:22:47.38
>>225
それはやばい。
0238デフォルトの名無しさん2011/11/12(土) 15:23:05.53
>>234
つまり知らないってことね。

知らない事は恥じゃないよ。知らないということを自覚していないことが恥なんだ。
覚えておこうね。
0239デフォルトの名無しさん2011/11/12(土) 15:23:17.14
Smalltalk以外の動的型付け言語はクソっていう
結論になっていることに気づけ馬鹿ども
自滅したいのか
0240デフォルトの名無しさん2011/11/12(土) 15:23:40.44
>>239
それでいいよw
0241デフォルトの名無しさん2011/11/12(土) 15:24:19.74
>>236
じゃあ、スレタイを「やっぱりSmalltalkを除く動的型付け言語は…」に変えとけ。
それまではSmalltalkアリだ。
0242デフォルトの名無しさん2011/11/12(土) 15:25:30.33
リファクタリングはSmalltalkで始まったけど
リファクタリングブラウザは、Smalltalkじゃろくな実装作れなかっただろ。
知らないのか?
0243デフォルトの名無しさん2011/11/12(土) 15:25:48.82
静的厨って、リファクタリングもデザパタもSmalltalk由来だってことすら知らないの?

それってプログラミングのプロとしてすごく恥ずかしいことだと思うんだけど。
0244デフォルトの名無しさん2011/11/12(土) 15:26:14.53
>>242
ラルフにそう言ってみれば?
0245デフォルトの名無しさん2011/11/12(土) 15:27:43.70
Smalltalk童貞のくせにEclipse自慢のやつって、
ジョブズがSmalltalk GUIをパクったことを知らないでドヤ顔の
旧マカに似ててかわいいな。
0246デフォルトの名無しさん2011/11/12(土) 15:28:41.20
>>239
えーと、それは

・動的型付け言語であっても大規模開発規模に対応可能なIDEは実現可能である

という事実を認めたということでいいのかな?
0247デフォルトの名無しさん2011/11/12(土) 15:29:41.36
これが現存するSmailltalk用の一番まともなリファクタリングブラウザだけど
こんなくだらない機能しかないんだぜ。
http://st-www.cs.illinois.edu/users/brant/Refactory/
undoとかリファクタリングと関係ない機能まで書いてあるしw
0248デフォルトの名無しさん2011/11/12(土) 15:30:21.87
>>246
> ・動的型付け言語であっても大規模開発規模に対応可能なIDEは実現可能である

いいえSmalltalkだけです。ちゃちなIDEが作れるのはw
0249デフォルトの名無しさん2011/11/12(土) 15:30:52.31
おもちゃとは言えフリーでSmalltalkいじれるいい時代に、なんで触っておかないのかね。
http://pharobyexample.org/
0250デフォルトの名無しさん2011/11/12(土) 15:31:14.80
Smalltalkを知らずにIDEを語るヤシって
自分じゃ恥ずかしくないのかな?
0251デフォルトの名無しさん2011/11/12(土) 15:31:21.44
>>243
知ってる。

Smailtalkから始まって、その他の言語に移っていった。
そして今はSmailtalkは殆ど使われていない。

0号機が一番強いなんて設定は
アニメの中だけだよw
0252デフォルトの名無しさん2011/11/12(土) 15:32:47.55
>>247
ググるにして何年前の資料だよ!w
■ このスレッドは過去ログ倉庫に格納されています