5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2011/11/09(水) 19:01:54.58
まあいろんなところで証明済みなんだが、
反論したいなら語れや。


やっぱり動的型付け言語では安全なソフトは作れない 2
http://hibari.2ch.net/test/read.cgi/tech/1319212872/


2 :デフォルトの名無しさん:2011/11/09(水) 19:02:50.31
転載

987 名前:979[sage] 投稿日:2011/11/09(水) 11:14:08.03
>>981
>えと、それなりの人数で開発していれば、普通にある話だよね?

ンっ、>>981の世界ではそれが普通なの?

少なくとも自分が過去に関わったプロジェクトでは、
(言語とは無関係に)コンポーネントの公開インターフェイスや
共通で使用される(=内部ライブラリである)モジュール/クラスは、
あらかじめ(暫定案でもいいから)固めて文書化しておくのが普通(常識)

そうしないとコンポーネントごと複数人数で分担する、あるいは
複数の会社で開発を分担して最終的に統合してプロダクトとするような
規模のプロジェクトでは、仕様変更に伴う大混乱が「間違いなく」発生する

それとも最近のIDEというのは、この辺りの仕様変更まで自動的に追従してくれるのかな?


3 :デフォルトの名無しさん:2011/11/09(水) 19:13:17.56
>>987
完全なウォータフロー型の開発だね。

インターフェースならまだしも、プライベートな関数や
プライベートなクラスまで最初にきっちり決めてしまうってことが可能で、
そのあとは変わらないのが原則。そしてドキュメントを作るってならそれでいいよ。

だけどそれがアジャイルのやり方ではないってのは分かるね?
うちはアジャイルでやってるので、そういう最初にきちっと決めるやり方は合わない。
アジャイルは各イテレーションで仕様変更が入るもの。


> それとも最近のIDEというのは、この辺りの仕様変更まで自動的に追従してくれるのかな?
自動的に追従してくれるのは、リファクタリングブラウザで出来る範囲まで。
引数の入れ替えとか名前の変更とか長いコードを関数に追い出したり、
逆に関数をインライン化したり、クラスをまたがったメソッドの移動とか
ようするに機能的な仕様変更ではなく、アプリの動作を変えないコード上の仕様変更のうち
機械的に処理できるものだけ。

それでも十分便利だけど。たいてい機能的なの仕様変更には、
コード上の仕様変更が多かれ少なかれ含まれるものだからね。

4 :3:2011/11/09(水) 19:15:31.44
ちなみに、アジャイルであっても、外部の会社との連携がある部分は
きっちりとインターフェース決めるよ。

だが、自分の会社で開発をするのであれば、
自分の会社の中で自由に決められる部分はあるだろ。
(ようするにプライベートなコードだ)

>>987の会社はそんなのが一切ない開発なのか?

5 :デフォルトの名無しさん:2011/11/09(水) 19:20:09.04
> 998 名前:デフォルトの名無しさん[sage] 投稿日:2011/11/09(水) 17:29:33.14
> そんなに全てを静的に決めたいならsubtype polymorphismも含めて
> 全ての多相性を禁止にしろよ
> どのメソッドが呼ばれるか静的に決まるぞ

お前は、ずれてるw
すべてを静的に決めたいなんて誰も言っていない。

動的型付けを否定しているのであって、
動的を否定しているのではない。

「ポリモーフィズムを使うJavaは静的型付け言語です」

これを理解してから話してくれ。


6 :デフォルトの名無しさん:2011/11/09(水) 19:26:38.20
なお、IDEを知らない人は、間違った想像をしてそうだから補足しておこう。

ポリモーフィズムを使ったら、どの関数が呼ばれるかわからないから
コード補完ができない。

たぶん、こう考えてるでしょう?


違う。ポリモーフィズムを使ってもコード補完は出来る。
まずインターフェースは同じだから、どんなメソッドがあるかは分かる。

どんなメソッドもがあるかはわかっても、実際に呼び出されるコードはどれかわからない。
たしかにそうだ。だがその場合、候補が出る。
インターフェースを実装しているクラスの候補が出る。
これもコード補完だ。候補すらわからない動的型付け言語より何倍も良い。

そして、インターフェースを変えると、その内容に応じて自動〜半自動で
実装クラスの修正が行える。これも静的型付け言語ならではのIDE機能だ。

7 :デフォルトの名無しさん:2011/11/09(水) 19:28:56.42
ウォーターフォールでの開発でも
ある程度自由にできるところはあるでしょ?

何もかもきっちりと決まっていて開発はそれに従うだけ。
そんなドカタみたいな堅苦しい開発はやりたくないな。


8 :デフォルトの名無しさん:2011/11/09(水) 19:32:51.00
>>3
>完全なウォータフロー型の開発だね。

いや、スパイラル型だ(ウォーターフォールとアジャイルの中間)
ウォーターフォールはもはや現状に追従できないし、
アジャイルは個人の力量に依存しすぎという判断

固めて文書化しておくのは公開インターフェイスまで
具体的にはコンポーネントの外部入出力と内部ライブラリの仕様
内部の詳細(プライベートなクラス/モジュール)はインプリメンタに自由に任せ、
コードレビューで品質を判断する

この公開インターフェイスを事前に設計するのが技術リーダの仕事で、
その設計品質がプロジェクト全体の品質確保に強く影響を与える

9 :デフォルトの名無しさん:2011/11/09(水) 20:24:14.41
IDE信仰者はREPLを余り知らない。逆に、REPL信仰者はIDEを余り知らない。

10 :デフォルトの名無しさん:2011/11/09(水) 20:26:53.34
>>5
前スレの>>995に言ったんだよ
お前が言ったかどうかなんて知るかよ

例えば、完全にsubtype polymorphismを禁止すれば、メソッドを補完するときに
メソッドの中身すらIDEで表示することが可能になる
つまり、よりIDEが出来る範囲は増える
そのかわりに言語の表現能力は落ちるがな

つまり何事もバランスなんだよ。何でもIDEで出来りゃ良いってわけじゃない
個人的には、Javaの言語仕様はIDEでやってほしい事にマッチしてるとは思う

11 :デフォルトの名無しさん:2011/11/09(水) 20:54:40.89
JavaはVBA以下の糞言語
http://d.hatena.ne.jp/ymotongpoo/20111105/1320506449

12 :デフォルトの名無しさん:2011/11/10(木) 00:34:14.66
分かれればいいだけ
言語仕様の進化を止めて開発ツールIDEの進化を模索するか
さらなる言語仕様の進化を望むか

俺はこれ以上言語仕様を拡張したところでc++のようなカオス言語が増えるだけ
そう確信したから開発ツールの進化の道を選ぶべきと主張しました
REPLが何なのか知らないけど開発ツールだろ、動的静的関係ない

13 :デフォルトの名無しさん:2011/11/10(木) 01:18:26.20
>>9
んなこたーない

14 :デフォルトの名無しさん:2011/11/10(木) 01:25:39.66
>>11
今時VBAとかねーよw

15 :デフォルトの名無しさん:2011/11/10(木) 01:48:02.45
>>13
だったらいいんだけど。ここを読んでてpythonでipythonやrubyでirbを一
度触ってみればいいのにな。と思うことはある。Rでもいいな。vimや
textmate,emacs使いが絶滅しない理由も分かりそうなのに。

16 :デフォルトの名無しさん:2011/11/10(木) 01:59:28.62
プロトタイピングに便利なのはもちろんわかるが、
大規模なシステム開発で、そういったインタラクティブな
スクリプティング環境で仕事をするというイメージがわかない。

個人的には、そういう環境がよく適合するのはプログラマよりも
大学の研究者や学生という印象なのだが。


17 :デフォルトの名無しさん:2011/11/10(木) 02:45:49.15
>>12
ここで言う「大規模」の数値は共通認識有るんだっけ?
それなしじゃ議論にすらならないよな。

18 :デフォルトの名無しさん:2011/11/10(木) 02:47:38.22
「大規模」=自分が書いてない(読んでもいない)コードのほうが多い。

19 :デフォルトの名無しさん:2011/11/10(木) 04:18:43.63
具体性がないな。
次の方どうぞ。

20 :デフォルトの名無しさん:2011/11/10(木) 06:05:58.99
>>6
動的型付けでもメソッド名補完できるし
メソッド実装しているクラスを探して修正できる。

っていうか君がドヤ顔で語ったその機能、
動的型付け言語のIDEが発祥なんだけどw


21 :デフォルトの名無しさん:2011/11/10(木) 09:00:49.13
動的言語のIDEのメソッド補完は、静的言語に比べて遙かにプア。それは動的言語の性格上、当たり前。

22 :デフォルトの名無しさん:2011/11/10(木) 09:15:36.54
動的で既存してよく使われているIDEを利用するメリットって
あまりないからね。むしろ、動的言語の良さを殺してるような
印象を持ってる。やはり静的専用のものなんだと思うよ。

23 :デフォルトの名無しさん:2011/11/10(木) 10:50:10.50
IDEでの補完は、コード中の文脈の中で型が固定的な部分についての支援機能だからな。特定は困るんで使い分け例だけ書くと、固定的な型の集合を事前に決めて解決できる問題領域については、型からの補完を活用すれば良い。

一方、金融とか大規模シミュレーションのように刻々と変わるデータでアルゴリズムを自動調整(より正確にはある種のカタログとの照合)する、とかの問題領域だと、事前に型構成を決めてしまうこと自体が無意味。

世間のビジネスの9割は単純な事務処理の集合だから、静的型ベースでも問題ない。

24 :デフォルトの名無しさん:2011/11/10(木) 10:54:21.90
>>21
インターフェース型のメソッド補完と大して変わらんよ。
動的型付けといっても実装されるメソッドの組み合わせにはパターンがあるから。

25 :デフォルトの名無しさん:2011/11/10(木) 11:07:15.91
>>24
確かに。
言語仕様、ライブラリの範囲では動的・静的に依らず、組込み可能だな。

困るのはJSONとかMaybeみたいに、型を固定化したくない場合だろうけど、スレ違いなんでやめておく。

あと「動的言語では補完が難しい」論の引き合いによく出されるRubyは便利だが、言語仕様が無いwって揶揄される位だからあまり参考にはならないだろうな。

26 :デフォルトの名無しさん:2011/11/10(木) 11:56:20.35
動的型付けでまともに補完が使えるIDEってどれよ?

27 :デフォルトの名無しさん:2011/11/10(木) 12:14:06.87
PyScripterのコード補完は中々レベルが高かった(もちろん静的型言語に比べると……だけど)

まあ、動的型言語のIDEのクオリティが上がって来てるのは事実だよ
http://pytools.codeplex.com/
(ちゃんとREPLウィンドウがあるのが評価高い)

28 :デフォルトの名無しさん:2011/11/10(木) 12:37:34.46
ま、俺は色々試しても結局 vim + screen + REPL に戻って来ちゃうんだけどな

29 :デフォルトの名無しさん:2011/11/10(木) 12:52:09.61
>>26
無いと言っていんじゃね

NetBeans とかはかなり頑張ってる部類だが、
それでも「使える」って言えるレベルではない

30 :デフォルトの名無しさん:2011/11/10(木) 13:16:17.58
Python Tools for VisualStudioとかPydevとかRSenseなんかは割と使える

31 :デフォルトの名無しさん:2011/11/10(木) 15:45:33.69
かなり頑張っても残念な程度のIDEが現実なのに
なんで動的厨は

その機能は動的型付け言語のIDEが発祥なんだぞ(ゝω・)vキャピ

とか言っちゃうんだろう

32 :デフォルトの名無しさん:2011/11/10(木) 16:35:50.09
>>31
すべてを理解してから大きい口は聞くもんだな。知らないことがありありと
わかる

33 :デフォルトの名無しさん:2011/11/10(木) 16:45:18.55
>>32
つ 隔離
型からの補完が少ないくらいで破綻する大規模開発wって楽しむスレだから。

34 :デフォルトの名無しさん:2011/11/10(木) 16:46:24.93
InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState # クラス名
supportsDataDefinitionAndDataManipulationTransactions # メソッド名

補完無しではやってられませんよね

35 :デフォルトの名無しさん:2011/11/10(木) 16:57:32.25
静的厨かどうかの判別は簡単なんだけどな。
質問の一部は、ソースの内部表現にPrintableCharacterを使わない場合の積極的な理由は?と言うもの。
これで調べるやつは軽症。

36 :デフォルトの名無しさん:2011/11/10(木) 17:18:27.46
IDEや開発ツールや言語を自分で作るという考えがないから
他人に困難な仕事を押し付けるんだろう
全部自分で実装するつもりで考えれば型を省略してひゃっはーという
アホな言語開発者はいなくなる
誰かが思慮浅い要求をする、自分の担当する部分には影響があまりないから取り込む
IDEや開発ツール担当が死ぬほど負担を押し付けられる
成果は言語仕様に奪われ、IDEやツールはできて当然と罵られる
発言力の強い連中が好き勝手やって楽に成果を得ている裏で
発言力の弱い連中に負荷がかかって死にそうになってるのが見える

みんな勝手なんだよ、俺のやってることはとてもすばらしい天才的な役割で
俺以外の連中がやってることはとてもくだらないバカでもできる役割だ
やったこともないくせにこう決め付けて、こう結論付ける
俺は天才なんだ俺以外は馬鹿なんだ
俺と同じようなことをしてる奴も俺の次に天才なんだ
九割の人間はこんな思想を振り回してる

37 :デフォルトの名無しさん:2011/11/10(木) 17:22:02.97
動的型付けで大規模開発やってる奴なんていないから
効率以前の問題

38 :デフォルトの名無しさん:2011/11/10(木) 17:23:05.93
>>34
スマンが、この言語は何?で、どんなフレームワーク(?)の一部なのか教えてくれ

Rubyでもこれくらいの長さの名前空間を使う事はあるけど、
Rubyならクラス名はモジュールで名前空間を分離できるから
以下のようになるから補完の必要性は少ない

InternalFrame::TitlePane::MaximizeButtonWindow::NotFocusedState # クラス名

メソッド名については短縮できないけど、
これは1個のメソッドに多機能を詰め込みすぎた設計の失敗例に見える

supports_data_definition_and_data_manipulation_transactions # メソッド名

結局、言語設計の欠陥とメソッド設計の失敗という負債を、
補完という形でプログラマが背負わされているだけじゃね?

39 :デフォルトの名無しさん:2011/11/10(木) 17:25:20.03
>>36
自己紹介乙、次からは3行でまとめてくれ

40 :デフォルトの名無しさん:2011/11/10(木) 17:31:03.66
>>38
Java
上がswing、下がJDBC

41 :デフォルトの名無しさん:2011/11/10(木) 17:34:49.90
動的厨は大規模開発なんてしたことないくせに
口だけはでかい

42 :デフォルトの名無しさん:2011/11/10(木) 17:50:30.26
>>40
ありがと!!

43 :デフォルトの名無しさん:2011/11/10(木) 18:09:57.52
>>37
知らないって幸せだね

44 :デフォルトの名無しさん:2011/11/10(木) 18:16:12.44
ちょっと気になったんだが、IDE自体が動的技術のかたまりだって事知らないまま会話してるひと居る?
単なる切り貼りエディタじゃないんだから、キーを押す度に静的コンパイラが走ってるなんて考えて無いよな?

45 :デフォルトの名無しさん:2011/11/10(木) 18:22:32.05
このスレってどれくらいの規模からが大規模なの?

46 :デフォルトの名無しさん:2011/11/10(木) 18:22:48.56
スレを終わらせるなとあれほどw

47 :デフォルトの名無しさん:2011/11/10(木) 18:23:04.07
>>44
動的脳ってここまで酷いのか

48 :デフォルトの名無しさん:2011/11/10(木) 18:23:45.83
>>46は44に

49 :デフォルトの名無しさん:2011/11/10(木) 18:27:56.95
>>47
動的技術使ってないIDEの事をkwsk

50 :デフォルトの名無しさん:2011/11/10(木) 18:28:14.82
>>45
FedEx程度の国際物流ネットワークのシステムや
アメリカの金融系のシステム程度じゃ
大規模とは言えないらしいぞw

51 :デフォルトの名無しさん:2011/11/10(木) 18:31:31.97
>>45
具体的な数字は誰も出してないようだ。
俺は10の6乗ステップ以上が目安だと思うが。

52 :デフォルトの名無しさん:2011/11/10(木) 18:41:59.50
なにそのJavaドカタのダラダラコード向けの基準はw

53 :デフォルトの名無しさん:2011/11/10(木) 18:44:15.13
動的型だと短く書けちゃうから行数単価のプロジェクトで稼げない
静的型なら同じ案件でも効率良く大規模に膨らませられる、って意味なんじゃねーの?

54 :デフォルトの名無しさん:2011/11/10(木) 18:45:21.22
>>45
linuxのカーネル*程度*と思ってて、あれがIDEで開発されていると思ってる
スレ

55 :デフォルトの名無しさん:2011/11/10(木) 18:48:47.76
>>44
静的型付け用IDEで本当に動的なサポートってあんまりない。
キータイプごとに反映されるのはソースの色付けぐらいなもので、
ファイルをまたいだ整合性チェックとかは定期更新待つか更新ボタン押さないと
再チェックされないとか、そんなポンコツなのが多いよ。

56 :デフォルトの名無しさん:2011/11/10(木) 18:49:02.14
>>53
最適化後のASTノード数での比較なら少しはマシかもしれん。

57 :デフォルトの名無しさん:2011/11/10(木) 18:55:57.98
>>55
名前でカタログするか、型でやるかの設計の違いもあるから、静的型向けのIDEセットにそこまで望むのは可哀想な気もする。

単純な事務処理ベースのブロジェクトの場合は特に、IDE以外の問題が大きいしな。

58 :デフォルトの名無しさん:2011/11/10(木) 19:55:08.66
本当にスレが終わっちまったw

59 :デフォルトの名無しさん:2011/11/10(木) 19:59:51.14
>>56
じゃば
int sum = 0;
for (int i = 0; i < array.length; i++) sum = sum + array[i];

または今時なら
int sum = 0;
for (int each : array) sum = sum + each;


大抵の動的型言語
sum = sum(array)

ASTサイズでも比較無理っすorz

60 :デフォルトの名無しさん:2011/11/10(木) 20:28:02.91
>>50
金融系と言っても、勘定形と情報系じゃ規模もMC性も全然違うしな…。

61 :デフォルトの名無しさん:2011/11/10(木) 21:07:14.38
REPLで aproposがある言語だったらREPLと連携させれば補完は難しくない
と思うよ。でも、ネーム空間の関係もあって、補完は大切な機能の一つでも
Javaのような じゅげむじゅげむほにゃららあほんだらくそったれ
と続くような馬鹿げた仕様にはなってないから、Java使いほど重要視してな
いかも。ある意味仕様の欠陥を埋めてるのがIDEなんだろうし。

62 :デフォルトの名無しさん:2011/11/10(木) 21:09:12.82
仕様の欠陥じゃなくて
使用者のを埋めてるんだろな

63 :デフォルトの名無しさん:2011/11/10(木) 21:21:10.46
特定の言語に入れあげてることがあったりすると、その言語で優れている
機能でや関連するもので鼻高々というのは言語スレを見たら時々見かける
けど、その機能が他の言語でほとんど無意味だったり、他の機能で問題なく
代用されてるってよくあることなんだよね。基準として持ってるのはいいけど
それがどんなものでも必要ですごい重要な機能なのかは、慎重に考えたほうがいいよ。

64 :デフォルトの名無しさん:2011/11/10(木) 21:54:11.50

いいから

動的言語でまともなIDEの名前を

最高のもの一つでいいから言ってみ。

65 :デフォルトの名無しさん:2011/11/10(木) 22:01:22.79
smalltalkだな


66 :デフォルトの名無しさん:2011/11/10(木) 22:02:45.89
smalltalkは言語名だ。
具体的なバージョンまで含めて言え。

使ったことなくて噂だけを信じてるようにしか見えんぞ。

67 :デフォルトの名無しさん:2011/11/10(木) 22:07:39.47
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?PostIntelliJ

マーチン・ファウラー

2000年の後半、私はツールに注目していた――特にJavaのリファクタリング ツールにだ。 その頃、
まともなJavaリファクタリング ツールは存在しなかった。 Smalltalk Refactoring Browserによって実証されてはいたが、
私はRefactoring Rubiconを超える者を待っていた。 それは(現在JetBrainsと呼ばれる会社の)IntelliJ IDEAを最初に触ったときに表れた。

そのリファクタリング機能には感動した――Javaにおける最初のリファクタリング ツールであった。
しかし、私が注目したのはそれ以外の機能だった。 このツールの機能のエッセンスは、編集時にメモリ内に解析ツリーを作成することだった――
この解析ツリーを使ってユーザーを支援する。

この時、静的型はコンパイラによって警告されるものではなく、 エディタが正しい型のメソッドを補完してくれるものとなった。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

IntelliJの最大の支持は、ThoughtWorksの開発者から出てきた。 ThoughtWorksでは、誰かがプロジェクトで使う標準IDEを提案すると、 暴動をおさえるための催眠ガスが必要だった。
JBuilder信者、textpad信者、slickedit信者がいたからだ――頼むからemacs信者は刺激させないでくれ。

しかし、6ヶ月以内に、ほぼすべての人間がIntelliJを使うようになった。 自発的に使っている者もいれば、一生懸命使おうとしている者もいた。
Simon Harrisも諦めて使うようになった。

私は「SmalltalkのIDEはどんなものよりも優れている」と言ってウザがられていたのだが、 もうそんなことはない。
私にとってIntelliJとは、Smalltalk以来のIDEとなった。 そのパワーとユーザビリティは、他を寄せ付けなかった。 我々はポストIntelliJ時代に突入したのだ。

IntelliJがこの世界の唯一のIDEではない。 Eclipseが非常に早いスピードで後を追っている。 Eclipseには、IntelliJを好きになった機能の多くが搭載されている。
だが、Eclipseのことも敢えて「ポストIntelliJのIDE」と呼ぶことにする。 Eclipseがどんなに優れていようが、ThoughtWorksではIntelliJの方が好まれているようだ。

68 :デフォルトの名無しさん:2011/11/10(木) 22:14:12.94
>>66
言語でもあり、(仮想)OSでもあり、開発環境でもあるんだよ
Squeakなんて、まさにそう
VisualWorksは仮想OSってよりはjavaと同じVMって感じだが


69 :デフォルトの名無しさん:2011/11/10(木) 22:22:46.53
簡単に言うとEmacsってことか。
なるほど信者がうざいわけだ。

70 :デフォルトの名無しさん:2011/11/10(木) 22:25:32.04
> ―頼むからemacs信者は刺激させないでくれ。

71 :デフォルトの名無しさん:2011/11/10(木) 22:26:23.65
>>68
IDEでも開発環境でもなんでもいいから、
具体的にバージョンを言えって。

72 :デフォルトの名無しさん:2011/11/10(木) 22:28:33.85
俺はemacsをかなり使い込んでるから、信者かもしれないけど、黙って聞いてる。
彼らが井の中の蛙の自慢なのかどうかというのを見極めるために、口を挟まない
ほうがいいから。

73 :デフォルトの名無しさん:2011/11/10(木) 22:30:00.57
IDEの話をしてたのか。
俺が使ったことのある動的言語のIDEといえばDWなんだが、使いづらかったな。
まあ、人によってはIDEと認めないかもしれないな。
IDEなんだけどな。

74 :デフォルトの名無しさん:2011/11/10(木) 22:31:06.28
>>72
ようするに、井の中の蛙って罵倒したいんだろ?
十分口挟んでる。

75 :デフォルトの名無しさん:2011/11/10(木) 22:31:23.34
>>72
わざわざ書かなくても皆わかってるって。
人を試すようなことをするのは、いろんな人がいるといえども、Emacs信者くらいだろ。

76 :デフォルトの名無しさん:2011/11/10(木) 22:32:10.50
ほらほら、emacs信者の勘違いぶりが露呈してきてるぞw
俺は詳しいんだ的な発言。それこそ井の中の蛙だろう。

77 :デフォルトの名無しさん:2011/11/10(木) 22:32:21.59
>>74
何言われようと、とりあえず口にチャックしてます。

78 :デフォルトの名無しさん:2011/11/10(木) 22:32:43.40
上から目線=井の中の蛙
これ、だいたいあってる。

79 :デフォルトの名無しさん:2011/11/10(木) 22:33:44.86
>>77
アメリカンジョーク?

口にチャックしてるから喋れない。
だから手を使ってカキコする。みたいな?

80 :デフォルトの名無しさん:2011/11/10(木) 22:34:19.28
これだけemacsの名前を出して釣れるとは。。。。 いずれにしても高みの見物
してます。

81 :デフォルトの名無しさん:2011/11/10(木) 22:36:07.74
だから喋らないというのなら、レスするなよw

82 :デフォルトの名無しさん:2011/11/10(木) 22:37:02.36
本当は気になってしょうがないんだろう。だからどうしてもレスしてしまう。我慢ができないw

83 :デフォルトの名無しさん:2011/11/10(木) 22:37:31.89
>>64
最高かは分からないけれど、いいなと思ったのは Dolphin Smalltalk X6 かな。
http://www.object-arts.com/

Win 専用なのと、UI ビルダが期待より貧弱なのが難点だけど、補完とかのコーディングサポートの方面は
しっかり作り込んである。もちろん Smalltalk 処理系全般の特徴である OODB みたいなものの中に
処理系自体が組まれていて、エンティティがすべて第一級オブジェクトとして扱えるとか、
それによって強力なメタプログラミングやイントロスペクションが可能であるとかはデフォとして。

XEROX 純正 Smalltalk-80 の直系の子孫にあたる VisualWorks と Squeak については
言語としてはともかく、IDE としては作り込みがいちいちゆるい感じ。

84 :デフォルトの名無しさん:2011/11/10(木) 22:39:04.35
Dolphin Smalltalk X6は確かにいいな。

85 :デフォルトの名無しさん:2011/11/10(木) 22:39:23.27
口は動かしてないよ。 でもこれでレスはやめとく。かまってくれてありがとう
ニヤリ

86 :デフォルトの名無しさん:2011/11/10(木) 22:39:31.76
>>71
バージョンって…
誕生当初より言語でOSで開発環境ってスタンスは変わってないから、どれでも良いとしか…
自分が使ってた頃はsqueak 3.4とかだったけな
今はどこまでバージョン上がってるか知らん
勝手にググってくれ


87 :デフォルトの名無しさん:2011/11/10(木) 22:40:17.11
Eclipseにはかなわないけど、Dolphin Smalltalk は
動的言語の中では中々やれてると俺も思うよ。

88 :デフォルトの名無しさん:2011/11/10(木) 22:41:09.05
>>83
誰も静的型言語のIDEより良いとは言ってないんだな。これがw


89 :デフォルトの名無しさん:2011/11/10(木) 22:41:29.94
>>86
だから今話しているのは、IDEの機能の話なんだから
具体的なバージョンを言わないと、わかり用がないだろ。

どうせ使ってないんだろうなって思ったとおりの答えのようだな。

90 :デフォルトの名無しさん:2011/11/10(木) 22:42:34.93
かの有名な、

マーチン・ファウラー様も

静的型付け言語のIDEをべた褒めしてますからね。

ただの文法チェックが
コーディング支援機能に化けた!と。

91 :デフォルトの名無しさん:2011/11/10(木) 22:43:19.29
思い出した!!
VBだよ!!
最高の動的型のIDE!!!


92 :デフォルトの名無しさん:2011/11/10(木) 22:45:45.41
VBは静的型付け言語だぞ。

93 :デフォルトの名無しさん:2011/11/10(木) 22:46:07.18
VBって静的じゃないっけ

94 :デフォルトの名無しさん:2011/11/10(木) 22:47:52.33
VBは動的型付け言語っぽいコードを書くことも出来る。
だがそうやって書かれた部分はもちろんコード補完やコンパイルチェックなど出来ず、
IDEが有効活用されているとは思えない。
VBがIDEとしての真価を発揮できるのは、やはり静的型付けで書いた部分。

95 :デフォルトの名無しさん:2011/11/10(木) 22:57:54.79
VBの流れんとこスマン。Dolphin Smalltalk のコーディングの様子が分かるムービー。
http://www.youtube.com/watch?v=8pkyOm1Mxug&t=1m40s

96 :デフォルトの名無しさん:2011/11/10(木) 22:58:47.10
これは最高だなあ。

97 :デフォルトの名無しさん:2011/11/10(木) 23:13:37.32
正直に白状すると、困った時にgoogleで解決できる言語が効率がよい
検索しても答えが見つからない言語は効率が悪い
オレっちは所詮そんなもんです
みんなが使ってる言語がいい
マイナー言語はマイナーという理由で効率が悪い
言語仕様とか関係ないっす

98 :デフォルトの名無しさん:2011/11/10(木) 23:18:07.23
>>95
Squeak Smalltalk のしょぼさにくらべると、補完機能の出来がすばらしいですね

