動的言語で大規模開発
■ このスレッドは過去ログ倉庫に格納されています
1uy
2012/07/24(火) 09:10:42.04 たててみた
444デフォルトの名無しさん
2014/11/29(土) 02:28:50.06ID:1aIidqiX445デフォルトの名無しさん
2014/11/29(土) 02:54:05.37ID:SuGYzpy/ >>443
オブジェクトが数値のときは数値関係のメソッドだけ補完に出せとか、そういう条件はあるの?
オブジェクトが数値のときは数値関係のメソッドだけ補完に出せとか、そういう条件はあるの?
446デフォルトの名無しさん
2014/11/29(土) 04:14:00.96ID:TbFyYdBX447446
2014/11/29(土) 04:16:18.02ID:TbFyYdBX 当たり前だけど、a. の行にブレークポイントを置いて、
そこまで実行してからa.を出すのはなし。
その行のブレークポイントまで実行しないといけないから
時間がかかる。
そこまで実行してからa.を出すのはなし。
その行のブレークポイントまで実行しないといけないから
時間がかかる。
448デフォルトの名無しさん
2014/11/29(土) 08:00:05.38ID:fWl7Yvk9449デフォルトの名無しさん
2014/11/29(土) 08:16:34.87ID:SO1yCwH9 >>446
MyClassのメソッド一覧ってどれぐらいのサイズ?
Smalltalkのように充実した標準ライブラリを持つ言語だと
Objectクラスだけでメソッドが488個あるから
MyClassのメソッド一覧は少なくとも500個ぐらいになって
aのクラスを特定する意味はあまりないな。
Smalltalkほどクラスライブラリが充実してないプアな言語だと
クラスを特定できるとうれしいかもしれないけど。
MyClassのメソッド一覧ってどれぐらいのサイズ?
Smalltalkのように充実した標準ライブラリを持つ言語だと
Objectクラスだけでメソッドが488個あるから
MyClassのメソッド一覧は少なくとも500個ぐらいになって
aのクラスを特定する意味はあまりないな。
Smalltalkほどクラスライブラリが充実してないプアな言語だと
クラスを特定できるとうれしいかもしれないけど。
450デフォルトの名無しさん
2014/11/29(土) 09:19:45.30ID:SuGYzpy/ 補完候補が単純なalphabetical orderじゃなくて
使用頻度順を学習して上から並べてくれるやつもあるので
その反論はナンセンスじゃね?
MyClassとObjectでは使われるメソッドの頻度が違うから
使用頻度順を学習して上から並べてくれるやつもあるので
その反論はナンセンスじゃね?
MyClassとObjectでは使われるメソッドの頻度が違うから
451デフォルトの名無しさん
2014/11/29(土) 09:23:05.48ID:1aIidqiX >>446
ちょっと待ってよ。そういう話なの?
俺の理解では、
- 静的型言語は変数を型で縛っているから補完がやりやすい。
- 動的型言語で静的に同レベルを実現するのは理論的に不可能。
ということは議論され尽くされてるわけだから暗黙の了解としてよくて、
- だけど動的型言語でも型推論をしてある程度絞って出せるのはあるよね。
- Smalltalkにはそういうスマートな機能はないけど、あんまり困ったことないよ。
という流れがあったところに>>443 で、
- 実行はせず、テキストエディタで編集中のコードで問題なくメソッドは出せるのか?
ときたから、意図がよくわからないのでコードを示してくれと頼んだら、
- 実行をして a をを確定してからその情報を元にして補完をするのはナシで、
静的型言語と同じように a の関連のメソッドだけしぼって出してみろ!
という要求だったので非常に驚いている。←イマココ
ちょっと待ってよ。そういう話なの?
俺の理解では、
- 静的型言語は変数を型で縛っているから補完がやりやすい。
- 動的型言語で静的に同レベルを実現するのは理論的に不可能。
ということは議論され尽くされてるわけだから暗黙の了解としてよくて、
- だけど動的型言語でも型推論をしてある程度絞って出せるのはあるよね。
- Smalltalkにはそういうスマートな機能はないけど、あんまり困ったことないよ。
という流れがあったところに>>443 で、
- 実行はせず、テキストエディタで編集中のコードで問題なくメソッドは出せるのか?
ときたから、意図がよくわからないのでコードを示してくれと頼んだら、
- 実行をして a をを確定してからその情報を元にして補完をするのはナシで、
静的型言語と同じように a の関連のメソッドだけしぼって出してみろ!
という要求だったので非常に驚いている。←イマココ
452デフォルトの名無しさん
2014/11/29(土) 09:26:19.46ID:SuGYzpy/ 標準ライブラリの大きさとObjectに数百個程度のメソッドがあることの
関係も良くわからない
標準ライブラリに少なくとも数百個もメソッドがあるんだぜスゲーってこと?
関係も良くわからない
標準ライブラリに少なくとも数百個もメソッドがあるんだぜスゲーってこと?
453デフォルトの名無しさん
2014/11/29(土) 09:40:43.18ID:e6ORUEwd454デフォルトの名無しさん
2014/11/29(土) 09:50:35.80ID:SuGYzpy/ でも>>446をよく見たら、こんなお題だったのか
> function foo(a) {
> a. とピリオドを入力した時点で、MyClassが持ってるメソッド一覧が表示されて欲しい
> }
これは静的型付言語で型推論があっても補完は無理だw
> function foo(a) {
> a. とピリオドを入力した時点で、MyClassが持ってるメソッド一覧が表示されて欲しい
> }
これは静的型付言語で型推論があっても補完は無理だw
455デフォルトの名無しさん
2014/11/29(土) 10:17:11.39ID:e6ORUEwd これなら型補完できるよ。これが静的言語でしょ?
> これがJavaなら
> void foo(MyClass a) {
> a. とピリオドを入力した時点で、MyClassが持ってるメソッド一覧が表示される
> }
> これがJavaなら
> void foo(MyClass a) {
> a. とピリオドを入力した時点で、MyClassが持ってるメソッド一覧が表示される
> }
456デフォルトの名無しさん
2014/11/29(土) 10:31:13.38ID:SO1yCwH9 >>453
へー、継承元のメソッドを分けて表示すれば解決する程度の貧弱なクラスライブラリが前提なんだー(鼻ホジホジ
へー、継承元のメソッドを分けて表示すれば解決する程度の貧弱なクラスライブラリが前提なんだー(鼻ホジホジ
457デフォルトの名無しさん
2014/11/29(土) 10:34:40.20ID:7EP7sx63458デフォルトの名無しさん
2014/11/29(土) 10:35:24.90ID:SO1yCwH9 静的言語でやっているコーディングとかIDEの使い方をそのまま動的言語に持ち込んで「これができない」「あれができない」と喚きだす初心者を眺めるスレw
459デフォルトの名無しさん
2014/11/29(土) 10:36:42.17ID:SO1yCwH9 >>457
そういう話はSmalltalkスレでどうぞ
Smalltalk総合 Squeak Pharo
http://peace.2ch.net/test/read.cgi/tech/1360991429/
そういう話はSmalltalkスレでどうぞ
Smalltalk総合 Squeak Pharo
http://peace.2ch.net/test/read.cgi/tech/1360991429/
460デフォルトの名無しさん
2014/11/29(土) 10:39:51.40ID:e6ORUEwd461デフォルトの名無しさん
2014/11/29(土) 10:40:48.12ID:e6ORUEwd462デフォルトの名無しさん
2014/11/29(土) 10:57:41.26ID:MSvzZpAh 技術的には型推論と補完を両立できるかどうか考えればいいと思うけど
ここで悪足掻きしてるやつは技術より心理にこだわっているふしがある
補完よいよねというマインドをつくることしか考えてない
ここで悪足掻きしてるやつは技術より心理にこだわっているふしがある
補完よいよねというマインドをつくることしか考えてない
463デフォルトの名無しさん
2014/11/29(土) 11:10:26.37ID:x5tELjcp 普通にいいだろw.
補完ができれば、それを応用して
さらにいろんなことができるようになるわけだし
補完ができれば、それを応用して
さらにいろんなことができるようになるわけだし
464デフォルトの名無しさん
2014/11/29(土) 11:16:43.56ID:SO1yCwH9 >>462
補完うんぬんは「静的型いいよね」というマインドのための道具でしかないでしょw
補完うんぬんは「静的型いいよね」というマインドのための道具でしかないでしょw
465デフォルトの名無しさん
2014/11/29(土) 11:17:30.03ID:7EP7sx63466デフォルトの名無しさん
2014/11/29(土) 11:17:56.66ID:MSvzZpAh467デフォルトの名無しさん
2014/11/29(土) 11:44:56.39ID:SuGYzpy/ 補完するときにメソッド名を選択すると、引数や戻り値の型やドキュメントが
出てくれるのは凄く嬉しい
あと同じ機能を使うと、メソッドにカーソル当てたらドキュメントを出せるようになるから
コード読むのが捗りまくる
出てくれるのは凄く嬉しい
あと同じ機能を使うと、メソッドにカーソル当てたらドキュメントを出せるようになるから
コード読むのが捗りまくる
468デフォルトの名無しさん
2014/11/29(土) 11:56:50.41ID:x5tELjcp 出来るできないで考えるからわからない。
どちらが楽にできるかどうかで考えよう。
そしてただ単に楽にできるかで考えるのもダメ一体何が楽ができるか。
つまり、書くのが楽か、読むのが楽か。
どちらを重視すべきかというと、書くよりも読むことが楽になるようにするべき。
なぜならプログラミングの作業の多くは書こに書いたコードを読んで修正することだから。
そういう時に、この変数は○○型であると書いてある方がいいわけだよ。
コメントに書くこともできるがそれだと実際のコードとコメントが
一致していない可能性がある。
コメントを書くよりも、コードでそれを表現するべき。
そうすれば人間もコンパイラも理解できる。
静的型がいいのは、そういう読むときの開発効率の高さにある。
どちらが楽にできるかどうかで考えよう。
そしてただ単に楽にできるかで考えるのもダメ一体何が楽ができるか。
つまり、書くのが楽か、読むのが楽か。
どちらを重視すべきかというと、書くよりも読むことが楽になるようにするべき。
なぜならプログラミングの作業の多くは書こに書いたコードを読んで修正することだから。
そういう時に、この変数は○○型であると書いてある方がいいわけだよ。
コメントに書くこともできるがそれだと実際のコードとコメントが
一致していない可能性がある。
コメントを書くよりも、コードでそれを表現するべき。
そうすれば人間もコンパイラも理解できる。
静的型がいいのは、そういう読むときの開発効率の高さにある。
469デフォルトの名無しさん
2014/11/29(土) 11:59:47.15ID:x5tELjcp なお、コード補完は、書くことを楽にしてくれる、
つまりタイピングを補助するものだと勘違いしている人が多いが、
実際は読むことを楽にしてくれている。
つまり、このオブジェクトにはどんなメソッドがあって、
そのメソッドがどんな機能、引数、戻り値を提供しているか
ということを確かめるために、ドキュメントやコードを
読むことを楽にしてくれる。
だから適切な補完が重要になる。
多すぎることもなく少なすぎることもなく
間違えることもない補完が重要。
つまりタイピングを補助するものだと勘違いしている人が多いが、
実際は読むことを楽にしてくれている。
つまり、このオブジェクトにはどんなメソッドがあって、
そのメソッドがどんな機能、引数、戻り値を提供しているか
ということを確かめるために、ドキュメントやコードを
読むことを楽にしてくれる。
だから適切な補完が重要になる。
多すぎることもなく少なすぎることもなく
間違えることもない補完が重要。
470デフォルトの名無しさん
2014/11/29(土) 12:11:58.32ID:nAAws2G7471デフォルトの名無しさん
2014/11/29(土) 12:30:14.99ID:v2v5Wnkr それ以前にさ、動的型付きとして
失ってほしくない機能って何さ?
失っても対して問題ない機能ばかりだと思うだが。
失ってほしくない機能って何さ?
失っても対して問題ない機能ばかりだと思うだが。
472デフォルトの名無しさん
2014/11/29(土) 12:44:23.44ID:A4nuaoXO 標準ライブラリや他人の作ったライブラリの全てを記憶できる変態でも無い限り
コード補完によってドキュメントを含め表示して選択出来るってのは生産する
上ではかなりのアドバンテージなんだけどね。 大昔のクソなIDEや最近のでも
動的言語に対応しているのはクソなIDEしかないから、そういう技術の進歩を
知らない原始人には理解できないことなんだよ。
コード補完によってドキュメントを含め表示して選択出来るってのは生産する
上ではかなりのアドバンテージなんだけどね。 大昔のクソなIDEや最近のでも
動的言語に対応しているのはクソなIDEしかないから、そういう技術の進歩を
知らない原始人には理解できないことなんだよ。
473デフォルトの名無しさん
2014/11/29(土) 12:49:43.77ID:v2v5Wnkr 動的型付きにすることで失われていることのほうが多いと思う。
それで、動的型付きにしてまで守ろうとしているものってなに?
それで、動的型付きにしてまで守ろうとしているものってなに?
474デフォルトの名無しさん
2014/11/29(土) 13:13:21.80ID:MSvzZpAh ドキュメントについては仕様書が欲しいか具体例が欲しいかによる
ただちに必要ではないことまで書かれているのが仕様書
ある時点で必要だったことしか書かれていないのが具体例
具体例から仕様を想像できるような変態は全てを記憶ではなく推理している
ただちに必要ではないことまで書かれているのが仕様書
ある時点で必要だったことしか書かれていないのが具体例
具体例から仕様を想像できるような変態は全てを記憶ではなく推理している
475デフォルトの名無しさん
2014/11/29(土) 13:24:38.99ID:U5ivpV2C スタートダッシュと試行錯誤じゃないの
軌道に乗ったら捨てて作りなおせばいいのよ
軌道に乗ったら捨てて作りなおせばいいのよ
476デフォルトの名無しさん
2014/11/29(土) 13:24:42.22ID:7EP7sx63477デフォルトの名無しさん
2014/11/29(土) 13:54:58.03ID:A4nuaoXO >>476
javaならソースに書かれているjavadocが出る。いわゆるAPIリファレンスと
言われるものが表示される。visual stadioだとmsdnに書いてあるのが出る。
APIリファレンスが役に立たないとか言っちゃうような無能はプログラムを
書くのを辞めたほうがいい。
javadocが出たことによって他の言語でもソースに埋め込んだコメントを
別ドキュメントに言語の標準かそれに近いレベルで提供されることが多く
なった。ただ別ツールを使ってまでドキュメントを出力するようなところは
殆ど無かったけど、IDEで自分や他人の書いたドキュメントまで手元で
参照できるようになったことで、どのレベルでコメントを書けばよいうかと
いうことに気づけた人はそれなりにいるかと思う。
書かないと煩く言われるから書くというのから、自分で書いたコードでも
元のコードを見なくても分かるように書くというのに変われた人は多いと
思います。最低でも自分で書いたコードを自分の為にというのがやり
やすくなった。
javaならソースに書かれているjavadocが出る。いわゆるAPIリファレンスと
言われるものが表示される。visual stadioだとmsdnに書いてあるのが出る。
APIリファレンスが役に立たないとか言っちゃうような無能はプログラムを
書くのを辞めたほうがいい。
javadocが出たことによって他の言語でもソースに埋め込んだコメントを
別ドキュメントに言語の標準かそれに近いレベルで提供されることが多く
なった。ただ別ツールを使ってまでドキュメントを出力するようなところは
殆ど無かったけど、IDEで自分や他人の書いたドキュメントまで手元で
参照できるようになったことで、どのレベルでコメントを書けばよいうかと
いうことに気づけた人はそれなりにいるかと思う。
書かないと煩く言われるから書くというのから、自分で書いたコードでも
元のコードを見なくても分かるように書くというのに変われた人は多いと
思います。最低でも自分で書いたコードを自分の為にというのがやり
やすくなった。
478デフォルトの名無しさん
2014/11/29(土) 14:00:18.54ID:A4nuaoXO そういえばvisual studioだとサンプルコードを検索ダウンロード出来る機能まで
付いたんだっけかな。
付いたんだっけかな。
479デフォルトの名無しさん
2014/11/29(土) 14:06:58.21ID:7EP7sx63 >>477
javadocは、どの程度のが出るかしらんが、Visual Studioで出るような
サマリーだけじゃ役に立たんがね。
IDEで出るのはあくまでも補助的なもんで、ちゃんとしたAPIのドキュメントは
msdn見ないと駄目だろ。APIの注意書きとかサンプルコードとかはIDEでは出ないだぎゃー
最近のVisual Studioは、msdnの全文が出るんけ?
底辺土方なんで最新版は知らんのじゃ〜
javadocは、どの程度のが出るかしらんが、Visual Studioで出るような
サマリーだけじゃ役に立たんがね。
IDEで出るのはあくまでも補助的なもんで、ちゃんとしたAPIのドキュメントは
msdn見ないと駄目だろ。APIの注意書きとかサンプルコードとかはIDEでは出ないだぎゃー
最近のVisual Studioは、msdnの全文が出るんけ?
底辺土方なんで最新版は知らんのじゃ〜
480デフォルトの名無しさん
2014/11/29(土) 14:07:50.21ID:7EP7sx63481デフォルトの名無しさん
2014/11/29(土) 14:13:44.81ID:v2v5Wnkr >>479
> javadocは、どの程度のが出るかしらんが、Visual Studioで出るような
> サマリーだけじゃ役に立たんがね。
サマリーでも役に立つと思うし、リンクになってるから
ヘルプ調べるのも速くなるんだが?
> javadocは、どの程度のが出るかしらんが、Visual Studioで出るような
> サマリーだけじゃ役に立たんがね。
サマリーでも役に立つと思うし、リンクになってるから
ヘルプ調べるのも速くなるんだが?
482デフォルトの名無しさん
2014/11/29(土) 14:25:05.29ID:7EP7sx63483デフォルトの名無しさん
2014/11/29(土) 14:33:59.73ID:A4nuaoXO >>479
ttp://docs.oracle.com/javase/8/docs/api/index.html
どのレベルも何も↑の各クラス、メソッドのがそのまま出るんだが。
これは英語だが、日本語訳のがある場合はそっちを使うことが出来る。
で、ここに書かれていなくて他に書かれているというドキュメントは存在しない
わけで、ググってどこにも無ければこれに頼るしか無い。 このリファレンスが
分からない役に立たないっていうやつは少なくてもjavaはやらないほうがいい。
ttp://docs.oracle.com/javase/8/docs/api/index.html
どのレベルも何も↑の各クラス、メソッドのがそのまま出るんだが。
これは英語だが、日本語訳のがある場合はそっちを使うことが出来る。
で、ここに書かれていなくて他に書かれているというドキュメントは存在しない
わけで、ググってどこにも無ければこれに頼るしか無い。 このリファレンスが
分からない役に立たないっていうやつは少なくてもjavaはやらないほうがいい。
484デフォルトの名無しさん
2014/11/29(土) 14:36:32.05ID:v2v5Wnkr485デフォルトの名無しさん
2014/11/29(土) 14:37:24.55ID:v2v5Wnkr で、そんな話はいいとして、動的型付け言語が
動的型付けにしてまで守ろうとしているものって何よ?
動的型付けにしてまで守ろうとしているものって何よ?
486デフォルトの名無しさん
2014/11/29(土) 14:38:14.93ID:Tl+PW+FS 動的言語でも変数aをMyClass型と教えればメソッド一覧は出せるだろ
487デフォルトの名無しさん
2014/11/29(土) 14:39:37.78ID:v2v5Wnkr488デフォルトの名無しさん
2014/11/29(土) 14:40:07.50ID:SO1yCwH9 その問い自体が静的目線だってのw
視野が狭いなあw
視野が狭いなあw
489デフォルトの名無しさん
2014/11/29(土) 14:40:46.54ID:Tl+PW+FS いちいち変数を宣言して型を指定するのとかわらないと思う
490デフォルトの名無しさん
2014/11/29(土) 14:42:05.95ID:v2v5Wnkr その都度、MyClass型って教えないといけない手間がかかるのと
コードに仕様として書いておけるのの違いだね
コードに仕様として書いておけるのの違いだね
491デフォルトの名無しさん
2014/11/29(土) 14:42:13.42ID:SO1yCwH9 補完候補を500に絞り込むためだけに、aがMyClassのインスタンスでないと動かないような腐れコードにするわけか
ご苦労さまなこってw
こりゃ世の中からクソコードがなくならないわけだw
ご苦労さまなこってw
こりゃ世の中からクソコードがなくならないわけだw
492デフォルトの名無しさん
2014/11/29(土) 14:43:48.06ID:v2v5Wnkr > 補完候補を500に絞り込むためだけに
補完候補を500ってなんのこと?
動的型付けだと、その500を全て覚えてるの?
意味がわからないね。
補完候補を500ってなんのこと?
動的型付けだと、その500を全て覚えてるの?
意味がわからないね。
493デフォルトの名無しさん
2014/11/29(土) 14:45:30.32ID:TZOpdCpR 型を書かなくても a = MyClass() や、さらにいえば
foo(MyClass()) のようなコードがあるだけでも>>446は補完できる様になる
foo(MyClass()) のようなコードがあるだけでも>>446は補完できる様になる
494デフォルトの名無しさん
2014/11/29(土) 14:46:28.99ID:v2v5Wnkr 逆に言えば、そういうコードがなければ
補完できないという意味である。
例えば関数の引数。これは補完できない。
補完できないという意味である。
例えば関数の引数。これは補完できない。
495デフォルトの名無しさん
2014/11/29(土) 14:48:16.54ID:Tl+PW+FS 補完ってそこまで重要か
動的言語支持者の揚げ足をとるためには必要かもしれないけど
単語単位補完で十分通用してる
動的言語支持者の揚げ足をとるためには必要かもしれないけど
単語単位補完で十分通用してる
496デフォルトの名無しさん
2014/11/29(土) 14:49:08.68ID:v2v5Wnkr 型を書かなかったら a = MyClass() と a =YourClass()の両方があったら
補完がめちゃくちゃになる。
foo(MyClass()) と foo(YourClass()) のようなコードがあると
>>446の補完は使い物にならなくなる。
補完がめちゃくちゃになる。
foo(MyClass()) と foo(YourClass()) のようなコードがあると
>>446の補完は使い物にならなくなる。
497デフォルトの名無しさん
2014/11/29(土) 14:51:15.51ID:v2v5Wnkr >>495
> 補完ってそこまで重要か
重要ですよ。
開発効率がぜんぜん違う。
・タイプ数の省略
・うろ覚え(引数の順番程度)でヘルプを引くことの省略
・ヘルプを開く場合でもその手間の省略
・コードのミスを実行せずに知ることが出来る
・リファクタリング時に自動で安全にできることが多くなる。
これらはいらないんだ!って言うかもしれないが、
それは開発効率が大きく高まることを否定する言葉じゃないからね。
> 補完ってそこまで重要か
重要ですよ。
開発効率がぜんぜん違う。
・タイプ数の省略
・うろ覚え(引数の順番程度)でヘルプを引くことの省略
・ヘルプを開く場合でもその手間の省略
・コードのミスを実行せずに知ることが出来る
・リファクタリング時に自動で安全にできることが多くなる。
これらはいらないんだ!って言うかもしれないが、
それは開発効率が大きく高まることを否定する言葉じゃないからね。
498デフォルトの名無しさん
2014/11/29(土) 14:54:43.83ID:TZOpdCpR499デフォルトの名無しさん
2014/11/29(土) 14:55:43.43ID:rjWp6DMr 単語単位補完って、単にタイプ数を
少し省略することしかできないからね。
しかも補完した結果が間違っていることがある。
動的型付けにおける補完の効果って
その程度しかできないし、その程度のことしか知らないから
静的型付け言語でもその程度のことだと思ってる人が多いんだよ。
ぜんぜん違う。静的型付け言語であれば補完は
タイプ数削減以上に大きく開発効率を上げることが出来る。
明らかに開発効率を上げると証明された。
動的型付けで開発効率を上げることは出来るのか?
動的型付けにしてまで守ろうとしているものはなんなのか?
少し省略することしかできないからね。
しかも補完した結果が間違っていることがある。
動的型付けにおける補完の効果って
その程度しかできないし、その程度のことしか知らないから
静的型付け言語でもその程度のことだと思ってる人が多いんだよ。
ぜんぜん違う。静的型付け言語であれば補完は
タイプ数削減以上に大きく開発効率を上げることが出来る。
明らかに開発効率を上げると証明された。
動的型付けで開発効率を上げることは出来るのか?
動的型付けにしてまで守ろうとしているものはなんなのか?
500デフォルトの名無しさん
2014/11/29(土) 15:00:38.05ID:rjWp6DMr >>498
いや、だからなければ型推論できないでしょ。
「実際に関数を使ってるコード」の方が間違っていたら
補完も間違うわけよ。foo(MyClass())って使わないといけない時に
foo(YourClass())って書いてしまったら、補完もそれに合わされてしまう。
それにさ、人間の問題はどうなるのさ?
function foo(a) {} ってコードをいきなりみせられて
aは何型でしょう? ってクイズ?(笑)
リーダブルコードってわかるかな?
ライタブルコードってはいわないんだよ。
重要なのは読む時。読む時に必要な情報が欠けてる。
もしくは間違ってる。そんな信用出来ない状態では開発効率は大きく下がるよね。
で、動的型付け言語は開発効率下がると証明されたが
あがる理由は何かあるのか?
いや、だからなければ型推論できないでしょ。
「実際に関数を使ってるコード」の方が間違っていたら
補完も間違うわけよ。foo(MyClass())って使わないといけない時に
foo(YourClass())って書いてしまったら、補完もそれに合わされてしまう。
それにさ、人間の問題はどうなるのさ?
function foo(a) {} ってコードをいきなりみせられて
aは何型でしょう? ってクイズ?(笑)
リーダブルコードってわかるかな?
ライタブルコードってはいわないんだよ。
重要なのは読む時。読む時に必要な情報が欠けてる。
もしくは間違ってる。そんな信用出来ない状態では開発効率は大きく下がるよね。
で、動的型付け言語は開発効率下がると証明されたが
あがる理由は何かあるのか?
501デフォルトの名無しさん
2014/11/29(土) 15:11:36.58ID:TZOpdCpR502デフォルトの名無しさん
2014/11/29(土) 15:14:22.47ID:Tl+PW+FS 動的言語の方がコード量が減るから大規模になりにくい
短期記憶に入りやすいから効率も上がる
静的に見て機械的に処理しやすいのは静的片付け言語だけど
短期記憶に入りやすいから効率も上がる
静的に見て機械的に処理しやすいのは静的片付け言語だけど
503デフォルトの名無しさん
2014/11/29(土) 15:14:41.06ID:HSRgXQQV > それは void foo(YourClass a) って間違えても同じだよね
定義は一箇所。
使う場所は沢山。
一個でも間違えたらどちらが正しいかわからなくなる。
定義は一箇所。
使う場所は沢山。
一個でも間違えたらどちらが正しいかわからなくなる。
504デフォルトの名無しさん
2014/11/29(土) 15:16:15.20ID:HSRgXQQV >>502
> 動的言語の方がコード量が減るから大規模になりにくい
重要なのは、タイプ量ではなくて読む量なんだよ。
動的言語のコード量が減るってようするに、
コードを理解するための情報が減るから
コードが読めなくなる。
少なければいいってもんじゃないんだよ。
> 動的言語の方がコード量が減るから大規模になりにくい
重要なのは、タイプ量ではなくて読む量なんだよ。
動的言語のコード量が減るってようするに、
コードを理解するための情報が減るから
コードが読めなくなる。
少なければいいってもんじゃないんだよ。
505デフォルトの名無しさん
2014/11/29(土) 15:17:16.14ID:Tl+PW+FS 少なければいいよ
機械がコードを読み書きするんじゃなくて人がするんだから
機械がコードを読み書きするんじゃなくて人がするんだから
506デフォルトの名無しさん
2014/11/29(土) 15:18:12.01ID:TZOpdCpR507デフォルトの名無しさん
2014/11/29(土) 15:20:19.64ID:HSRgXQQV 動的型付け言語では、コードを理解するための情報(定義)が減って、
実行するコード自体の量は静的型付けでも動的型付けでも変わらない。
たとえて言うならば、
文章の枠外にある注釈を書いているのが静的型付け言語で
同じ文章でありながら、枠外の注釈を取り除いたのが動的型付け言語
注釈があればいきなり変数が出てきても、これは○型だってわかるが、
注釈がなければ、この変数に値入れてるのどこだよ。
この関数を使ってるのはどこだよと
注目して呼んでいる所以外の情報を探してこなければいけない。
実行するコード自体の量は静的型付けでも動的型付けでも変わらない。
たとえて言うならば、
文章の枠外にある注釈を書いているのが静的型付け言語で
同じ文章でありながら、枠外の注釈を取り除いたのが動的型付け言語
注釈があればいきなり変数が出てきても、これは○型だってわかるが、
注釈がなければ、この変数に値入れてるのどこだよ。
この関数を使ってるのはどこだよと
注目して呼んでいる所以外の情報を探してこなければいけない。
508デフォルトの名無しさん
2014/11/29(土) 15:22:35.61ID:MSvzZpAh509デフォルトの名無しさん
2014/11/29(土) 15:24:39.97ID:HSRgXQQV >>506
無理だよ。
例えばMyClassにhogeというメソッドがあって、YourClassには無いとする。
これをfoo(MyClass()) と foo(YourClass())に渡した所でエラーにならない。
fooの中でhogeを呼び出しているから、YourClassを渡している所が間違いだ!と
思いきや、
動的にYourClassにhogeメソッドを追加するかもしれないから
エラーとは言い切れない。
つまりエラーと出る箇所はすべて、エラーではないかもしれない。
無理だよ。
例えばMyClassにhogeというメソッドがあって、YourClassには無いとする。
これをfoo(MyClass()) と foo(YourClass())に渡した所でエラーにならない。
fooの中でhogeを呼び出しているから、YourClassを渡している所が間違いだ!と
思いきや、
動的にYourClassにhogeメソッドを追加するかもしれないから
エラーとは言い切れない。
つまりエラーと出る箇所はすべて、エラーではないかもしれない。
510デフォルトの名無しさん
2014/11/29(土) 15:26:57.07ID:HSRgXQQV511デフォルトの名無しさん
2014/11/29(土) 15:37:19.95ID:TZOpdCpR512デフォルトの名無しさん
2014/11/29(土) 15:44:49.77ID:TZOpdCpR 動的にメソッドを追加するケースは少ない => 補完や型検査は動的言語でも有効
動的にメソッドを追加するケースが多い => 動的言語って凄く便利だね
動的にメソッドを追加するケースが多い => 動的言語って凄く便利だね
513デフォルトの名無しさん
2014/11/29(土) 15:49:50.99ID:HSRgXQQV >>511
> 動的言語の話なら、動的にメソッド追加されるケースは多くないからワーニングを出してもOKでしょ
俺がいいたいのはそれだよ。動的にメソッド追加されるケースは多くないのに
そのために多くのメリットを捨てるだけの意味が動的型付け言語にあるのかってこと。
> 動的言語の話なら、動的にメソッド追加されるケースは多くないからワーニングを出してもOKでしょ
俺がいいたいのはそれだよ。動的にメソッド追加されるケースは多くないのに
そのために多くのメリットを捨てるだけの意味が動的型付け言語にあるのかってこと。
514デフォルトの名無しさん
2014/11/29(土) 15:58:27.80ID:SO1yCwH9 >>497
>・タイプ数の省略
つまりタイプ数を省略するために
オブジェクトが持つメソッド数が僅かしかないような
ゴミみたいなライブラリを使わされるのはいやだなあ
>・うろ覚え(引数の順番程度)でヘルプを引くことの省略
補完以外にもいろいろな手段があるが?
>・ヘルプを開く場合でもその手間の省略
補完以外にもいろいろな手段があるが?
>・コードのミスを実行せずに知ることが出来る
実行すればわかることを、いちいち型として書いた上に
コードに余計な制約をつけるなんて愚の骨頂だろw
>・リファクタリング時に自動で安全にできることが多くなる。
くだらない。リファクタリングが始まったのは動的言語からだし、
リファクタリングをIDEの機能に統合したのも動的言語から。
で、補完を使うことで、可能なリファクタリングが増えるなんて初耳なんだが?
やはり静的脳で動的言語を見て「あれが欠けてる」「これが欠けてる」と言っているだけだねw
まずは自分の視野の狭さをなんとかしたら?
>・タイプ数の省略
つまりタイプ数を省略するために
オブジェクトが持つメソッド数が僅かしかないような
ゴミみたいなライブラリを使わされるのはいやだなあ
>・うろ覚え(引数の順番程度)でヘルプを引くことの省略
補完以外にもいろいろな手段があるが?
>・ヘルプを開く場合でもその手間の省略
補完以外にもいろいろな手段があるが?
>・コードのミスを実行せずに知ることが出来る
実行すればわかることを、いちいち型として書いた上に
コードに余計な制約をつけるなんて愚の骨頂だろw
>・リファクタリング時に自動で安全にできることが多くなる。
くだらない。リファクタリングが始まったのは動的言語からだし、
リファクタリングをIDEの機能に統合したのも動的言語から。
で、補完を使うことで、可能なリファクタリングが増えるなんて初耳なんだが?
やはり静的脳で動的言語を見て「あれが欠けてる」「これが欠けてる」と言っているだけだねw
まずは自分の視野の狭さをなんとかしたら?
515デフォルトの名無しさん
2014/11/29(土) 16:02:07.42ID:SO1yCwH9 補完君の要約
「ぼくがジャバでプログラムを書くのと同じやり方ができない動的言語なんて使えない」
「ぼくがジャバでプログラムを書くのと同じやり方ができない動的言語なんて使えない」
516デフォルトの名無しさん
2014/11/29(土) 16:55:08.72ID:SO1yCwH9 補完君の最大の勘違いは、
動的言語はa.と入力して出てくるメソッド名を絞り込めない
と思い込んでいること。
実際には、動的言語ではa.と入力して出てくる膨大なメソッド名の
どれでも正当なプログラムを構成し得る。
だからその膨大な候補リストは既に十分絞り込まれたもの。
ただ、静的脳の小さな容量では言語のポテンシャルが高すぎて
マトモに使いこなせない。かわいそうに。
動的言語はa.と入力して出てくるメソッド名を絞り込めない
と思い込んでいること。
実際には、動的言語ではa.と入力して出てくる膨大なメソッド名の
どれでも正当なプログラムを構成し得る。
だからその膨大な候補リストは既に十分絞り込まれたもの。
ただ、静的脳の小さな容量では言語のポテンシャルが高すぎて
マトモに使いこなせない。かわいそうに。
517デフォルトの名無しさん
2014/11/29(土) 20:03:41.93ID:o/hS6qzS 補完必須派に訊きたいんだけど
コンパイル時ダックタイピングともいわれる構造部分型
http://igeta.cocolog-nifty.com/blog/2008/05/subtyping.html
をサポートする静的型言語のときは、どういう候補を出すのが正解?
これがわかると、動的型言語の補完がどうあるべきかの指標になるんでは。
コンパイル時ダックタイピングともいわれる構造部分型
http://igeta.cocolog-nifty.com/blog/2008/05/subtyping.html
をサポートする静的型言語のときは、どういう候補を出すのが正解?
これがわかると、動的型言語の補完がどうあるべきかの指標になるんでは。
518デフォルトの名無しさん
2014/11/29(土) 21:05:19.38ID:7EP7sx63 >>484
オレオレOOなヤツに多いね。
自分の足りないオツムと一次ソースだけでプログラミングするやつw
個人ブログとかStackOverflowから良いコードがあればパクるのが良いねえ。
もちろん後から一次ソースで確認はする。
オレ様のゆるいオツムでは思いつかないようなクールなコードが世の中には沢山あるぞw
オレオレOOなヤツに多いね。
自分の足りないオツムと一次ソースだけでプログラミングするやつw
個人ブログとかStackOverflowから良いコードがあればパクるのが良いねえ。
もちろん後から一次ソースで確認はする。
オレ様のゆるいオツムでは思いつかないようなクールなコードが世の中には沢山あるぞw
519デフォルトの名無しさん
2014/11/29(土) 22:22:32.23ID:fN3BW3ns >>514
リファクタリングでできることは
静的型付け言語の方がとっくに多くなってるんだよ。
始まったのは動的型付けからって
単に懐古厨なだけだろ。昔はなってw
最新のリファクタリング技術がどうなっているかを知ると驚くぞ。
http://nanananande.helpfulness.jp/wp-content/uploads/sites/2/2014/06/3164/1b000175b814e923b2ddeebcadbf4154-159x300.png
それに対して動的型付けの話って
昔の話しか出てないだろ。
リファクタリングでできることは
静的型付け言語の方がとっくに多くなってるんだよ。
始まったのは動的型付けからって
単に懐古厨なだけだろ。昔はなってw
最新のリファクタリング技術がどうなっているかを知ると驚くぞ。
http://nanananande.helpfulness.jp/wp-content/uploads/sites/2/2014/06/3164/1b000175b814e923b2ddeebcadbf4154-159x300.png
それに対して動的型付けの話って
昔の話しか出てないだろ。
520デフォルトの名無しさん
2014/11/29(土) 22:25:49.85ID:fN3BW3ns >>516
> 補完君の最大の勘違いは、
> 動的言語はa.と入力して出てくるメソッド名を絞り込めない
> と思い込んでいること。
なにマッチ・ポンプしてるんだよw
静的型付け言語では最初から絞り込めるよな?
で、動的型つけ言語は500もメソッドが出る。(ドヤっ)
そんなにたくさん候補が出たら大変だろ!(ドヤっ)
って言っておいて、今度は、
動的型つけ言語でも絞り込める時もある(ドヤっ)
ですかw
うん、大変だね。静的型付け言語では最初から絞り込めるよ?
> 補完君の最大の勘違いは、
> 動的言語はa.と入力して出てくるメソッド名を絞り込めない
> と思い込んでいること。
なにマッチ・ポンプしてるんだよw
静的型付け言語では最初から絞り込めるよな?
で、動的型つけ言語は500もメソッドが出る。(ドヤっ)
そんなにたくさん候補が出たら大変だろ!(ドヤっ)
って言っておいて、今度は、
動的型つけ言語でも絞り込める時もある(ドヤっ)
ですかw
うん、大変だね。静的型付け言語では最初から絞り込めるよ?
521デフォルトの名無しさん
2014/11/29(土) 22:48:51.18ID:SuGYzpy/522デフォルトの名無しさん
2014/11/30(日) 00:47:09.72ID:mFsly3WX >>517
>これがわかると、動的型言語の補完がどうあるべきかの指標になるんでは。
なぜ構造的部分型が補完の指標になりえるのか、
その理由というか関連性が説明してごらん
単なる思いつきじゃねえの?
少なくとも >>517 のリンク先blog記事では
「構造的部分型付けは公称的部分型付けとダックタイピングの間に位置する」あるいは
「構造的部分型付けは公称的部分型付けとダックタイピングとのハイブリッドである」
と主張しているけど、こんな奇妙な話は聞いたことが無い
しかも記事のネタになったソース(学術的文献)が書かれていないし、
英語版 Wikipedia の Subtyping のページでも
duck tying との関連性に対する文章に対して "citation needed" と指摘されている
おまけに記者は構造的部分型付けをサポートする言語(OCaml)を使った事が
一度も無いと正直に告白している
このblog記事はあくまで記者が型システムを勉強する過程で書き残したノートであって、
この記事を引用して >>517 が何を言いたいのか、自分には意味不明だね
なお、動的型付け言語に(形式的な型推論を基礎とした)静的型付けを導入した概念は
Soft Typing と呼ばれている
動的型付け言語の補完を検討する指標となる可能性があるのは、
どちらかといえば Soft Typing ではないかと思うね
>これがわかると、動的型言語の補完がどうあるべきかの指標になるんでは。
なぜ構造的部分型が補完の指標になりえるのか、
その理由というか関連性が説明してごらん
単なる思いつきじゃねえの?
少なくとも >>517 のリンク先blog記事では
「構造的部分型付けは公称的部分型付けとダックタイピングの間に位置する」あるいは
「構造的部分型付けは公称的部分型付けとダックタイピングとのハイブリッドである」
と主張しているけど、こんな奇妙な話は聞いたことが無い
しかも記事のネタになったソース(学術的文献)が書かれていないし、
英語版 Wikipedia の Subtyping のページでも
duck tying との関連性に対する文章に対して "citation needed" と指摘されている
おまけに記者は構造的部分型付けをサポートする言語(OCaml)を使った事が
一度も無いと正直に告白している
このblog記事はあくまで記者が型システムを勉強する過程で書き残したノートであって、
この記事を引用して >>517 が何を言いたいのか、自分には意味不明だね
なお、動的型付け言語に(形式的な型推論を基礎とした)静的型付けを導入した概念は
Soft Typing と呼ばれている
動的型付け言語の補完を検討する指標となる可能性があるのは、
どちらかといえば Soft Typing ではないかと思うね
523522
2014/11/30(日) 00:49:19.68ID:mFsly3WX 細かいけど訂正
X: その理由というか関連性が説明してごらん
O: その理由というか関連性を説明してごらん
X: その理由というか関連性が説明してごらん
O: その理由というか関連性を説明してごらん
524デフォルトの名無しさん
2014/11/30(日) 00:51:32.07ID:uxHSis3U ガアガアとなく人間は
アヒルである。
ダックタイピング
アヒルである。
ダックタイピング
525デフォルトの名無しさん
2014/11/30(日) 01:04:21.57ID:360iudbJ >>519
昔の時点ですでに相当できてたって話もあるぞ。
http://web.archive.org/web/20090130061934/http://www.refactory.com/RefactoringBrowser/Refactorings.html
昔の時点ですでに相当できてたって話もあるぞ。
http://web.archive.org/web/20090130061934/http://www.refactory.com/RefactoringBrowser/Refactorings.html
526デフォルトの名無しさん
2014/11/30(日) 01:17:26.21ID:uxHSis3U >>525
同じぐらい"昔"である2009年の記事出していい?Eclipse+Javaの世界の話
http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-refactoring/
同じぐらい"昔"である2009年の記事出していい?Eclipse+Javaの世界の話
http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-refactoring/
527デフォルトの名無しさん
2014/11/30(日) 09:02:17.22ID:360iudbJ >>526
すまん2001年の登場当初のを貼るつもりだった。
http://web.archive.org/web/20010514165503/http://www.refactory.com/RefactoringBrowser/Refactorings.html
すまん2001年の登場当初のを貼るつもりだった。
http://web.archive.org/web/20010514165503/http://www.refactory.com/RefactoringBrowser/Refactorings.html
528デフォルトの名無しさん
2014/11/30(日) 09:53:30.32ID:uRzHHhxu 520を読むと516が言う通り補完君は動的型がまるでわかってないことが明白だ
529デフォルトの名無しさん
2014/11/30(日) 10:04:13.86ID:uRzHHhxu 補完君はキーを2,3文字入力するのをケチるために
引数がMyClassのインスタンスでなければ動かないゴミメソッドにして
どうだ静的型すごいとか言い出す初心者でしょ
引数がMyClassのインスタンスでなければ動かないゴミメソッドにして
どうだ静的型すごいとか言い出す初心者でしょ
530デフォルトの名無しさん
2014/11/30(日) 10:27:25.19ID:uRzHHhxu 静的型は自転車の補助輪
初心者を卒業したら外そうね
初心者を卒業したら外そうね
531デフォルトの名無しさん
2014/11/30(日) 10:46:49.86ID:/BRxH/wW532デフォルトの名無しさん
2014/11/30(日) 10:59:52.11ID:c9Q+Jt/4 大規模開発で人に作らせる立場だと、プログラマに静的言語という拘束具をつけた方が楽なんだよ。チームメンバの能力によって品質が変わってはいけないし。
人を指導する立場に立ってみると分かる。
人を指導する立場に立ってみると分かる。
533デフォルトの名無しさん
2014/11/30(日) 11:21:16.72ID:rR9TrKjV でも静的型を嫌がってたらGoogleとかでは働けないわけじゃん?
お前らどんな底辺企業で働いてるの?
それともニート?
お前らどんな底辺企業で働いてるの?
それともニート?
534デフォルトの名無しさん
2014/11/30(日) 12:03:38.55ID:360iudbJ >>522
structural subtyping と duck typing の対比なんていくらでも目にするだろう。
structural subtyping と duck typing の対比なんていくらでも目にするだろう。
535デフォルトの名無しさん
2014/11/30(日) 13:49:35.58ID:kUIpsKvT >>527
じゃあ同じように2001年という "大昔" の話をするね。
http://www.ibm.com/developerworks/library/eclipse/l-eclipse.html
Refactoring with Eclipse
Erich Gamma is the team lead for Java tools for Eclipse.
Gamma was one of the Gang of Four known for creating
the book Design Patterns: Elements of Reusable Object Oriented Software.
He also created JUnit with Kent Beck (see Resources).
Refactoring is recognized as another valuable practice in object oriented programming but,
until recently, only few tools had support for it. At OOPSLA 200,
Eclipse developers demonstrated the Refactoring support in Eclipse.
They stressed that refactoring should not alter a program's behavior.
じゃあ同じように2001年という "大昔" の話をするね。
http://www.ibm.com/developerworks/library/eclipse/l-eclipse.html
Refactoring with Eclipse
Erich Gamma is the team lead for Java tools for Eclipse.
Gamma was one of the Gang of Four known for creating
the book Design Patterns: Elements of Reusable Object Oriented Software.
He also created JUnit with Kent Beck (see Resources).
Refactoring is recognized as another valuable practice in object oriented programming but,
until recently, only few tools had support for it. At OOPSLA 200,
Eclipse developers demonstrated the Refactoring support in Eclipse.
They stressed that refactoring should not alter a program's behavior.
536デフォルトの名無しさん
2014/11/30(日) 13:52:53.51ID:kUIpsKvT537デフォルトの名無しさん
2014/11/30(日) 14:03:15.99ID:+4cKqP8L538デフォルトの名無しさん
2014/11/30(日) 14:13:11.05ID:kUIpsKvT 別に何も拘束されてないけどなw
単にコードが読みやすくなるだけ。
人とコンパイラにとって可読性が高いコードになる。
可読性が高いから理解しやすく、理解した情報を使って
バグが少なく開発のサポートができるようになるわけ
単にコードが読みやすくなるだけ。
人とコンパイラにとって可読性が高いコードになる。
可読性が高いから理解しやすく、理解した情報を使って
バグが少なく開発のサポートができるようになるわけ
539デフォルトの名無しさん
2014/11/30(日) 15:35:01.93ID:/BRxH/wW REPLとかで「このオブジェクトって何ができるんだっけ?」って調べるのは
動的言語では典型的な開発手法で、恩恵に預かってる開発者は多いと思うけど
静的型の補完も一緒だよ
単純にタイプ数をちょっと減らすとか、そういう話じゃない
動的言語では典型的な開発手法で、恩恵に預かってる開発者は多いと思うけど
静的型の補完も一緒だよ
単純にタイプ数をちょっと減らすとか、そういう話じゃない
540デフォルトの名無しさん
2014/11/30(日) 15:37:46.89ID:qocW+y5a 何のメソッド使うか分かってるんならヘボい補完でも十分じゃね?
541デフォルトの名無しさん
2014/11/30(日) 15:58:11.94ID:rR9TrKjV 全部把握できる程度のチープなライブラリを使って
一人で小さなプログラムを開発するなら
ヘボい補完でも十分じゃね?
一人で小さなプログラムを開発するなら
ヘボい補完でも十分じゃね?
542デフォルトの名無しさん
2014/11/30(日) 16:11:04.82ID:UnYKruMf543デフォルトの名無しさん
2014/11/30(日) 16:19:35.18ID:360iudbJ >>535
わかった。では1999年ではどうだ?
Remove Class
Rename Class
Remove Instance Variable
Rename Instance Variable
Abstract Instance Variable
Create Accessors for Instance Variable
Remove Class Variable
Rename Class Variable
Abstract Class Variable
Create Accessors for Class Variable
Remove Method
Rename Method
Add Parameter to Method
Remove Parameter from Method
Rename Temporary
Inline Temporary
Convert Temporary to Instance Variable
Extract Code as Temporary
Extract Code as Method
Convert Superclass to Sibling
Inline Call
Push Up/Down Method
Push Up/Down Instance Variable
Push Up/Down Class Variable
Move Method to Component
Convert Instance Variable to ValueHolder
Protect Instance Variable
Move Temporary to Inner Scope
http://twiki.cin.ufpe.br/twiki/pub/SPG/WeeklySeminar/PracticalAnalysisForRefactoringDonRoberts1999.pdf
わかった。では1999年ではどうだ?
Remove Class
Rename Class
Remove Instance Variable
Rename Instance Variable
Abstract Instance Variable
Create Accessors for Instance Variable
Remove Class Variable
Rename Class Variable
Abstract Class Variable
Create Accessors for Class Variable
Remove Method
Rename Method
Add Parameter to Method
Remove Parameter from Method
Rename Temporary
Inline Temporary
Convert Temporary to Instance Variable
Extract Code as Temporary
Extract Code as Method
Convert Superclass to Sibling
Inline Call
Push Up/Down Method
Push Up/Down Instance Variable
Push Up/Down Class Variable
Move Method to Component
Convert Instance Variable to ValueHolder
Protect Instance Variable
Move Temporary to Inner Scope
http://twiki.cin.ufpe.br/twiki/pub/SPG/WeeklySeminar/PracticalAnalysisForRefactoringDonRoberts1999.pdf
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 地震 [Hitzeschleier★]
- プロレスラーってフォールしてる時ペチンと叩かれただけでフォール解くけど
- 仮に放射線混ざってたとしてもテムとアリエク使うわ
- ドーは
- 親父が同級生(クラスの真面目委員長JK)の母親と結婚した。ウソじゃない。事実なんだ
- なあ、「石破さんにもう一回やって頂く」って選択肢って…ないか? [976717553]
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