99 :デフォルトの名無しさん:2011/11/10(木) 23:38:27.55
注:VBとVB.netは違います
初期のVBは(ry


100 :デフォルトの名無しさん:2011/11/10(木) 23:46:09.02
>>98
OCompletion もがんばっているんだけど、まず Squeak でまともにインストールできない
(いまんところ誰でも使えるのは Pharo に組み込みのやつってことになる)のと、なんとか動かせても
組み込みの alt/cmd-q とかを壊しちゃう。個人的には alt/cmd-j が踏みつぶされるのが非常につらい。

101 :デフォルトの名無しさん:2011/11/11(金) 05:05:58.78
結局、静的厨はSmalltalkが言語でありライブラリであり環境であり仮想計算機だということも
ましてやSmalltalkでは実行環境=開発環境だということの意味もまるで理解しないまま
動的環境を小馬鹿にしてたってこと?

102 :デフォルトの名無しさん:2011/11/11(金) 05:15:56.42
俺はVisualWorksに自作の補完機能つけて使ってる。
Smalltalkerならみんなやってるよね、開発環境の自作拡張。

103 :デフォルトの名無しさん:2011/11/11(金) 06:45:28.59
>>90
かの有名な、

マーチン・ファウラー様も

動的型付け言語をべた褒めしてますからね。

生産性が向上した!と。

http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RubyAtThoughtWorks
(この記事は>>67より後に書かれたもの)

104 :デフォルトの名無しさん:2011/11/11(金) 07:47:59.01
Smalktalkを知っているファウラーやベックがRubyを持ち上げる意味がわからん。
Javaを使ってて頭が狂ったか、たんに老害か、
あるいはまさかの、ぢつわSmalltalkよくわかっていませんでしたーとかか?
ベックは最近だとMongoDBエンジンもまともに組めない体たらくだと聞くし。

105 :デフォルトの名無しさん:2011/11/11(金) 07:51:41.81
>>101
別に動的環境を小馬鹿にはしていませんが、Smalltalk は使っていないのでよく知りません。

ところで、大規模開発という場合には IDE そのものの出来もさることながら
VCS (バージョン管理システム) や ITS (タスク管理システム) とのシームレスな
連携が必須だと思います。

Eclipse は、やはりコミュニティの大きさもあってその辺りがよくできていると
感心するのですが、Smalltalk での開発の場合はどのようになるでしょうか。
Subversive や Mylyn と同等な仕組みはありますか?

106 :デフォルトの名無しさん:2011/11/11(金) 08:01:02.75
>>104
RubyだけでなくRuby on Railsを褒めてる
Smalltalkを知っててもSeasideを知らない可能性はある

107 :デフォルトの名無しさん:2011/11/11(金) 08:02:47.06
>>104
Ruby on Rails がよいと言っているのではないでしょうか。
私の経験では、Web 系はプログラミング言語そのものは何ら問題ではなく、
フレームワークの出来不出来で全てが決まります。



108 :デフォルトの名無しさん:2011/11/11(金) 08:06:35.45
>>104
っていうか、

> 我々は、Groovy、F#、Python、Smalltalkなどを使うべきだろうか? 
> これまでRubyについて見てきたトレードオフが、その他の言語についても同じ結果になったとしても、私はさほど驚かない。
> いずれこれらも我々の道具箱に入って欲しいと願っている。

と書いてるから、内心では「皆Ruby使ってるけど、ぶっちゃけSmalltalk最強だろ、言わないけど(うざがられるから)」とか思ってるかも

109 :デフォルトの名無しさん:2011/11/11(金) 08:07:43.20
>>105
Squeak・Phoroレベルのおもちゃでもいいから、チュートリアルを読みつつ
一回さわってみたらいいと思うよ。
http://squeakbyexample.org/
http://pharobyexample.org/

110 :デフォルトの名無しさん:2011/11/11(金) 08:10:06.25
その記事に書かれている次の部分が、動的言語の長所でもあり短所でもあると思います。

>我々の強みは、典型的なIT企業では引き込めないような非常に有能な人たちを雇用しているという点だ。
>Rubyには、あまり有能ではない開発者をエラーから守るよりも、
>有能な開発者がさらにうまく物事を成し遂げられる環境のほうがよいという哲学がある。

率直に言って、能力の高い経験豊富な開発者は動的言語の方が効率的に開発を進められると思います。
問題は、プロジェクトが大規模になればなるほど、そういった精鋭を揃えることが難しい点です。


111 :デフォルトの名無しさん:2011/11/11(金) 09:21:07.61
TDD Static vs. Dynamic
http://www.youtube.com/watch?v=RLAZjiK4UHc
http://www.youtube.com/watch?v=wXW9WN9ay2E

Java(Eclipse)とSmalltalk(Pharo)とで同じプロダクトのTDDの様子とかかった時間を比較
結果がどうとかはともかく、Smalltalkでの開発のライブ感みたいなものを見ておくのにいい資料。

Javaサイドは分かると思うので、Smalltalkサイドでやっていることを以下に簡単にまとめてみた。
▼パート1
4:40 Test1クラス定義 4:50 test1メソッド記述 5:30(コンパイル操作)→テンポラリ変数pc宣言忘れ指摘→宣言挿入
5:40 Productクラス未定義指摘→宣言 5:45テンポラリ変数erectonic宣忘指摘→宣言→同eletronicスペルミス指摘→訂正
5:50コンパイル完了 5:58(テスト実行操作)→category:のコールでエラー→デバッガ起動
6:15 category:メソッド仮作成→実行継続→エラー 6:20デバッガ内で定義変更→(コンパイル操作)
6:38インスタンス変宣忘指摘→追加 6:47実行継続→categoryコールでエラー 以下同作業
7:28説明抜きで再計測 12:15メソッド名変更→assert:式変更→electronicのクラス変更
→(コンパイル操作)→Categoryクラス未定義指摘→定義→コンパイル完了(テスト実行操作)
→includes:がエラー→Categoryに仮定義→実行続行→デバッガ内で定義変更→(コンパイル操作)
▼パート2
04:37メソッド名変更→assert:をdenny:へ→(コンパイル操作)→コンパイル完了 (テスト実行操作)
→デバッガ起動→巻き戻してincludes:の定義へ→デバッガ内で定義変更→(コンパイル操作)
5:20Categoryクラスブラウズ用にウインドウ開く→初期化メソッド定義 5:35デバッグウインドウに戻り
メソッド再実行後実行継続 6:20(テスト実行)→デバッグウインドウ→巻き戻し・逐次実行→
category:メソッドで定義変更→実行継続→addProduct:メソッド仮定義→実行継続→エラー→
定義変更→実行継続→完了 5:56(テスト実行操作)→test1失敗→デバッグウインドウ→
test1メソッド変更(ObjectをCategoryへ)→実行継続→成功(完了)

112 :デフォルトの名無しさん:2011/11/11(金) 09:24:58.87
動的言語が効率いいとかないわな

113 :デフォルトの名無しさん:2011/11/11(金) 09:30:40.09
>>110
rubyの良さがわかる人って、ハッカー系には多いよね。結局その引用のとおり
だから

114 :デフォルトの名無しさん:2011/11/11(金) 09:47:57.41
Javaはドカタがほにゃらら
ブルーカラーの言語うんたらかんたら

115 :デフォルトの名無しさん:2011/11/11(金) 09:59:50.90
動的で効率が悪いと言ってるのって、ファウラーの文章にある
>RubyはUNIXの世界で生まれた。そして、このプラットフォームに集まる人たちは、
>ディレクトリパスにスラッシュを使う。 Windowsプラットフォームでも、Rubyの
>実行、デプロイ、開発は可能だが、いくぶん扱いにくいものとなっている。我々
>のアドバイスとしては、開発はすべてUNIXプラットフォームで行ったほうがいい。

この点が影響してるんじゃないの?rubyに限らないけど、関数型言語やオープンソースで
作られてる言語の多くはwindowsでの開発はかなり不利だよ。

116 :デフォルトの名無しさん:2011/11/11(金) 11:06:15.55
Windowsで開発しないと大規模開発が破綻する説

117 :デフォルトの名無しさん:2011/11/11(金) 11:15:20.19
PythonもPHPもWindowsとLinux両方で全く問題ないのだが
WindowsでおかしくなるのRubyだけだろ

118 :デフォルトの名無しさん:2011/11/11(金) 11:20:52.56
PHPの場合、本番環境のサーバはLinuxが多いだろうけど、開発はWindowsのXAMPPでやってる人はかなり多いと思う。

119 :デフォルトの名無しさん:2011/11/11(金) 11:23:09.41
少数精鋭だと動的言語が有利なのはそうだと思うけど、そういうプロジェクトも開発が継続して規模が大きくなると、動的言語は不適切になる事が多い。
TwitterがRuby捨ててScalaになったみたいに。

120 :デフォルトの名無しさん:2011/11/11(金) 11:25:30.42
TwitterがRuby捨てたのは処理速度が遅いから

121 :デフォルトの名無しさん:2011/11/11(金) 11:27:40.08
それもあるし、型がないと自前の型チェックが増える一方でやってられないからって。Twitterのエンジニアが座談会で答えてる。

122 :デフォルトの名無しさん:2011/11/11(金) 11:34:47.35
そこで型チェックできるデコレータを書けるPythonですよ

123 :デフォルトの名無しさん:2011/11/11(金) 11:37:13.65
かっちりしたものをきっちり作り込んで安全に動かそうとすると断然静的言語だけど、
もやっとしたものをもやっとさせたまま長期運用でどんどん拡張するとなると早期結合な設計や
言語じゃ駄目だってパパがいってたお。ttp://metatoys.org/oxymoron/oxymoron.html
ただ「これができるのはLISPとSmalltalkだけ!(キリッ」って言い切っちゃってもいるけどねー。

124 :デフォルトの名無しさん:2011/11/11(金) 14:18:09.19
IDEやリファクタリングに詳しいファウラーの出した結論

動的型言語 > 最高のIDE + ドカタ言語

125 :デフォルトの名無しさん:2011/11/11(金) 14:27:17.14
>>117
視野が狭い。

126 :デフォルトの名無しさん:2011/11/11(金) 14:33:40.07
Rubyはコード汚くて読みにくい上に
Windowsでまともに動かないなんて

127 :デフォルトの名無しさん:2011/11/11(金) 14:57:32.74
windows大好きMS教徒には残念な言語だろう

128 :デフォルトの名無しさん:2011/11/11(金) 15:04:27.65
ところで windowsに入れ込んでるハッカーっておるの?

129 :デフォルトの名無しさん:2011/11/11(金) 15:20:41.65
Pythonで型のこと心配だったら、assertとisinstanceを利用して、最適化前に
洗い出しそうな気もするが。python -Oつけると、assertは無視する仕様になるし。

130 :デフォルトの名無しさん:2011/11/11(金) 18:04:09.19
>>105
バージョン管理も構成管理も分散レポジトリも
標準で組み込まれていて、
デバッガのソース表示上でコード書き換えても
全自動でバージョン登録されるぐらい
IDEのあらゆる部分とシームレスに結合されてますが、
何か?

131 :デフォルトの名無しさん:2011/11/11(金) 19:26:08.56
マーチンファウラーは動的静的にこだわってないんだが
開発効率を上げるものは全部褒めてる
高機能なIDE最高
DSL書きやすいruby最高
オブジェクト指向書きやすい言語最高

ちなみにrubyに関してはこう言ってる
ruby書いてて楽しいけど、ときどき何やってるかわからなくなるから困る
ついでに書くとruby開発者のおっさんはrubyのIDE作るのすげームズイと言ってる

マーチンはオブジェクト指向言語で
DSL開発をしやすく、そのDSL用のIDEをすばやく作れればいいな
という考え、今のところは

132 :デフォルトの名無しさん:2011/11/11(金) 19:54:58.02
html5ブラウザの時代に突入しようというときに
windowsだのlinuxだの言ってる奴は頭が古いな
osと心中しなくて済むjavaの方がよほど前向き

133 :デフォルトの名無しさん:2011/11/11(金) 20:03:14.65
html5使わんでも
普通にwindowsでもlinuxでも動くから
Ruby以外は

134 :デフォルトの名無しさん:2011/11/11(金) 20:17:26.96
また、視野の狭いやつ。きてる

135 :デフォルトの名無しさん:2011/11/11(金) 20:25:28.69
ルビ厨の視野の狭さは異常

136 :デフォルトの名無しさん:2011/11/11(金) 20:45:27.60
rubyよりもahkやautoitの方が便利だから使ってる
rubyが悪いとは言わないけどautoitの方が便利

137 :デフォルトの名無しさん:2011/11/11(金) 20:45:32.42
Rubyは書いているときは楽しいけど
気が付いたらメンテナンス不能のゴミの山

138 :デフォルトの名無しさん:2011/11/11(金) 21:00:23.64
やはり視野が狭い。と言うより、他の言語たまには勉強したほうがいいよ。

139 :デフォルトの名無しさん:2011/11/11(金) 21:13:48.72
Rubyもいいらしいけど、俺は便利なのでHSP使ってる。

140 :デフォルトの名無しさん:2011/11/11(金) 21:16:29.95
autoitってなんやねんって調べたら、windows専用か すでに
矛盾してるで おっさん>>133

141 :デフォルトの名無しさん:2011/11/11(金) 21:22:19.84
HTML DOMをトラバースして文単位にSPANで切り分けるって処理をPHPで書いたことがある。
めちゃめちゃ遅かったな。
スクリプトって単純にプログラムの実行も遅いんだろうけど、一番の原因は
メモリーを使いすぎるってことだね。

142 :デフォルトの名無しさん:2011/11/11(金) 21:29:07.91
> HTML DOMをトラバースして文単位にSPANで切り分けるって処理をPHPで書いたことがある。
> めちゃめちゃ遅かったな。

ま、たいてい書いた奴が遅いコード書いただけってのが答えなんだけどなw

143 :デフォルトの名無しさん:2011/11/11(金) 21:39:50.52
【DI】Java Spring Frameworkを語るスレ 4.0
http://hibari.2ch.net/test/read.cgi/tech/1227196176/

こっちで繰り広げられている、動的なバイトコードの書き換えとか
動的にサブクラスを作るとかいう話を聞くと、
動的型付け言語でしかできないと思えた機能は、
実は静的型付け言語でも出来るように思えてくるな。

静的型付け言語でここまで動的なコードの書き換え機能を
持っているのはJavaぐらいしか無いと思うけどね。


144 :デフォルトの名無しさん:2011/11/11(金) 21:41:17.56
自己書き換えは昔からあるけど、最近はウイルスと誤検知されるからできない。

145 :デフォルトの名無しさん:2011/11/11(金) 21:43:16.18
>>144
Javaなら問題なくできるよ。

そもそもバイトコードはネイティブコードじゃなく
ただのCPUから見ればただのデータなんだから。

ネイティブコードの書き換えはできなくても
バイトコードの状態であれば、ただのデータ編集だ。

146 :デフォルトの名無しさん:2011/11/11(金) 21:47:45.80
ネイティブコードでも自己書き換えはできる。

できないのは、データではなくコードとマークされている部分を
バッファオーバーフローなどによって無理やり書き換えること。

もともと、自己書き換えをするという前提で作られたものは
当然書き換え可能。実行ファイルを圧縮して、実行時に
展開して実行するPackerなどと呼ばれているプログラムは
そうやって作られている。

147 :デフォルトの名無しさん:2011/11/11(金) 21:50:04.36
ところが、書き換えたとたんにビヨンとお知らせが届いちゃうから。
やっぱりできない。

148 :デフォルトの名無しさん:2011/11/11(金) 22:00:27.52
答えは>>144に書いてある。

誤検知した場合は、できないと。

つまり>>144は自分で認めている。
それはウイルス対策ソフトの「誤検知」であると。

149 :デフォルトの名無しさん:2011/11/11(金) 22:05:54.04
じゃあマニュアルにそう書いとくか。

【ウイルスと思われる動作を検出しましたと表示され停止する問題について】

この動作は当社製品に起因する問題ではありません。
市販のセキュリティー製品には粗悪なコードが使われており誤動作を引き起こす場合があります。

【対策】
当社製品と同時にセキュリティー対策を行わないでください。

150 :デフォルトの名無しさん:2011/11/11(金) 22:07:33.61
>>149
いやさ、自己コード書き換えは出来るんだよ。

お前嘘つくなって話なんだが。


151 :デフォルトの名無しさん:2011/11/11(金) 22:08:17.71
動的言語なんて、自己書き換えコードのオンパレードだしなw

152 :デフォルトの名無しさん:2011/11/11(金) 23:05:59.14
Squeak Smalltalkでバイトコード列の書き換え。

plus := [3+4]

plus value
=> 7

plus method symbolic
=>'
25 <8F 00 00 04> closureNumCopied: 0 numArgs: 0 bytes 29 to 32
29 <20> pushConstant: 3
30 <21> pushConstant: 4
31 <B0> send: +
32 <7D> blockReturn
33 <81 C2> storeIntoLit: flipFlop
35 <7C> returnTop'

plus method byteAt: 31 put: 16rB8

plus method symbolic
=>'
25 <8F 00 00 04> closureNumCopied: 0 numArgs: 0 bytes 29 to 32
29 <20> pushConstant: 3
30 <21> pushConstant: 4
31 <B8> send: *
32 <7D> blockReturn
33 <81 C2> storeIntoLit: plus
35 <7C> returnTop'

plus value
=> 12

153 :デフォルトの名無しさん:2011/11/11(金) 23:14:38.94
>>130
標準で組み込まれているというのは、果たしてメリットと言えるのでしょうか?
そういったものは言語とは独立のシステムなのですから、
チームが使い慣れたものを選べるようにプラグインとして提供されるのが
あるべき姿ではないかと思います。


154 :デフォルトの名無しさん:2011/11/11(金) 23:26:00.47
>>153
泥仕合になる前にとりあえずこれに目を通して Smalltalk の基本的な考え方を知っておいて欲しい。

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

あと svn が使いたければ、そういうのもあるから。130は不必要に挑発的だけど、ようするに
組み込みのヤツの方がいろいろ便利なことも多いと思うメンバーが多ければ、チーム合意の上で
そのまま組み込みのを使えばいいというだけ。

155 :デフォルトの名無しさん:2011/11/11(金) 23:31:29.42
別にSmalltalkがまともなIDEを備えていたとしても、

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

静的型付け言語 or Smalltalk使ってないなら、黙っとれ。

156 :デフォルトの名無しさん:2011/11/11(金) 23:54:20.08
別にIDEのカタログスペックの優劣だけで
開発効率が決まるわけじゃないしなぁ

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

このスレが「動的型付け言語用の優秀なIDEは開発出来ない」ならまだ分かるよ
といっても、それもSmalltalkの存在が反証になってしまうけど

157 :デフォルトの名無しさん:2011/11/11(金) 23:58:02.05
>>156
リンク先のは優秀な開発者がいれば、
Rubyでもそれなりに開発できるってだけだよ。

158 :デフォルトの名無しさん:2011/11/12(土) 00:06:09.28
その優秀な開発者は、Rubyで開発する方が
優れたIDE+Javaで開発するよりも効率的だと感じているようだね

159 :デフォルトの名無しさん:2011/11/12(土) 00:07:31.35
そりゃ自分一人でやるなら、そうだろうさ・・・

でもそれは現実的ではない。
自分の知らないコードがたくさんになったら・・・。
現実を見ようぜ。

160 :デフォルトの名無しさん:2011/11/12(土) 00:10:05.06
コードを書く効率と
読む効率は別だと思うんだよね。

161 :デフォルトの名無しさん:2011/11/12(土) 00:13:06.55
うん、いろんな人が書いたたくさんのコードを
把握して、バグを修正するという観点から
どっちが効率がいいか調べる必要があるだろうな。

162 :デフォルトの名無しさん:2011/11/12(土) 00:33:11.17
開発者は一人だけのケースに限るとか、書く効率だけで読む効率は考慮しないとか
そういったことは>>103のどこにも書いてないんだが……

163 :デフォルトの名無しさん:2011/11/12(土) 00:37:41.74
つーか日本の標準的な組織でどうかって話じゃないと意味なくね?
ファウラーの環境を引用してどうすんの?
君らファウラーに匹敵するスキルを持っていて、周りもそういうレベルの奴に囲まれた環境で仕事してんのか?



164 :デフォルトの名無しさん:2011/11/12(土) 00:40:45.11
>>162
じゃあ答えは出てる。
そういった情報が書いてない記事を信用するな。

165 :デフォルトの名無しさん:2011/11/12(土) 00:42:56.66
>>163
つまり日本の底辺ドカタに動的型は使いこなせるか?を議論すればいいのか

じゃあスレタイも「動的型付け言語ではドカタは大規模開発できない」に変更しなきゃな

166 :デフォルトの名無しさん:2011/11/12(土) 00:46:08.38
>>165
そうしたけりゃそれでもいい。
そうやって皮肉を言おうと蔑もうとそれが日本の現実だ。

167 :デフォルトの名無しさん:2011/11/12(土) 00:46:16.75
rubyハカーの俺天才と言ってる奴が
マーチンファウラーの本を読んでるとは思えないんだけど
この人の本ってjavaやc#使ってる人の方が読んでるだろうから
javaをバカにしてる奴は絶対に読まない

168 :デフォルトの名無しさん:2011/11/12(土) 00:48:52.93
Rubyは馬鹿にする奴は視野が狭い(キリッ

169 :デフォルトの名無しさん:2011/11/12(土) 01:02:05.15
Ruby使ってるのは、開発者が日本人だからだからね。
英語の論文なんて読まないでしょうね。

170 :デフォルトの名無しさん:2011/11/12(土) 01:47:52.51
>>163
我田引水なんだって、欲しい答えが決まってて、その答えに合わすために
問題を変えるって事自体が。
>>169
いま実装の人ってとーだいのせんせーちゃうん?

171 :デフォルトの名無しさん:2011/11/12(土) 02:04:19.11
ああささだはだめだ。ろくに論文なんか読んでねーし、YARV程度で力出し切ったって感じ。

172 :デフォルトの名無しさん:2011/11/12(土) 07:34:34.84
>>163
> 君らファウラーに匹敵するスキルを持っていて、周りもそういうレベルの奴に囲まれた環境で仕事してんのか?

はい。

173 :デフォルトの名無しさん:2011/11/12(土) 07:45:49.45
まじオススメ
http://www.facebook.com/groups/295568806304/

174 :デフォルトの名無しさん:2011/11/12(土) 08:08:11.22
昔、JavaはC++の20倍速いって話が有ってね。
最近はRubyがJavaより速いって話があるね。
すると、RubyはC/C++の400倍速い可能性があるんだよね。
ってことはだ、C/C++で書かれたコードをRubyで書き直せば、100円の
チップで4万円の性能が出せる。

175 :デフォルトの名無しさん:2011/11/12(土) 09:22:01.93
>>174
素人さんはお帰りください

176 :デフォルトの名無しさん:2011/11/12(土) 10:49:30.03
>>175
踊り子さんに手を出さないで(≧∇≦)

177 :デフォルトの名無しさん: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/

178 :デフォルトの名無しさん:2011/11/12(土) 11:45:00.51
smalltalk製のソフトが使われているの見たことないけど
smalltalkerは実在してるの?

179 :デフォルトの名無しさん:2011/11/12(土) 12:14:32.30
fortran製のソフトが使われているの見たことないけど
fortran programerは実在してるの?

cobol製のソフトが使われているの見たことないけど
cobol programerは実在してるの?

180 :デフォルトの名無しさん:2011/11/12(土) 12:18:46.25
うん、それで存在しているの?

181 :デフォルトの名無しさん:2011/11/12(土) 12:48:59.90
>1 Smalltalk developer = 2.5 C++ developers

FortranもCOBOLもこんなふうなこと言わないわけで

182 :デフォルトの名無しさん: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だったら
他の言語も使えると思うんで。

183 :デフォルトの名無しさん:2011/11/12(土) 13:10:56.07
そうか、Javaの人ってakb商法なんだ。一盛りなんぼで売り出している
ようなものなのか 謎

184 :デフォルトの名無しさん: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/

185 :デフォルトの名無しさん:2011/11/12(土) 13:24:13.59
VisualAge for Java
昔ちょっと使ったわ
あれsmalltalkで出来てたんか
1 Smalltalk developer = 3.75 Java developers. が本当なら
なんで廃れてしまったんだろうね

186 :デフォルトの名無しさん:2011/11/12(土) 13:40:36.29
環境を揃えるのが大変だったんだと思うよ。費用的にもね。


187 :デフォルトの名無しさん:2011/11/12(土) 13:46:00.53
>>185
土方を集める方が遙かに容易で安価だからその等式がほんとならむしろ必然じゃない?

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

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

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

もしろんその特殊性な設計思想(>>154 ) ゆえに、
既存の処理系に熟達した人ほど頭の切り替えが難しいというのもある意味コスト高かも。

188 :デフォルトの名無しさん:2011/11/12(土) 13:51:44.99
売れない商品は高くなるってだけじゃないのか?

189 :デフォルトの名無しさん:2011/11/12(土) 14:01:01.58
twtterってrubyからScalaに移ったんでしょ?
ScalaとかOCamlとか、LL系と同じくらい記述が簡潔な言語を使えたら、静的のほうがいいでしょ。
LLがもてはやされるのって、動的だからってより記述が簡潔だからってほうが大きいんじゃないの。

190 :デフォルトの名無しさん:2011/11/12(土) 14:02:39.14
>>188
もちろんあるだろうね。だからクオリティが低くてもSqueak/Pharoとかのほうが賑わっちゃう。
で、SqueakはSqueakで人が集まるからTraitsとかの新機能が生まれ他言語へ輸出されたり
する反面、あちこちいろいろいじられてクオリティの低下を招くって面もあって痛し痒し。

191 :デフォルトの名無しさん:2011/11/12(土) 14:08:33.53
>>189
機能や仕様が流動的なうちは動的言語の方がベターだけど、
だいたい決まったら静的言語で書き直す―っていうのが古くからのよくあるパターン。

192 :デフォルトの名無しさん:2011/11/12(土) 14:12:20.53
仕様が流動的で試行錯誤する場合でも
IronPython使うより
C#使った方が楽なんだけど

193 :デフォルトの名無しさん:2011/11/12(土) 14:12:34.19
>>191
それいうなら、動的型付け言語だろ。
今の言語はほぼすべて動的言語だ。
(インターフェースなどで実行時に呼び出す関数が決まる)

194 :デフォルトの名無しさん:2011/11/12(土) 14:13:58.38
動的型付けは型を省略できるという点で楽を出来るのであって、
修正するという点では楽ができないからな。

静的型付け言語だと、修正するときが楽になる。
修正漏れがあったら警告してくれるからね。

195 :デフォルトの名無しさん:2011/11/12(土) 14:18:02.32
大学にいけばNeXTとかxeroxのwsとかIRISなどは1000万単位でも簡単に
見られて触れる所があったけど、普通じゃかえないもんな。

196 :デフォルトの名無しさん:2011/11/12(土) 14:20:36.17
>>194
よく考えて作ってないと動的はごちゃごちゃするのは仕方がないかも。
設計がうまい人ならば、問題はないと思うが、作る前に熟考を要する
からなぁ。
私が知る中で、書く人がタイピングよりも考える事に費やす時間が長い言語は、SQL, Lisp, Haskellだけだ。 - Philip Greenspun

197 :デフォルトの名無しさん:2011/11/12(土) 14:25:00.61
select * from user where name = 'hoge';

絶対、考えるよりもタイピングする時間のほうが長いよw

198 :デフォルトの名無しさん:2011/11/12(土) 14:26:29.01
いや、
君ら静的型派の言う「仕様が流動的で試行錯誤する」レベルは
動的型派の言う「だいたい決まったら」フェーズのうちだから。^^;

199 :デフォルトの名無しさん:2011/11/12(土) 14:29:04.61
>>198
つまり動的型は勘違いしてるってことかw

200 :デフォルトの名無しさん:2011/11/12(土) 14:37:07.46
動的型付けが効率がいいのは、ちゃんと設計もできて
最初から書くときだけ。つまり修正する必要がないときだけ。

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

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

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

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

よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。

201 :デフォルトの名無しさん:2011/11/12(土) 14:49:35.66
試行錯誤は修正ってことじゃないかと言うかもしれないが、
そういう話ではない。

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

俺が言っている修正っていうのは、
一旦は完成されたものとして、出来上がってしまったものに
手を入れるという話。影響範囲が大きく、一つ変更するだけでも
他に修正しないといけない箇所が出てくる状態。
それを動的型付け言語で把握するのは大変な作業。

202 :デフォルトの名無しさん:2011/11/12(土) 14:52:35.43
> これが静的型付け言語だと、簡単の情報を手に入れることができる。

だうと

203 :デフォルトの名無しさん:2011/11/12(土) 14:53:44.26
>>202
それは、反論とは言わんよw

204 :デフォルトの名無しさん:2011/11/12(土) 14:56:25.82
>>201
> それを動的型付け言語で把握するのは大変

そこらへんはもう分かっていることで、だから「だいたい決まった」フェーズでは
静的型のほがいいし、動的型で引っ張るなら修正が入る前にテスト書いとけっていうのが
最近の流れなんじゃないの?

205 :デフォルトの名無しさん:2011/11/12(土) 15:00:14.87
>>201
設計変更の影響がどこまで出てくるかを見極めるのは設計者の技量でも
あるよ。何も考えずにだらだら作るのと、変更する箇所を予めよそくして
変更しやすい設計にしておくことでは、全然違うから。

206 :デフォルトの名無しさん:2011/11/12(土) 15:02:33.04
>>201
> それを動的型付け言語で把握するのは大変な作業。

それは能力が低すぎるぞ。

207 :デフォルトの名無しさん:2011/11/12(土) 15:02:45.72
>>200
Smalltalk環境を体験したことない童貞がしそうなドヤ顔だな。

208 :デフォルトの名無しさん:2011/11/12(土) 15:04:15.95
今さらsmalltalkを体験しても何のメリットもないだろ

209 :デフォルトの名無しさん:2011/11/12(土) 15:06:12.82
>>200
> メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
> すべて判明する。

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

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

Squeakなら今実行しているソース、バイトコード、そのバイトコードを実行するVMのソースまで簡単に手に入れられるのだが、
Javaの場合はどうなんだい?

210 :デフォルトの名無しさん:2011/11/12(土) 15:06:48.63
>>206
動的型付け言語だと、能力が必要になることなのかい?w

211 :デフォルトの名無しさん:2011/11/12(土) 15:07:32.94
>>209
> その機能、動的言語のIDEでは遅くとも70年代には実装されていたのだが…

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

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

それ以外で!

212 :デフォルトの名無しさん: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で使われてる

これらを使うと動的にクラスを作ったり、クラスファイルを読み込んで
フィールドやメソッドの追加、メソッドの書き換えができる


213 :デフォルトの名無しさん:2011/11/12(土) 15:08:47.46
図星だったらしい…

214 :デフォルトの名無しさん:2011/11/12(土) 15:10:35.40
>>212
おk、おk。じゃあそれで、>>152をさくっとやってみてくれ。

215 :デフォルトの名無しさん:2011/11/12(土) 15:10:40.10
少なくとも今の動的型付け言語のIDE機能が
静的型付け言語用に比べて大きく劣っていることは事実だろう。


216 :デフォルトの名無しさん: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によって作られるクラスは元のクラスを継承したクラス


217 :デフォルトの名無しさん:2011/11/12(土) 15:12:41.00
>>211
おまえは馬鹿すぎて話しにならん

218 :デフォルトの名無しさん:2011/11/12(土) 15:13:20.30
>>210
つまり静的言語では能力は必要ないってことか?
だから静的厨はみんなバカなんだなw

219 :デフォルトの名無しさん:2011/11/12(土) 15:14:33.37
センダサーチぐらい、なんならgrepでもできるだろw
静的厨ってEclipseがないと何もできないの?

もっとも、Eclipseがあっても何もできないようだがww

220 :デフォルトの名無しさん:2011/11/12(土) 15:14:45.40
>>211
>smalltalkは知らないし、あまり使われていないので
>
>それ以外で!

ついには静的厨もSmalltalkには敗北を認めざるをえなかったみたいだなw
レベルの低い相手にしかイバルことができない卑屈なヤシwww

221 :デフォルトの名無しさん:2011/11/12(土) 15:15:59.93
実際に、中国人が作ったバグだらけ、重複コードだらけ、
継承関係もおかしいコードをリファクタリングしたことあるけど、
Javaじゃなければ無理だと思ったよ。

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

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

まあ無いことはないけど、ローカル変数書き換え程度しかないような
とても実用レベルには達しないものだった。


222 :デフォルトの名無しさん:2011/11/12(土) 15:16:38.83
でさ、Smalltalk厨ってさ、
やっぱり他の動的型付け言語用のまともな
IDE知らないんじゃないか。

223 :デフォルトの名無しさん:2011/11/12(土) 15:18:46.83
>>222
そこまでしてSmalltalkを避けたいわけ?

224 :デフォルトの名無しさん:2011/11/12(土) 15:19:18.30
>>218
お前日本語おかしいよ。

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

なぜ、「簡単なこと」を省略して
どんなことにも能力は必要ないってことに
しちゃうのか?

225 :デフォルトの名無しさん:2011/11/12(土) 15:19:19.79
>>221
リファクタリングブラウザの元祖はSmalltalkだということすら知らないの?

226 :デフォルトの名無しさん:2011/11/12(土) 15:20:02.82
>>223
お前仕事したことある?

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

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

227 :デフォルトの名無しさん:2011/11/12(土) 15:20:20.72
>>225
Smalltalkは使われてないんだよ。

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


228 :デフォルトの名無しさん:2011/11/12(土) 15:20:40.78
>>224
> なぜ、「簡単なこと」を省略して

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

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

おまえ、日本語つーより頭おかしいよ?

229 :デフォルトの名無しさん:2011/11/12(土) 15:20:53.92
でさ、Java厨ってさ、
やっぱり他の静的型付け言語用のまともな
IDE知らないんじゃないか。

230 :デフォルトの名無しさん:2011/11/12(土) 15:20:58.71
>>216
すまん。
これのどこに「3+4」のバイトコードを書き換えてかけ算をさせる要素が含まれるの?

231 :デフォルトの名無しさん:2011/11/12(土) 15:21:03.40
くだらん奴は相手にせず、本題に戻そう。


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

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

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

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

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

よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。

232 :デフォルトの名無しさん:2011/11/12(土) 15:21:07.08
>>227
FedExは実用されてないの?www

233 :デフォルトの名無しさん:2011/11/12(土) 15:21:42.90
コピペミスったw

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

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

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

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

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

よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。


234 :デフォルトの名無しさん:2011/11/12(土) 15:22:07.66
>>232
俺はFedEx社員じゃないもの(笑)

235 :デフォルトの名無しさん:2011/11/12(土) 15:22:09.50
>>231
> メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
> すべて判明する。

Smalltalkでは70年代から実装されている機能ですが何か?

236 :デフォルトの名無しさん:2011/11/12(土) 15:22:34.00
>>235
Smalltalkは使われてないんだよ。

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



237 :デフォルトの名無しさん:2011/11/12(土) 15:22:47.38
>>225
それはやばい。

238 :デフォルトの名無しさん:2011/11/12(土) 15:23:05.53
>>234
つまり知らないってことね。

知らない事は恥じゃないよ。知らないということを自覚していないことが恥なんだ。
覚えておこうね。

239 :デフォルトの名無しさん:2011/11/12(土) 15:23:17.14
Smalltalk以外の動的型付け言語はクソっていう
結論になっていることに気づけ馬鹿ども
自滅したいのか

240 :デフォルトの名無しさん:2011/11/12(土) 15:23:40.44
>>239
それでいいよw

241 :デフォルトの名無しさん:2011/11/12(土) 15:24:19.74
>>236
じゃあ、スレタイを「やっぱりSmalltalkを除く動的型付け言語は…」に変えとけ。
それまではSmalltalkアリだ。

242 :デフォルトの名無しさん:2011/11/12(土) 15:25:30.33
リファクタリングはSmalltalkで始まったけど
リファクタリングブラウザは、Smalltalkじゃろくな実装作れなかっただろ。
知らないのか?

243 :デフォルトの名無しさん:2011/11/12(土) 15:25:48.82
静的厨って、リファクタリングもデザパタもSmalltalk由来だってことすら知らないの?

それってプログラミングのプロとしてすごく恥ずかしいことだと思うんだけど。

244 :デフォルトの名無しさん:2011/11/12(土) 15:26:14.53
>>242
ラルフにそう言ってみれば?

245 :デフォルトの名無しさん:2011/11/12(土) 15:27:43.70
Smalltalk童貞のくせにEclipse自慢のやつって、
ジョブズがSmalltalk GUIをパクったことを知らないでドヤ顔の
旧マカに似ててかわいいな。

246 :デフォルトの名無しさん:2011/11/12(土) 15:28:41.20
>>239
えーと、それは

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

という事実を認めたということでいいのかな?

247 :デフォルトの名無しさん:2011/11/12(土) 15:29:41.36
これが現存するSmailltalk用の一番まともなリファクタリングブラウザだけど
こんなくだらない機能しかないんだぜ。
http://st-www.cs.illinois.edu/users/brant/Refactory/
undoとかリファクタリングと関係ない機能まで書いてあるしw

248 :デフォルトの名無しさん:2011/11/12(土) 15:30:21.87
>>246
> ・動的型付け言語であっても大規模開発規模に対応可能なIDEは実現可能である

いいえSmalltalkだけです。ちゃちなIDEが作れるのはw


249 :デフォルトの名無しさん:2011/11/12(土) 15:30:52.31
おもちゃとは言えフリーでSmalltalkいじれるいい時代に、なんで触っておかないのかね。
http://pharobyexample.org/

250 :デフォルトの名無しさん:2011/11/12(土) 15:31:14.80
Smalltalkを知らずにIDEを語るヤシって
自分じゃ恥ずかしくないのかな?

251 :デフォルトの名無しさん:2011/11/12(土) 15:31:21.44
>>243
知ってる。

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

0号機が一番強いなんて設定は
アニメの中だけだよw


252 :デフォルトの名無しさん:2011/11/12(土) 15:32:47.55
>>247
ググるにして何年前の資料だよ!w

253 :デフォルトの名無しさん:2011/11/12(土) 15:33:04.72
>>251
知らないってことは恥ずかしいことじゃないが、
知らないことを自覚していないことはすごく恥ずかしいことなんだぜ?

254 :デフォルトの名無しさん:2011/11/12(土) 15:34:56.28
>>249
おもちゃを触るほど暇じゃないし

255 :デフォルトの名無しさん:2011/11/12(土) 15:35:00.09
>>253
自分に言うようにw

256 :デフォルトの名無しさん:2011/11/12(土) 15:35:27.37
>>247
なつかしいな、それ、15年ぐらい前だったか?
よく探してきたな、そんな初期のパッケージ。

おまえ、実はロートルスモールトーカーなんじゃねーの?

257 :デフォルトの名無しさん:2011/11/12(土) 15:35:28.21
なんで世の中でSmalltalkが普及しないんだ!って
地団駄踏んでるw

258 :デフォルトの名無しさん:2011/11/12(土) 15:37:49.80
Smalltalkのリファクタリングの限界を知りたいなら
これを見るといい。何も出来ないといってもいいから。

ST 4U 105: Using the Refactoring Browser in VA Smalltalk
http://www.youtube.com/watch?v=jih7QVlbzj8

259 :デフォルトの名無しさん:2011/11/12(土) 15:37:58.41
>>255
Smalltalkで開発されたシステムなら、ウォールストリートにいっぱいあるぜ?

人は見たいものだけを見るものだってカエサルの言葉が、お前見てると頭によく浮かぶよw

260 :デフォルトの名無しさん:2011/11/12(土) 15:39:39.88
>>258
だってそれ、標準との差分の説明だから。おまえ、英語大丈夫?

261 :デフォルトの名無しさん:2011/11/12(土) 15:40:25.80
>>259
他人が何を作ったかなんか関係ないよ。
Smalltalk に限らんが、一般にマイナー言語厨は人の褌で相撲取りすぎ。


262 :デフォルトの名無しさん:2011/11/12(土) 15:40:37.40
ここの静的厨、Smalltalkの宣伝をしたいとしか思えんww

263 :デフォルトの名無しさん:2011/11/12(土) 15:41:27.90
Smalltalkのリファクタリングが凄いと言い張っているやつが
動画なり資料を見つけてくるべきだな

264 :デフォルトの名無しさん:2011/11/12(土) 15:42:59.42
>>261
おまえはキチガイか?
使われていないというから、使われていることを示したのだが?

そんなに自分が書いたコードに限定したいなら、
まずはお前が書いたコードを示せ。今すぐだ。

265 :デフォルトの名無しさん:2011/11/12(土) 15:44:38.35
動的型付け言語だと、メソッドの引数の順番を変えるとか
継承関係にあるクラスのメソッドを修正するとか
そういったことを自動的にするのが壊滅的だよ。

修正したら、何かを壊してしまう。
Smalltalkもそれは例外じゃない。

266 :デフォルトの名無しさん:2011/11/12(土) 15:44:43.72
>Smalltalkで開発されたシステムなら、ウォールストリートにいっぱいあるぜ?
これは示したことにならんだろw

267 :デフォルトの名無しさん:2011/11/12(土) 15:45:17.66
>>263
Smalltalkのリファクタリングが凄いつーより、
Java厨が例示する「静的型付言語の最強リファクタリング機能」ってのが
Smalltalkでは黎明期から実装されている常識的基本機能だと言ってるだけ。

文句あるならJava厨に言えw

268 :デフォルトの名無しさん:2011/11/12(土) 15:45:44.53
>>266
FedExは?

269 :デフォルトの名無しさん:2011/11/12(土) 15:46:16.88
>>264
コードっつーか実体験で書いてるっつーレスがないから
全然なんだよ。

大規模開発の話だろ?
今まで「協力会社さん」の面接100人以上やってるが、
業務経歴書のプログラミング言語欄にSmalltalkなんて書いてる奴いねーよ。
人も集まらん言語でどうやって大規模開発するんだ?

270 :デフォルトの名無しさん:2011/11/12(土) 15:46:23.50
そろそろ厚顔無恥無断転載じじぃきむら(K)がやってくるレベル。

271 :デフォルトの名無しさん:2011/11/12(土) 15:46:41.02
>>265
それは仕方ないね。

型がないから、同じものなのか、同じ名前で違うものなのか区別できない。
動的型付け言語で機能が限定的になるのは仕方ないこと。

272 :デフォルトの名無しさん:2011/11/12(土) 15:46:51.84
「静的型付言語の最強リファクタリング機能」ってのは
具体的にどのリファクタリング機能を指しているんだ?

273 :デフォルトの名無しさん:2011/11/12(土) 15:47:06.00
>>265


それ、本気で言ってんの?
すげえ面白い冗談だなw

274 :デフォルトの名無しさん:2011/11/12(土) 15:47:29.99
教えてくれよ。Smalltalkで開発できる技術者って人月いくらだよ。
相場教えてくれよ。なあ。

275 :デフォルトの名無しさん:2011/11/12(土) 15:47:35.54
今から>>273が証拠つきつけてくれるらしいw
さあ、正座してまとうw

276 :デフォルトの名無しさん:2011/11/12(土) 15:47:46.50
>>272
senders w

277 :デフォルトの名無しさん:2011/11/12(土) 15:50:55.52
>>275
証拠もなにも、
Squeak/Pharoの標準ブラウザのmethod refactoringに
add parameterとremove parameterがあるが、

それがどうかしたか?www

278 :デフォルトの名無しさん:2011/11/12(土) 15:53:24.38
>>245
言えてる

「アップル以外のマウスじゃボタンがいっぱいで使いにくい!」とか
言ってたアフォなおっさんが昔いたのを思い出したわw

279 :デフォルトの名無しさん:2011/11/12(土) 15:53:33.93
>>277
それはいつからあったの?
SqueakでもPharoでもよいけど、世に出た最初のバージョンから
既に標準ブラウザのmethod refactoringにadd parameterとremove parameterがあったの?

280 :デフォルトの名無しさん:2011/11/12(土) 15:54:38.72
教訓:
1. IDEをネタに動的言語をDISって遊ぶときは、めんどくせーからSmalltalkはあらかじめ除外しておけ。
2. 動的言語を尻目にEclipseの自慢をするときは、事前にSmalltalkの機能くらいはさらっておけ。

281 :デフォルトの名無しさん:2011/11/12(土) 15:56:03.98
な?
言語自慢は威勢がよくても>>274みてーな大前提でだんまりだよ。

結論:
人がいなけりゃ開発できない

282 :デフォルトの名無しさん:2011/11/12(土) 15:57:04.65
>>279
どうしてそうなるの? 可不可の問題じゃないの? 馬鹿なの? 死ぬの?

283 :デフォルトの名無しさん:2011/11/12(土) 15:57:42.71
>>279
Sun JDKが世に出た最初のバージョンではリファクタリングはどうだったのよ?

284 :デフォルトの名無しさん:2011/11/12(土) 15:57:43.47
>>282
えっ黎明期から当たり前だったんじゃないの?違うの?

285 :デフォルトの名無しさん:2011/11/12(土) 15:59:09.64
>>281
俺は良い時で人月250万ぐらいだったな。今は200万ぐらいか。
一番景気悪い時でも150万まで落ち込んで、マジで落ち込んだわ。

286 :デフォルトの名無しさん:2011/11/12(土) 15:59:48.92
>>284
おまえ、完全に頭おかしいぞ

287 :デフォルトの名無しさん:2011/11/12(土) 16:00:12.66
>>285
高すぎる

288 :デフォルトの名無しさん:2011/11/12(土) 16:01:01.98
今Javaなら60万くらいで集まるわな

289 :デフォルトの名無しさん:2011/11/12(土) 16:01:19.33
さて、では>>274>>281の人月単価を晒してもらおうか。
他人様に要求した以上は、当然自分の人月単価を晒すよな?

これで答えないようなら、人間として最低のクズだぞw

290 :デフォルトの名無しさん:2011/11/12(土) 16:04:02.19
さあ! さあっ! >>274 >>281

291 :デフォルトの名無しさん:2011/11/12(土) 16:04:13.01
キチガイsmalltalkが荒らしているだけか

292 :デフォルトの名無しさん:2011/11/12(土) 16:04:41.51
Smalltalker1人いれば、少なくともJavaドカタ10人チームよりは開発能力あるからなーw
単価200万とか、バーゲン価格だろ

293 :デフォルトの名無しさん:2011/11/12(土) 16:05:16.84
smalltalk使って仕事ができないから
八つ当たりしてるんだろうw

294 :デフォルトの名無しさん:2011/11/12(土) 16:06:03.08
他人様に人月単価を言わせといて、荒らし呼ばわりか。
静的厨って、みんなこんな程度の人格なの?

295 :デフォルトの名無しさん:2011/11/12(土) 16:06:12.80
>>292
リアルでそんな事言っている奴がいたから、
じゃあSmalltalk使っていいから1/10の給料で働いてくれって
言ったら黙ったよw

296 :デフォルトの名無しさん:2011/11/12(土) 16:06:17.33
>>285
それ個人だろw
「Smalltalk開発者5人よろしく」
って話なんだよ。わかってねーなー


297 :デフォルトの名無しさん:2011/11/12(土) 16:06:32.52
口だけで10倍とか言ってないで
実力を見せたらどうだw

298 :デフォルトの名無しさん:2011/11/12(土) 16:06:36.36
>>293
答えろ。(マジ

299 :デフォルトの名無しさん:2011/11/12(土) 16:07:21.20
>>295
で、おまえの単価はいくらか答えろ。命令だ。

300 :デフォルトの名無しさん:2011/11/12(土) 16:07:58.71
1億万円

301 :デフォルトの名無しさん:2011/11/12(土) 16:08:40.92
相場を聞いているのに
自分の単価を言って
いちゃもんつける
真性のキチガイか

302 :デフォルトの名無しさん:2011/11/12(土) 16:09:15.89
自己申告は嘘の可能性が高いから
相場を聞いているわけだな。

303 :デフォルトの名無しさん:2011/11/12(土) 16:09:31.31
>>300
お前は技術論以前の、人間として最低なクズ野郎だ。
軽蔑にも値しない。消えろ。

304 :デフォルトの名無しさん:2011/11/12(土) 16:10:13.44
>>301-302
それが言い訳か?おまえはその程度の倫理観の人間なんだな。よくわかった。


305 :デフォルトの名無しさん:2011/11/12(土) 16:11:29.50
結論:静的型言語をつかっていると技術以前に人間として狂ってしまう。

306 :デフォルトの名無しさん:2011/11/12(土) 16:11:41.78
SmalltalkのIDEの話が一瞬で全部消えた。分かりやすいな

307 :デフォルトの名無しさん:2011/11/12(土) 16:12:27.64
どう転んでも敵わないからな

308 :デフォルトの名無しさん:2011/11/12(土) 16:12:46.08
相場と自分の単価の区別もつかないのに大規模開発は無理だろw
仕様書読めるかどうかも怪しい

309 :デフォルトの名無しさん:2011/11/12(土) 16:14:27.61
そりゃ単価200万の奴を60万では押さえられんだろw

310 :デフォルトの名無しさん:2011/11/12(土) 16:14:57.62
RubyやPythonやPerlやPHPのIDEの話をしよう。

それぞれの言語で、最高のIDEはどれだ?
最低限リファクタリングツールの機能は付いているもので。

311 :デフォルトの名無しさん:2011/11/12(土) 16:16:30.13
>>283 への答えは?


312 :デフォルトの名無しさん:2011/11/12(土) 16:16:39.73
ScalaNinjaの@maeda_さん主催のSmalltalk勉強会@名古屋 そろそろ始まるらしい。
http://twitter.com/#!/maeda_/status/135253704063451137

313 :デフォルトの名無しさん:2011/11/12(土) 16:19:23.90
単価は上限が決まってるから、
どれだけ本当に凄腕でも無理なもんは無理。
ご縁が無かったということで

314 :デフォルトの名無しさん:2011/11/12(土) 16:19:24.34
おまえら、関数型の人も頑張ってSmalltalk勉強してみようって言っているこの時期に
おもちゃなんか触っているひまねーとか…

315 :310:2011/11/12(土) 16:20:32.19
ちくしょー、やっぱり動的型付け言語だと無いのか!

316 :デフォルトの名無しさん:2011/11/12(土) 16:20:36.65
Scalaは関数型なのか?

317 :デフォルトの名無しさん:2011/11/12(土) 16:22:25.84
>>315
Smalltalkは別格。ザクとは違うのだよ、ザクとは!

318 :デフォルトの名無しさん:2011/11/12(土) 16:22:31.60
いい加減、動的言語と動的型付けの区別ぐらいつけろよ。
無能ども。

319 :デフォルトの名無しさん:2011/11/12(土) 16:23:04.12
一番優れた動的型付け言語が
一番使われてないのはなぜ?w

320 :デフォルトの名無しさん:2011/11/12(土) 16:24:01.66
優れているってのは自称だから

321 :デフォルトの名無しさん:2011/11/12(土) 16:24:40.21
>>312
いーなー、俺も勉強会に出れるような都会にいれば良かった。
ttp://bit.ly/mWaBd7

322 :デフォルトの名無しさん:2011/11/12(土) 16:25:19.68
>>283 への答えは?
静的厨は煽ることしかできないのか?

323 :デフォルトの名無しさん:2011/11/12(土) 16:25:33.98
>>319
おまえ、本気でJavaやWindowsが一番優れているとか思っているの?

324 :デフォルトの名無しさん:2011/11/12(土) 16:25:34.27
Smalltalk は今という時期の理由がわからん
関数型は、マルチコアマルチスレッドやGPGPUといった流れの中で、
参照透過性と並列処理との相性の良さが理由になって持て囃されるのはわかる
むしろ今こそ KL1 でどうだ

325 :デフォルトの名無しさん:2011/11/12(土) 16:26:54.88
はいはい。Smalltalk童貞のまま年喰ったおじいちゃんはあっちいっていようね。

326 :デフォルトの名無しさん:2011/11/12(土) 16:27:31.84
>>323
JAVA+IDE+Windowsって一番多いんじゃないの?ここでいう土方ならほぼ100%
だろ?

327 :デフォルトの名無しさん:2011/11/12(土) 16:27:56.95
>>324
ダイナブック論文を読めば、Smalltalkの真価が発揮されるのはこれからだとわかる。

328 :デフォルトの名無しさん:2011/11/12(土) 16:29:20.55
多ければ優れているというドカタ言語の論理は、
大腸菌こそが至高の生物だと言っているようなもの。

329 :デフォルトの名無しさん:2011/11/12(土) 16:29:24.21
正直論文とか勘弁してください。
ム板だからしょうがないか。スレがマ板向けだよなこれ。

330 :デフォルトの名無しさん:2011/11/12(土) 16:30:16.43
Smalltalk勉強会って
ちょっと古文や漢文読んでみるみたな軽いノリだろ
Smalltalkをメインに使っていこうって感じじゃないでしょ

331 :デフォルトの名無しさん:2011/11/12(土) 16:30:43.24
そんなにSmalltalkが使われていないと言うんだったら
その証拠持ってきてみなさいよ。

332 :デフォルトの名無しさん:2011/11/12(土) 16:31:00.36
>>329
論文とか言ってもケイのは読み物の類。
http://swikis.ddo.jp/abee/74

333 :デフォルトの名無しさん:2011/11/12(土) 16:31:04.61
はいどうぞ
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
1 1 Java 17.874% -0.63% A
2 2 C 17.322% +0.61% A
3 3 C++ 8.084% -1.41% A
4 5 C# 7.319% +1.61% A
5 4 PHP 6.096% -1.72% A
6 8 Objective-C 5.983% +2.79% A
7 7 (Visual) Basic 5.041% -0.43% A
8 6 Python 3.617% -2.06% A
9 11 JavaScript 2.565% +0.90% A
10 9 Perl 2.078% -0.39% A
11 10 Ruby 1.502% -0.40% A
12 20 PL/SQL 1.438% +0.78% A
13 13 Lisp 1.182% +0.09% A
14 15 Pascal 0.991% +0.21% A
15 21 MATLAB 0.955% +0.32% A--
16 12 Delphi/Object Pascal 0.872% -0.77% A
17 23 ABAP 0.847% +0.25% A--
18 22 Lua 0.635% +0.02% A-
19 16 Ada 0.622% -0.07% B
20 19 RPG (OS/400) 0.620% -0.04% B
21 Logo 0.592%
22 Transact-SQL 0.550%
23 Visual Basic .NET 0.533%
24 Assembly 0.529%
25 COBOL 0.522%
26 Scratch 0.522%
27 R 0.500%
28 Scheme 0.453%
29 NXT-G 0.447%
30 Fortran 0.440%

334 :デフォルトの名無しさん:2011/11/12(土) 16:31:25.78
31 ActionScript 0.405%
32 Erlang 0.404%
33 VHDL 0.398%
34 C shell 0.393%
35 SAS 0.386%
36 Go 0.364%
37 Prolog 0.353%
38 Forth 0.331%
39 D 0.322%
40 Haskell 0.314%
41 APL 0.277%
42 Tcl 0.264%
43 Smalltalk 0.263%      ← ここ
44 ML 0.261%
45 Ladder Logic 0.251%
46 Awk 0.247%
47 PL/I 0.242%
48 Alice 0.234%
49 F# 0.230%
50 Q 0.221%

335 :デフォルトの名無しさん:2011/11/12(土) 16:31:26.78
勉強会ってのは横のつながりを作るために開催/参加するもので
ぶっちゃけネタは何だっていいんだよ

336 :デフォルトの名無しさん:2011/11/12(土) 16:34:08.40
Smalltalk的なシステムはマイナーと言いたいようだが、、、

Objective-Cはオブジェクト指向部分は動的型付けだしC系では一番Smalltalk的だな。
Objective-Cって、アプリのインストール数でいえばマイナーなのかな?


337 :デフォルトの名無しさん:2011/11/12(土) 16:34:24.29
>>330
(アジェンタより)

今後なにやるか
- Amber Smalltalk http://amber-lang.net/ の開発に貢献
- メディアアート向けのフレームワークの開発
(ProcessingやOpenFrameworksのような)
- Smalltalkを改造
 + パターンマッチ
 + モナド用の構文(F# のコンピュテーション式)
 + trait(amberにはない)
- blue bookを和訳
-プログラミングのローレベルな部分(コンパイラ・インタプリタなど)のコードを読む・いじる

338 :デフォルトの名無しさん:2011/11/12(土) 16:35:53.56
>>336
いや「的」じゃなくてSmalltalkがマイナーだと名指しで言われてるだけだろ


339 :デフォルトの名無しさん:2011/11/12(土) 16:36:03.34
プログラミング言語を使って
ものづくりをする人間は
smalltalkを選ばない法則

340 :デフォルトの名無しさん:2011/11/12(土) 16:37:01.38
>>333
いや。TIOBEって10位より下はあてになんないから。メディアリテラシー欠如なの?

341 :デフォルトの名無しさん:2011/11/12(土) 16:37:56.13
>>339 を読むと、静的型付け言語を使う人の品性がわかるね♪

342 :デフォルトの名無しさん:2011/11/12(土) 16:40:42.01
>>334を見れば分かる通り
実際に選ばれてないからなぁw

343 :デフォルトの名無しさん:2011/11/12(土) 16:40:42.49
>>336
Objective-CはC/C++のコードも動かせるからな
大部分のコードはC/C++だよ

344 :デフォルトの名無しさん:2011/11/12(土) 16:42:21.37
>>343
え、それ、本気でそう思ってる?

なんともはや…

345 :デフォルトの名無しさん:2011/11/12(土) 16:43:25.42
>>343
正直に答えてくれ。あんた、Objective-Cで開発したことないだろ?

346 :デフォルトの名無しさん:2011/11/12(土) 16:43:28.64
>>342
いやいや。TIOBEはネットでの言及ランキングだから。メディアリテラシー皆無なの?

347 :デフォルトの名無しさん:2011/11/12(土) 16:44:51.74
1位から20位まで。まとめただけ。

Statically typed
Java, C, C++, C#, Pascal, Delphi/Object Pascal, Ada, RPG (OS/400)

Statically typed, Dynamically typed
Objective-C

Dynamically typed
PHP, (Visual) Basic, Python, JavaScript, Perl, Ruby,
PL/SQL, Lisp, Matlab, ABAP, Lua

348 :デフォルトの名無しさん:2011/11/12(土) 16:44:56.08
>>342
みてわかるのは、おまえが統計データの読み方を知らないということ。

349 :デフォルトの名無しさん:2011/11/12(土) 16:46:47.83
>>346
反論したいなら、お前が信じるデータもってこいと言う話だよ。

350 :デフォルトの名無しさん:2011/11/12(土) 16:47:36.19
忙しくても、とりあえずこれくらいでならSmalltalk触っておけるだろ。
http://amber-lang.net/learn.html

351 :デフォルトの名無しさん:2011/11/12(土) 16:47:41.99
>>349
それがナナメ上なデータでドヤ顔した言い訳か?

352 :デフォルトの名無しさん:2011/11/12(土) 16:48:17.15
>>340
10位以上と10位より下で区切る根拠は?
もしかしてPerl厨ですか?

353 :デフォルトの名無しさん:2011/11/12(土) 16:50:27.04
あんまり土方をいじめるなよw
こいつら、どうせ開発言語を選ぶ権利なんてない底辺肉体労働者なんだからww

354 :デフォルトの名無しさん:2011/11/12(土) 16:50:33.14
>>349
メディアリテラシー欠如者にどんなデータ持ってこいと…
はっ。もしかして「メディアリテラシー」すら分からないのか?

355 :デフォルトの名無しさん:2011/11/12(土) 16:51:01.71
>>350
触る価値がない

356 :デフォルトの名無しさん:2011/11/12(土) 16:51:03.54
単価60万の頭脳じゃその程度だろww

357 :デフォルトの名無しさん:2011/11/12(土) 16:51:33.54
そのデータは信じない!
じゃあなにを信じるの?

信じるのは己だけだ!
つまり、何のデータもない、妄想を信じると?

358 :デフォルトの名無しさん:2011/11/12(土) 16:52:03.24
単価60万が休日に2chやってるのと
単価250万が休日に2chやってるのと
どっちが滑稽かって話だろうな

359 :デフォルトの名無しさん:2011/11/12(土) 16:52:20.25
Smalltalkが使われてないのは事実なんだから
そんな勝ち目のない所に口を出さなきゃいいのに・・・。

それとも勝ち目があるの?
なら勝ってみせてよ。

360 :デフォルトの名無しさん:2011/11/12(土) 16:52:33.47
>>357
やっぱ馬鹿だこいつ。

361 :デフォルトの名無しさん:2011/11/12(土) 16:53:03.99
Smalltalkに単価なんてないだろw
募集してないんだからwww

362 :デフォルトの名無しさん:2011/11/12(土) 16:54:25.59
>>361に単価60万も払えねえよww

363 :デフォルトの名無しさん:2011/11/12(土) 16:55:34.87
別に誰もSmalltalk自体が糞言語だなんてdisってないのに。
大規模開発のスレなんだから、その言語がいくら優れていたとしても、
現実問題として、大規模開発に使えない技術以外の要因があるんだから
しょうがないでしょと。それだけなのに。

364 :デフォルトの名無しさん:2011/11/12(土) 16:55:48.16
金は言語に対して払うんじゃない。
作ったものに対して払うもんだ。

365 :デフォルトの名無しさん:2011/11/12(土) 16:57:14.65
ぶっちゃけさー。

なんでみんなエスペラント勉強しないの?馬鹿なの?

って言ってるようなもんですよ。
ここのSmalltalkの人。

366 :デフォルトの名無しさん:2011/11/12(土) 16:58:03.93
優秀なSmalltalkプログラマ1人と
優秀なJavaプログラマ10人なら
後者のほうがはるかに開発量は多いだろうな。

367 :デフォルトの名無しさん:2011/11/12(土) 17:00:09.16
>>343
>Objective-CはC/C++のコードも動かせるからな
>大部分のコードはC/C++だよ

痛イ、痛スグルwwwーーー

これだから静的厨ってのは....

368 :デフォルトの名無しさん:2011/11/12(土) 17:00:21.34
>>365
学がないのは分かったから、ぶっちゃけるならせめてラテン語に喩えておけ。

369 :デフォルトの名無しさん:2011/11/12(土) 17:00:42.17
>>363
> 別に誰もSmalltalk自体が糞言語だなんてdisってないのに。

このスレの今日分のログ読んでもそう思うのなら、日本語を勉強しなおしたほうがいいよ。
煽りじゃなく、アドバイス。

370 :デフォルトの名無しさん:2011/11/12(土) 17:03:34.39
一時的に仮付けした名前を
InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
みたいなステキな名前に変更するためにIDEのリファクタリング機能必要でしょ
最初からこんな名前考えるのも面倒だし

371 :デフォルトの名無しさん:2011/11/12(土) 17:03:43.03
>>366
開発量を行数で測るなら、そうだろうな。
開発量を、同じ案件を実装した時の工期の逆数として測るなら、おそらく前者のほうが上。

372 :デフォルトの名無しさん:2011/11/12(土) 17:04:28.36
>>370
逆。そんな長い名前をつけてしまったものを
あとから正しく直すのがリファクタリング機能の一つ

373 :デフォルトの名無しさん:2011/11/12(土) 17:05:26.43
>>370
開発中に自分用メモとして仮付けした名前を仕様書にあわせて
F5291 みたいなステキな名前に変更するためのリファクタリング機能です

374 :デフォルトの名無しさん:2011/11/12(土) 17:05:58.81
少なくとも日本には優秀なsmalltalkerなんていないだろ

375 :デフォルトの名無しさん:2011/11/12(土) 17:06:30.94
smalltalkは仕事もないしな。

376 :デフォルトの名無しさん:2011/11/12(土) 17:07:00.27
Smalltalkに関しては色々あるが簡単に特定されそうなので黙っておこう
一応アランケイとは面識がある

377 :デフォルトの名無しさん:2011/11/12(土) 17:08:39.08
ぶっちゃけ、今の若いエンジニアはJavaなんて相手にしてないでしょ。
大学で情報系やってきた就活生は、大抵はObjective-CかHaskellあたりに興味を示す。
あとはC++とか、たまにRだな。
Javaとかやってもスキルの商品価値はあと5年も持たないと知ってるからね。

378 :デフォルトの名無しさん:2011/11/12(土) 17:08:43.11
関係者の言うことは、宣伝が入っているから
話半分に聞くことにしている。

379 :デフォルトの名無しさん:2011/11/12(土) 17:09:17.60
>>377
学生の興味とかどうでもいいわw

380 :デフォルトの名無しさん:2011/11/12(土) 17:09:43.84
一応ストラウストラップとは会ったことがある
相手は覚えてないだろうけど

381 :デフォルトの名無しさん:2011/11/12(土) 17:09:44.14
>>378
話半分で聞かれることを想定して話しているので半分も聞いてはいけない

382 :デフォルトの名無しさん:2011/11/12(土) 17:09:50.04
学生は所詮、素人だからね・・・。

383 :デフォルトの名無しさん:2011/11/12(土) 17:10:18.19
>>379
今のうちにコボルオヤジの体験談を聞いて対策しておけ、ってことだろw

384 :デフォルトの名無しさん:2011/11/12(土) 17:10:32.86
>>381
わかった。全く聞かないことにするw

385 :デフォルトの名無しさん:2011/11/12(土) 17:10:47.06
エスペラント語とか馬鹿にして、動的言語に何年か遅れて静的言語にもTraitsが入ってきたとき
Smalltalkに呪いに言葉を吐きつつ土方たちが必至こいて勉強する姿が目に浮かぶようだ。

386 :デフォルトの名無しさん:2011/11/12(土) 17:11:08.28
じゃあ全く関係ない俺の話。

SmallTalkは現場では全く使われていない。

387 :デフォルトの名無しさん:2011/11/12(土) 17:11:26.61
大学は時 間 が ゆ っ く り 流 れ  て  い  る   よ    ね

388 :デフォルトの名無しさん:2011/11/12(土) 17:11:37.58
>>385
結局、静的言語に取り入れられるのかよw

389 :デフォルトの名無しさん:2011/11/12(土) 17:11:38.63
>>382
くやしいのおw

390 :デフォルトの名無しさん:2011/11/12(土) 17:11:47.06
Javaはandroidで超人気だよ
少なくともsmalltalkなんかよりは

391 :デフォルトの名無しさん:2011/11/12(土) 17:12:15.35
Traitsと言われてもC++のtype traitsしかわからん


392 :デフォルトの名無しさん:2011/11/12(土) 17:12:57.42
>>385
もうScalaには入ってるんじゃなかったか?
このスレでは静的型言語=Javaなのか?

実際のところ、Javaは「ブルーカラーの言語」だから難しい機能は入らない可能性が高いよ

393 :デフォルトの名無しさん:2011/11/12(土) 17:13:05.17
>>388
そりゃそうだろ。
今までもずっと、動的言語で発案された技術が静的型言語に移植されて、ドカタがドヤ顔で自慢してきた。
歴史は繰り返すのさ。

394 :デフォルトの名無しさん:2011/11/12(土) 17:13:47.45
>>388
うん。動的型付け言語は実験的な言語の意味合いが強い。
そこで研究されてから、そののち静的言語に洗練された形で
統合される。

今までの歴史がそうだろう?

395 :デフォルトの名無しさん:2011/11/12(土) 17:14:31.97
>>392
あ、「難しい機能」なんだw お前にとっては?w

396 :デフォルトの名無しさん:2011/11/12(土) 17:14:58.71
>>385
何にせよ、プログラミング言語一つ覚えるときに一々必死にはならんだろ

というか必要な時期に勉強する方が
それこそ先駆者が必死に作ってくれた「ドカタでも分かりやすい」情報が
溢れているから楽だ。
庶民には庶民の知恵がある。先頭を走る奴とは価値観が違うんだよ

397 :デフォルトの名無しさん:2011/11/12(土) 17:14:59.28
関数型言語というパラダイムも動的型付言語が発祥だな。
オブジェクト指向というパラダイムも動的型付言語が発祥だな。

もっと遡れば、
チューリングマシンも動的型付だし、ラムダ計算も動的型付だ。

398 :デフォルトの名無しさん:2011/11/12(土) 17:15:06.17
>>395
だってクロージャごときが「難しい機能」としてマジで議論される言語だぜ?

399 :デフォルトの名無しさん:2011/11/12(土) 17:15:47.14
>>398
お前の周りで?w

400 :デフォルトの名無しさん:2011/11/12(土) 17:15:52.83
動的言語には洗練されないまま残るわけだ
smalltalkのリファクタリングみたいに

401 :デフォルトの名無しさん:2011/11/12(土) 17:17:55.28
>>399
http://www.infoq.com/jp/news/2007/12/closures-preserving-feel-of-java
「Javaはブルーカラーの言語」
「「Javaらしさ」にさらなるダメージを与える危険を冒してはならない」
「ジェネリクスは大失敗でした。Javaの習得や理解は難しくなりましたが、それを避けることはできないのです」

402 :デフォルトの名無しさん:2011/11/12(土) 17:18:39.94
>>399
え?

403 :デフォルトの名無しさん:2011/11/12(土) 17:18:53.81
ジェネリクスが難しいとかねーよ
ドカタすぎだろ

404 :デフォルトの名無しさん:2011/11/12(土) 17:20:11.41
Javaのジェネリクスは不完全だから余計に分かりにくい。

405 :デフォルトの名無しさん:2011/11/12(土) 17:21:33.74
>>394
くしくも戻ってきた。w
動的言語の「試行錯誤するフェーズ」っていうのは、言語それ自体も対象になるそういうものだ。
http://metatoys.org/oxymoron/oxymoron.html

406 :デフォルトの名無しさん:2011/11/12(土) 17:21:45.77
基本的に年寄りは新しいことを覚えるのが遅い。
だからSmalltalkも拒否する。

407 :デフォルトの名無しさん:2011/11/12(土) 17:23:06.05
>>392
Scalaのあれは名前だけで中身はただの抽象クラスの多重継承。

408 :デフォルトの名無しさん:2011/11/12(土) 17:23:15.36
新しいものが好きな奴は、今時2chにいない。
ネラーのユーザ構成は基本年寄りだと認識しなさい。

409 :デフォルトの名無しさん:2011/11/12(土) 17:23:27.08
もしもJavaのジェネリクスが完全だったら、
ヌルポとは永遠におさらばできていたんだよな..... (遠い目)


410 :デフォルトの名無しさん:2011/11/12(土) 17:24:03.05
>>405
だから、研究用なんだよね。

なぐり書きするのは最適、
でもそのあとで大きく作るのは大変。

大きくしてしまったら、そのあとは修正がメインになる。
修正フェーズでは、コードを把握するのが楽な静的型付け言語が有利となる。

411 :デフォルトの名無しさん:2011/11/12(土) 17:24:40.14
>>409
nullで初期化できるんだから型の問題じゃなくね?

412 :デフォルトの名無しさん:2011/11/12(土) 17:24:47.97
Smalltalkは新しくないだろ

413 :デフォルトの名無しさん:2011/11/12(土) 17:25:32.89
こんどPHPが、PerlのRoleとかより比較的ちゃんとしたTraits入れてくるよね。

414 :デフォルトの名無しさん:2011/11/12(土) 17:25:46.94
俺の周りでは15年くらい前にSqueakが流行っていた

415 :デフォルトの名無しさん:2011/11/12(土) 17:26:01.77
いや、ヌルポはなくならないだろ。

416 :デフォルトの名無しさん:2011/11/12(土) 17:27:22.09
>>410
いや、だからSmalltalkはSmalltalkで書かれていて修正もされつつ運用されているわけで。
つーかリンク先ぜんぜん読んでねーだろ?

417 :デフォルトの名無しさん:2011/11/12(土) 17:28:13.68
>>409
そこでモナドでしょう!

418 :デフォルトの名無しさん:2011/11/12(土) 17:28:17.88
mixinと何が違うんだ?

419 :デフォルトの名無しさん:2011/11/12(土) 17:30:33.25
>>418
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.115.6865

420 :デフォルトの名無しさん:2011/11/12(土) 17:30:39.48
>>416
「できる」と簡単に出来るかどうかってのは話は別。
たとえば、ヨットでだってアメリカにいける。

421 :デフォルトの名無しさん:2011/11/12(土) 17:33:03.03
>>410
Javaでのチーム開発とSmalltalkでのチーム開発を比べた経験から言えば、
メンテはSmalltalkのほうが遥かに簡単だ。

なにせコード量が違う。ドカタコードはメソッドが長いし、クラスも大きなクラスが多い。
Smalltalkのほうが単機能なメソッド、単機能なクラスにまとめやすい。

なぜかそうなるのかというと、それぞれの言語の既存のライブラリのコードがそうなっているから。
新しく書き下ろしたコードも既存のライブラリを使えば、どうしても既存コードの粒度に引きずられる。
書き下ろされたコードをリファクタリングしたりデバッグしたり機能拡張する時は、
Javaのほうが周囲のコードからの束縛が強いことが多い。
だからJavaのコードをいじるときには本当に神経を使う。Smalltalkのほうが分解しやすい。

以上、俺個人の経験だから、そうじゃないという経験がある人は反論してくれ。

422 :デフォルトの名無しさん:2011/11/12(土) 17:34:14.96
> ドカタコードはメソッドが長いし、

これが答えなだけじゃんか。

結局違いが出てるのは、プログラマの技術力に違いがあったからってだけだろ。
俺の所の優秀なJavaプログラマなら、コード量は少ない。

423 :デフォルトの名無しさん:2011/11/12(土) 17:35:15.47
>>416
仕事じゃねーから読みたいと思うもんしか読まねーよ。
長文ならなおさら。
読みたい!と思わせるような紹介ができないのが問題。
マイナー言語を宣伝するなら宣伝力を身につけよう!

424 :デフォルトの名無しさん:2011/11/12(土) 17:36:08.80
>>422
Smalltalkでの経験をベースにして、比較した上で言っている?
それとも単にJavaのコードしては短いほうだと思う、という話?

425 :デフォルトの名無しさん:2011/11/12(土) 17:36:26.45
優秀なJavaプログラマより
10倍優れているという
Smalltalkのコードを見せてみ?

426 :デフォルトの名無しさん:2011/11/12(土) 17:36:28.39
>>420
そもそも静的言語で出来ていないことをSmalltalkはやっているだろ?
静的言語で組まれたソフトで、30年動き続けているものがあるのか?
修正がラクなら出来るんだよな? つーか動かしながら修正すらおぼつくまい。

427 :デフォルトの名無しさん:2011/11/12(土) 17:36:39.89
>>421
次はチームが使う言語を逆にして比べるべきだね。

Smalltalkを使っていたチームがJavaを使うと、ドカタコードになるのか。
JavaチームがSmailltalkを使うと、驚異的にコードが良くなるのか。

それを経験してからまたおいでw

428 :デフォルトの名無しさん:2011/11/12(土) 17:37:24.12
>>423
> 仕事じゃねーから読みたいと思うもんしか読まねーよ。

カエサルの言うとおりだな。凡人は事実を見ずに、見たいと思うものだけを見る。

429 :デフォルトの名無しさん:2011/11/12(土) 17:37:57.29
>>425
Scratchのコードでもダウンロードして読んでみれば?

430 :デフォルトの名無しさん:2011/11/12(土) 17:38:09.83
> 静的言語で組まれたソフトで、30年動き続けているものがあるのか?
それはバージョンアップなしで?

Smalltalkならそういうのがあるというの?
名前は?


バージョンアップしていいのならWindowsとかもう30年立つだろう。


431 :デフォルトの名無しさん:2011/11/12(土) 17:38:58.47
Javaドカタは他の言語をマスターできないから比較は不可能じゃん

432 :デフォルトの名無しさん:2011/11/12(土) 17:39:04.46
>>427
ほぼ同じメンバーのチームで、ほぼ同じ内容のシステムの開発を比較したんだけど。
ちなみに、Smalltalkが先で、Javaは後で開発。それでもSmalltalkのほうが整理されていた。


433 :デフォルトの名無しさん:2011/11/12(土) 17:39:34.17
>>432
それはJavaの経験が浅かっただけだなw

434 :デフォルトの名無しさん:2011/11/12(土) 17:39:44.25
>>429
このレベルのプログラムなら
Javaには無数にあるだろ
10倍優れたのを出せよw

435 :デフォルトの名無しさん:2011/11/12(土) 17:40:19.61
>>434
Springのソースコードとかどうだい?

436 :デフォルトの名無しさん:2011/11/12(土) 17:40:32.41
>>433
いや、ほとんどのメンバーは5年以上の経験を持っていた。
むしろSmalltalkのほうが初めてという形だった。

437 :デフォルトの名無しさん:2011/11/12(土) 17:41:33.19
>>436
いやさ、だから先とか後とか関係ないんだよ。
両者を”入れ替えれ”と言ってる。

438 :デフォルトの名無しさん:2011/11/12(土) 17:41:47.22
>>430
VisualWorksとかSqueakとかXEROX Smallalk-80直系の子孫はみんなそうだよ?
再起動(と呼べるかどうか分からないけれど、オブジェクトの再配置)すら、数度しかない。

439 :デフォルトの名無しさん:2011/11/12(土) 17:43:42.45
へー、もしかしてstarlogoのことかな?
でも、starlogoとscratchじゃ、断然scratchのほうが高度だし、より多くのユーザ数だと思うけど。
それ以外に分散並行logo環境のJava実装があるなら、教えてくれ。面白そうだから使ってみたい。

440 :デフォルトの名無しさん:2011/11/12(土) 17:44:24.54
>>437
だから、ほぼ同じメンバーだと言っている。 >>432

441 :デフォルトの名無しさん:2011/11/12(土) 17:44:28.58
なぜlogoで比べるんだよw

442 :デフォルトの名無しさん:2011/11/12(土) 17:44:55.58
>>438
VisualWorks 1.0がでたのって、90年代なんだけど、
30年前から動き続けてる?
お前なに言ってるの?w

443 :デフォルトの名無しさん:2011/11/12(土) 17:45:25.67
>>440
だから経験の違いだろ。

444 :デフォルトの名無しさん:2011/11/12(土) 17:46:31.29
>>442
1.0より前があるんだろ

445 :デフォルトの名無しさん:2011/11/12(土) 17:46:54.74
>>443
だから、ほとんどのメンバーはJavaのほうが経験が長かった、と言っている。>>436

446 :デフォルトの名無しさん:2011/11/12(土) 17:47:24.43
また他人の褌になってきたな。

一ついいか。少なくとも国内の事例を紹介してくれんか。

447 :デフォルトの名無しさん:2011/11/12(土) 17:47:47.07
>>444
VisualWorksという新参者の1.0がどうかしたって?

448 :デフォルトの名無しさん:2011/11/12(土) 17:48:38.45
で、お前は優秀なsmalltalkerなの?
何か優秀なJavaプログラマが書くプログラムより
10倍優れたプログラム書いてみてよ

449 :デフォルトの名無しさん:2011/11/12(土) 17:48:47.29
NでもFでもHでも構わん。国内の大手でSmalltalkって例は一つでもあるのかいな。


450 :デフォルトの名無しさん:2011/11/12(土) 17:48:54.85
>>444
そういう理屈なら、Visual Basic.NETは1.0より前の
Visual Basic 1.0の前のQuickBasic 1.0の前の
Basicとかさかのぼって、30年前から使ってるといえるよな。

451 :デフォルトの名無しさん:2011/11/12(土) 17:49:14.07
>>446
俺は俺自身が入ったプロジェクトでのjavaとsmalltalkの開発結果を比較して書いている。
具体的な案件名を挙げるとほぼ個人特定されるから勘弁してくれ。

452 :デフォルトの名無しさん:2011/11/12(土) 17:50:27.38
勘弁しない。

それが通用するというのなら、俺の入ったプロジェクトでは
Smalltalkを使っていたチームよりも
Javaを使っていたチームの方が優秀だったという結論も
事実として受け止めよう。

453 :デフォルトの名無しさん:2011/11/12(土) 17:50:54.21
>>450
Smalltalk-80の流れの処理系は、基本的なアーキテクチャはあまり変わってないのだが。

454 :デフォルトの名無しさん:2011/11/12(土) 17:51:54.19
>>452
なら結構。
おまえの自己満足のために個人特定のリスクを冒すつもりは毛頭ない。
バイバイ

455 :デフォルトの名無しさん:2011/11/12(土) 17:51:59.23
>>451
その時、JavaとSmalltalkで使った
ライブラリとフレームワークを教えてくれ。
あと言語のバージョン。

それが答えだと思うから。

456 :デフォルトの名無しさん:2011/11/12(土) 17:52:36.00
>>453
アーキテクチャが変わってないから何?

457 :デフォルトの名無しさん:2011/11/12(土) 17:53:21.08
>>455
あーなるほど。Smalltalkでは便利なものを使っていて
Javaは全部まるまる自分らで作ったとか
そういう流れかw

458 :デフォルトの名無しさん:2011/11/12(土) 17:55:54.54
>>455
すまんけど、それ言うとマジで個人割れる。

459 :デフォルトの名無しさん:2011/11/12(土) 17:56:41.40
>>449
わかりやすいドカタ世界観だなw

460 :デフォルトの名無しさん:2011/11/12(土) 17:56:44.92
>>458
ということは、何の情報もないチラ裏ということだ。
同意も反論もしようがない。

461 :デフォルトの名無しさん:2011/11/12(土) 17:57:31.33
結論:Javaドカタはクレクレ言うばかりで自分では何もしないw

462 :デフォルトの名無しさん:2011/11/12(土) 17:57:43.51
smalltalkのプログラマってどこで募集してるの?
検索しても出てこないんだが

463 :デフォルトの名無しさん:2011/11/12(土) 17:58:42.97
>>460
ま、信じる/信じないはあんたの内心に任せるよ。
繰り返すが、あんたのためにこんな所で個人割れのリスク冒すほど馬鹿じゃないんで。

464 :デフォルトの名無しさん:2011/11/12(土) 17:59:26.71
>>463
だから信じる根拠も信じない根拠も何もないってことだよ

465 :デフォルトの名無しさん:2011/11/12(土) 17:59:49.44
>>442 >>453
いや。むしろ文法やアーキテクチャは変わったがイメージファイル(オブジェクトがつまった袋)が引き継がれている。
つまり動かしながら変えていっている。つーかSmalltalkは止めて機能改変できない。
つねに動きっぱなし。エターナル・コンピューティング。
http://tele-task.de/archive/video/flash/14029/

466 :デフォルトの名無しさん:2011/11/12(土) 18:01:34.43
信じない根拠はあるだろw
相場を聞かれたのに、自分の単価を勝手に言って
他人に単価を言うのを強制するくらい馬鹿なんだから

467 :デフォルトの名無しさん:2011/11/12(土) 18:02:14.13
>>465
そうなんだよね。独特すぎてなんかようわからんかった。
そのイメージファイルってのが、ぬか床みたいなもんだね。

468 :デフォルトの名無しさん:2011/11/12(土) 18:02:37.73
>>466が静的厨の品性だね♪

469 :デフォルトの名無しさん:2011/11/12(土) 18:05:05.90
>>289
>>290
>>294
>>298
>>299
>>303
>>304

これが動的厨の品性

470 :デフォルトの名無しさん:2011/11/12(土) 18:06:10.80
>>467
そうそう。秘伝のタレだね。VisualWorksとSqueakは元は一緒なんだけど
のれん分けした一つをアップルが腐らしていたの(Apple Smalltalk)をフェローだった
アラン・ケイが見つけてまた育てた。

471 :デフォルトの名無しさん:2011/11/12(土) 18:06:54.58
個人的には、Smalltalk は普通のプログラミング言語とかなり概念が違うので
静的型、動的型なんていう対立の枠外にあるという印象しかない。

出自から、オブジェクト指向言語のルーツというような言い方をされるが
手続き型、関数型、オブジェクト指向、論理型、そういうパラダイムで
オブジェクト指向言語の一つと捉えることも、適切じゃないような。

SmalltalkはSmalltalk。Smalltalkという世界。
プログラミング言語の一つという理解が、そもそも間違っていると思う。

Smalltalkを学ぶのは、プログラミング言語を一つ学ぶという話とちょっと違う。
得体の知れない未知の体験

472 :デフォルトの名無しさん:2011/11/12(土) 18:08:07.66
もうイイから、みんなでoz/mozartやろうぜ。いいIDEついてるぜ ワラヒ

473 :デフォルトの名無しさん:2011/11/12(土) 18:08:09.48
>>466が「俺の敵は全部自作自演」という被害妄想の持ち主だということは、よくわかったw

474 :デフォルトの名無しさん:2011/11/12(土) 18:09:19.13
IDE云々という話も、Smalltalkのそれを、EclipseだのVisual Studioだのという
ものからの類推で理解するのは違うと思う。
IDEがSmalltalkであり、SmalltalkはIDEである。世界。


475 :デフォルトの名無しさん:2011/11/12(土) 18:12:38.31
>>473
こんなとこに馬鹿なsmalltalkerが
一度に二匹も来るわけないだろw

476 :デフォルトの名無しさん:2011/11/12(土) 18:13:43.47
1

477 :デフォルトの名無しさん:2011/11/12(土) 18:14:24.94
2

478 :デフォルトの名無しさん:2011/11/12(土) 18:14:57.69
3

479 :デフォルトの名無しさん:2011/11/12(土) 18:15:07.14
4

480 :デフォルトの名無しさん:2011/11/12(土) 18:15:46.75
オブジェクトはSmalltalkの世界の中で生きているって感じか。
生物だから、何か言えばちゃんと言う事を聞く。
言う事を聞いて、Smalltalkの世界の中での生き様が変わる。

コンパイルとか再起動とか。なにそれ意味がわからない。
僕らはみんな、Smalltalkという大宇宙に生きています。

それがSmalltalk!

481 :デフォルトの名無しさん:2011/11/12(土) 18:20:54.95
イメージが保存されたり再起動されたりはイベント取れるけどね。
あとSmalltalkの規格外ぶりはGemStoneが顕著だな。
あんなDBMS他にないだろ。

482 :デフォルトの名無しさん:2011/11/12(土) 18:25:18.28
ちなみに俺はマニアな知り合いから熱く布教活動されただけで
自分ではSmalltalkを使ったことがない。480はその時の印象で適当に書いただけ

483 :デフォルトの名無しさん:2011/11/12(土) 18:30:45.79
5

484 :デフォルトの名無しさん:2011/11/12(土) 18:45:53.47
「お前だったのか…」「私だ…」 暇を持て余したSmalltalker達の遊び。

485 :デフォルトの名無しさん:2011/11/12(土) 18:57:46.44
いろいろ積み残しがあるなぁ…。Smalltalk以外でこれをどう書けるか見たかった。

plus := [3 + 4]

plus value
=> 7

plus method byteAt: 31 put: 16rB8; decompile
=> DoIt ^plus := [3 * 4]

plus value
=> 12

486 :デフォルトの名無しさん:2011/11/12(土) 19:16:23.18
smalltalkスレでやれ

487 :デフォルトの名無しさん:2011/11/12(土) 19:23:01.66
>>345
いや、Objective-CにはC++のコードを混ぜられるって知ってから、ほとんどC++で書いてる。

488 :デフォルトの名無しさん:2011/11/12(土) 19:24:27.17
俺面接する立場にあるから、俺偉い立場にあるから
俺部下がたくさんいるから、だから有能だから
俺の単価は一千万、選ばれたエリートだから
俺の言ってることは正しいから

>ま、信じる/信じないはあんたの内心に任せるよ。
>繰り返すが、あんたのためにこんな所で個人割れのリスク冒すほど馬鹿じゃないんで。

489 :デフォルトの名無しさん:2011/11/12(土) 19:48:13.17
Objective-CはVC++なんかよりよっぽど
まともなC++コード書けるでしょ

490 :デフォルトの名無しさん:2011/11/12(土) 20:08:13.81
個人割れがこわければ、都合悪いことはおとなしくスルーしてたらいい。
ここは匿名掲示板で嘘もハッタリも真実も何でもある。ただひとつ、
真面目な議論をする場ではないよ。

491 :デフォルトの名無しさん:2011/11/12(土) 20:22:21.66
接待議論に慣れてる奴は頭が悪いから
立場が上の奴が発言力を行使して意見を言ったら
みんな黙るからな
そうすると万能感を得られる
つまり会議の場が接待の場になってるのと同じ
匿名で議論するのは合理的
頭が悪い奴が自分の意見を押し通したい場合には最悪だけどな

ここでまともな議論にならないのはスレタイが悪い
討論風になってるから無理
最初から荒れることを想定してるからな
わしがこのスレを育てたという全能感が欲しいんだろ
ネトウヨも最初は政治板にいたけどぼこられて追い出されたから
こいつもム板でぼこられて逃げてきたんだろう
ずれた居場所で大声を張り上げるとみんな避けていくから
俺最強感を得たり勝利した気分になれる
そう考えると哀れすぎて嘲笑する気も起きないから
精神分析して遊びたいのでもっと挑発してください

492 :デフォルトの名無しさん:2011/11/12(土) 20:26:05.32
それとマーチンファウラーの本を読んでるなら
数百文字程度の文なんて一瞬で読めよな
それくらいできないと理解できるはずもない

493 :デフォルトの名無しさん:2011/11/12(土) 21:12:10.05
ゆとり世代に「ゆとり」っていうとホントにきれますね。
「好き好んでゆとりになったんじゃない!」とか。怒るなよ。

494 :デフォルトの名無しさん:2011/11/12(土) 21:22:05.58
誰か怒ってやれ、かまってちゃんのお出ましだ。

495 :デフォルトの名無しさん:2011/11/12(土) 21:43:13.94
予定調和会議
あらかじめ結論が決まってるのに会議すること
理由は失敗してもみんなで決めただろと責任転嫁するため
こういう会議が繰り返される組織は独裁されていると考えてよい

逆らう奴にはレッテル貼って個人攻撃だ
それが信者の義務であり社畜の義務でもある
難しいことがわからないんなら下品な口げんかで数押しするしかないだろ
一体感を感じれ

496 :デフォルトの名無しさん:2011/11/13(日) 05:21:00.39
>>487
自分がそうしてるからって、みんなObjective-CをC++として使ってると思い込んじゃったの?

497 :デフォルトの名無しさん:2011/11/13(日) 05:28:54.05
>>490
> ここは匿名掲示板で嘘もハッタリも真実も何でもある。ただひとつ、
> 真面目な議論をする場ではないよ。

そうか、他の人はともかく、おまえは議論する気なんて持ち合わせちゃいないんだな。
じゃ、おまえが出ていけばいい。
荒らしは禁止って、2ちゃんルールにもローカルルールにもあるよ。


498 :デフォルトの名無しさん:2011/11/13(日) 07:14:09.37
どんなに単価が高くてもSmallTalkは案件数ゼロだから、売上ゼロだな ギャハハ

499 :デフォルトの名無しさん:2011/11/13(日) 08:17:08.04
(Tはわざとだな)

500 :デフォルトの名無しさん:2011/11/13(日) 09:46:03.71
>>497
そんなことよく考えたらわかることじゃない?ここは匿名だからな。
キチガイも出入りしてくるのは当然だし。ちょっとした恨みで、道理が通じず
個人割れに力を入れるような奴もいる。まだfacebookで議論するというならば
わかるけどな。

501 :デフォルトの名無しさん:2011/11/13(日) 09:49:11.19
すでに>>11でJavaはVBA以下と結論が出てるのに
Java vs. Smalltalk で盛り上がるとか

502 :デフォルトの名無しさん:2011/11/13(日) 11:15:31.16
ここでSmalltalk系の話が出てるから、ちょっと触ってみようと思って調べたけど
Pharoの情報は少ないし、squeakの情報は子供向けだし。
取っ掛かりがちょっと面倒ですね。Pharoのwelcomeを読むことしかしてないけど


503 :デフォルトの名無しさん:2011/11/13(日) 11:45:17.16
>>496
いやおれは>>343じゃないから。
「Objective-Cを使ったことがないだろ」に対するツッコミ。

504 :デフォルトの名無しさん:2011/11/13(日) 11:47:43.40
>>501
だれも>>11なんてふーんぐらいとしか思ってないからw

505 :デフォルトの名無しさん:2011/11/13(日) 11:59:25.47
>>504
ふーんで 284もブックマークがついて、原著がacmに載せられるんだ。
面白い解釈だと思う。:-)

506 :デフォルトの名無しさん:2011/11/13(日) 12:02:42.81
acm?どこの系列だ?N?F?H?

507 :デフォルトの名無しさん:2011/11/13(日) 12:09:36.15
acmを理解できないってのは、ちょっと・・・ 土方と揶揄されても仕方がないよ。

508 :デフォルトの名無しさん:2011/11/13(日) 12:36:21.04
>>506
www

509 :デフォルトの名無しさん:2011/11/13(日) 12:48:48.78
>>502
Pharo なら http://pharobyexample.org/ がお薦めです。チュートリアルの内容に合わせて
処理系は 1.0を https://gforge.inria.fr/frs/download.php/26828/Pharo-1.0-OneClick.zip
イメージとチェンジは同じページの https://gforge.inria.fr/frs/download.php/27023/PBE-1.0.zip を展開して
Pharo-1.0.app\Contents\Resources\Pharo-1.0.image と 同.changes と置き換えて使ってください。

Squeak も同様に http://squeakbyexample.org/ があります。
処理系は 3.9 が推奨で ftp://ftp.squeak.org/3.9/Squeak3.9-final-7067.zip
ftp://ftp.squeak.org/3.9/ から使用OS 向けの VM を入手して同じフォルダ入れます。
イメージ、チェンジはやはり http://gforge.inria.fr/frs/download.php/4624/SqueakByExample-1.3.zip
を展開してやはりフォルダに入れます。起動は .image を VMアプリでドロップインで開きます。
ドロップインして直接開くのであれば名称の変更は必要ありません。

あと、VisualWorks だと日本語のチュートリアルもあります。フリー版(非商用版)を入手して試せます。
http://smalltalk.cincom.jp/main/products/visualworks/

510 :デフォルトの名無しさん:2011/11/13(日) 14:07:15.47
>>504
Javaが最低なことくらい、わざわざ言われなくても誰でも知ってるもんなw

511 :デフォルトの名無しさん:2011/11/13(日) 14:23:37.17
基地外登場w

512 :デフォルトの名無しさん:2011/11/13(日) 14:34:46.11
もしかしてXcodeのObjective-CにC++も書けるというのを
Objective-Cの言語仕様だと思ってる香具師がいるのか?

513 :デフォルトの名無しさん:2011/11/13(日) 14:42:33.82
Javaは5年前からずっと右肩下がりだな。

514 :デフォルトの名無しさん:2011/11/13(日) 14:47:24.24
>>513
トップに向かって、右肩下がりだねぇといっても、
虚しくない?

515 :デフォルトの名無しさん:2011/11/13(日) 14:52:22.97
トップジャバw
ドカタのエースww

516 :デフォルトの名無しさん:2011/11/13(日) 14:53:12.58
周回遅れのランナーが、トップに向かって
ペースが落ちてきたなって言うようなもんか。

周回どころか動的型付け言語トップのPHPでさえJavaの1/3程度でしか無いけど、
動的型付け言語トップのPHPも、右肩下がりだけどね。

その次に頑張ってる動的型付け言語PythonはPHPの半分しかなく、
こっちも右肩下がり。

動的型付け言語で頑張ってるのはJavaScriptぐらいか?
javaの1/7だけどな。

517 :デフォルトの名無しさん:2011/11/13(日) 14:59:20.97
tiobeを定量評価だと思ってる人がいるwおもしれww

518 :デフォルトの名無しさん:2011/11/13(日) 15:02:30.80
TIOBEでドヤ顔っすか!さすがセンパイ、ぱねえっす!!

519 :デフォルトの名無しさん:2011/11/13(日) 15:18:42.93
じゃあ、TIOBEよりも信用できるものを持って来いと。

520 :デフォルトの名無しさん:2011/11/13(日) 15:27:45.18
JavaはVBAよりも糞な言語だけど、ドカタに大人気だよ

どんなプロジェクトも持ち前の冗長さで大規模開発にしてしまうから、
大量のドカタの雇用を守ってるよ

521 :デフォルトの名無しさん:2011/11/13(日) 15:33:35.23
githubのプロジェクト数とかStack Overflowの質問数とかを総合したデータがあればTIOBEよりおもしろいかもね

522 :デフォルトの名無しさん:2011/11/13(日) 15:38:31.71
>>521
つまり、オープンソース限定にするってこと?

523 :デフォルトの名無しさん:2011/11/13(日) 15:39:35.84
そうだね。オープンソース限定なら、Javaは少なそうだから
動的型付け言語というかスクリプト言語に有利な結果が出そうだ。

524 :デフォルトの名無しさん:2011/11/13(日) 15:42:13.62
http://langpop.com/


525 :デフォルトの名無しさん:2011/11/13(日) 15:42:49.12
オープンソースならこんなデータがあったよ。
http://sourceforge.jp/magazine/09/08/13/0423202

C 40.91%
C++ 14.02%
Java 10.95%
Shell 8.96%
JavaScript 5.55%




526 :デフォルトの名無しさん:2011/11/13(日) 15:46:56.76
>>524
上位はC/C++、Javaなどの静的型付け言語、ついでPHPとJavaScriptとPythonが頑張る。
そのあとはそこそこ有名な言語が入り乱れて、
マイナーな関数型言語やSmalltalkなんかが尾を引っ張るって感じか。

527 :デフォルトの名無しさん:2011/11/13(日) 15:52:14.91
Measuring programming language popularity
http://en.wikipedia.org/wiki/Measuring_programming_language_popularity

The Transparent Language Popularity Index
http://lang-index.sourceforge.net/

How popular are various programming languages?
http://www.complang.tuwien.ac.at/anton/comp.lang-statistics/


528 :デフォルトの名無しさん:2011/11/13(日) 15:55:29.25
>>521

Ranking the popularity of programming languages
(StackOverflow Questions Tagged vs. Projects on Github)
http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/


529 :デフォルトの名無しさん:2011/11/13(日) 15:56:24.70
>>509
ありがとう。最初pharo 1.3を入れたけど、pharobyexampleの内容(画像)が若干違うことの
戸惑いがあって
いろいろ仕様変更してるんだな。と思って見てた。1.0出始めるのが良いってことですね。

530 :デフォルトの名無しさん:2011/11/13(日) 15:56:34.50
https://github.com/languages

githubは偏ってんなー

531 :デフォルトの名無しさん:2011/11/13(日) 16:02:02.11
>>526
Cを静的型付言語と呼んでもいいのか?
呼ぶのなら、Cが抱えた型に関する欠陥は静的型付の欠陥ということになるが

532 :デフォルトの名無しさん:2011/11/13(日) 16:04:02.36
>>531
http://en.wikipedia.org/wiki/C_%28programming_language%29

Typing discipline Static, weak, manifest, nominal

http://en.wikipedia.org/wiki/Type_system

533 :デフォルトの名無しさん:2011/11/13(日) 16:05:22.74
Cを動的片付けって言うやつはいない。

534 :デフォルトの名無しさん:2011/11/13(日) 16:06:27.03
>>533
え?静的型付けと動的型付けの二択だと思ってるの?どこのドカタ?

535 :デフォルトの名無しさん:2011/11/13(日) 16:09:35.22
>>532
で、このスレで主張している静的型のメリットというのはCでも享受できるのかい?
サポートしている具体的なIDEを挙げて説明してみろ。

536 :デフォルトの名無しさん:2011/11/13(日) 16:10:06.70
http://en.wikipedia.org/wiki/Comparison_of_programming_languages#Type_systems



537 :デフォルトの名無しさん:2011/11/13(日) 16:12:32.79
>>534
あーまた変な理屈言い出したよ。
ドカタとか煽りだしたってことは、もうまともな議論できませんって敗北宣言だね。
まともな反論がくるまで無視するからそのつもりで。

538 :デフォルトの名無しさん:2011/11/13(日) 16:15:06.51
>>537
そう言えば、動的でなければ静的型付だとかいうアフォの言い訳になると思ってるのか?

539 :デフォルトの名無しさん:2011/11/13(日) 16:18:46.50
一般的には静的だといわれていますね。
これは屁理屈をこねてもくつがえせません。

540 :デフォルトの名無しさん:2011/11/13(日) 16:20:16.17
524=527=528=532=536
俺はドカタなので説明はできない。
IDE も知らない。C は C でいいと思ってる。
古い言語なので文句を言っても始まらない。
レガシーシステムを一から他言語に移植するコストとの比較だろう。
言語は仕事に応じて使い分けるだけ。

http://en.wikipedia.org/wiki/Type_safety

CCured: Type-Safe Retrofitting of Legacy Software
http://www.eecs.berkeley.edu/~necula/Papers/ccured_toplas.pdf
CCured in the Real World
http://www.utd.edu/~kxh060100/Papers/ccured_pldi03.pdf

541 :デフォルトの名無しさん:2011/11/13(日) 16:22:49.03
Cは変数は型があるけど、値には型はないって言い方を見たことあって、
これは納得できたけど「動的でないけど静的ともいいきれない」とか屁理屈がすぎるな。

まあ、自分の主張が弱くなったら、言葉の定義がどうこうとか細かい議論に逃げるとか
いつものことだけど。

542 :デフォルトの名無しさん:2011/11/13(日) 16:26:23.18
学術的にはCは弱い型付け言語ですね…
一方静的型付けというのは通常強い型付けのうちの1つです

543 :デフォルトの名無しさん:2011/11/13(日) 16:30:38.37
>>529
Smalltalkは良くも悪くもパーソナルゆえ動的で仕様や機能も流動的なので、まず
お手元のドキュメントやチュートリアルのバージョンに合わせた環境(イメージと呼ばれます)を
動かせるように心掛けるのが初学時にはよいと思います。古いバージョンでもコツをつかめば
その後の変化を吸収することは難しくないので、必ずしも最新版を追いかけなくても大丈夫です。

あと、疑問な点が環境の中で解決できたり、Programming by Example というスタイルも
他の言語には見られにくい慣習で、Smalltalk を学ぶのにまず Smalltalk を知らないといけない
という学習時のブートストラップ問題みたいな奇妙な障壁があります。
ググるにしても検索キーワード選びにもコツがいるので、最初わからないこと、試してみたいことが
あれば、自力解決に拘らず、臆せず気軽にSmalltalkスレでもここでもどこでもどんどん訊いてください。

http://hibari.2ch.net/test/read.cgi/tech/1131349633/

544 :デフォルトの名無しさん:2011/11/13(日) 16:30:44.48
>>542
出典を。

545 :デフォルトの名無しさん:2011/11/13(日) 16:33:52.21
>>535 も指摘していますが
このスレッドでリファクタリングや静的分析ができることが静的型付の長所です
しかしCには当てはまりません
なぜならCの型付けは弱く、静的型付のようには依存関係を保証できません

分析可能性としては、Cは動的型付言語よりも弱いです
なのでCを持ち上げることはこのスレッドで主張されている静的型付の利点を
否定することになります

546 :デフォルトの名無しさん:2011/11/13(日) 16:41:13.96
>>544
ttp://lucacardelli.name/Papers/TypeSystems.pdf

547 :デフォルトの名無しさん:2011/11/13(日) 16:52:33.38
Visual StudioでもEclipseでも
C言語もリファクタリングも静的解析も
できるんだから、やっぱり静的型付け言語であってるんじゃね?

548 :デフォルトの名無しさん:2011/11/13(日) 16:57:10.59
>>546
thanks, 読んでみた。この辺か。

3 ページ目
Execution errors and safety

Typed languages may enforce safety by statically
rejecting all programs that are potentially unsafe. Typed languages may also use a mixture
of run time and static checks.

4 ページ目
Lack of safety

In reality, certain statically checked languages do not ensure safety. That is, their set of forbidden
errors does not include all untrapped errors. These languages can be euphemistically
called weakly checked (or weakly typed, in the literature) meaning that some unsafe operations
are detected statically and some are not detected. Languages in this class vary widely in the extent
of their weakness. For example, Pascal is unsafe only when untagged variant types and
function parameters are used, whereas C has many unsafe and widely used features, such as
pointer arithmetic and casting.

5 ページ目冒頭の Table 1


静的型付け = static checks
弱い型付け = weakly checked

C は `certain statically checked languages do not ensure safety.'
静的型付けだが型安全性を保証できない。

549 :デフォルトの名無しさん:2011/11/13(日) 16:59:05.57
>>546

> In reality, certain statically checked languages do not ensure safety.
> That is, their set of forbidden errors does not include all untrapped errors.
> These languages can be euphemistically called weakly checked (or weakly typed, in the literature)
> meaning that some unsafe operations are detected statically and some are not detected.
> Languages in this class vary widely in the extent of their weakness.
> For example, Pascal is unsafe only when untagged variant types and function parameters are used,
> whereas C has many unsafe and widely used features, such as pointer arithmetic and casting.

> Weakly checked language: A language that is statically checked but provides no clear guarantee of absence of execution errors.

550 :デフォルトの名無しさん:2011/11/13(日) 17:01:58.64
Cは弱い静的型付け

551 :デフォルトの名無しさん:2011/11/13(日) 17:04:08.78
弱い静的型付けってことは
動的型付けってことですよね?

552 :デフォルトの名無しさん:2011/11/13(日) 17:05:34.67
>>551
しつこい。いい加減諦めろ

いくら言ったってお前の好きな動的型付け言語の
一位はPHPで、Smalltalkははるか下なのは変わらん。

553 :デフォルトの名無しさん:2011/11/13(日) 17:45:20.21
>>551
ドカタは黙ってろ!

554 :デフォルトの名無しさん:2011/11/13(日) 17:47:25.19
>>551-552
自演してまで煽りたいのか? おまえは惨めなウンコ虫だなw

555 :デフォルトの名無しさん:2011/11/13(日) 18:12:21.45
>>554
いくら言ったってお前の好きな動的型付け言語の
一位はPHPで、Smalltalkははるか下なのは変わらん。


556 :デフォルトの名無しさん:2011/11/13(日) 18:24:49.50
>>553
おいおい

大規模開発に向く言語=土方用言語。だろ
土方でも使えて、バッチリ土方の量産するバグを取れる動的言語を提示しないか



557 :デフォルトの名無しさん:2011/11/13(日) 18:30:40.24
今週ももドカ太郎は
ハッスルしてるなw

558 :デフォルトの名無しさん:2011/11/13(日) 18:32:09.01
「木を隠すなら森」

バカが自分のバカさを隠す目的で
糞レスをばら撒いてバカを集めようとすること

559 :デフォルトの名無しさん:2011/11/13(日) 18:42:04.23
>>543
またおじゃまします。OOPの本拠だからちょっと楽しみです。:-)
JavaともCLOS(Common LispのOOP)ともまた違うものですから、どのような発想が
あるのか時間をかけて感じたいと思います。:-)

560 :デフォルトの名無しさん:2011/11/13(日) 18:59:54.32
>>559
自由自在Squeakという入門書オススメ
英訳して海外でも出版していい出来


561 :デフォルトの名無しさん:2011/11/13(日) 20:11:36.52
>>560
あいにく絶版みたいですね。


562 :デフォルトの名無しさん:2011/11/13(日) 20:33:46.39
Squeak入門書では新しい方なんだが、Squeak入門書自体、ほとんど出ないからな…
こればっかりは、洋書当たるよりは中古で自由自在Squeak探してくれ
洋書と和書合わせても、これ以上のSmalltalk入門に適した本は多分無い


563 :デフォルトの名無しさん:2011/11/13(日) 20:48:06.29
スレ違いが分からん馬鹿ではないだろうから、嫌がらせでやっているのだろう。
変なのに居つかれてしまったものだ。
議論のストレスを嫌がらせで発散する輩というのはあちこちで見かけるが、
どうにも有効な対策がない。
匿名掲示板というのはこの手の厄介な知能犯に極めて無力だ。


564 :デフォルトの名無しさん:2011/11/13(日) 21:02:23.45
自分の思い通りにならないと発狂する精神病みたいな奴が多いからな
日本人は頭がおかしいのがデフォ
特に完璧主義な奴多いだろプログラマは
自分の想定していた人間関係が完璧じゃないと発狂する奴がいるんだよ
そいつはバグを潰すためにどんな手を使ってでも追い出しにかかる
他に居場所がある場合は逃げるのが普通だけど
日本は狭すぎて逃げ場がなかったりしたせいでとどまる性格の奴が多い
閉鎖的な集団がいじめを発生させるのも、精神病の頭のおかしな奴がいるのと
逃げ場がない二点に原因がある
そして頭のおかしな奴も親や周りの大人がおかしいので洗脳されてる
その連鎖が今の日本を作り出した

565 :デフォルトの名無しさん:2011/11/13(日) 22:43:43.65
>>562
なるほど、

566 :デフォルトの名無しさん:2011/11/13(日) 22:49:56.90
>>565
自由自在Squeakプログラミング、アカデミアにまだ在庫あるみたいですよ。
でも Squeak4.2 向けに改訂版出して欲しいですね。

http://www.academianetwork.co.jp/service/book6/index.html

567 :デフォルトの名無しさん:2011/11/14(月) 00:25:31.53
>>566
丁寧に調べてもらってありがとう :-)

568 :デフォルトの名無しさん:2011/11/14(月) 00:35:50.56
>>567
自分の手柄っぽくなってて、本当に手柄を立てた>>566に悪いから言うけど、
>>560=>>562(自分)だが、>>566は別の人。

お礼は>>566に捧げてくれ。


569 :デフォルトの名無しさん:2011/11/14(月) 00:36:30.63
他にも入手できるところはあるけど、仮に入手が難しかったら近くの図書館で
借りるリクエストをしてみれば、持ってる図書館から回してくれる。継続はで
きないけど2週間OKかな。大学なら多分情報系があればあるんじゃない?

570 :566:2011/11/14(月) 00:44:58.86
俺が>>566だよ。

どういたしまして。

でも、静的型付け言語のほうがいいよ。

571 :566:2011/11/14(月) 00:49:40.26
なんだ。普通にAmazonにあるじゃないか。

ばか?

572 :デフォルトの名無しさん:2011/11/14(月) 00:51:32.03
ちなみに、アカデミアでは買わないほうがいい。
SSLを使っていないから。

573 :デフォルトの名無しさん:2011/11/14(月) 00:57:46.69
アマゾンで検索したら
smalltalkの本
30冊もあるじゃん
わりとメジャーなんじゃないか

574 :デフォルトの名無しさん:2011/11/14(月) 01:02:22.51
古い本ばかりだろ。
一番新しいのが3年前の本だぞ。

575 :デフォルトの名無しさん:2011/11/14(月) 10:09:05.54
SmalltalkのIDEまわりで面白いと思うのは、
メソッドもオブジェクトでソースはその属性扱いであることと、
加えてインクリメンタル(つまりメソッド単位)コンパイルである特性を活かし、
ごく初期からメソッド単位でバージョン管理が非常にシンプルな形で実現されていたところ。

もっとも、その流れでチェンジセット(変更点集合)みたいなものの必要性が生じ、
それによる変更点の管理がややこしいことになっていたのが
古典的Smalltalkにおけるバージョン管理運用の欠点か。

576 :デフォルトの名無しさん:2011/11/14(月) 12:28:21.19
Smalltalkのバージョン管理は多分、他の言語とは違うと思うんだよね。
その辺りに興味があるので、教えてくれると嬉しいです。

素朴な疑問としては、イメージ(バイナリ)をマージできるの?とか。
コンフリクトの解消はどうやってるの?とか。

577 :デフォルトの名無しさん:2011/11/14(月) 14:15:05.43
>>576
イメージファイルはデータベースのバイナリのようなものなので、
特殊な事情でその必要に迫られない限りマージとか差分をとったりはしませんね。

コミットごとのコンフリクトの解消は、初期はチェンジセット(変更点の集合)が非力だったので
ほとんど手作業でしたが、その後徐々に改善されてきて、最近は通常のバージョン管理システム同様
ある程度半自動化できるようになっています。それでも、最後は人間が取捨選択しないといけないのと、
メソッド単位のマージではdiffライクな機能を支援に使ったソースレベルでの作業に落とし込む必要があります。

578 :デフォルトの名無しさん:2011/11/14(月) 18:28:10.03
ここはマイナー言語の利用者とメジャー言語の利用者のしのぎをはる場
になってるな。つぎスレは計算機言語バトル・ロワイヤル。にしたほうがいいかも。

579 :デフォルトの名無しさん:2011/11/14(月) 20:07:09.74
>>577
ありがとう。上の方でイメージファイルが秘伝のタレ状態になると
書いてあったので、イメージのままマージしてるのかと思ってました。

580 :デフォルトの名無しさん:2011/11/14(月) 23:35:18.04
次の展開は、Smalltalk スレで大規模開発の話が始まる、だぞ。
わかってるな?>ここでスレ違いやってる奴ら

581 :デフォルトの名無しさん:2011/11/14(月) 23:38:38.96
Smalltalkスレってどこにあんの?

582 :デフォルトの名無しさん:2011/11/14(月) 23:39:29.89
>>581
http://pc12.2ch.net/test/read.cgi/tech/1150106090/

583 :デフォルトの名無しさん:2011/11/14(月) 23:53:39.26
>>581
Squeakでマターリ語りましょうや
http://hibari.2ch.net/test/read.cgi/tech/1131349633/

584 :デフォルトの名無しさん:2011/11/15(火) 01:06:23.75
すれ違い? はて? ネタ切れなんだろ。IDEカラ始まって、動的IDEの
smalltalk系の話が出てきただけじゃない。
大規模開発に向いてるかどうかは触れないが
違ったパラダイムも触ろうとせずに理解もできないからね。
ここの人がマルチの言語使いばかりではないのは仕方がないが
頭を柔らかくすることも少しはやってみてもいいんじゃないか?
smalltalk系って知識を持ってる人より知識がない人のほうが習得
しやすいみたいだって話があるな。lisp系でも同じようなことは
感じてるけど、やっぱり一つのパラダイムに浸ってしまったら
融通が効かないというのはあるのかもね。たしかに、squeakを最初に
さわって、今までの経験を忘れて触ったほうがとっつきやすいとも
思った。

585 :デフォルトの名無しさん:2011/11/15(火) 01:19:59.46
もうそろそろSmalltalk以外の動的型付け言語の
IDEの話も聞きたい所。

586 :デフォルトの名無しさん:2011/11/15(火) 08:54:23.61
>>585
まずはEclipse以外の静的型IDEから始めようか…
Eclipse自体がSmalltalkの脱け殻なんだから…

587 :デフォルトの名無しさん:2011/11/15(火) 09:12:51.79
eclipseFPを語れってか?

588 :デフォルトの名無しさん:2011/11/15(火) 09:41:21.62
Eclipse以外の有名なIDEってこの辺か
Visual Studio, NetBeans, IntelliJ IDEA

589 :デフォルトの名無しさん:2011/11/15(火) 10:08:51.86
EclipseとSqueakを比べると、北朝鮮とフリーセックスの国の違いみたいに
感じる。謎 一つのOSみたいだもん

590 :デフォルトの名無しさん:2011/11/15(火) 10:39:46.44
IDEつーか、OS上の全てが何処からでもソースやオブジェクト階層見れるって感じだしな


591 :デフォルトの名無しさん:2011/11/15(火) 12:18:17.54
触ってみて思ったことは589なんだけど、結局触らずして、語る人が
いかに多いかというのもよくわかったよ。やはり批評する前に少しでも
触ったほうがいい。

592 :デフォルトの名無しさん:2011/11/15(火) 12:36:30.26
動的言語最強IDE はvs2010のjavascript だろうな

593 :デフォルトの名無しさん:2011/11/15(火) 13:19:19.55
>>591
あれ、今は違うの?
昔、トランスクリプトをクリックしてクラスブラウザ呼び出して眺めた記憶あるんだけど。。。


594 :デフォルトの名無しさん:2011/11/15(火) 13:32:32.70
>>593
> 昔、トランスクリプトをクリックしてクラスブラウザ呼び出し

'70年代の暫定ダイナブックOS色を排除するためにデスクトップを無くしたSmalltalk IDEでは、
トランスクリプトウインドウに各種機能(クラスブラウザなど)を呼び出すための
ボタンを配置するUIがよく用いられますが、それのことですかね。

595 :デフォルトの名無しさん:2011/11/15(火) 13:39:44.27
>>594
いんやSqueak
ああ、VsualWorksとか、そっちのSmalltalkの話か


596 :デフォルトの名無しさん:2011/11/15(火) 13:39:56.18
>>593
バージョンによって使い勝手かなり変わってる。

597 :デフォルトの名無しさん:2011/11/15(火) 15:25:51.49
トランスクリプトもクラスブラウザも、自分で簡単にどうにでも変えられるところもSmalltalkらしさ

598 :デフォルトの名無しさん:2011/11/15(火) 18:29:26.92
動的のREPLはterminalの代わりの感じになるし、
動的系はやっぱり柔らかさがある感じがする。
アップデート後の再起動の必要もあまりないし、動的系言語で
静的言語IDEを作らせて見たらいいような気もする。
Javaで言えば、ClojureでJava用のIDEを作るみたいな感じ。

599 :デフォルトの名無しさん:2011/11/15(火) 19:08:11.50
>>598
気持ちは分かるが、javaで作られたEclipseでさえ遅い遅い言われてんのに、その上で走る動的言語にIDE作らせたら、どんだけ遅くなるのよ


600 :デフォルトの名無しさん:2011/11/15(火) 19:12:41.18
Squeak SmalltalkはJavaからすれば100倍くらい遅いのに(マイクロベンチマーク比べ)、
IDEではそんなに遅くは感じない、というか、Eclipseよりはるかにキビキビうごくんだよね。なんでだろう。

601 :デフォルトの名無しさん:2011/11/15(火) 19:19:00.28
アルゴリズムが悪いとか
Squeakにない機能を積んでいるとか
CPU以外がボトルネックになっているとか
あたりじゃね?

602 :デフォルトの名無しさん:2011/11/15(火) 19:29:19.61
>>600
Javaの場合、JavaVM本体の起動に時間がかかるから・・・
何だかんだで起動時間以外は体感できんよ


603 :デフォルトの名無しさん:2011/11/15(火) 19:35:31.78
Eclipseはメモリフットプリントでかすぎ
静的言語で無理にIDE作るから、無駄に複雑になってるんだろうな

604 :デフォルトの名無しさん:2011/11/15(火) 19:41:47.44
まだSmalltalk以外の動的言語用IDEは
でてないのかよ。
開発すらされてないのか?

605 :デフォルトの名無しさん:2011/11/15(火) 19:43:40.65
Eclipse以外のJavaのIDEは重くないけどな

606 :デフォルトの名無しさん:2011/11/15(火) 19:47:10.41
じゃあ、どうして重いEclipseを使い続けるの?

607 :デフォルトの名無しさん:2011/11/15(火) 19:47:17.63
動的言語で作られたIDEが見てみたい。

もちろんIDEなんで、コード補完とかバックグラウンドで
リアルタイムで処理しているものね。


なにもやってないから軽いとか
ジョークにしかならないから。

608 :デフォルトの名無しさん:2011/11/15(火) 19:51:13.37
補完君は、開発時にセンダーサーチとメソッド名補完しかしないのかな?

609 :デフォルトの名無しさん:2011/11/15(火) 19:52:53.32
>>607
とりあえずこれでも見てみてくれ。>>111
ここで使われているPharoっていうのはSqueakと実質同じSmalltalk IDEだ。

610 :デフォルトの名無しさん:2011/11/15(火) 19:53:29.27
>>608
リアルタイムコンパイルで、構文エラーを
すぐに教えてくれる機能も便利だよ。

611 :デフォルトの名無しさん:2011/11/15(火) 19:54:27.93
>>609
あ、Smalltalkはもうお腹いっぱい。

それ以外の動的言語でまともなIDEは無いんだねって
結論になってるのをくつがえそうぜ。

612 :デフォルトの名無しさん:2011/11/15(火) 19:56:05.12
>>610
そうだよね
構文チェックぐらいはSmalltalkどころかemacs上でも
とっくの昔に実現されているよね

613 :デフォルトの名無しさん:2011/11/15(火) 19:56:08.44
Smalltalkには勝てないので勘弁してください

614 :デフォルトの名無しさん:2011/11/15(火) 19:57:08.19
>>612
リアルタイムではないぞ。

615 :デフォルトの名無しさん:2011/11/15(火) 19:58:40.65
動的でIDEは商用ならLispworksとaclはあるが、使ったことがないので
評価できない。どちらも無料版はあるんだけどね。lisp系はemacs+slime
があまりに強力すぎて、IDE,IDEと言わなくなってしまう。common lispや
clojureではemacs+slimeがIDEの役目をしているかな。
あとは、schemeならdrrachetがある。こちらはオートインデントなどは
効くけど、補完はあるとしたら誰かが作ってるかもという程度。

616 :デフォルトの名無しさん:2011/11/15(火) 20:00:27.86
rubyならide的に使われてそうなのがtextmate/redcarだろうけど触ったことがない。
ちなみに、slimeの強力なのは、lispのREPLの強力さに由来する。

617 :デフォルトの名無しさん:2011/11/15(火) 20:09:10.21
>>614
そうだね
emacsの場合はリアルタイムじゃなくてキー押下イベント毎だね

618 :デフォルトの名無しさん:2011/11/15(火) 20:10:18.62
>617
キー押下イベントごとにmake実行すんの?
とんでもなくイライラしそうだなw

619 :デフォルトの名無しさん:2011/11/15(火) 20:10:58.56
だからすごく小さな開発しか、してないのでしょう?

620 :デフォルトの名無しさん:2011/11/15(火) 20:12:06.83
ああREPL使った事無いとこういう反応になるんだwww

621 :デフォルトの名無しさん:2011/11/15(火) 20:14:01.02
REPLは実行してしまうので、
間違った行に戻れません。

622 :デフォルトの名無しさん:2011/11/15(火) 20:16:44.69
>>621
え?www
お前がREPL使った事無いのは分かったwww

623 :デフォルトの名無しさん:2011/11/15(火) 20:18:43.62
いつものアサッテな人なんだろうけど、何人だろ?
1人でここまでオールラウンドにアサッテなのは難しいと思うんだ

624 :デフォルトの名無しさん:2011/11/15(火) 20:19:13.65
>>622
どこが間違ってるというのかい?w
書いてる時に実行したくないんだよね。

実行してしまったら間違って実行してしまったらどうする。

そんな行き当たりばったりの開発。
小さなスクリプトでしか使い物にならない。

625 :デフォルトの名無しさん:2011/11/15(火) 20:19:31.90
clojureはプロジェクト管理システムはまた別にあって、leiningenという
ものでまかなわれている。

626 :デフォルトの名無しさん:2011/11/15(火) 20:20:16.78
REPLは関数型言語では
それなりに使い物になると思うけどな。

副作用があるような開発では使えないよ。

627 :デフォルトの名無しさん:2011/11/15(火) 20:23:42.72
副作用のせいかどうかは知らんが、GNU Smalltalkは一種の精神修養だw
SmalltalkはGUIも込みの言語だということがよくわかる

628 :デフォルトの名無しさん:2011/11/15(火) 20:23:46.69
VB6使っていたことあるけどREPL機能があるよね。
ブレークポイントで止めて、イミディエイトウィンドウから
いろんな関数を実行できる。

あれはあれで便利だけど、これはIDEの一機能ではあるが、
IDEを置き換えるものではないだろう。

629 :デフォルトの名無しさん:2011/11/15(火) 20:24:08.49
>>623
凄腕の釣り師なんじゃないかと思ってる

630 :デフォルトの名無しさん:2011/11/15(火) 20:26:41.09
scalaのプロジェクト管理システムはsbtがある。
プロジェクト管理システムは分けてるから、IDE使わない派が出てくる。

631 :デフォルトの名無しさん:2011/11/15(火) 20:26:44.67
なんでREPLの話になってるんだ?
リアルタイムなコード補完からか。

REPL環境にならないとコード補完ができないっていうのは
制約だろう?常にREPL環境にいるわけじゃないし、
エディタ状態でもコード補完ぐらい出来なくては。

632 :デフォルトの名無しさん:2011/11/15(火) 20:28:21.36
大抵の動的言語のIDEがエディタのemacsである件
(あれ、静的言語もか?)


633 :デフォルトの名無しさん:2011/11/15(火) 21:15:04.38
C#とかVBなら当然VSだし、JAVAもNetBeansやInteliJがよく使われてる。

634 :デフォルトの名無しさん:2011/11/15(火) 21:18:07.34
607の質問に答えたらemacsとreplの話になってしまったんだが。
これほど拒絶反応があるとは・・・ ある意味面白い。

635 :デフォルトの名無しさん:2011/11/15(火) 21:20:18.98
動的言語で作られたIDEの名前はやっぱりでないのか。
EclipseやNetBeansを出してくると思ったんだけどな。
(中途半端ながら採用している)

636 :デフォルトの名無しさん:2011/11/15(火) 21:59:52.17
このスレのタイトル・・・

何を今さらw

637 :デフォルトの名無しさん:2011/11/16(水) 00:21:14.46
Scalaはいいよね。強い静的型付けだし。

638 :デフォルトの名無しさん:2011/11/16(水) 00:36:52.49
補完はできて当然として
クイックリファレンスを自動的にチップ出して表示するぐらいが最低ライン
関数の呼び出し元や先、定義実装辺りも同時に表示すべき
コードを書くという行為以外の全てを自動的にバックグラウンドで行うのが理想

639 :デフォルトの名無しさん:2011/11/16(水) 05:05:10.28
その全てが可能だとしても、Javaはうんこ
メモ帳で書くRubyの1/10の生産性

640 :デフォルトの名無しさん:2011/11/16(水) 06:21:51.25
emacsはエディタと言うより環境だわなあ

641 :デフォルトの名無しさん:2011/11/16(水) 06:55:37.97
emacsを拡張するよりもahkで拡張した方が楽だと気づいた
エディタ以外でも使えるし
ブラウザでも使える、そしてhtml5の時代
emacsに求めていたものが本質の人は移行すると思うし
emacsそのものを求めている人はそこで化石になればいい

642 :デフォルトの名無しさん:2011/11/16(水) 09:26:31.52
emacsが環境()

643 :デフォルトの名無しさん:2011/11/16(水) 09:39:11.71
Smalltalkでおなかいっぱいなところに「emacsは環境」とか強調されても困惑する

644 :デフォルトの名無しさん:2011/11/16(水) 09:53:13.70
でもeclipseみたいなもっさりIDEと比べたらemacsのが遥かにマシ
eclipse使って満足してる奴って思考速度が常人より数段劣ってる感じ

645 :デフォルトの名無しさん:2011/11/16(水) 10:41:52.16
まだintelliJなら使えるなと思ったけど、eclipseは思考ツールとして使おう
と思ったら、厳しいと思った。淡々と資材を並べて組み立てていくなら問題ない。

646 :デフォルトの名無しさん:2011/11/16(水) 11:14:59.89
言葉を選んでるけど、それってドカタ仕事専用ってことだよね

647 :デフォルトの名無しさん:2011/11/16(水) 11:19:51.30
このスレって要するに

 「動的言語をドカタに使わせていはいけない」でFA?

ってことだったのか。

648 :デフォルトの名無しさん:2011/11/16(水) 12:21:38.05
CUIでの開発作法を身につけた上で、
EclispみたいなGUIベースのIDEで作業効率化!! という話なら分かるけど、
どうもこのスレのJava厨はGUIしか使えないドカタだものなぁ....

649 :デフォルトの名無しさん:2011/11/16(水) 12:32:45.28
落ち着けLisper

650 :デフォルトの名無しさん:2011/11/16(水) 12:40:01.27
Java厨にFizzBuzz書いてってお願いしたら
「FizzBuzzクラス無いんですか?じゃあメソッドは?無い?あばばばば」
って言い出すイメージ

651 :デフォルトの名無しさん:2011/11/16(水) 12:57:30.47
それで補完が無くなったらFizzBuzzという言葉すら打てない(ry

652 :デフォルトの名無しさん:2011/11/16(水) 13:29:01.09
Javaでは
printTheNumbersFromOneToOneHundredButForMultiplesOfThreePrintFizzInsteadOfTheNumber
AndForTheMultiplesOfFivePrintBuzzAndForTheMultiplesOfBothThreeAndFivePrintFizzBuzz
っていうメソッド名になるよ
補完無しでは打てないよ

653 :デフォルトの名無しさん:2011/11/16(水) 13:37:42.99
"FizzBuzz" は変数じゃなくて文字列定数なんだから補完できない
正規表現もSQLも補完できない

なるべく定数を少なく変数を多くするためにフレームワークを発展させた

654 :デフォルトの名無しさん:2011/11/16(水) 17:20:53.36
補完できないからフレームワークが発達した説が登場
常に補完を軸に考えるその発想が面白い

文字列定数だから補完できないって謎主張も面白い

655 :デフォルトの名無しさん:2011/11/16(水) 17:27:37.10
現在選択している文字列に対して、全ソースコード中の文字列定数から補完する、とかならSmalltalkなら10行ぐらいで書けそうだな。

656 :デフォルトの名無しさん:2011/11/16(水) 18:43:42.70
環境にこだわる人はプログラム作れない言い訳をしているのかね?

657 :デフォルトの名無しさん:2011/11/16(水) 19:06:19.08
ギリギリ作れるか作れないかのプログラムを前提としている。
環境がなくても作れるプログラムや
環境があっても作れないプログラムでは勝負がつかない。

658 :デフォルトの名無しさん:2011/11/16(水) 19:26:18.11
動的型付け言語って何?

659 :デフォルトの名無しさん:2011/11/16(水) 19:42:13.93
性的種なし言語とは違う。

660 :デフォルトの名無しさん:2011/11/16(水) 20:48:20.58
http://www.javafesta.jp/2006/pdf/C3.pdf
JBoss Seam のプレゼン読んだらJSFの問題点が書いてあった。
第1位 URL が遅れる (Postback)
第2位 GET Method のパラメータは取得不可
第3位 戻るページ対策、二度押し対策の不備
javaすごいな!よくこんなんを標準採用したな!

661 :デフォルトの名無しさん:2011/11/16(水) 21:17:39.14
emacsユーザーは勘違いしてる
あれはlispを使うためのエディタとして開発されたのであって
使いやすいエディタという思想はない
操作を見ればすぐにわかる
上下左右移動
ctrl-n ctrl-p ctrl-f ctrl-b
使いやすさじゃなくて覚えやすさでとりあえず決めてみました
使い慣れたのでこのままにしておきます、後はカスタマイズしてね

おかしいと気づけ

662 :デフォルトの名無しさん:2011/11/16(水) 22:02:25.27
next,previous,forward,back... なんのことでしょう?

663 :デフォルトの名無しさん:2011/11/16(水) 22:32:29.37
undoのキーバインドが標準ではctrl-x uなのはアホかと思った

664 :デフォルトの名無しさん:2011/11/16(水) 22:35:02.06
ストールマンがlisperなのは周知だが
gosmacsは別にlisp用じゃないぞ
確かにelispは強力だしあの拡張性のおかげで
20年以上も使い続けられてるんだしな

665 :デフォルトの名無しさん:2011/11/16(水) 22:38:53.11
elispはあえてlispでも動的な仕様になってて
エディタ使いながら動的に機能追加や
変更が出来る
stもだが動的言語で環境作る利点だし
静的な環境でも参考にすべき特徴だと思うがね

666 :デフォルトの名無しさん:2011/11/16(水) 23:02:23.50
eclipseもプラグイン開発環境で作業すれば動的に機能追加や変更はできるね。
emacsほど手軽ではないが。

667 :デフォルトの名無しさん:2011/11/16(水) 23:38:44.52
やっぱり今日も、動的型付け言語は
大規模開発では効率が悪いって結論か

668 :デフォルトの名無しさん:2011/11/17(木) 01:08:25.41
大規模開発がドカタを一人でも雇わなければ成り立たない現状、その結論でやむを得んな。

669 :デフォルトの名無しさん:2011/11/17(木) 01:33:43.39
emacsではautoitやahkみたいなのには勝てんよ
環境としてもos相手に戦えるほど高機能じゃない
初心者には使いづらい
しかもemacsを使い続けると保守的になりすぎて他のエディタが使えなくなる
emacs村の住人として永住を決めない限り無理

670 :デフォルトの名無しさん:2011/11/17(木) 02:28:37.30
autoitやahk?ウィンドウズ専用か そりゃ違う世界だな。
どうぞゲイツの尻でも舐め続けてください。

671 :デフォルトの名無しさん:2011/11/17(木) 07:21:41.78
>>670
>>668
>>666
>>660
>>659
>>657
>>655

うむ

672 :デフォルトの名無しさん:2011/11/17(木) 07:40:22.47
>>667-668
出来る事と言えば用意されたメソッドを順番に呼び出す事だけ、
自分一人ではFizzBuzzすら書けないドカタを使った大規模開発か

そういうドカタを片っ端から首切るのが一番効率が良さそうだが

673 :デフォルトの名無しさん:2011/11/17(木) 08:23:07.26
だいたいこの流れ↓になるよね。

・動的型付け言語だと〜は? → Smalltalkは〜できる
・静的型付け言語はリファクタリングが強力 → Smalltalkが元祖

674 :デフォルトの名無しさん:2011/11/17(木) 08:25:13.28
Smalltalkのリファクタリングって、どの程度のことまで出来るん?

675 :デフォルトの名無しさん:2011/11/17(木) 08:27:26.20
scalaって読みづらいよね。省略が多すぎる。_とか。

676 :デフォルトの名無しさん:2011/11/17(木) 08:44:01.82
>>672
開発にそんな奴いないからw

この仕事してるなら常識でわかるよね?


677 :デフォルトの名無しさん:2011/11/17(木) 08:44:37.95
・動的型付け言語だと〜は? → Smalltalkは〜できる
・静的型付け言語はリファクタリングが強力 → Smalltalkが元祖
・Smalltalk以外は? → 動的型付け言語だめだめじゃんw

678 :デフォルトの名無しさん:2011/11/17(木) 08:46:06.82
・動的型付け言語だと〜は? → Smalltalkは〜できる
・静的型付け言語はリファクタリングが強力 → Smalltalkが元祖
・Smalltalk以外は? → 動的型付け言語だめだめじゃんw
・でもSmalltalkはでk → でも仕事でSmalltalk使われてないじゃん。お前も使ってないでしょ?
・ぐぬぬ

679 :デフォルトの名無しさん:2011/11/17(木) 08:49:33.69

動的型付け言語は大規模開発で使えるか? → Smalltalkなら可能 → ただし大規模どころか小規模開発でも使われない言語

680 :デフォルトの名無しさん:2011/11/17(木) 11:41:20.60
抽象化が得意な人ならどうでもいい技術なんだろうな。結局センスの悪い
プログラムが多いから、リファクタリングを騒いでる感じ。 CSを学んでる
人だったら、そのへんのセンスは改善されるだろう。力技に夢見るより
ちょっとくらい勉強したほうがいいよ。
ガウディ本を勉強するならozと遊ぶことになるだろうがoz/mozartはIDEで
騒いでいる人には悪夢かもしれない。


681 :デフォルトの名無しさん:2011/11/17(木) 11:57:32.98
>>676
「FizzBuzz書ける」と言ってるドカタも、
ちょっと問題をアレンジしたら書けなくなるけどね。
ネットに落ちてるコードを探してコピペしてるだけで、
実際には自分で書いてないから。

例えば、端末へ出力する代りに結果をリストで返すようにして、
さらに戻り値のリストの中の数値の総和を計算するとかね。
もちろんリストで戻すときは、数値は数値型のまま、"Fizz"や"Buzz"は文字列型で。

682 :デフォルトの名無しさん:2011/11/17(木) 12:09:20.53
FizzBuzzレベルを自力で書けない奴には
実際には使われないダミーのコード書かせている

683 :デフォルトの名無しさん:2011/11/17(木) 12:23:13.72
究極の動的言語とは実行時に自らの言語仕様を変化させる

684 :デフォルトの名無しさん:2011/11/17(木) 12:42:11.78
>>683
Qiやmaximaを調べてみればいい。

685 :デフォルトの名無しさん:2011/11/17(木) 12:42:13.71
>>682
CUIでなおかつ動的型付けなら、テストコード書かせればいいと思うけど

GUIはテスト自動化できないし静的型付けはテストしたら損かなと思う
この閉塞感はたぶん脳に悪い

686 :デフォルトの名無しさん:2011/11/17(木) 12:46:26.69
>>685
テストに失敗するたびに
条件分岐が増えるから
ダミーを書かせた方がいいよ

687 :デフォルトの名無しさん:2011/11/17(木) 12:50:44.17
なんで雇ってるんだろ。そんな人

688 :デフォルトの名無しさん:2011/11/17(木) 12:55:39.12
大規模ってのが売りなんだから、人数を減らすのはおかしい

689 :デフォルトの名無しさん:2011/11/17(木) 12:58:38.53
規模に関わらず
わりとよくいるけどな

690 :デフォルトの名無しさん:2011/11/17(木) 13:28:35.62
http://komachi.yomiuri.co.jp/t/2009/1128/278716.htm
なんだね。

691 :デフォルトの名無しさん:2011/11/17(木) 13:58:19.79

大規模開発の定義を静的派が一向に明示しない事からしても、ここが隔離スレなのは明らかだが、何れにしても、雇用に影響しない程度のしょぼい規模では話にならないだろう。
公共事業レベルだと、品質は勿論重要だが、それ以上にスキルのばらつきが多い要員をあえて採用して(公共事業だからね)、如何にプロジェクトを軟着陸させるかがポイントになる。
つまり熟練者には邪魔でしかない機能や、一貫性がなくても世間的にそういうものだと思われている方法、回りくどい手続きが外せなくなる。

動的派が見落としているのはまさにこの点で、彼らは自分のスキルを基準に考えるからおかしくなる。
「大規模」というのは、信じがたいほど低スキルの人間もあえて使わざるを得ない、という現実を知っておいた方がいい。

692 :デフォルトの名無しさん:2011/11/17(木) 14:04:58.56
昔出てた話じゃが 少数精鋭が 大規模に勝るのは当然という結論ですね。

693 :デフォルトの名無しさん:2011/11/17(木) 18:20:00.94
すいませんemacsでC-sってキーボードの何を押すのですか?

694 :デフォルトの名無しさん:2011/11/17(木) 18:31:28.97
FizzBuzzレベルが書けないドカタが戦力になるの?
Javaはすげーな

695 :デフォルトの名無しさん:2011/11/17(木) 18:38:40.25
戦力にならんから
ダミーコード書いているんだって

696 :デフォルトの名無しさん:2011/11/17(木) 18:38:45.80
大規模開発に携われば君も分かるよ。

697 :デフォルトの名無しさん:2011/11/17(木) 18:40:56.61
ダミーコードのメソッドをIDEで延々とリネームし続けるわけですね

698 :デフォルトの名無しさん:2011/11/17(木) 18:42:41.84
いやリファクタリングとか教えてないから

699 :デフォルトの名無しさん:2011/11/17(木) 18:50:14.31
職場ではダミーコードしか書かせてもらってないドカタが
このスレで「動的言語は効率が悪い」と言ってると思うと
なんだか悲しい気分になるな

700 :デフォルトの名無しさん:2011/11/17(木) 19:02:14.60
学生なんですがFizzBuzz書けなくてもお金もらってる人がいるってそれ本当なんですか?特異な例ではないのですか?

701 :デフォルトの名無しさん:2011/11/17(木) 19:14:04.92
>>700
求人サイトで
コミュニケーション力のある方って
求人良く見るでしょ

702 :デフォルトの名無しさん:2011/11/17(木) 19:24:39.53
>>700
このスレのJavaドカタにFizzBuzz(>>681みたいなの)を書いてとお願いしたら?
本当に書けるなら書いてくれるよ。一分くらいで書けるはずだし。

あ、一分じゃeclipse起動するだけで終わっちゃうかw

703 :デフォルトの名無しさん:2011/11/17(木) 19:30:28.40
>>681をJavaで書いて下さい

704 :デフォルトの名無しさん:2011/11/17(木) 19:30:53.41
>>699
少数に群がるなんとかだから大規模といって大手を振ってこのスレに
来る時間があるんだよ!

705 :デフォルトの名無しさん:2011/11/17(木) 22:38:10.62
>>694
> FizzBuzzレベルが書けないドカタが戦力になるの?
> Javaはすげーな

本気でそう思っているんだろ?
動的厨は。

だから馬鹿だと言われる。
世間知らずで仕事やってない証拠でもあるんだろう。

706 :デフォルトの名無しさん:2011/11/17(木) 22:51:52.26
Java屋じゃないけど書いてみたぞ、だからコードはたぶんJava屋らしくないだろう
http://ideone.com/7mPvk
Javaには組み込みのジェネレータや無限リストが無いからそもそも面倒くせーし
さらにこれはBigInteger使ってないからすぐオーバーフローするダメなコードだ
正直この程度のコードパッと書けないやつなんてゴロゴロいるんじゃねーかな
「プログラミング好き」には理解しがたいことだと思うが


707 :デフォルトの名無しさん:2011/11/17(木) 23:03:27.88
>>706
いつもどんな言語を使っている人?
すごく冗長だよね。

708 :デフォルトの名無しさん:2011/11/17(木) 23:05:29.96
>>707
Javaで書くとこんな感じになると思うけど……ためしに自分で書いたらどう?
ジェネレータっぽいものはたぶんjava.lang.Iterableで実装するんだけど
ジェネレータがないから明示的に4つぐらいのメソッドと状態機械を
実装しないといけない

709 :デフォルトの名無しさん:2011/11/17(木) 23:05:52.00
メンバ変数のケツにアンダースコアが付いてたり++nと書いてたりするあたりからC++じゃね?

710 :デフォルトの名無しさん:2011/11/17(木) 23:06:15.04
それと、言うまでもなくtakeとかfilterみたいな便利関数もないからね

711 :デフォルトの名無しさん:2011/11/17(木) 23:13:00.33
>>706
設計がおかしいね。

イテレータ使うのはまあいいとして、イテレータの終了条件が、
イテレータが持っているのではなく、無関係のループ内部にある。

これじゃイテレータじゃなくて、数値生成してるだけ。

とおもいきや、イテレータでやるべきではない条件判定処理が
イテレータ内部にある。

どう見ても”こんなテクニックを知ったから使ってみた”レベル。


712 :デフォルトの名無しさん:2011/11/17(木) 23:15:58.73
>ちょっと問題をアレンジしたら書けなくなるけどね。

現実的な「アレンジ」というのは、

count は DB から読むこと。DB は Oracle, Postgresql を切り替えられるように抽象化すること。
これをサービス化して総和をクライアントに返すこと。

こういう事を言う。
プログラミング「好き」なだけの奴は、こういうアレンジに弱い。
普及していない言語は、こういうアレンジに弱い。

713 :デフォルトの名無しさん:2011/11/17(木) 23:16:25.64
>>711

無限列なんだから終了条件がitratorの側にあるわけがないんだが……
無限リストやジェネレータというキーワードを言ってるのにそういうことを
言うってのは、話が通じていないということかしら?

714 :デフォルトの名無しさん:2011/11/17(木) 23:16:58.38
>>708
普通に作るのであれば、

FizzBuzzクラスが、FizzBuzzを解くという責務を持ったクラスなら、
ループはFizzBuzzクラスが持つべき。

FizzBuzzクラスが(その名前に反して)数値の集合を生成するものであれば、
new FizzBuzz(0,count)とするべき。

一番ひどいのは、for (Object x: 略 { を使っているのに、
その終了条件が、if (--count < 0) break; であること。

715 :デフォルトの名無しさん:2011/11/17(木) 23:18:50.28
結局 FizzBuzz を効率的にエレガントに書けるというのは、
むしろ「小規模開発で力を発揮する言語」だ。

716 :デフォルトの名無しさん:2011/11/17(木) 23:19:39.07
無限列なら終了条件はいらないだろう?

717 :デフォルトの名無しさん:2011/11/17(木) 23:20:07.98
>>714
そこは無限列から有限個の要素をtakeしたいんだけど、takeのような便利なものは
ないからベタにループで書いてるだけですよ

718 :デフォルトの名無しさん:2011/11/17(木) 23:21:07.26
大規模開発で効率が悪いってのは言い換えると、
小さなプログラムなら動的型付け言語のほうが得意ってことだよ。

だから小規模なFizzBuzzが得意でも、「大規模開発で効率が悪い」を
否定することにはならないからね。

719 :デフォルトの名無しさん:2011/11/17(木) 23:21:43.81
>>716
FizzBuzzジェネレータには終了条件はいらないし
無限列を生成するほうが汎用的
総和を計算するにはどこかで計算を打ち切らないといけないので終了条件が必要

720 :デフォルトの名無しさん:2011/11/17(木) 23:22:19.94
>>717
自分で、takeメソッドを実装すればいいだろう?

そのtakeメソッドの戻り値(有限個の要素)をfor(x : ここ )に指定すればいいんだよ。

721 :デフォルトの名無しさん:2011/11/17(木) 23:23:01.22
>>720
もちろん作れるが、この程度のコードでは行数が無駄に増えるだけだな

722 :デフォルトの名無しさん:2011/11/17(木) 23:23:04.24
えっ

723 :デフォルトの名無しさん:2011/11/17(木) 23:23:44.91
>>721
じゃ、作ってみ。

724 :デフォルトの名無しさん:2011/11/17(木) 23:24:05.05
それと、この場合は実際にはリストを返すtakeは必要がない
(1-passで総和を計算したいだけ)
なので、実際にはtakeを作ると効率も悪化する

725 :デフォルトの名無しさん:2011/11/17(木) 23:24:30.31
書かない奴の方が偉そうなのがいつもの2chだな

726 :デフォルトの名無しさん:2011/11/17(木) 23:24:39.39
ここで問題になってるのはFizzBuzzレベルが
書けないプログラマがいるかどうか?なんだが

そんで、動くJavaのコードを書いてみせてるのが
今のところJava屋じゃない奴しか居ないってのが

727 :デフォルトの名無しさん:2011/11/17(木) 23:25:36.05
>>724
うん。だからそもそもイテレータを使わないほうがいいんだよ。この場合は。

そもそもそこがおかしいんだけど、それはそれでそういう考え何だろうってことで
> イテレータ使うのはまあいいとして
って書いたんだけど。

728 :デフォルトの名無しさん:2011/11/17(木) 23:25:56.52
>>723
そんなもん
List take(Iterable seq, int count) {
 List xs = new ArrayList();
 Iterator it = seq.Iterator();
 for (int i = 0; i < count && it.hasNext(); ++i) xs.add(it.next());
 return xs;
}
程度で済む話だろ
見ればわかるようにこの場合には完全に無駄で、無益だ

729 :デフォルトの名無しさん:2011/11/17(木) 23:26:46.41
>>727
いやそれは元の問題がリストを返せと言ってるから
無限リストの代用としてIterableを使ったんじゃないか
ちゃんと理解してるか?

730 :デフォルトの名無しさん:2011/11/17(木) 23:27:25.88
>>726
> FizzBuzzレベルが書けないプログラマがいるかどうか?

ほうw

じゃあ、それを証明する方法を考えてくれ。


たぶんその証明方法を使えば、
どんな言語でも「FizzBuzzレベルが書けないプログラマがいる」は
成り立つだろうな。

731 :デフォルトの名無しさん:2011/11/17(木) 23:29:22.97
そもそも無限リストなんか使わなくていいんじゃね?

俺なら、FizzBuzzはただのループで書くよ。

そのほうが効率的でコード量も減るだろう?
↑これに反論があるならレスよろしく。

732 :デフォルトの名無しさん:2011/11/17(木) 23:30:12.22
つまりこれは、どうしても無限リストを使いたいがために
冗長になってしまった例である。

733 :デフォルトの名無しさん:2011/11/17(木) 23:30:19.84
関数型の作り方なら、イテレータで無限リストやmap+判定関数で十分だけど
Javaって末尾再帰できないんじゃなかったっけ?
元々の問題は無限リストじゃなくて1..100だから。抽象性を下げた作り方
で十分なんだろうな。

734 :デフォルトの名無しさん:2011/11/17(木) 23:30:38.66
>>731
だから問題は
>>681
なんだって
ただのFizzBuzzならこんなコード書くわけがない


735 :デフォルトの名無しさん:2011/11/17(木) 23:32:24.90
関数型やってる人って、どうしても普段から抽象性を重視するクセがあるから
java屋たちとは感覚がかなり違うのは仕方がないかも。

736 :デフォルトの名無しさん:2011/11/17(木) 23:33:38.85
> もちろんリストで戻すときは、数値は数値型のまま、"Fizz"や"Buzz"は文字列型で

この条件をつけたのは、わざとJavaで不利になるように?

737 :デフォルトの名無しさん:2011/11/17(木) 23:34:38.38
>>735
それは違うだろ。っていうかあまり関係ない。

738 :デフォルトの名無しさん:2011/11/17(木) 23:34:51.01
public class FizzBazz {
 static List fizzBazz(int n) {
  List l=new ArrayList();
  for (int i=1;i<=n;i++)
   l.add((i%3==0?"Fizz":"")+(i%5==0?"Bazz":"")+((i%3)*(i%5)==0?"":""+i));
  return l;
 }
 public static void main(String[] args) {
  int sum=0;
  for (Object x:fizzBazz(100))
   try{sum+=Integer.parseInt((String)x);}catch(Exception e){}
  System.out.println(sum);
 }
}


739 :デフォルトの名無しさん:2011/11/17(木) 23:34:55.80
>>735
>>711, >>714あたりにはちょっと驚いた
関数型やジェネレータを有する言語をまったく知らないのは明らかなんだが
設計常識として自分の正しさを信じて押し付けてくるタイプのようだから
上司だったら嫌だな


740 :デフォルトの名無しさん:2011/11/17(木) 23:36:21.26
>>739
笑。それはお前の勘違いだ。

俺が知らないいのは、過去スレ読んでないだけだよw

741 :デフォルトの名無しさん:2011/11/17(木) 23:37:12.47
途中から参加したから、過去スレ読んでない。
スマンなwww

742 :デフォルトの名無しさん:2011/11/17(木) 23:40:56.09
scalaサイコー

def fizzBuzz = Iterator.from(1).map {
case n if n % 15 == 0 => "FizzBuzz"
case n if n % 3 == 0 => "Fizz"
case n if n % 5 == 0 => "Buzz"
case n => n
}

def fizzBuzzSum(count: Int) = fizzBuzz.take(count).collect{case x: Int => x}.sum

743 :デフォルトの名無しさん:2011/11/17(木) 23:41:49.01
>>742
やっぱりscalaは静的型付け言語の中で最高の言語だよな。

動的型付け言語をはるかに上回ってる。

744 :デフォルトの名無しさん:2011/11/17(木) 23:42:14.99
は? Scalaは動的言語なんだけど?

745 :デフォルトの名無しさん:2011/11/17(木) 23:43:38.65
>>744
無知発見w

いや、それとも、動的言語と動的型付け言語の区別がついてないのか?


Scalaは静的型付け言語です。
http://ja.wikipedia.org/wiki/Scala
> Scala (スカラ、スカーラ、スケイラ、Scalable Language) は
> オブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。
> 型付け 強い静的型付け

746 :デフォルトの名無しさん:2011/11/17(木) 23:46:36.42
>>738
それは短くて効率もいいんだが、大きなnに対し大量にメモリを消費するし
終了条件が単純な個数でない場合に使いにくい

>>742
まったく、Javaで書くのが馬鹿らしくなるな


747 :デフォルトの名無しさん:2011/11/17(木) 23:48:40.61
>>746
後から条件を足すのは反則だな

748 :デフォルトの名無しさん:2011/11/17(木) 23:49:06.30
>>746
JavaもScalaも同じ静的型付け言語なんですから
ケンカしないでください。

749 :デフォルトの名無しさん:2011/11/17(木) 23:49:32.00
>>746
小規模なコードを Java で書く奴はいないだろ。例が悪い。

750 :デフォルトの名無しさん:2011/11/17(木) 23:50:57.53
>>747
いや、実際の開発はそんなもんだが……

実際はそこまで必要ではないことは多いが
いずれにせよ見ればすぐに気づく程度の欠点だ

751 :デフォルトの名無しさん:2011/11/17(木) 23:52:08.20
>>750
いや、だからメモリ消費を気にしなきゃいけない規模で、Java なんだったら
「リストで返せ」という仕様が馬鹿そのものだと上流で噛み付くべき。

752 :デフォルトの名無しさん:2011/11/17(木) 23:52:49.62
まあ、そうだな

753 :デフォルトの名無しさん:2011/11/17(木) 23:53:17.89
>>746
毎回文字列を数にパースし直す(失敗するたびに例外発生する)コードが効率良いか?

754 :デフォルトの名無しさん:2011/11/17(木) 23:54:47.42
>>753
ああ、よく見てなかったwwwごめん
効率に関する発言は、単にIterableとArrayListの差に関するもんだと思って

755 :デフォルトの名無しさん:2011/11/17(木) 23:55:47.70
>>753
文字と数値を混ぜて返すという仕様が馬鹿そのものだと
上流に噛み付きましょう。

756 :デフォルトの名無しさん:2011/11/17(木) 23:56:46.40
Scalaいいんだけど
>>742がベタにループで書いたコードと同程度の効率なら言うことはない
そうではないのが残念だ

757 :デフォルトの名無しさん:2011/11/17(木) 23:56:58.01
そういやRubyからScalaへの乗り換えが多いんだって?
Ruby遅いから。

758 :デフォルトの名無しさん:2011/11/17(木) 23:57:31.10
>>756
だから上流にかみつけと

759 :デフォルトの名無しさん:2011/11/17(木) 23:57:48.69
むしろ738はウケ狙いでバカコードを書いたつもりだったんだが、普通に盛り上がると思わんかった。

というか、Java で真面目に書くなら、
まずは「Integer もしくは String」を表現する型を定義するところからだろ。
そういう所を端折って Object 型にするなら、それこそ Java で書く意味がない。
土台から丁寧に固めて行くのが Java 流だし、その手堅さこそが大規模になった時に生きる。

760 :デフォルトの名無しさん:2011/11/17(木) 23:59:29.79
で、そこから話が進んでいって、

動的型付け言語は大規模開発で効率が悪いという結論になる。

761 :デフォルトの名無しさん:2011/11/18(金) 00:01:21.16
>>755
いやそう馬鹿でもないんじゃね
動的型ならごく自然だし
ADTがある言語ならただのunionだし
Cでも低レベルのunionを使ってvariant的なことはできる
タグつきunionみたいなのは言語処理系の実装ではたいてい使われているはずだ
Javaで手抜きをするとObjectを使うことになってイマイチ、というだけ

762 :デフォルトの名無しさん:2011/11/18(金) 00:04:42.55
> 動的型ならごく自然だし
いい加減動的型と動的型付け言語の区別つけろよ。
Javaは動的型だぞ。

あと動的型付け言語は遅い。

763 :デフォルトの名無しさん:2011/11/18(金) 00:07:01.03
何か大規模=良いことと勘違いしてるのが紛れ込んでるな。
必須機能を実現するのに、リソースを大量消費するのはスキルが低いせいなんだが、バブルが忘れられない団塊かな?

764 :デフォルトの名無しさん:2011/11/18(金) 00:08:31.73
>>742 の scala のコード、
型は Object ではなくちゃんと union 的になってるの?
つまり case x:Int のところに Int でも String でもない型を書いたら、
それは有り得ない case だとして弾いてくれる?

765 :デフォルトの名無しさん:2011/11/18(金) 00:09:44.03
>>739
JavaはJavaのバッドノウハウが必要なんだろうけど、関数型やってると
どうもね。。。

766 :デフォルトの名無しさん:2011/11/18(金) 00:10:30.27
>>765
関数型には代入というバッドノウハウが。

767 :デフォルトの名無しさん:2011/11/18(金) 00:14:13.07
>>763
大規模開発は知らずに一生を終えられるならその方が幸せだよ。
好きでやってる人は少ないだろう。原発作業員のようなものだ。
そういう人をドカタと馬鹿にするのはどうかと思うけどね。

768 :デフォルトの名無しさん:2011/11/18(金) 00:15:02.45
さしずめ Smalltalker は東電のエリート様のような存在でしょう。

769 :デフォルトの名無しさん:2011/11/18(金) 00:15:34.77
>>763
お前何か勘違いしてないか?

大規模ってのは、開発の規模が大きいってことで、
リソースを大規模に使用する開発のことじゃないんだがw

770 :デフォルトの名無しさん:2011/11/18(金) 00:16:51.67
バブル後もいわゆる請負SI屋はゲーム屋やパッケージソフト屋(日本ではほとんど
死滅したが)に比べて競争力にさらされる度合いが低いので、
それほど淘汰がすすまずスキルの低い要員をかかえて雇用するという形態が
成立してたと思う
社会における雇用、という高い観点で考えるとこれも重要なことっす
役人じゃなくても大企業の責任のある立場にある人なら考えなければいけないこと

ま、競争が激しいところだと非効率は結局淘汰されることになりますよね
要はプログラマとして食える人間が少なくなる

771 :デフォルトの名無しさん:2011/11/18(金) 00:18:38.99
日本語でおk

772 :デフォルトの名無しさん:2011/11/18(金) 00:20:14.22
要は優秀な人間どの会社も雇わなくなったら
社会が社会としてなりたたなくなるでしょう、という話

773 :デフォルトの名無しさん:2011/11/18(金) 00:21:46.95
>>772
ロボットが人間の仕事を取るようなものだな。

774 :デフォルトの名無しさん:2011/11/18(金) 00:22:31.78
×要は優秀な人間どの会社も雇わなくなったら
○要は優秀な人間以外どの会社も雇わなくなったら

ごめんwww
上じゃ意味わからんわwww

775 :デフォルトの名無しさん:2011/11/18(金) 00:22:56.80
>>764
弾いてくれません

776 :デフォルトの名無しさん:2011/11/18(金) 00:29:12.16
>>772
もともと優秀かどうかより、>>701みたいはなしが多いから。
社会がだんだん弱ってるんだろうな。

777 :デフォルトの名無しさん:2011/11/18(金) 00:30:13.33
>>764
Any型っていうJavaでいうObjectみたいな型になるunion的なの使うならこんな感じ

sealed trait StrOrNum
case class Str(s: String) extends StrOrNum
case class Num(n: Int) extends StrOrNum

def fizzBuzz = Iterator.from(1).map {
case n if n % 15 == 0 => Str("FizzBuzz")
case n if n % 3 == 0 => Str("Fizz")
case n if n % 5 == 0 => Str("Buzz")
case n => Num(n)
}

def fizzBuzzSum(count: Int) = fizzBuzz.take(count).collect{case Num(x) => x}.sum

778 :デフォルトの名無しさん:2011/11/18(金) 06:10:15.41
let rec fizzbuzz n =
  let x = match (n mod 3, n mod 5) with
      (0, 0) -> `Str "FizzBuzz"
    | (0, _) -> `Str "Fizz"
    | (_, 0) -> `Str "Buzz"
    | (_, _) -> `Int n
  in [< 'x; fizzbuzz (n + 1) >]

let fizzbuzz_sum n =
  let add x = function `Int y -> x + y | _ -> x
  in List.fold_left add 0 (Stream.npeek n (fizzbuzz 1))

779 :デフォルトの名無しさん:2011/11/18(金) 06:33:01.98
def fizzbuzz(n): return map(lambda n: 'FizzBuzz' if n % 15 == 0 else 'Fizz' if
        n % 3 == 0 else 'Buzz' if n % 5 == 0 else n, range(1,n+1))
def fizzbuzz_sum(n): return sum((x for x in fizzbuzz(n) if isinstance(x, int)))

780 :デフォルトの名無しさん:2011/11/18(金) 06:35:32.48
>>769
それで「開発の規模って何で測るのさ?」という問いが出るたびに
何の答えも出てこないんだよね、このスレは。

781 :デフォルトの名無しさん:2011/11/18(金) 06:50:53.19
さて、fizzbuzz自慢が花ざかりのようで結構結構。

さらに次の条件を加えてみよう
7で割り切れる時にはbaka。
合計する時、bakaは3.14として計算する。

さあ、各言語のfuzzbuzzsumはどれだけ変更が必要かな?

782 :デフォルトの名無しさん:2011/11/18(金) 06:59:41.89
>>712
それってFizzBuzzレベルのコードは書けないけど
APIは知ってますよってことだろ?
まさに>>672が指摘するドカタの人物像そのままじゃん。

お前自身はケチつけるだけで一行もコード書けなかったみたいだしね。
ホントお前面白いわww

783 :デフォルトの名無しさん:2011/11/18(金) 07:14:53.79
>>781
3と7の公倍数や5と7の公倍数はどうすんの?

784 :デフォルトの名無しさん:2011/11/18(金) 07:28:16.27
>>783
そういう仕様を煮詰められないとこがドカタだよな
たぶん>>781はFizzBuzz問題を理解してない

785 :デフォルトの名無しさん:2011/11/18(金) 07:47:04.83
http://www.infoq.com/jp/news/2008/05/maglev-gemstone-builds-ruby
http://maglev.github.com/
1.0が出たのはようやく最近みたいだけど、smalltalk+rubyというのがあるんだな。


786 :デフォルトの名無しさん:2011/11/18(金) 07:53:59.96
fizzbuzzの問題って、いじる所が、条件わけの部分か数列の部分
のどちらかだからな。

iota = iterate succ 1
engine c1 c2 c3 x = ...
fizzBuzz = engine (15,"FizzBuzz") (5,"Fizz"),(3,"Buzz")

take 100 $ map fizzBuzz iota
くらいで大抵のもの対応できるんだよね。engineのc1..c3とiotaを適当に変えればね。


787 :デフォルトの名無しさん:2011/11/18(金) 08:05:47.52
更に一般化するんだったら、条件がいくつもある場合ということになるけど
そのときだったら関数型ならばfilterと組み合わせればなんとでもなる。

788 :デフォルトの名無しさん:2011/11/18(金) 08:28:16.69
>>783
それが正解。
指定されていないのだから、それをどうするか訊くのが当然。
冷やかすことしかできない>>784はプログラマではないね。

789 :デフォルトの名無しさん:2011/11/18(金) 08:56:37.73
とりあえず適当に命令して訊き返されてからもう一度考えるのは
完全に動的型付け言語のスタイルだね
それがプログラマとして当然だよね

790 :デフォルトの名無しさん:2011/11/18(金) 09:18:47.91
一人で何レスも続けて書いて何がしたいんだろう

791 :デフォルトの名無しさん:2011/11/18(金) 09:44:20.15
一人でいくつもレスを書き続けてると思い込むっておめでたい方ですね。

792 :デフォルトの名無しさん:2011/11/18(金) 09:52:06.95
なんか流行っているみたいなのでSqueak Smalltalkでも書いてみた。

Integer >> fizz
  ^(self isDivisibleBy: 3) ifTrue: ['Fizz'] ifFalse: ['']

Integer >> buzz
  ^(self isDivisibleBy: 5) ifTrue: ['Buzz'] ifFalse: ['']

| fizzbuzz |
fizzbuzz := [:n | (1 to: n) collect: [:m | m fizz, m buzz ifEmpty: [m]]].
((fizzbuzz value: 100) select: #isInteger) sum


Bakaな仕様変更時の追加・変更はこんな感じ。

Integer >> baka
  ^(self isDivisibleBy: 7) ifTrue: ['Baka'] ifFalse: ['']

| fizzbuzz |
fizzbuzz := [:n | (1 to: n) collect: [:m | m fizz, m buzz, m baka ifEmpty: [m]]].
((fizzbuzz value: 100)
  collect: [:each | (each asString includesSubString: 'Baka') ifTrue: [3.14] ifFalse: [each]]
  thenSelect: #isNumber) sum

793 :デフォルトの名無しさん:2011/11/18(金) 12:56:21.94
>>788
「それが正解(キリッ」じゃねーっつのw
コードも仕様も満足に書けない奴が上から目線とか笑わせんなw

Javaの連中は仕様を変える前に、まずObjectへキャストしたり
Stringに変換してから数値に戻すようなコードじゃなくて
「Integer もしくは String」型を使ったコードを書くのが先だろ。
静的型チェックは飾りか?

794 :デフォルトの名無しさん:2011/11/18(金) 13:30:42.03
intとstrだけじゃつまらん

と言われていることに気付けw

795 :デフォルトの名無しさん:2011/11/18(金) 13:59:08.85
どうせ大規模とか言っても
レベルの低い末端には
バラした結果しかやらさないから
どーでもいいんだよね
動的な機能なんて理解もされないしな

796 :デフォルトの名無しさん:2011/11/18(金) 14:20:01.51
>>794
その簡単すぎてつまらん問題すら
満足に解けないJavaってなんなのよ?

797 :デフォルトの名無しさん:2011/11/18(金) 14:36:21.89
そして、ダミーを欠かされる毎日・・・

798 :デフォルトの名無しさん:2011/11/18(金) 16:29:55.54
>>796
Javaはポインターやメモリ割り当てで挫折する人でも開発できるように、
と作られた言語だから、他言語のエキスパートと比べるのは可哀想だ。
まあ、そのお陰で公共事業と同じで、とにかく大人数を動かす事の役には立ってるけどね。
経済そのものが無駄で成り立っているので、無駄を究極まで削減すると、失業者が溢れることになる。

799 :デフォルトの名無しさん:2011/11/18(金) 17:15:47.00
>>798
>Javaはポインターやメモリ割り当てで挫折する人でも開発できるように、
>と作られた言語だから、

それは初耳だ。ソースはいずこ?

800 :デフォルトの名無しさん:2011/11/18(金) 17:37:45.72
仕様変更ついでに条件分け部分を少々一般化

let rec conv n = function
    [] -> `Int n
  | (m, s) :: xs -> if n mod m = 0 then `Str s else conv n xs

let fizzbuzz n = [conv m [(15,"FizzBuzz");(3,"Fizz");(5,"Buzz");(7,"Baka")] | m <- 1--n]

let fizzbuzz_sum n =
  let add x = function `Int y -> x +. float y | `Str "Baka" -> x +. 3.14 | _ -> x
  in List.fold_left add 0. (fizzbuzz n)

801 :デフォルトの名無しさん:2011/11/18(金) 18:08:46.80
仕様追加を鑑みれば15の倍数の場合の処理を書いたら負けだろう。

802 :デフォルトの名無しさん:2011/11/18(金) 18:13:11.41
ご苦労であった。>>800
丘むるかエフプラ化?

803 :デフォルトの名無しさん:2011/11/18(金) 21:34:26.87
Scalaというオブジェクト指向+関数型言語+静的型付け言語という
最強言語がある今、動的型付け言語に価値を見いだせなくなったね。

804 :デフォルトの名無しさん:2011/11/18(金) 21:36:27.71
scalaって、騒ぐほど優れてるとは思えない。better Javaとしての地位
を狙ってるんだろうが、jetbrainやeclipseが別の言語をつくろうとするあたり
やっぱり無理があるんだろう。

805 :デフォルトの名無しさん:2011/11/18(金) 21:52:06.23
動的型付け言語厨のいう、Javaの欠点を
なくしたのがScalaだからね。

806 :デフォルトの名無しさん:2011/11/18(金) 22:06:05.44
それが関数型を普通にやってた人からは余り魅力を感じないようなんだ。
どちらかというとJavaカラの人が多いのが特徴じゃないかな。

807 :デフォルトの名無しさん:2011/11/18(金) 22:17:19.91
Ruby好きな人はScalaも好きそう。共通点は可読性が低いって事。

808 :デフォルトの名無しさん:2011/11/18(金) 22:31:08.99
>>807
Ruby好きにはHaskell好きが多いという話は聞くし、それには理由がある
でもRuby好きはScalaも好きという話は聞かないなあ....
(ただし自分はRuby好き&ML好きだけど、それは人それぞれ)

>>806の言うようにJava好きの人が好む言語じゃないかと思われ

809 :デフォルトの名無しさん:2011/11/18(金) 22:32:18.31
Javaを嫌になった人がScalaに走るんじゃないの。

810 :デフォルトの名無しさん:2011/11/18(金) 22:51:01.08
Cを嫌になった人がC++を使うわけじゃない。
Cにオブジェクト指向を加えたのがC++であるように
Javaに関数型言語を加えたのがScala

811 :デフォルトの名無しさん:2011/11/18(金) 22:51:49.76
Scalaは静的型付けのうえ、Javaの資産が使えるからね。
この2つのメリットは大きい。

812 :デフォルトの名無しさん:2011/11/18(金) 23:07:42.66
>>801
公倍数の扱いを統一する(3と5と7の公倍数なら"FizzBuzzBaka")ならこんな感じで

let rec conv n = function
    ([], "") -> `Int n
  | ([], x) -> `Str x
  | ((m, s) :: xs, x) -> if n mod m = 0 then conv n (xs, x ^ s) else conv n (xs, x)
let conv n xs = conv n (xs, "")

let fizzbuzz n = [conv m [(3,"Fizz");(5,"Buzz");(7,"Baka")] | m <- 1--n]

>>802
オカムルです

>>811
ScalaはIDEも急速に育ってるらしいしね

813 :デフォルトの名無しさん:2011/11/18(金) 23:18:34.18
>>811
逆にJava資産の無い人にとっては、ScalaのJava環境前提は「負債」でしかない

静的型付けな関数型言語であれば、他にいくらでも選択肢はあるからね

814 :デフォルトの名無しさん:2011/11/18(金) 23:44:37.75
そういや、この手のスレのわりには
Rubyのコードを見ないんだけど(Smalltalkすらあるのに)
実はRubyプログラマって存在しないの?想像上の生き物?

815 :デフォルトの名無しさん:2011/11/19(土) 00:19:18.37
煽っても出てこないと思うよ。:-)

816 :デフォルトの名無しさん:2011/11/19(土) 00:30:39.45
Rubyはオワコン

817 :デフォルトの名無しさん:2011/11/19(土) 00:36:09.38
もう3スレ目も終わりに近づいているが、
実行前の型チェックが「無い方がよい」と積極的に主張する人は一人もいない。
それが結論。


818 :デフォルトの名無しさん:2011/11/19(土) 00:50:46.62
じゃあPython素人のPythonコード:
def engine(lst):
    def engine2(x):
        tmp = filter(lambda i: x % i[0] == 0,lst)
        if tmp == []:
            return x
        else:
            result = reduce(lambda i,acc:(i[0]*acc[0],i[1]+acc[1]), tmp,(1,""))
            return result[1]
    return engine2

def option(f):
    def option2(x):
        if isinstance(x,str)==True:
            return x
        else:
            return f(x)
    return option2

fbb = engine([(3,"Fizz"),(5,"Buzz"),(7,"Baka")])
mag = option(lambda x: 3.14+x)
show = option(lambda x: str(x))
map(lambda x: show(mag(fbb(x))), range(1,100))

819 :デフォルトの名無しさん:2011/11/19(土) 01:38:31.16
>>800,812,818
どこまで本気で書いてるかは知らないが酷いコードだな
関数型の言語(pythonは違うが)を使っていても考え方は全く理解していないのが分かる

というかFizzBuzzをまともに書けない人がいるというのは本当なんだな

820 :デフォルトの名無しさん:2011/11/19(土) 02:00:14.08
煽り乙。

821 :デフォルトの名無しさん:2011/11/19(土) 02:22:54.94
ごく当たり前の感想で煽ったつもりはないんだけど
それくらい酷い

822 :デフォルトの名無しさん:2011/11/19(土) 03:29:22.93
そもそもbakaの扱いの仕様を満たしていないし。というかもはやバグレベル。

823 :デフォルトの名無しさん:2011/11/19(土) 03:44:55.28
誠に僭越では御座いますが、是非とも関数型言語の考え方を具現したコードを愚輩に御下知賜わりたく馳せ参じ候某。

824 :デフォルトの名無しさん:2011/11/19(土) 03:46:50.69
Rubyが関数型言語だ。

825 :デフォルトの名無しさん:2011/11/19(土) 04:08:28.47
具体的なことが含まれない批判なんて
好きか嫌いか明言しただけだよ
キー操作を何文字当たり何秒短縮できただのそういう具体的な分析ぐらいしろ

autoit autohotkey keyhac nilscript ironahkその他色々
全部同じような機能を持つツール
これだけ同じような機能を持つツールが乱造されている現実から目をそらすなよ
それだけの価値がある何かだという意味がある
関数型言語と違う部分は
プログラムが書けないユーザーですらこのツールを使うためにプログラムを書いているという点
関数型はプログラマでさえも積極的に覚えようとしない使わないのに対して
これらツールはプログラムを書けなくても使いたいと思える何かがある
何かが普及するときに大切なのはその何かであって
すばらしい言語仕様じゃないって事だ
ahkの言語仕様はクソだクソだと言われてるけどそれでも使われてる
関数型なんてすばらしいすばらしい言ってるくせにまったく普及しない
泣けよ
お前のそれは好き嫌いを言ってるだけで分析すらもしてない
身につけたアクセサリを見せびらかして自慢しているのと同じレベル
emacsなんて化石はごみ箱に捨ててしまえ

826 :デフォルトの名無しさん:2011/11/19(土) 04:20:39.64
> キー操作を何文字当たり何秒短縮できただのそういう具体的な分析ぐらいしろ

object. TAB TAB で長い文字を省略できちゃった!
静的型付け言語はキー操作を減らすことが出来る!



827 :デフォルトの名無しさん:2011/11/19(土) 04:21:41.49
Rubyこそが真の関数型言語だ。




828 :デフォルトの名無しさん:2011/11/19(土) 04:22:27.47
818=820=735
>>670
何一つ具体的なことを言えないお前が唯一言った具体的な事
>どうぞゲイツの尻でも舐め続けてください。
お前がなめろ

829 :デフォルトの名無しさん:2011/11/19(土) 04:25:36.75
いいや、お前がRuby使え。関数型言語だからな。

830 :デフォルトの名無しさん:2011/11/19(土) 04:52:30.67
>>805
> 動的型付け言語厨のいう、Javaの欠点を
> なくしたのがScalaだからね。

その対価として、静的型付け言語厨のいう、動的型言語の欠点を
装備したのがScalaだからね。

831 :デフォルトの名無しさん:2011/11/19(土) 05:14:13.27
>>830
動的型付けの欠点って、
静的型付けではないことなわけで、

Scalaは静的型付け言語なんだから
なにも欠点持ってないんだが。

もしかしてわかってない?
静的型付け言語は素晴らしい、
Scalaは静的型付け言語だ。
こういう流れなんだけど。

832 :デフォルトの名無しさん:2011/11/19(土) 05:48:14.05
any型が台無しにしてることに気付かない静的型信者w
鰯の頭も信心、か。昔の人は知恵があったんだなww

833 :デフォルトの名無しさん:2011/11/19(土) 07:26:12.81
クラスを作ってからインスタンスを作るのは効率が悪い
関数リテラルとオブジェクトリテラルが有る方がよい
JavaScriptかOCaml

834 :デフォルトの名無しさん:2011/11/19(土) 07:34:31.31
>>825
関数型言語が素晴らしいかどうかは知らんが、
未だにJavaでまともなFizzBuzzコードが出てこないってことは
そういうツール使ってキー操作を短縮しても
FizzBuzz書くのに何日も掛かるってこと?

835 :デフォルトの名無しさん:2011/11/19(土) 07:37:05.75
JavaのFizzBuzzはこのスレに出てるだろ。
まともではないという意見で却下するなら自分がまともなのを出せ。

836 :デフォルトの名無しさん:2011/11/19(土) 07:40:05.48
え?あんなコードでOKのつもりなの?
お前等本番でもあんなコード書いてんの?
あんな文字列と数値の違いすら静的型として区別しないコードで
良く静的型言語は素晴らしいとか言ってられるな

837 :デフォルトの名無しさん:2011/11/19(土) 07:41:19.55
わかったわかったコードで語れ

838 :デフォルトの名無しさん:2011/11/19(土) 07:42:21.90
まあ、俺がJavaで書いてあげても良いんだけどね?
でもさ、「JavaドカタにFizzBuzzは書けるか?」というのも主題なわけだから
俺が書いたらそのテストにならないわけよ

839 :デフォルトの名無しさん:2011/11/19(土) 07:42:46.10
はいはい書いて書いて

840 :デフォルトの名無しさん:2011/11/19(土) 07:44:17.74
てか関数型言語で書かれたコードでもまともなの無いよね?
設計のセの字も知らない学生が使い捨てで書くようなプログラムしか出てこないじゃん

841 :デフォルトの名無しさん:2011/11/19(土) 07:46:17.41
>>840
どうまともでないか「具体的に」説明してみてよw

文字列を数値にパースしなおすような糞コードは存在しないみたいだけど

842 :デフォルトの名無しさん:2011/11/19(土) 07:46:35.89
え?あんなコードでOKのつもりなの?
お前等本番でもあんなコード書いてんの?

843 :デフォルトの名無しさん:2011/11/19(土) 08:46:49.44
進行がアレなので、素人が書いてみました。
http://ideone.com/yWbwA

844 :デフォルトの名無しさん:2011/11/19(土) 08:52:48.30
>>843
ごくろうさまです。
その調子で>>681も書いてみてね。

845 :デフォルトの名無しさん:2011/11/19(土) 09:25:33.11
public class FizzBuzz {
 abstract static class SI { String s = ""; int i = 0; boolean is_i = false; }
 static class S extends SI { S(String x) { s = x; } }
 static class I extends SI { I(int x) { i = x; is_i = true; } }
 static SI fizzBuzz(int i) {
  return i % 15 == 0 ? new S("FB") : i % 3 == 0 ? new S("F") : i % 5 == 0 ? new S("B") : new I(i);
 }
 public static void main(String[] args) {
  int sum = 0; for (int i = 1; i <= 100; i++) sum += fizzBuzz(i).i; System.out.println(sum);
 }
}

どうでもよくね?

846 :デフォルトの名無しさん:2011/11/19(土) 09:43:15.81
> range <- 1:100
> data <- data.frame(N=range, Fizz=range%%3==0, Buzz=range%%5==0)
> sum(subset(data, !Fizz & !Buzz)$N)
[1] 2632


847 :デフォルトの名無しさん:2011/11/19(土) 09:52:06.15
動的型付け言語のRが最強ということで宜しいですね?

848 :デフォルトの名無しさん:2011/11/19(土) 09:55:26.89
どうでもいいよ845=846だし

849 :デフォルトの名無しさん:2011/11/19(土) 09:56:18.59
所詮fizzbuzzだからどうでもいいが、仕事なら"fizz"だの"buzz"だのをハードコードされた時点で殴る。

850 :デフォルトの名無しさん:2011/11/19(土) 10:01:59.48
てかRで書くからそれっぽく見えるだけで
846くらいは総務のネーチャンでもexcelで5分で書くよな

851 :デフォルトの名無しさん:2011/11/19(土) 10:07:49.06
ScalaとかOCamlとか冗長すぎワロスwww

852 :デフォルトの名無しさん:2011/11/19(土) 10:18:11.77
(defun fizz-buzz (length)
 (loop for i from 1 to length
   for tmp = (cond ((= (mod i 15) 0) "FizzBuzz")
           ((= (mod i 3) 0) "Fizz")
           ((= (mod i 5) 0) "Buzz")
           (t i))
   collect tmp into list
   when (numberp tmp) sum tmp into number
   finally (return (values list number))))

853 :デフォルトの名無しさん:2011/11/19(土) 10:19:37.34
Excel 最強

A1 =IF(MOD(ROW(),3)=0,"Fizz","")
B1 =IF(MOD(ROW(),5)=0,"Buzz","")
C1 =IF(AND(A1="",B1=""),ROW(),0)
D1 =SUM(C$1:C1)

求めたい行までコピペ

854 :デフォルトの名無しさん:2011/11/19(土) 10:21:24.17
お前らの大好きな糞マイナー言語でシコシコ書くより excel の方がよっぽど分かりやすい

855 :デフォルトの名無しさん:2011/11/19(土) 10:39:29.45
Rと同じ事すれば良いならこうだが、いわゆるFizzBuzzとは違う

# type fizzbuzz = {n:int; fizz:bool; buzz:bool};;
# let data = [{n=n; fizz=n mod 3=0; buzz=n mod 5=0} | n <- 1--100];;
# List.fold_left (+) 0 [x.n | x <- data; not (x.fizz || x.buzz)];;
- : int = 2632

856 :デフォルトの名無しさん:2011/11/19(土) 10:43:08.80
しかしあれだな。仕様変更してる部分に合わせて作ったけど、
抽象化の技法を全く理解してないんだな。

857 :デフォルトの名無しさん:2011/11/19(土) 10:43:10.36
岡村はともかく、Scala、Schemeでも15の倍数の場合を書いてるドカタレベルがいるのか。

858 :デフォルトの名無しさん:2011/11/19(土) 10:45:35.19
これじゃあ 未来が明るくないね。少しくらい、勉強したほうがいいよ。

859 :デフォルトの名無しさん:2011/11/19(土) 10:47:00.22
>>857
そゆこと
条件の真偽の組み合わせに対するcaseだってことを
理解できてないドカチン大杉

860 :デフォルトの名無しさん:2011/11/19(土) 10:47:39.18
こういう流れの時に、自分のコードを平気で晒せる奴と、それができない奴。
ここが、プログラマを二つに分ける一番高い壁。
この壁に比べれば他は全部誤差。


861 :デフォルトの名無しさん:2011/11/19(土) 10:50:19.96
必要なのは、この壁を自力で乗り越える意志。
ここさえ越えれば、あとは世界中のプログラマがボランティアで教育してくれるのでどんどん伸びる。

862 :デフォルトの名無しさん:2011/11/19(土) 10:52:47.86
もうそろそろ短いコードでの競争はやめて、
実用的なレベル(大規模)での
コードの書き方の話をしようぜ。

863 :デフォルトの名無しさん:2011/11/19(土) 10:53:43.33
>>857,859
15の倍数の場合を書くのは問題ないだろ
批判するポイントがずれてる

864 :デフォルトの名無しさん:2011/11/19(土) 10:54:30.37
>>859
おれここの批評を見てて、土方批判が散々されてる現状を
目の当たりに見た感じがしたよ。抽象化するときに使った
テクニカルなことをつかったらわからないみたいだし。
この辺ってSICPの1,2章レベルなのにな。

865 :デフォルトの名無しさん:2011/11/19(土) 10:56:10.99
>>864
お前も批判のポイントがずれてる。

わからないやつをお前がドカタと言ってるだけで、
大半のドカタ(仕事をしている奴)は
おまえなんかよりもずっと分かってるよ。

866 :デフォルトの名無しさん:2011/11/19(土) 10:57:16.21
大規模開発の話をここでやるのは現実的には難しい。
FizzBuzzと違って具体的なコードはなかなか出せない。
実体験としてバックグラウンドを共有している開発者同士でなければ理解できない話がどうしても出てくる。
ここでは、趣味や学生のようなアマチュアが煽ってくるから、まともな議論にはならないだろう。


867 :デフォルトの名無しさん:2011/11/19(土) 10:57:40.40
実際になにを作りましたか?と聞かれて
教科書に載ってるようなものぐらいしか言えないんじゃ
ドカタよりも劣ると思う。

868 :デフォルトの名無しさん:2011/11/19(土) 10:58:07.44
>>866
じゃあ、どんなフレームワークがあるかの話ぐらいはできるのでは?

869 :デフォルトの名無しさん:2011/11/19(土) 10:59:30.81
ほんと、匿名で批評してる連中は恥を書く前に、勉強したほうがいいよ。
高速に作るときと、抽象に作るときとの2つの技法くらい身につけたほうが
いいと思うんだがな。場所によって使い分けしなきゃならんし。

870 :デフォルトの名無しさん:2011/11/19(土) 11:00:58.44
FizzBuzzの話も仕事やっていて作れない奴はいないわけで、
○○の機能を使ったFizzBuzzを実装しろって話なら、
それはFizzBuzzではなく○○の機能を知っているかどうかでしかないわけで
本質がFizzBuzzではなくなってる。
こんな知ってるかどうかで成績が決まるのは学生時代までだよ。


871 :デフォルトの名無しさん:2011/11/19(土) 11:01:50.65
ここをみてて 日本のソフトウェア技術者に深刻な何かを感じたくらい。
これじゃあ国際競争力も生まれないわ。

872 :デフォルトの名無しさん:2011/11/19(土) 11:02:26.12
>>869
そういうのは使うときに調べればいいんだよ。


873 :デフォルトの名無しさん:2011/11/19(土) 11:02:38.23
コード晒すのはいいが、この程度の仕様>>681・仕様追加>>781くらいは最低限
満たしたのを書いて出してくれよ。

874 :デフォルトの名無しさん:2011/11/19(土) 11:03:38.15
>>871
うん、ドカタとばかにするような連中ばかりだからね。
文句があるのならお前がやれって話。

でやらせると、何も出来ない。
口ばっかり。そういう奴が多い。

ユーザーが要求しているものを作れ。

875 :デフォルトの名無しさん:2011/11/19(土) 11:04:22.14
>>873
それは言いだしっぺが書かないからいかんのだよw

876 :デフォルトの名無しさん:2011/11/19(土) 11:05:49.73
>>875
確かに。自分で答えも用意しない出題者とか涙が出てくる

877 :デフォルトの名無しさん:2011/11/19(土) 11:06:30.69
あらかじめ保守性や拡張性を考慮したコードを書くかどうかってのは仕事の
スタイルにかかわっている気がするな

当面の仕事をてっとりばやく済ませる(余計なことはしない)
当然その後のことはあまり考えてない、後から要求が来たら当然金をもぎ取る

自社の製品やサービスとして提供しない請負仕事ならそんな感じだろう

878 :デフォルトの名無しさん:2011/11/19(土) 11:06:56.82
>>873
ぶっちゃけ、そういった仕様は読んでない。
いちいち過去のレスをちゃんと読む?

読まないでしょ。ほんの数レスしか読まないで書き込む。
だから違ったコードがでるのは当たり前。

それを見て、仕様理解出来ないんだーって勘違いしている人がいる
ここが2ちゃんねるだってことをわかってないよね。

その場のノリの適当なレスみて、優越感に浸るなよw


879 :デフォルトの名無しさん:2011/11/19(土) 11:07:14.10
>>865
この人もトンチンカンだな。やっぱり腕を磨かないといけないよ。
まだ、2つの数字の辛味だけで話がすんでるからおおくて条件は2つ、3つだが
これが4つの数字なら、4もしくは10になるんだよ。
nの素数を使ったわけかたなら、条件をnもしくはn(n-1)/2になる。これをいちいち
if文に書くのか?というのが目先の問題をとく方法と抽象化の方法の違いだよ。
当然、使い回しするから保守が楽だったりするけど、そういったことも理解できな
いんだろ?ゲロっちゃえよ。
いずれにしてもここの連中に呆れてるよ。

880 :デフォルトの名無しさん:2011/11/19(土) 11:08:02.84
>>877
> あらかじめ保守性や拡張性を考慮したコードを書くかどうかってのは仕事の
> スタイルにかかわっている気がするな

だが、それが一番重要なことだろう。

そういった話ができないのが
実務経験無いやつなわけで。

881 :デフォルトの名無しさん:2011/11/19(土) 11:08:43.55
>>879
そんな些細なこと、どっちでもいい。

882 :853:2011/11/19(土) 11:10:34.49
C 列挿入

C1 =IF(MOD(ROW(),7)=0,"Baka","")
D1 =IF(C1="",IF(AND(A1="",B1=""),ROW(),0),3.14)

コピペ

883 :デフォルトの名無しさん:2011/11/19(土) 11:11:52.58
実際の開発では細かいコードの書き方よりも
対局を見た設計の方が重要だからね。

設計といっても紙に買いたい資料の話じゃないよ。
コード全体の構造の話。

構造がちゃんとできていれば、細かいコードは
ダメだとわかれば書き換えればいいだけになる。

そういった構造の話が教育の現場では行われていないんだよね。
でいきなり実践に入って、フレームワーク(構造の一例)を使わされて
なんじゃこりゃ?ってなる。
今までやってきたことよりも、更に大きな視点が要求されるから。

884 :デフォルトの名無しさん:2011/11/19(土) 11:17:28.81
やっぱり動的型付け言語はFizzBuzzもまともに書けないドカタを入れざるを得ない大規模開発で効率が悪い

885 :デフォルトの名無しさん:2011/11/19(土) 11:19:58.07
>>883
そうゆうことなんだけど、仕様変更に強い作り方をどうすればいいか
って学んでないんだろうと思ったよ。考え方を知ってるか知らないか
だけでずいぶん違ってくるんだけど、知らないがために幼稚な世界で
満足をしている。。。そうゆうふうにここの批評家の多くの人を
とらえてる。

886 :デフォルトの名無しさん:2011/11/19(土) 11:20:50.66
保守性・拡張性=善、とする教科書の教えと現場の実情は違うわけだ

ただな、要は請負でコードを書くという業務形態が
ソフトウェア品質を向上させるという方向にプログラマを動かさないなら
本当はそういう構造自体に問題があるんだよ

現状は経済として成り立っているが、長期的に日本のソフトウェア産業の
競争力という観点から見れば良いことじゃない

887 :デフォルトの名無しさん:2011/11/19(土) 11:22:20.79
>>885
その仕様変更に強い作り方をしたコードはもう出てる?

888 :デフォルトの名無しさん:2011/11/19(土) 11:22:50.92
>>879
公倍数で割り切れる時の出力が各素数の組み合わせだからそれで済むだけで、

3ならfizz
5ならbuzz
7ならbaka
3と5で割り切れるならunko
3と7で割り切れるならtinko
5と7で割り切れるならmanko
3でも5でも7でも割り切れるなら3.14

と出力するように仕変が入ったらどうすんだ?

なんでn(n-1)/2だと言えるんだよ?
n個の素数の組み合わせで条件が入ることを想定して組むならパターンは2^nだろ。

中途半端な抽象化が一番使えない。最初に無駄なコストを使った挙句、
結局想定を超える仕変が入って無駄になるだけ。仕事してりゃ、これ常識だと思うけどな。

889 :デフォルトの名無しさん:2011/11/19(土) 11:27:08.69
>>884
動的言語だって15の場合を書いてるドカタレベルは実際いただろ。

890 :デフォルトの名無しさん:2011/11/19(土) 11:29:54.39
>>888
例が下品すぎて嫌だけど内容的には同意

891 :デフォルトの名無しさん:2011/11/19(土) 11:30:08.41
抽象化は通常はタダで得られるものではない(空間効率、時間効率、またはその
両方が犠牲になることが多い)ので、全部トレードオフとして考えないといけない

関数型のループや再帰に代わる構造はそれでもコードが非常に簡潔になるという
利点があるけれども(ただしScalaのような言語ではただの配列とwhileループ
のほうが比較にならないほど効率がいい)、Javaの重量フレームワークのようなタイプの
層を何層も重ね、大量の設定ファイルを用いるタイプの「抽象化」は、
本当にそれが必要なのか、よく考えたほうがいい

892 :デフォルトの名無しさん:2011/11/19(土) 11:30:56.48
で、どうすんだって話よ。
引数の数値に対してあらゆる条件を想定するなら
デフォルトルールを末端に置いて chain of responsibility で書くか?
fizzbazz を書けと言われてそういう設計をするのか?アホか。

893 :デフォルトの名無しさん:2011/11/19(土) 11:35:07.42
>>888
> 3と5で割り切れるならunko

この時点で元ネタのFizzBuzzゲームの枠組み関係なくなっちゃってるって事に
いいかげん気づけよ。

894 :デフォルトの名無しさん:2011/11/19(土) 11:36:23.19
>>893
>まだ、2つの数字の辛味だけで話がすんでるからおおくて条件は2つ、3つだが
>これが4つの数字なら

この時点で

895 :デフォルトの名無しさん:2011/11/19(土) 11:36:52.08
>>886
保守性拡張性はあと楽になってくるし、だからDSLという話も出てくるんだけど
それと同時に、ここはかなり最適化を頑張らないとというところもでてくるから
そちらはまた違った発想が必要になってくる。場所による使い分けのセンスは
大切なんだけどな。でも、ここの人って目先さえ満たさればOKという人が多い。
なんか残念な人たちが集まってる。


896 :デフォルトの名無しさん:2011/11/19(土) 11:47:13.69
つまりどういう将来拡張を想定できるか。
予想し得る拡張には備えなければならないし、発生し得ない拡張に備えるのは無駄。
ここを的確に押さえて必要十分な設計を行うことが要求される。

プログラミングスキルだけではなく業務ドメインの知識になってくる。
むしろ真剣に事前の勉強が必要なのはそっちだ。開発言語なんか細かな話。
上流での設計ミスは取り返しがつかない。

仕事をしてない奴は、こういう話が分かってないんだよな。
だから実装レベルの話しかしない。
自分で仕様を決めて自分で実装するなら全知全能の神だからな。そりゃ楽だろ。

ここんとこの話は FizzBuzz では議論にならん。
出題者が脳内で想定している拡張には備えておき、出題者が想定していない拡張には備える必要がない。
FizzBuzz のような現実に結びつかない問題でそれができるのは、本人とエスパーだけ。

897 :デフォルトの名無しさん:2011/11/19(土) 11:50:02.33
>>896
サンデープロジェクトのハリーになった気分みたいだな。
そもそも、どこに拡張性が絞られるかすらも考えるも放棄しているような
記述が見られる所が、どの程度のことまで考えられるかも見え隠れする。
これじゃあまともに人も育てられんだろうよ。

898 :デフォルトの名無しさん:2011/11/19(土) 11:52:17.94
>>897
では FizzBuzz の例で具体的に。

3で割り切れるならfizz
5で割り切れるならbuzz
両者で割り切れるならfizz buzz

さあ、将来の拡張性はどこに絞られるでしょうか。最適な設計をどうぞ!

899 :デフォルトの名無しさん:2011/11/19(土) 11:53:55.45
まともな企業全てに共通する大原則

批判だけで提案しない人間は相手にされない


900 :デフォルトの名無しさん:2011/11/19(土) 12:03:26.78
15 で割り切れる場合を書くことを叩いてる人がいるけど、

ttp://ja.wikipedia.org/wiki/Fizz_Buzz

もともとのルールが
3 で割り切れる場合
5 で割り切れる場合
両者で割り切れる場合

と、3 通りの場合分けになっているのだから、その通り書くのが素直だと思う。

「複数の条件を満たす場合には、条件を満たすものを全部出力する」という仕様ではないので。
ちなみに、もしそういう仕様なら、"Fizz Buzz" なのか "Buzz Fizz" なのかという順番が問題になるけど。

901 :デフォルトの名無しさん:2011/11/19(土) 12:14:54.07
素直に書くなら

3で割り切れて5で割り切れない場合
5で割り切れて3で割り切れない場合
3でも5でも割り切れる場合
3でも5でも割り切れない場合

じゃない?

これが良いかは別として。


902 :デフォルトの名無しさん:2011/11/19(土) 12:15:14.02
>>900
3で〜、5で〜ってきて続けて「両者で割り切れる場合 FizzBuzz」と書いてあったら
それは「複数の条件を満たす場合には、条件を満たすものを昇順に全て出力する」
って読むだろJK。

903 :デフォルトの名無しさん:2011/11/19(土) 12:18:51.95
>>901
同意。

>>902
それはない。仕事でその "JK" は危険すぎる。

904 :デフォルトの名無しさん:2011/11/19(土) 12:25:12.45
(defun fizz-buzz-baka (length)
 (loop for i from 1 to length
    for tmp = (format nil "~:[~;Fizz~]~:[~;Buzz~]~:[~;Baka~]" (= (mod i 3) 0) (= (mod i 5) 0) (= (mod i 7) 0))
    if (string= tmp "") do (setf tmp i)
    collect tmp into list
    sum (cond ((numberp tmp) tmp)
         ((string= tmp "Baka") 3.14)
         (t 0)) into number
    finally (return (values list number))))

905 :デフォルトの名無しさん:2011/11/19(土) 12:48:18.32
CLならもうちょっとひねりをいれてくれよ。遅れてきたわりに面白くも何ともないコード。

906 :デフォルトの名無しさん:2011/11/19(土) 12:56:28.44
>>899
Objectにキャストしてはいけない
整数を文字列にしてはいけない
15で割ってはいけない
などというルールを提案する人間も相手にしたくない。
何かを禁止するルールを提案する人間は、批判だけする人間と同じ。

907 :デフォルトの名無しさん:2011/11/19(土) 12:57:23.94
perl最強?

perl -le "print(($_%3?'':Fizz).($_%5?'':Buzz)or$_) for(1..100)"

908 :デフォルトの名無しさん:2011/11/19(土) 13:05:40.66
>>906
しょっちゅうそういう注意をされているんだろう?
いかにもドカタが言うそうな言い分でわらえる。

909 :デフォルトの名無しさん:2011/11/19(土) 13:17:11.65
>>907
お客様。
こちらではお下手くそなゴルフの素振りは他のお客様のご迷惑になるので
ご遠慮ください。あるいは仕様書を良く読み直してからおいでください。

910 :デフォルトの名無しさん:2011/11/19(土) 13:17:31.88
>>886
> 保守性・拡張性=善、とする教科書の教えと現場の実情は違うわけだ

教科書の、保守性・拡張性というのは
○○言語を使えば、保守性拡張性が高くなる程度の
机上の空論レベルでしか無いからダメ。

保守性・拡張性ってのは、そんな何かを導入すれば終わりみたいな簡単なものではなく、
それらが高くなるような設計で作ることを意味する。
で、作りましょうで終わるのが教科書で実際に作るのが実践。

教科書は所詮教科書。心得までしか書いてないんだよ。

911 :デフォルトの名無しさん:2011/11/19(土) 13:27:46.40
教科書ってのはセンスを養うためのものだよ。
学がない奴の言い訳はいろいろあるけど、適した考えを理解しておくことが
プラスになることがあってもマイナスになることはない。
ここの人って、プログラム作業にしても目先を考えるので精一杯なんだもの。
残念だよ。そりゃIDEだのリファクタリング*機能*だのって話になるわ。考え
られないんだから。

912 :デフォルトの名無しさん:2011/11/19(土) 13:28:32.38
全然違う

913 :デフォルトの名無しさん:2011/11/19(土) 13:37:42.61
>>910
> ○○言語を使えば、保守性拡張性が高くなる程度の
> 机上の空論レベルでしか無いからダメ。
> 保守性・拡張性ってのは、そんな何かを導入すれば終わりみたいな簡単なものではなく、

それ言ったらこのスレ終わる
だってここは静的厨が「静的型付け言語を導入すれば効率が改善する」
「IDEを導入すれば効率が改善する」って言ってるスレだから

914 :デフォルトの名無しさん:2011/11/19(土) 13:38:27.41
>教科書の、保守性・拡張性というのは
>○○言語を使えば、保守性拡張性が高くなる程度の

そんな(○○言語を使えば〜みたいな)教科書は見たことがないな
エセ教科書じゃねーのか
教科書ってのはSICPみたいなやつのことだぞ

まともな教科書には理論と実践の両方が書いてある(後者は演習問題)
それがどう(業務的な)実践に役に立つのか、立たないのかを判断できずに
「机上の空論」の一言で済ませるような奴は、一言でいえばリテラシーがない
先人の知恵を自分の糧にする能力がないということだ

915 :デフォルトの名無しさん:2011/11/19(土) 13:38:42.91
教科書でセンスは養えないぞ。

スポーツでも実際に練習して初めて身につくんだ。
実践を積んでないスポーツ選手はいない。

リファクタリングも同じ。
実際に使っている人のほうがはるかに技術は上だ。

916 :デフォルトの名無しさん:2011/11/19(土) 13:40:52.71
>>914
> 教科書ってのはSICPみたいなやつのことだぞ

そんなのを教科書に使っているのは
情報工学科ぐらいなもんだろ。

たいていの大学生はそんなの読んでない。
実際にうちの大学でもそんなの使ってないし。

917 :デフォルトの名無しさん:2011/11/19(土) 13:46:36.52
SICPなんかもはやMITですら使われてない。

918 :デフォルトの名無しさん:2011/11/19(土) 13:46:43.26
自分はまともなcomputer scienceの教育を受けたことがないことを
自慢しなくていいのに

919 :デフォルトの名無しさん:2011/11/19(土) 13:47:52.21
当然教科書といえば、SICPだわな。あれの演習問題は保守拡張能力を
鍛えるのにはかなりいいからね。そこに基礎力を作るヒントがある。
SICPなら一部の企業では輪読してる連中もいるし、勉強会もマメに行
われてる。別に大学にいなくてもやれるよ。独学でやるのはかなり骨
が折れるが不可能ではない。その差は技術を磨く気持ちがあるかないかさ。

教科書という言葉で浮かべるイメージの違いもあるもんだなって914を指摘を
読んで思ったよ。極論だがまなたんを浮かべる奴とSICPを浮かべるやつでは違うだろうし。

920 :デフォルトの名無しさん:2011/11/19(土) 13:50:24.62
ガウディ本はozを使おうとすると
emacsが必要になってくるからここの人には嫌われるかもな。

921 :デフォルトの名無しさん:2011/11/19(土) 13:51:44.95
>>918
大規模ドカタの巣窟にのこのこやってきてCS教養自慢する馬鹿も十分はずいけどな。

922 :デフォルトの名無しさん:2011/11/19(土) 13:52:34.49
あんなの使ってないこんなの使ってないはどうでもいい。
何使った?

923 :デフォルトの名無しさん:2011/11/19(土) 13:55:18.94
オープンソース

924 :デフォルトの名無しさん:2011/11/19(土) 13:56:16.71
Code complete

925 :デフォルトの名無しさん:2011/11/19(土) 13:57:24.85
↑現実世界で動作する生きた教科書

926 :デフォルトの名無しさん:2011/11/19(土) 14:02:55.50
SICPは現場では古典的な扱い。
古くて誰も参考にしていない。

927 :デフォルトの名無しさん:2011/11/19(土) 14:04:19.39
一つ言えること。

この業界では

science > engineering

という不等号を持っている人は使えない。例外は無い。

928 :デフォルトの名無しさん:2011/11/19(土) 14:08:16.94
SICPは言語としての拡張性とかそういう話であって、
システム全体の拡張性とか保守性とかそういう話じゃないからね。

現場で要求される、拡張性とか保守性ってのは
お客の仕様変更やメンテナンスやバージョンアップにたいする
拡張性とか保守性だから。

929 :デフォルトの名無しさん:2011/11/19(土) 14:11:59.89
SICPは純文学のようなもの。
一般教養として身に付けておくべきとは思うが
それは一々話題にするようなことではない。
仕事をこなす上では、やはり実用書を読まなければ。


930 :デフォルトの名無しさん:2011/11/19(土) 14:14:50.37
オライリーの本とか読んだこと無いのかな?
教科書に書いてあるものと
実践で要求されるものが全く違うと分かるはずなんだが。

オライリーの本を教科書に使ってる
大学って無いの?

931 :デフォルトの名無しさん:2011/11/19(土) 14:20:22.27
>>925
C=1とするとJava=2.5 VB=4.5 Perl=6だそうだ
これが現実世界か

932 :デフォルトの名無しさん:2011/11/19(土) 14:24:46.35
>>931
鮮度という概念で重み付けくらいしないと。

933 :デフォルトの名無しさん:2011/11/19(土) 14:25:03.64
>>930
オライリーは昔はともかく今は...

934 :デフォルトの名無しさん:2011/11/19(土) 14:35:45.69
(defun fizz-buzz-baka (length parameter &optional sum-parameter)
(setf parameter (sort parameter #'< :key #'car))
(loop for i from 1 to length
for tmp = (format nil "~{~:[~*~;~a~]~}" (loop for (n s) in parameter
append (list (= (mod i n) 0) s)))
when (string= tmp "") do (setf tmp i)
collect tmp into list
sum (if (numberp tmp) tmp
(loop for (s n) in sum-parameter
if (string= s tmp)
return n
finally (return 0))) into number
finally (return (values list number))))

(fizz-buzz-baka 100 '((7 "Baka") (3 "Fizz") (5 "Buzz")) '(("Baka" 3.14)))

935 :デフォルトの名無しさん:2011/11/19(土) 14:36:58.67
15の倍数のcaseまで書いちゃう人は、
場合分けの基本ができていない証拠。

つまり、任意の数に対して、
・該当するcaseが少なくとも1つ存在し、
・該当するcaseが多くとも1つしか存在しない、
ことを満たすことを簡単かつ明瞭に示す。

それが安全性・保守性・再利用性の高いソフトウェアを書く基本だ。
そしてそれを言語レベルでサポートできるのが静的型付けのメリットでもある。

このスレの静的型厨は、静的型付けの重要なメリットを知らずに
ただ静的型付け最強、動的型付けクソ、と喚き続けていたことを
自ら証明してくれたわけだ。

ご苦労さんw

936 :デフォルトの名無しさん:2011/11/19(土) 14:37:33.92
15の倍数とか、まだfizzbuzzやってんのか?

937 :デフォルトの名無しさん:2011/11/19(土) 14:38:47.35
> このスレの静的型厨は、
> 静的型付け最強と喚き続けていたことを
> 自ら証明してくれたわけだ。

なにも問題なさ過ぎてワロタw


938 :デフォルトの名無しさん:2011/11/19(土) 14:47:53.62
やっぱり動的型付け言語はドカタ雇用前提の大規模開発で効率が悪い 4

939 :デフォルトの名無しさん:2011/11/19(土) 14:48:00.08
>>935
静的言語しかしらないから、混ぜっ返さないで答えて欲しいんだけど、

> 15の倍数のcaseまで書いちゃう人は、

> つまり、任意の数に対して、
>・該当するcaseが多くとも1つしか存在しない、

これって矛盾しないの?

940 :デフォルトの名無しさん:2011/11/19(土) 14:50:03.24
やはり話がわかってないみたいだな。仕様変更を上手にできる
ことに関する腕を上げられると言ってることが読めないんだな。
SICPってそのセンスを巧みに育てる演習問題をだしてるよ。
基礎がない人間って、応用が聞かないし融通が効かないのって
ふつうのコトなんだがな。

941 :デフォルトの名無しさん:2011/11/19(土) 14:50:56.66
>>938
それでいいんじゃないか? ほんとそんな感じだもんここの
。。。

942 :デフォルトの名無しさん:2011/11/19(土) 14:52:23.79
>>939
> これって矛盾しないの?

静的厨は矛盾している、ってことだw
わかんないの?

943 :デフォルトの名無しさん:2011/11/19(土) 14:53:00.87
だから ドカタと揶揄されてるのにな。
ここの多くの批評家の知的レベルも高くはないけど、スキルも低そうと
いうのが率直な感想かな。

944 :デフォルトの名無しさん:2011/11/19(土) 14:54:03.26
>>937
そうだね、ドカチン稼業には何の問題もないだろうね。
本当に複雑なシステムをちゃんと動くように構築する係の人には
とても大切な基本スキルだけどw

945 :デフォルトの名無しさん:2011/11/19(土) 14:54:37.36
>>940
SICPなんか読んでて当たり前で、一々ドヤ顔で喋るようなことじゃねーだろって言ってんだよ。

946 :デフォルトの名無しさん:2011/11/19(土) 14:56:12.01
まったく学歴しか取り柄のない奴が伝家の宝刀のようにSICPSICP連呼する流れ、いい加減お腹一杯です

947 :デフォルトの名無しさん:2011/11/19(土) 14:57:50.84
>>945
当たり前な割に、まるで実行できてないじゃんw

948 :デフォルトの名無しさん:2011/11/19(土) 14:59:44.20
>>947
SICPしか読んでねえからパズルしか解けねーんだよ

949 :デフォルトの名無しさん:2011/11/19(土) 15:02:08.63
実際問題、SICPを読んでても偉そうに評論家気取るだけで
自分では模範解答一つ書き込めないんだろ?それ読んだ意味なくね?

950 :デフォルトの名無しさん:2011/11/19(土) 15:06:06.82
>>942
混ぜっ返しはいいから、矛盾ないことを説明してみてくれ。

951 :デフォルトの名無しさん:2011/11/19(土) 15:07:56.41
やっぱり 学ぼうとしない人ってだめだとおもうな

952 :デフォルトの名無しさん:2011/11/19(土) 15:08:49.50
書くことは学ぶことです

953 :デフォルトの名無しさん:2011/11/19(土) 15:13:14.30
>>944
いや、静的型付け言語厨が
静的型付けが最強と自分で証明するのは
当たり前だろってことなんだが。

954 :デフォルトの名無しさん:2011/11/19(土) 15:15:47.57
>>935
良く分からん。
関数だから入力に対して出力が一意に決まるし、
関数の中をどう表現するかは書き手次第でしょ。

955 :デフォルトの名無しさん:2011/11/19(土) 15:17:03.85
> 関数だから入力に対して出力が一意に決まるし、
それは副作用を持っていない関数限定だ


956 :デフォルトの名無しさん:2011/11/19(土) 15:19:56.97
まとめ
- 大規模開発にはドカタ動員が必須
- ドカタは静的型チェックやIDEの補完の助けなしではFizzBuzzも書けない。
- 逆にコンパイラとIDEの助けを借りれば、なんとか動くコードは書ける。
- 動的言語には現状まともなIDEがない(Smalltalkerはこっちくるな。Emacs?笑えんな)
- よって大規模開発で動的言語を使うと炎上する

957 :デフォルトの名無しさん:2011/11/19(土) 15:22:08.10
煽ってるわりには良いまとめだ。

958 :デフォルトの名無しさん:2011/11/19(土) 15:22:33.80
そのダメな人が必死に否定してるのがこのスレ。結局
図星なんだろうと思う。ほんとどの教科書でもいいから
基礎くらいは身につけたほうがいいよ。しょーもない反論
聞かされるより、本を開いて読んで見たらいい。
IDEの使い方を勉強するだけじゃ面白くないだろ?

その基礎をどう応用するかは貴方次第。
できないのは残念ですが、その程度の人間ってこと。

これでいいんじゃないの?ここのスレの結論は。



959 :デフォルトの名無しさん:2011/11/19(土) 15:23:39.16
>>956
優れた煽りまとめだと思う。



960 :デフォルトの名無しさん:2011/11/19(土) 15:24:40.24
煽らない版まとめ

まとめ
- 大規模開発には技術力も経験も考え方も違った開発者が多く必要
- コンパイラとIDEの助けにより、開発の高速化とコードの書き方の統一ができる。
- 動的言語には現状まともなIDEがない(Smalltalkは殆ど使われていない。Emacs?笑えんな)
- よって大規模開発で動的言語を使うと炎上する


961 :デフォルトの名無しさん:2011/11/19(土) 15:24:59.32
>>955
写像(関数)だから、対応が一意でしょ。

962 :デフォルトの名無しさん:2011/11/19(土) 15:25:18.29
>>960
なんだ。すっきりしたじゃないかw

963 :デフォルトの名無しさん:2011/11/19(土) 15:25:19.79
煽ってない方は全然面白くないな

964 :デフォルトの名無しさん:2011/11/19(土) 15:26:10.99
言ってることは全く同じなのに
面白くない。不思議!

965 :デフォルトの名無しさん:2011/11/19(土) 15:27:34.43
動的型付け言語は自転車みたいなもん
ちょこっと近所にでかけるには便利

966 :デフォルトの名無しさん:2011/11/19(土) 15:30:38.18
動的型付け言語で一定規模以上の開発を秩序立てて進めるにはTDDの実践が必須と言っていい。
そのレベルの開発者を集められないなら諦めるべき。


967 :デフォルトの名無しさん:2011/11/19(土) 15:31:02.19
>>940
SICP訳がおかしくて
原書読まなきゃ解けないもんだいがあるとか

968 :デフォルトの名無しさん:2011/11/19(土) 15:31:13.81
動的型付け言語を使った開発って殆ど見ないんだよね。
TwitterがRuby on Railsを使っているってことぐらい。

969 :デフォルトの名無しさん:2011/11/19(土) 15:32:10.14
JavaでもTDDの実践は必須だよ。

970 :デフォルトの名無しさん:2011/11/19(土) 15:34:29.87
自分がパソコンで使うソフトも
静的型付け言語で作られた物が殆どだしな

971 :デフォルトの名無しさん:2011/11/19(土) 15:38:07.19
動的型付け言語で優れた最適化コンパイラを持っている言語ってある?
パッケージソフト開発で動的型付け言語が殆ど使われないのは、要はそこなんじゃないのか?


972 :デフォルトの名無しさん:2011/11/19(土) 15:38:09.49
TwitterってRubyだったのか。
Rubyは遅いと思っていたのだが。

973 :デフォルトの名無しさん:2011/11/19(土) 15:38:26.85
違った考え方→
ダミーコード要員もいっぱいいるくらいスキルが低い。近視眼的な目線だけでOK。

この辺だろうな。

974 :デフォルトの名無しさん:2011/11/19(土) 15:39:22.79
>>971
パッケージソフト開発で動的型型付け言語が使われないのは
ソースコードを公開しないといけないのが一番の理由。

975 :デフォルトの名無しさん:2011/11/19(土) 15:39:41.28
>>970
逆に、君がブラウザで利用するサービスは
かなり多くが動的型付け言語で作られているよ。

976 :デフォルトの名無しさん:2011/11/19(土) 15:40:10.27
>>935
これって間違ってるっしょ

977 :デフォルトの名無しさん:2011/11/19(土) 15:40:10.74
>>974
いや、だからコンパイラさえあれば、
ネイティブコードにコンパイルしてバイナリで売ればいいだろ?


978 :デフォルトの名無しさん:2011/11/19(土) 15:40:21.89
動的型付けは、実行時にソースコードを書き換えたりできるから
ソースコードの公開は必須になるんだよな。

979 :デフォルトの名無しさん:2011/11/19(土) 15:41:31.55
>>978
しなければいいだろ。
実行時のソースコード書き換えにしか動的型付け言語のメリットってないの?

980 :デフォルトの名無しさん:2011/11/19(土) 15:41:49.44
>>972
TwitterはScalaに変更になったぞw

ウェブサービスも最近は静的型付け言語が多い。
特に大規模になってくると、tomcat(つまりJavaだろう)とか
ASP(.net)とか出てくるでしょ。

個人が使うようなものはPHPが多いけど。

981 :デフォルトの名無しさん:2011/11/19(土) 15:43:12.45
>>979
どこでやってるのかわからんだろ。
自分が作ってない所(ライブラリ内部)で勝手にやってるかもしえない。

しかも静的型付けではないから、そういうコードは
実行するまで検出できない。

982 :デフォルトの名無しさん:2011/11/19(土) 15:43:55.73
動的型付け言語で良く使われるのってPHPらしいね。
そんなに良い言語なのかな?

983 :デフォルトの名無しさん:2011/11/19(土) 15:44:46.30
規模だけで言うなら、誰でも参加できるオープンソースが一番大きい
参加者を限定して大規模にする意味がない

984 :デフォルトの名無しさん:2011/11/19(土) 15:45:54.43
>>978
必須ではないけど、実質必須になることが多いよね。スクリプト言語が多いしね。
修正BSDライセンスのSBCLやCMLCLならば、バイナリ配布だけでも良いし。
外に見せたくないものならどうしても静的なコンパイラーをつかった言語に
なるのは自然の流れかと思う。

もうこのスレも終わりでいいかもね。なんだかつきあいきれねーっつーか
さらばするわ。ダメっぽさの中にいると自分までダメになってしまいそう
で怖い。ほな

985 :デフォルトの名無しさん:2011/11/19(土) 15:46:01.75
伽藍とバザールの議論は別の場所でいいんじゃないか?

986 :デフォルトの名無しさん:2011/11/19(土) 15:46:44.50
>>983
> 規模だけで言うなら、誰でも参加できるオープンソースが一番大きい

えっと、参加人数ではなく、工数で考えてください。


987 :デフォルトの名無しさん:2011/11/19(土) 15:49:38.25
何となく956のまとめをきっかけにスレタイに沿った流れになってきた気がする


988 :デフォルトの名無しさん:2011/11/19(土) 15:50:57.82
>>955じゃなかった>>960

989 :デフォルトの名無しさん:2011/11/19(土) 16:27:08.47
え?

990 :デフォルトの名無しさん:2011/11/19(土) 16:37:20.71
動的型付け言語を使うと心が荒みます
証左はこのスレ Q.E.D.

991 :デフォルトの名無しさん:2011/11/19(土) 16:37:53.40
炭鉱労働者並みのドカタを撲滅しよう
高効率でクリーンで安全な動的言語をもっと使おう


992 :デフォルトの名無しさん:2011/11/19(土) 16:40:48.84
なんか原発のCMみたいだなw

993 :デフォルトの名無しさん:2011/11/19(土) 17:02:11.32
http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

994 :デフォルトの名無しさん:2011/11/19(土) 17:22:33.11
カチャカチャしてみる?

995 :デフォルトの名無しさん:2011/11/19(土) 18:07:10.93
もう>>956のまとめでいいや
次スレはいらんけど、もし立てるなら「ドカタ」のキーワードはスレタイに入れろよ

996 :デフォルトの名無しさん:2011/11/19(土) 18:08:10.04
動的型の略がドカタ

997 :デフォルトの名無しさん:2011/11/19(土) 18:18:31.77
梅。

998 :デフォルトの名無しさん:2011/11/19(土) 18:19:16.75
梅。

999 :デフォルトの名無しさん:2011/11/19(土) 18:23:11.57
>>953
いや、静的型付け言語厨が
静的型付けの長所を台無しにするようなコードを
当たり前のように書いてドヤ顔してどーすんだ、
って話w

1000 :デフォルトの名無しさん:2011/11/19(土) 18:23:56.09
結論 : 静的型付け言語も大規模開発ドカタには宝の持ち腐れでした。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

256 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)