やっぱり動的型付け言語は大規模開発で効率が悪い 3
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/11/09(水) 19:01:54.58反論したいなら語れや。
やっぱり動的型付け言語では安全なソフトは作れない 2
http://hibari.2ch.net/test/read.cgi/tech/1319212872/
0002デフォルトの名無しさん
2011/11/09(水) 19:02:50.31987 名前:979[sage] 投稿日:2011/11/09(水) 11:14:08.03
>>981
>えと、それなりの人数で開発していれば、普通にある話だよね?
ンっ、>>981の世界ではそれが普通なの?
少なくとも自分が過去に関わったプロジェクトでは、
(言語とは無関係に)コンポーネントの公開インターフェイスや
共通で使用される(=内部ライブラリである)モジュール/クラスは、
あらかじめ(暫定案でもいいから)固めて文書化しておくのが普通(常識)
そうしないとコンポーネントごと複数人数で分担する、あるいは
複数の会社で開発を分担して最終的に統合してプロダクトとするような
規模のプロジェクトでは、仕様変更に伴う大混乱が「間違いなく」発生する
それとも最近のIDEというのは、この辺りの仕様変更まで自動的に追従してくれるのかな?
0003デフォルトの名無しさん
2011/11/09(水) 19:13:17.56完全なウォータフロー型の開発だね。
インターフェースならまだしも、プライベートな関数や
プライベートなクラスまで最初にきっちり決めてしまうってことが可能で、
そのあとは変わらないのが原則。そしてドキュメントを作るってならそれでいいよ。
だけどそれがアジャイルのやり方ではないってのは分かるね?
うちはアジャイルでやってるので、そういう最初にきちっと決めるやり方は合わない。
アジャイルは各イテレーションで仕様変更が入るもの。
> それとも最近のIDEというのは、この辺りの仕様変更まで自動的に追従してくれるのかな?
自動的に追従してくれるのは、リファクタリングブラウザで出来る範囲まで。
引数の入れ替えとか名前の変更とか長いコードを関数に追い出したり、
逆に関数をインライン化したり、クラスをまたがったメソッドの移動とか
ようするに機能的な仕様変更ではなく、アプリの動作を変えないコード上の仕様変更のうち
機械的に処理できるものだけ。
それでも十分便利だけど。たいてい機能的なの仕様変更には、
コード上の仕様変更が多かれ少なかれ含まれるものだからね。
00043
2011/11/09(水) 19:15:31.44きっちりとインターフェース決めるよ。
だが、自分の会社で開発をするのであれば、
自分の会社の中で自由に決められる部分はあるだろ。
(ようするにプライベートなコードだ)
>>987の会社はそんなのが一切ない開発なのか?
0005デフォルトの名無しさん
2011/11/09(水) 19:20:09.04> そんなに全てを静的に決めたいならsubtype polymorphismも含めて
> 全ての多相性を禁止にしろよ
> どのメソッドが呼ばれるか静的に決まるぞ
お前は、ずれてるw
すべてを静的に決めたいなんて誰も言っていない。
動的型付けを否定しているのであって、
動的を否定しているのではない。
「ポリモーフィズムを使うJavaは静的型付け言語です」
これを理解してから話してくれ。
0006デフォルトの名無しさん
2011/11/09(水) 19:26:38.20ポリモーフィズムを使ったら、どの関数が呼ばれるかわからないから
コード補完ができない。
たぶん、こう考えてるでしょう?
違う。ポリモーフィズムを使ってもコード補完は出来る。
まずインターフェースは同じだから、どんなメソッドがあるかは分かる。
どんなメソッドもがあるかはわかっても、実際に呼び出されるコードはどれかわからない。
たしかにそうだ。だがその場合、候補が出る。
インターフェースを実装しているクラスの候補が出る。
これもコード補完だ。候補すらわからない動的型付け言語より何倍も良い。
そして、インターフェースを変えると、その内容に応じて自動〜半自動で
実装クラスの修正が行える。これも静的型付け言語ならではのIDE機能だ。
0007デフォルトの名無しさん
2011/11/09(水) 19:28:56.42ある程度自由にできるところはあるでしょ?
何もかもきっちりと決まっていて開発はそれに従うだけ。
そんなドカタみたいな堅苦しい開発はやりたくないな。
0008デフォルトの名無しさん
2011/11/09(水) 19:32:51.00>完全なウォータフロー型の開発だね。
いや、スパイラル型だ(ウォーターフォールとアジャイルの中間)
ウォーターフォールはもはや現状に追従できないし、
アジャイルは個人の力量に依存しすぎという判断
固めて文書化しておくのは公開インターフェイスまで
具体的にはコンポーネントの外部入出力と内部ライブラリの仕様
内部の詳細(プライベートなクラス/モジュール)はインプリメンタに自由に任せ、
コードレビューで品質を判断する
この公開インターフェイスを事前に設計するのが技術リーダの仕事で、
その設計品質がプロジェクト全体の品質確保に強く影響を与える
0009デフォルトの名無しさん
2011/11/09(水) 20:24:14.410010デフォルトの名無しさん
2011/11/09(水) 20:26:53.34前スレの>>995に言ったんだよ
お前が言ったかどうかなんて知るかよ
例えば、完全にsubtype polymorphismを禁止すれば、メソッドを補完するときに
メソッドの中身すらIDEで表示することが可能になる
つまり、よりIDEが出来る範囲は増える
そのかわりに言語の表現能力は落ちるがな
つまり何事もバランスなんだよ。何でもIDEで出来りゃ良いってわけじゃない
個人的には、Javaの言語仕様はIDEでやってほしい事にマッチしてるとは思う
0011デフォルトの名無しさん
2011/11/09(水) 20:54:40.89http://d.hatena.ne.jp/ymotongpoo/20111105/1320506449
0012デフォルトの名無しさん
2011/11/10(木) 00:34:14.66言語仕様の進化を止めて開発ツールIDEの進化を模索するか
さらなる言語仕様の進化を望むか
俺はこれ以上言語仕様を拡張したところでc++のようなカオス言語が増えるだけ
そう確信したから開発ツールの進化の道を選ぶべきと主張しました
REPLが何なのか知らないけど開発ツールだろ、動的静的関係ない
0013デフォルトの名無しさん
2011/11/10(木) 01:18:26.20んなこたーない
0014デフォルトの名無しさん
2011/11/10(木) 01:25:39.66今時VBAとかねーよw
0015デフォルトの名無しさん
2011/11/10(木) 01:48:02.45だったらいいんだけど。ここを読んでてpythonでipythonやrubyでirbを一
度触ってみればいいのにな。と思うことはある。Rでもいいな。vimや
textmate,emacs使いが絶滅しない理由も分かりそうなのに。
0016デフォルトの名無しさん
2011/11/10(木) 01:59:28.62大規模なシステム開発で、そういったインタラクティブな
スクリプティング環境で仕事をするというイメージがわかない。
個人的には、そういう環境がよく適合するのはプログラマよりも
大学の研究者や学生という印象なのだが。
0017デフォルトの名無しさん
2011/11/10(木) 02:45:49.15ここで言う「大規模」の数値は共通認識有るんだっけ?
それなしじゃ議論にすらならないよな。
0018デフォルトの名無しさん
2011/11/10(木) 02:47:38.220019デフォルトの名無しさん
2011/11/10(木) 04:18:43.63次の方どうぞ。
0020デフォルトの名無しさん
2011/11/10(木) 06:05:58.99動的型付けでもメソッド名補完できるし
メソッド実装しているクラスを探して修正できる。
っていうか君がドヤ顔で語ったその機能、
動的型付け言語のIDEが発祥なんだけどw
0021デフォルトの名無しさん
2011/11/10(木) 09:00:49.130022デフォルトの名無しさん
2011/11/10(木) 09:15:36.54あまりないからね。むしろ、動的言語の良さを殺してるような
印象を持ってる。やはり静的専用のものなんだと思うよ。
0023デフォルトの名無しさん
2011/11/10(木) 10:50:10.50一方、金融とか大規模シミュレーションのように刻々と変わるデータでアルゴリズムを自動調整(より正確にはある種のカタログとの照合)する、とかの問題領域だと、事前に型構成を決めてしまうこと自体が無意味。
世間のビジネスの9割は単純な事務処理の集合だから、静的型ベースでも問題ない。
0024デフォルトの名無しさん
2011/11/10(木) 10:54:21.90インターフェース型のメソッド補完と大して変わらんよ。
動的型付けといっても実装されるメソッドの組み合わせにはパターンがあるから。
0025デフォルトの名無しさん
2011/11/10(木) 11:07:15.91確かに。
言語仕様、ライブラリの範囲では動的・静的に依らず、組込み可能だな。
困るのはJSONとかMaybeみたいに、型を固定化したくない場合だろうけど、スレ違いなんでやめておく。
あと「動的言語では補完が難しい」論の引き合いによく出されるRubyは便利だが、言語仕様が無いwって揶揄される位だからあまり参考にはならないだろうな。
0026デフォルトの名無しさん
2011/11/10(木) 11:56:20.350027デフォルトの名無しさん
2011/11/10(木) 12:14:06.87まあ、動的型言語のIDEのクオリティが上がって来てるのは事実だよ
http://pytools.codeplex.com/
(ちゃんとREPLウィンドウがあるのが評価高い)
0028デフォルトの名無しさん
2011/11/10(木) 12:37:34.460029デフォルトの名無しさん
2011/11/10(木) 12:52:09.61無いと言っていんじゃね
NetBeans とかはかなり頑張ってる部類だが、
それでも「使える」って言えるレベルではない
0030デフォルトの名無しさん
2011/11/10(木) 13:16:17.580031デフォルトの名無しさん
2011/11/10(木) 15:45:33.69なんで動的厨は
その機能は動的型付け言語のIDEが発祥なんだぞ(ゝω・)vキャピ
とか言っちゃうんだろう
0032デフォルトの名無しさん
2011/11/10(木) 16:35:50.09すべてを理解してから大きい口は聞くもんだな。知らないことがありありと
わかる
0033デフォルトの名無しさん
2011/11/10(木) 16:45:18.55つ 隔離
型からの補完が少ないくらいで破綻する大規模開発wって楽しむスレだから。
0034デフォルトの名無しさん
2011/11/10(木) 16:46:24.93supportsDataDefinitionAndDataManipulationTransactions # メソッド名
補完無しではやってられませんよね
0035デフォルトの名無しさん
2011/11/10(木) 16:57:32.25質問の一部は、ソースの内部表現にPrintableCharacterを使わない場合の積極的な理由は?と言うもの。
これで調べるやつは軽症。
0036デフォルトの名無しさん
2011/11/10(木) 17:18:27.46他人に困難な仕事を押し付けるんだろう
全部自分で実装するつもりで考えれば型を省略してひゃっはーという
アホな言語開発者はいなくなる
誰かが思慮浅い要求をする、自分の担当する部分には影響があまりないから取り込む
IDEや開発ツール担当が死ぬほど負担を押し付けられる
成果は言語仕様に奪われ、IDEやツールはできて当然と罵られる
発言力の強い連中が好き勝手やって楽に成果を得ている裏で
発言力の弱い連中に負荷がかかって死にそうになってるのが見える
みんな勝手なんだよ、俺のやってることはとてもすばらしい天才的な役割で
俺以外の連中がやってることはとてもくだらないバカでもできる役割だ
やったこともないくせにこう決め付けて、こう結論付ける
俺は天才なんだ俺以外は馬鹿なんだ
俺と同じようなことをしてる奴も俺の次に天才なんだ
九割の人間はこんな思想を振り回してる
0037デフォルトの名無しさん
2011/11/10(木) 17:22:02.97効率以前の問題
0038デフォルトの名無しさん
2011/11/10(木) 17:23:05.93スマンが、この言語は何?で、どんなフレームワーク(?)の一部なのか教えてくれ
Rubyでもこれくらいの長さの名前空間を使う事はあるけど、
Rubyならクラス名はモジュールで名前空間を分離できるから
以下のようになるから補完の必要性は少ない
InternalFrame::TitlePane::MaximizeButtonWindow::NotFocusedState # クラス名
メソッド名については短縮できないけど、
これは1個のメソッドに多機能を詰め込みすぎた設計の失敗例に見える
supports_data_definition_and_data_manipulation_transactions # メソッド名
結局、言語設計の欠陥とメソッド設計の失敗という負債を、
補完という形でプログラマが背負わされているだけじゃね?
0039デフォルトの名無しさん
2011/11/10(木) 17:25:20.03自己紹介乙、次からは3行でまとめてくれ
0040デフォルトの名無しさん
2011/11/10(木) 17:31:03.66Java
上がswing、下がJDBC
0041デフォルトの名無しさん
2011/11/10(木) 17:34:49.90口だけはでかい
0042デフォルトの名無しさん
2011/11/10(木) 17:50:30.26ありがと!!
0043デフォルトの名無しさん
2011/11/10(木) 18:09:57.52知らないって幸せだね
0044デフォルトの名無しさん
2011/11/10(木) 18:16:12.44単なる切り貼りエディタじゃないんだから、キーを押す度に静的コンパイラが走ってるなんて考えて無いよな?
0045デフォルトの名無しさん
2011/11/10(木) 18:22:32.050046デフォルトの名無しさん
2011/11/10(木) 18:22:48.560047デフォルトの名無しさん
2011/11/10(木) 18:23:04.07動的脳ってここまで酷いのか
0048デフォルトの名無しさん
2011/11/10(木) 18:23:45.830049デフォルトの名無しさん
2011/11/10(木) 18:27:56.95動的技術使ってないIDEの事をkwsk
0050デフォルトの名無しさん
2011/11/10(木) 18:28:14.82FedEx程度の国際物流ネットワークのシステムや
アメリカの金融系のシステム程度じゃ
大規模とは言えないらしいぞw
0051デフォルトの名無しさん
2011/11/10(木) 18:31:31.97具体的な数字は誰も出してないようだ。
俺は10の6乗ステップ以上が目安だと思うが。
0052デフォルトの名無しさん
2011/11/10(木) 18:41:59.500053デフォルトの名無しさん
2011/11/10(木) 18:44:15.13静的型なら同じ案件でも効率良く大規模に膨らませられる、って意味なんじゃねーの?
0054デフォルトの名無しさん
2011/11/10(木) 18:45:21.22linuxのカーネル*程度*と思ってて、あれがIDEで開発されていると思ってる
スレ
0055デフォルトの名無しさん
2011/11/10(木) 18:48:47.76静的型付け用IDEで本当に動的なサポートってあんまりない。
キータイプごとに反映されるのはソースの色付けぐらいなもので、
ファイルをまたいだ整合性チェックとかは定期更新待つか更新ボタン押さないと
再チェックされないとか、そんなポンコツなのが多いよ。
0056デフォルトの名無しさん
2011/11/10(木) 18:49:02.14最適化後のASTノード数での比較なら少しはマシかもしれん。
0057デフォルトの名無しさん
2011/11/10(木) 18:55:57.98名前でカタログするか、型でやるかの設計の違いもあるから、静的型向けのIDEセットにそこまで望むのは可哀想な気もする。
単純な事務処理ベースのブロジェクトの場合は特に、IDE以外の問題が大きいしな。
0058デフォルトの名無しさん
2011/11/10(木) 19:55:08.660059デフォルトの名無しさん
2011/11/10(木) 19:59:51.14じゃば
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
0060デフォルトの名無しさん
2011/11/10(木) 20:28:02.91金融系と言っても、勘定形と情報系じゃ規模もMC性も全然違うしな…。
0061デフォルトの名無しさん
2011/11/10(木) 21:07:14.38と思うよ。でも、ネーム空間の関係もあって、補完は大切な機能の一つでも
Javaのような じゅげむじゅげむほにゃららあほんだらくそったれ
と続くような馬鹿げた仕様にはなってないから、Java使いほど重要視してな
いかも。ある意味仕様の欠陥を埋めてるのがIDEなんだろうし。
0062デフォルトの名無しさん
2011/11/10(木) 21:09:12.82使用者のを埋めてるんだろな
0063デフォルトの名無しさん
2011/11/10(木) 21:21:10.46機能でや関連するもので鼻高々というのは言語スレを見たら時々見かける
けど、その機能が他の言語でほとんど無意味だったり、他の機能で問題なく
代用されてるってよくあることなんだよね。基準として持ってるのはいいけど
それがどんなものでも必要ですごい重要な機能なのかは、慎重に考えたほうがいいよ。
0064デフォルトの名無しさん
2011/11/10(木) 21:54:11.50いいから
動的言語でまともなIDEの名前を
最高のもの一つでいいから言ってみ。
0065デフォルトの名無しさん
2011/11/10(木) 22:01:22.790066デフォルトの名無しさん
2011/11/10(木) 22:02:45.89具体的なバージョンまで含めて言え。
使ったことなくて噂だけを信じてるようにしか見えんぞ。
0067デフォルトの名無しさん
2011/11/10(木) 22:07:39.47マーチン・ファウラー
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の方が好まれているようだ。
0068デフォルトの名無しさん
2011/11/10(木) 22:14:12.94言語でもあり、(仮想)OSでもあり、開発環境でもあるんだよ
Squeakなんて、まさにそう
VisualWorksは仮想OSってよりはjavaと同じVMって感じだが
0069デフォルトの名無しさん
2011/11/10(木) 22:22:46.53なるほど信者がうざいわけだ。
0070デフォルトの名無しさん
2011/11/10(木) 22:25:32.040071デフォルトの名無しさん
2011/11/10(木) 22:26:23.65IDEでも開発環境でもなんでもいいから、
具体的にバージョンを言えって。
0072デフォルトの名無しさん
2011/11/10(木) 22:28:33.85彼らが井の中の蛙の自慢なのかどうかというのを見極めるために、口を挟まない
ほうがいいから。
0073デフォルトの名無しさん
2011/11/10(木) 22:30:00.57俺が使ったことのある動的言語のIDEといえばDWなんだが、使いづらかったな。
まあ、人によってはIDEと認めないかもしれないな。
IDEなんだけどな。
0074デフォルトの名無しさん
2011/11/10(木) 22:31:06.28ようするに、井の中の蛙って罵倒したいんだろ?
十分口挟んでる。
0075デフォルトの名無しさん
2011/11/10(木) 22:31:23.34わざわざ書かなくても皆わかってるって。
人を試すようなことをするのは、いろんな人がいるといえども、Emacs信者くらいだろ。
0076デフォルトの名無しさん
2011/11/10(木) 22:32:10.50俺は詳しいんだ的な発言。それこそ井の中の蛙だろう。
0077デフォルトの名無しさん
2011/11/10(木) 22:32:21.59何言われようと、とりあえず口にチャックしてます。
0078デフォルトの名無しさん
2011/11/10(木) 22:32:43.40これ、だいたいあってる。
0079デフォルトの名無しさん
2011/11/10(木) 22:33:44.86アメリカンジョーク?
口にチャックしてるから喋れない。
だから手を使ってカキコする。みたいな?
0080デフォルトの名無しさん
2011/11/10(木) 22:34:19.28してます。
0081デフォルトの名無しさん
2011/11/10(木) 22:36:07.740082デフォルトの名無しさん
2011/11/10(木) 22:37:02.360083デフォルトの名無しさん
2011/11/10(木) 22:37:31.89最高かは分からないけれど、いいなと思ったのは Dolphin Smalltalk X6 かな。
http://www.object-arts.com/
Win 専用なのと、UI ビルダが期待より貧弱なのが難点だけど、補完とかのコーディングサポートの方面は
しっかり作り込んである。もちろん Smalltalk 処理系全般の特徴である OODB みたいなものの中に
処理系自体が組まれていて、エンティティがすべて第一級オブジェクトとして扱えるとか、
それによって強力なメタプログラミングやイントロスペクションが可能であるとかはデフォとして。
XEROX 純正 Smalltalk-80 の直系の子孫にあたる VisualWorks と Squeak については
言語としてはともかく、IDE としては作り込みがいちいちゆるい感じ。
0084デフォルトの名無しさん
2011/11/10(木) 22:39:04.350085デフォルトの名無しさん
2011/11/10(木) 22:39:23.27ニヤリ
0086デフォルトの名無しさん
2011/11/10(木) 22:39:31.76バージョンって…
誕生当初より言語でOSで開発環境ってスタンスは変わってないから、どれでも良いとしか…
自分が使ってた頃はsqueak 3.4とかだったけな
今はどこまでバージョン上がってるか知らん
勝手にググってくれ
0087デフォルトの名無しさん
2011/11/10(木) 22:40:17.11動的言語の中では中々やれてると俺も思うよ。
0088デフォルトの名無しさん
2011/11/10(木) 22:41:09.05誰も静的型言語のIDEより良いとは言ってないんだな。これがw
0089デフォルトの名無しさん
2011/11/10(木) 22:41:29.94だから今話しているのは、IDEの機能の話なんだから
具体的なバージョンを言わないと、わかり用がないだろ。
どうせ使ってないんだろうなって思ったとおりの答えのようだな。
0090デフォルトの名無しさん
2011/11/10(木) 22:42:34.93マーチン・ファウラー様も
静的型付け言語のIDEをべた褒めしてますからね。
ただの文法チェックが
コーディング支援機能に化けた!と。
0091デフォルトの名無しさん
2011/11/10(木) 22:43:19.29VBだよ!!
最高の動的型のIDE!!!
0092デフォルトの名無しさん
2011/11/10(木) 22:45:45.410093デフォルトの名無しさん
2011/11/10(木) 22:46:07.180094デフォルトの名無しさん
2011/11/10(木) 22:47:52.33だがそうやって書かれた部分はもちろんコード補完やコンパイルチェックなど出来ず、
IDEが有効活用されているとは思えない。
VBがIDEとしての真価を発揮できるのは、やはり静的型付けで書いた部分。
0095デフォルトの名無しさん
2011/11/10(木) 22:57:54.79http://www.youtube.com/watch?v=8pkyOm1Mxug&t=1m40s
0096デフォルトの名無しさん
2011/11/10(木) 22:58:47.100097デフォルトの名無しさん
2011/11/10(木) 23:13:37.32検索しても答えが見つからない言語は効率が悪い
オレっちは所詮そんなもんです
みんなが使ってる言語がいい
マイナー言語はマイナーという理由で効率が悪い
言語仕様とか関係ないっす
0098デフォルトの名無しさん
2011/11/10(木) 23:18:07.23Squeak Smalltalk のしょぼさにくらべると、補完機能の出来がすばらしいですね
0099デフォルトの名無しさん
2011/11/10(木) 23:38:27.55初期のVBは(ry
0100デフォルトの名無しさん
2011/11/10(木) 23:46:09.02OCompletion もがんばっているんだけど、まず Squeak でまともにインストールできない
(いまんところ誰でも使えるのは Pharo に組み込みのやつってことになる)のと、なんとか動かせても
組み込みの alt/cmd-q とかを壊しちゃう。個人的には alt/cmd-j が踏みつぶされるのが非常につらい。
0101デフォルトの名無しさん
2011/11/11(金) 05:05:58.78ましてやSmalltalkでは実行環境=開発環境だということの意味もまるで理解しないまま
動的環境を小馬鹿にしてたってこと?
0102デフォルトの名無しさん
2011/11/11(金) 05:15:56.42Smalltalkerならみんなやってるよね、開発環境の自作拡張。
0103デフォルトの名無しさん
2011/11/11(金) 06:45:28.59かの有名な、
マーチン・ファウラー様も
動的型付け言語をべた褒めしてますからね。
生産性が向上した!と。
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RubyAtThoughtWorks
(この記事は>>67より後に書かれたもの)
0104デフォルトの名無しさん
2011/11/11(金) 07:47:59.01Javaを使ってて頭が狂ったか、たんに老害か、
あるいはまさかの、ぢつわSmalltalkよくわかっていませんでしたーとかか?
ベックは最近だとMongoDBエンジンもまともに組めない体たらくだと聞くし。
0105デフォルトの名無しさん
2011/11/11(金) 07:51:41.81別に動的環境を小馬鹿にはしていませんが、Smalltalk は使っていないのでよく知りません。
ところで、大規模開発という場合には IDE そのものの出来もさることながら
VCS (バージョン管理システム) や ITS (タスク管理システム) とのシームレスな
連携が必須だと思います。
Eclipse は、やはりコミュニティの大きさもあってその辺りがよくできていると
感心するのですが、Smalltalk での開発の場合はどのようになるでしょうか。
Subversive や Mylyn と同等な仕組みはありますか?
0106デフォルトの名無しさん
2011/11/11(金) 08:01:02.75RubyだけでなくRuby on Railsを褒めてる
Smalltalkを知っててもSeasideを知らない可能性はある
0107デフォルトの名無しさん
2011/11/11(金) 08:02:47.06Ruby on Rails がよいと言っているのではないでしょうか。
私の経験では、Web 系はプログラミング言語そのものは何ら問題ではなく、
フレームワークの出来不出来で全てが決まります。
0108デフォルトの名無しさん
2011/11/11(金) 08:06:35.45っていうか、
> 我々は、Groovy、F#、Python、Smalltalkなどを使うべきだろうか?
> これまでRubyについて見てきたトレードオフが、その他の言語についても同じ結果になったとしても、私はさほど驚かない。
> いずれこれらも我々の道具箱に入って欲しいと願っている。
と書いてるから、内心では「皆Ruby使ってるけど、ぶっちゃけSmalltalk最強だろ、言わないけど(うざがられるから)」とか思ってるかも
0109デフォルトの名無しさん
2011/11/11(金) 08:07:43.20Squeak・Phoroレベルのおもちゃでもいいから、チュートリアルを読みつつ
一回さわってみたらいいと思うよ。
http://squeakbyexample.org/
http://pharobyexample.org/
0110デフォルトの名無しさん
2011/11/11(金) 08:10:06.25>我々の強みは、典型的なIT企業では引き込めないような非常に有能な人たちを雇用しているという点だ。
>Rubyには、あまり有能ではない開発者をエラーから守るよりも、
>有能な開発者がさらにうまく物事を成し遂げられる環境のほうがよいという哲学がある。
率直に言って、能力の高い経験豊富な開発者は動的言語の方が効率的に開発を進められると思います。
問題は、プロジェクトが大規模になればなるほど、そういった精鋭を揃えることが難しい点です。
0111デフォルトの名無しさん
2011/11/11(金) 09:21:07.61http://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へ)→実行継続→成功(完了)
0112デフォルトの名無しさん
2011/11/11(金) 09:24:58.870113デフォルトの名無しさん
2011/11/11(金) 09:30:40.09rubyの良さがわかる人って、ハッカー系には多いよね。結局その引用のとおり
だから
0114デフォルトの名無しさん
2011/11/11(金) 09:47:57.41ブルーカラーの言語うんたらかんたら
0115デフォルトの名無しさん
2011/11/11(金) 09:59:50.90>RubyはUNIXの世界で生まれた。そして、このプラットフォームに集まる人たちは、
>ディレクトリパスにスラッシュを使う。 Windowsプラットフォームでも、Rubyの
>実行、デプロイ、開発は可能だが、いくぶん扱いにくいものとなっている。我々
>のアドバイスとしては、開発はすべてUNIXプラットフォームで行ったほうがいい。
この点が影響してるんじゃないの?rubyに限らないけど、関数型言語やオープンソースで
作られてる言語の多くはwindowsでの開発はかなり不利だよ。
0116デフォルトの名無しさん
2011/11/11(金) 11:06:15.550117デフォルトの名無しさん
2011/11/11(金) 11:15:20.19WindowsでおかしくなるのRubyだけだろ
0118デフォルトの名無しさん
2011/11/11(金) 11:20:52.560119デフォルトの名無しさん
2011/11/11(金) 11:23:09.41TwitterがRuby捨ててScalaになったみたいに。
0120デフォルトの名無しさん
2011/11/11(金) 11:25:30.420121デフォルトの名無しさん
2011/11/11(金) 11:27:40.080122デフォルトの名無しさん
2011/11/11(金) 11:34:47.350123デフォルトの名無しさん
2011/11/11(金) 11:37:13.65もやっとしたものをもやっとさせたまま長期運用でどんどん拡張するとなると早期結合な設計や
言語じゃ駄目だってパパがいってたお。ttp://metatoys.org/oxymoron/oxymoron.html
ただ「これができるのはLISPとSmalltalkだけ!(キリッ」って言い切っちゃってもいるけどねー。
0124デフォルトの名無しさん
2011/11/11(金) 14:18:09.19動的型言語 > 最高のIDE + ドカタ言語
0125デフォルトの名無しさん
2011/11/11(金) 14:27:17.14視野が狭い。
0126デフォルトの名無しさん
2011/11/11(金) 14:33:40.07Windowsでまともに動かないなんて
0127デフォルトの名無しさん
2011/11/11(金) 14:57:32.740128デフォルトの名無しさん
2011/11/11(金) 15:04:27.650129デフォルトの名無しさん
2011/11/11(金) 15:20:41.65洗い出しそうな気もするが。python -Oつけると、assertは無視する仕様になるし。
0130デフォルトの名無しさん
2011/11/11(金) 18:04:09.19バージョン管理も構成管理も分散レポジトリも
標準で組み込まれていて、
デバッガのソース表示上でコード書き換えても
全自動でバージョン登録されるぐらい
IDEのあらゆる部分とシームレスに結合されてますが、
何か?
0131デフォルトの名無しさん
2011/11/11(金) 19:26:08.56開発効率を上げるものは全部褒めてる
高機能なIDE最高
DSL書きやすいruby最高
オブジェクト指向書きやすい言語最高
ちなみにrubyに関してはこう言ってる
ruby書いてて楽しいけど、ときどき何やってるかわからなくなるから困る
ついでに書くとruby開発者のおっさんはrubyのIDE作るのすげームズイと言ってる
マーチンはオブジェクト指向言語で
DSL開発をしやすく、そのDSL用のIDEをすばやく作れればいいな
という考え、今のところは
0132デフォルトの名無しさん
2011/11/11(金) 19:54:58.02windowsだのlinuxだの言ってる奴は頭が古いな
osと心中しなくて済むjavaの方がよほど前向き
0133デフォルトの名無しさん
2011/11/11(金) 20:03:14.65普通にwindowsでもlinuxでも動くから
Ruby以外は
0134デフォルトの名無しさん
2011/11/11(金) 20:17:26.960135デフォルトの名無しさん
2011/11/11(金) 20:25:28.690136デフォルトの名無しさん
2011/11/11(金) 20:45:27.60rubyが悪いとは言わないけどautoitの方が便利
0137デフォルトの名無しさん
2011/11/11(金) 20:45:32.42気が付いたらメンテナンス不能のゴミの山
0138デフォルトの名無しさん
2011/11/11(金) 21:00:23.640139デフォルトの名無しさん
2011/11/11(金) 21:13:48.720140デフォルトの名無しさん
2011/11/11(金) 21:16:29.95矛盾してるで おっさん>>133
0141デフォルトの名無しさん
2011/11/11(金) 21:22:19.84めちゃめちゃ遅かったな。
スクリプトって単純にプログラムの実行も遅いんだろうけど、一番の原因は
メモリーを使いすぎるってことだね。
0142デフォルトの名無しさん
2011/11/11(金) 21:29:07.91> めちゃめちゃ遅かったな。
ま、たいてい書いた奴が遅いコード書いただけってのが答えなんだけどなw
0143デフォルトの名無しさん
2011/11/11(金) 21:39:50.52http://hibari.2ch.net/test/read.cgi/tech/1227196176/
こっちで繰り広げられている、動的なバイトコードの書き換えとか
動的にサブクラスを作るとかいう話を聞くと、
動的型付け言語でしかできないと思えた機能は、
実は静的型付け言語でも出来るように思えてくるな。
静的型付け言語でここまで動的なコードの書き換え機能を
持っているのはJavaぐらいしか無いと思うけどね。
0144デフォルトの名無しさん
2011/11/11(金) 21:41:17.560145デフォルトの名無しさん
2011/11/11(金) 21:43:16.18Javaなら問題なくできるよ。
そもそもバイトコードはネイティブコードじゃなく
ただのCPUから見ればただのデータなんだから。
ネイティブコードの書き換えはできなくても
バイトコードの状態であれば、ただのデータ編集だ。
0146デフォルトの名無しさん
2011/11/11(金) 21:47:45.80できないのは、データではなくコードとマークされている部分を
バッファオーバーフローなどによって無理やり書き換えること。
もともと、自己書き換えをするという前提で作られたものは
当然書き換え可能。実行ファイルを圧縮して、実行時に
展開して実行するPackerなどと呼ばれているプログラムは
そうやって作られている。
0147デフォルトの名無しさん
2011/11/11(金) 21:50:04.36やっぱりできない。
0148デフォルトの名無しさん
2011/11/11(金) 22:00:27.52誤検知した場合は、できないと。
つまり>>144は自分で認めている。
それはウイルス対策ソフトの「誤検知」であると。
0149デフォルトの名無しさん
2011/11/11(金) 22:05:54.04【ウイルスと思われる動作を検出しましたと表示され停止する問題について】
この動作は当社製品に起因する問題ではありません。
市販のセキュリティー製品には粗悪なコードが使われており誤動作を引き起こす場合があります。
【対策】
当社製品と同時にセキュリティー対策を行わないでください。
0150デフォルトの名無しさん
2011/11/11(金) 22:07:33.61いやさ、自己コード書き換えは出来るんだよ。
お前嘘つくなって話なんだが。
0151デフォルトの名無しさん
2011/11/11(金) 22:08:17.710152デフォルトの名無しさん
2011/11/11(金) 23:05:59.14plus := [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
0153デフォルトの名無しさん
2011/11/11(金) 23:14:38.94標準で組み込まれているというのは、果たしてメリットと言えるのでしょうか?
そういったものは言語とは独立のシステムなのですから、
チームが使い慣れたものを選べるようにプラグインとして提供されるのが
あるべき姿ではないかと思います。
0154デフォルトの名無しさん
2011/11/11(金) 23:26:00.47泥仕合になる前にとりあえずこれに目を通して Smalltalk の基本的な考え方を知っておいて欲しい。
「Smalltalkの底を流れる設計思想」
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24
あと svn が使いたければ、そういうのもあるから。130は不必要に挑発的だけど、ようするに
組み込みのヤツの方がいろいろ便利なことも多いと思うメンバーが多ければ、チーム合意の上で
そのまま組み込みのを使えばいいというだけ。
0155デフォルトの名無しさん
2011/11/11(金) 23:31:29.42じゃあ、他の動的型付け言語は?
備えてないのなら、話しにならないよね。
静的型付け言語 or Smalltalk使ってないなら、黙っとれ。
0156デフォルトの名無しさん
2011/11/11(金) 23:54:20.08開発効率が決まるわけじゃないしなぁ
>>103のリンク先では、IDEの出来がお粗末なRubyでさえ
優秀なIDE+Javaで開発するよりも優れてると結論付けてるわけだし
このスレが「動的型付け言語用の優秀なIDEは開発出来ない」ならまだ分かるよ
といっても、それもSmalltalkの存在が反証になってしまうけど
0157デフォルトの名無しさん
2011/11/11(金) 23:58:02.05リンク先のは優秀な開発者がいれば、
Rubyでもそれなりに開発できるってだけだよ。
0158デフォルトの名無しさん
2011/11/12(土) 00:06:09.28優れたIDE+Javaで開発するよりも効率的だと感じているようだね
0159デフォルトの名無しさん
2011/11/12(土) 00:07:31.35でもそれは現実的ではない。
自分の知らないコードがたくさんになったら・・・。
現実を見ようぜ。
0160デフォルトの名無しさん
2011/11/12(土) 00:10:05.06読む効率は別だと思うんだよね。
0161デフォルトの名無しさん
2011/11/12(土) 00:13:06.55把握して、バグを修正するという観点から
どっちが効率がいいか調べる必要があるだろうな。
0162デフォルトの名無しさん
2011/11/12(土) 00:33:11.17そういったことは>>103のどこにも書いてないんだが……
0163デフォルトの名無しさん
2011/11/12(土) 00:37:41.74ファウラーの環境を引用してどうすんの?
君らファウラーに匹敵するスキルを持っていて、周りもそういうレベルの奴に囲まれた環境で仕事してんのか?
0164デフォルトの名無しさん
2011/11/12(土) 00:40:45.11じゃあ答えは出てる。
そういった情報が書いてない記事を信用するな。
0165デフォルトの名無しさん
2011/11/12(土) 00:42:56.66つまり日本の底辺ドカタに動的型は使いこなせるか?を議論すればいいのか
じゃあスレタイも「動的型付け言語ではドカタは大規模開発できない」に変更しなきゃな
0166デフォルトの名無しさん
2011/11/12(土) 00:46:08.38そうしたけりゃそれでもいい。
そうやって皮肉を言おうと蔑もうとそれが日本の現実だ。
0167デフォルトの名無しさん
2011/11/12(土) 00:46:16.75マーチンファウラーの本を読んでるとは思えないんだけど
この人の本ってjavaやc#使ってる人の方が読んでるだろうから
javaをバカにしてる奴は絶対に読まない
0168デフォルトの名無しさん
2011/11/12(土) 00:48:52.930169デフォルトの名無しさん
2011/11/12(土) 01:02:05.15英語の論文なんて読まないでしょうね。
0170デフォルトの名無しさん
2011/11/12(土) 01:47:52.51我田引水なんだって、欲しい答えが決まってて、その答えに合わすために
問題を変えるって事自体が。
>>169
いま実装の人ってとーだいのせんせーちゃうん?
0171デフォルトの名無しさん
2011/11/12(土) 02:04:19.110172デフォルトの名無しさん
2011/11/12(土) 07:34:34.84> 君らファウラーに匹敵するスキルを持っていて、周りもそういうレベルの奴に囲まれた環境で仕事してんのか?
はい。
0173デフォルトの名無しさん
2011/11/12(土) 07:45:49.45http://www.facebook.com/groups/295568806304/
0174デフォルトの名無しさん
2011/11/12(土) 08:08:11.22最近はRubyがJavaより速いって話があるね。
すると、RubyはC/C++の400倍速い可能性があるんだよね。
ってことはだ、C/C++で書かれたコードをRubyで書き直せば、100円の
チップで4万円の性能が出せる。
0175デフォルトの名無しさん
2011/11/12(土) 09:22:01.93素人さんはお帰りください
0176デフォルトの名無しさん
2011/11/12(土) 10:49:30.03踊り子さんに手を出さないで(≧∇≦)
0177デフォルトの名無しさん
2011/11/12(土) 10:51:43.02Here a simply equation. In terms of mental fortitude…
1 Smalltalk developer = 2.5 C++ developers
1 C++ Developer = 1.5 Java developers
http://blogs.gartner.com/mark_driver/2008/10/09/remember-smalltalk/
0178デフォルトの名無しさん
2011/11/12(土) 11:45:00.51smalltalkerは実在してるの?
0179デフォルトの名無しさん
2011/11/12(土) 12:14:32.30fortran programerは実在してるの?
cobol製のソフトが使われているの見たことないけど
cobol programerは実在してるの?
0180デフォルトの名無しさん
2011/11/12(土) 12:18:46.250181デフォルトの名無しさん
2011/11/12(土) 12:48:59.90FortranもCOBOLもこんなふうなこと言わないわけで
0182デフォルトの名無しさん
2011/11/12(土) 13:08:51.07密度的な事なら 1 Sml. dev. = 20 Java dev. くらい?
知識量だったらたぶん 1 sml. dev. = 5 Java dev. たぶんsmalltalkerだったら
他の言語も使えると思うんで。
0183デフォルトの名無しさん
2011/11/12(土) 13:10:56.07ようなものなのか 謎
0184デフォルトの名無しさん
2011/11/12(土) 13:20:32.12まあSmalltalk処理系・IDE自身やScratchとかはSmalltalkで組まれているんだが
そういうことを聞きたいわけじゃあないとおもうんで他の例を挙げると、
比較的名の知れたところではVisualAge for JavaをはじめとするかつてのIBM開発環境付き処理系製品群
Twitterに買収されたDabbleDB。http://dabbledb.com/demo/
米海軍での採用やインテルの技術/資本参加でニュースになったTeleplace(旧Qwaq)http://www.teleplace.com/
アジャイル界隈では名前の挙がることの多いMetaEdit+ http://www.fuji-setsu.co.jp/products/MetaEdit/index.html
…とかかな。あと、Smalltalkユーザーのイベントとか結構定期的に行なわれていて、
海外だと ESUG とかよく聞くしhttp://www.esug.org/wiki/pier/Conferences/2011
日本では東京と京都で月いちペースで勉強会が催されている。http://www.smalltalk-users.jp/
0185デフォルトの名無しさん
2011/11/12(土) 13:24:13.59昔ちょっと使ったわ
あれsmalltalkで出来てたんか
1 Smalltalk developer = 3.75 Java developers. が本当なら
なんで廃れてしまったんだろうね
0186デフォルトの名無しさん
2011/11/12(土) 13:40:36.290187デフォルトの名無しさん
2011/11/12(土) 13:46:00.53土方を集める方が遙かに容易で安価だからその等式がほんとならむしろ必然じゃない?
というのは半分冗談として、マジレスすると、処理系にいろんなコストがかかりすぎたのが敗因。
今でこそフリーの処理系があるし、ネットブックレベルでマシンパワーも十分だけれども、
かつては処理系からEWSまでまともに揃えていたら数百万〜一千万仕事だった。
VisualAge Smalltalk の身売り先での価格を見れば受け継がれた強気度がうかがえる。
http://www.instantiations.com/products/purchase.html
もしろんその特殊性な設計思想(>>154 ) ゆえに、
既存の処理系に熟達した人ほど頭の切り替えが難しいというのもある意味コスト高かも。
0188デフォルトの名無しさん
2011/11/12(土) 13:51:44.990189デフォルトの名無しさん
2011/11/12(土) 14:01:01.58ScalaとかOCamlとか、LL系と同じくらい記述が簡潔な言語を使えたら、静的のほうがいいでしょ。
LLがもてはやされるのって、動的だからってより記述が簡潔だからってほうが大きいんじゃないの。
0190デフォルトの名無しさん
2011/11/12(土) 14:02:39.14もちろんあるだろうね。だからクオリティが低くてもSqueak/Pharoとかのほうが賑わっちゃう。
で、SqueakはSqueakで人が集まるからTraitsとかの新機能が生まれ他言語へ輸出されたり
する反面、あちこちいろいろいじられてクオリティの低下を招くって面もあって痛し痒し。
0191デフォルトの名無しさん
2011/11/12(土) 14:08:33.53機能や仕様が流動的なうちは動的言語の方がベターだけど、
だいたい決まったら静的言語で書き直す―っていうのが古くからのよくあるパターン。
0192デフォルトの名無しさん
2011/11/12(土) 14:12:20.53IronPython使うより
C#使った方が楽なんだけど
0193デフォルトの名無しさん
2011/11/12(土) 14:12:34.19それいうなら、動的型付け言語だろ。
今の言語はほぼすべて動的言語だ。
(インターフェースなどで実行時に呼び出す関数が決まる)
0194デフォルトの名無しさん
2011/11/12(土) 14:13:58.38修正するという点では楽ができないからな。
静的型付け言語だと、修正するときが楽になる。
修正漏れがあったら警告してくれるからね。
0195デフォルトの名無しさん
2011/11/12(土) 14:18:02.32見られて触れる所があったけど、普通じゃかえないもんな。
0196デフォルトの名無しさん
2011/11/12(土) 14:20:36.17よく考えて作ってないと動的はごちゃごちゃするのは仕方がないかも。
設計がうまい人ならば、問題はないと思うが、作る前に熟考を要する
からなぁ。
私が知る中で、書く人がタイピングよりも考える事に費やす時間が長い言語は、SQL, Lisp, Haskellだけだ。 - Philip Greenspun
0197デフォルトの名無しさん
2011/11/12(土) 14:25:00.61絶対、考えるよりもタイピングする時間のほうが長いよw
0198デフォルトの名無しさん
2011/11/12(土) 14:26:29.01君ら静的型派の言う「仕様が流動的で試行錯誤する」レベルは
動的型派の言う「だいたい決まったら」フェーズのうちだから。^^;
0199デフォルトの名無しさん
2011/11/12(土) 14:29:04.61つまり動的型は勘違いしてるってことかw
0200デフォルトの名無しさん
2011/11/12(土) 14:37:07.46最初から書くときだけ。つまり修正する必要がないときだけ。
試行錯誤するフェーズというのは、そこで書いたコードは捨てるレベル。
捨てるのだから修正する必要はない。だからここでも動的型付けは効率がいい。
だいたい決まったフェーズとか完全に間違い。
実際のプロジェクトの多くは、修正がメインになる。
プロジェクトが大きい物ほど、すでに作られたものを修正することのほうが多い。
そしてプロジェクトが大きい物ほど、人の入れ替わりも多く
つまり「なにも知らない人がいきなり修正を任される」ってことが多くなる。
バグの原因は、想定外のことが発生したから。
なぜ想定外のことが発生するかというと知るべきことに気づかなかったから。
なぜ気づかなかったかというと、その知るべき情報を手に入れられなかったから。
これが静的型付け言語だと、簡単の情報を手に入れることができる。
メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
すべて判明する。これは一例であり静的型付け言語だともっと多くの情報を手に入れられる。
よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。
0201デフォルトの名無しさん
2011/11/12(土) 14:49:35.66そういう話ではない。
試行錯誤の段階は、コード量は少ない。
少ないから、それを書き換えるのは楽。
俺が言っている修正っていうのは、
一旦は完成されたものとして、出来上がってしまったものに
手を入れるという話。影響範囲が大きく、一つ変更するだけでも
他に修正しないといけない箇所が出てくる状態。
それを動的型付け言語で把握するのは大変な作業。
0202デフォルトの名無しさん
2011/11/12(土) 14:52:35.43だうと
0203デフォルトの名無しさん
2011/11/12(土) 14:53:44.26それは、反論とは言わんよw
0204デフォルトの名無しさん
2011/11/12(土) 14:56:25.82> それを動的型付け言語で把握するのは大変
そこらへんはもう分かっていることで、だから「だいたい決まった」フェーズでは
静的型のほがいいし、動的型で引っ張るなら修正が入る前にテスト書いとけっていうのが
最近の流れなんじゃないの?
0205デフォルトの名無しさん
2011/11/12(土) 15:00:14.87設計変更の影響がどこまで出てくるかを見極めるのは設計者の技量でも
あるよ。何も考えずにだらだら作るのと、変更する箇所を予めよそくして
変更しやすい設計にしておくことでは、全然違うから。
0206デフォルトの名無しさん
2011/11/12(土) 15:02:33.04> それを動的型付け言語で把握するのは大変な作業。
それは能力が低すぎるぞ。
0207デフォルトの名無しさん
2011/11/12(土) 15:02:45.72Smalltalk環境を体験したことない童貞がしそうなドヤ顔だな。
0208デフォルトの名無しさん
2011/11/12(土) 15:04:15.950209デフォルトの名無しさん
2011/11/12(土) 15:06:12.82> メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
> すべて判明する。
その機能、動的言語のIDEでは遅くとも70年代には実装されていたのだが…
> これは一例であり静的型付け言語だともっと多くの情報を手に入れられる。
Squeakなら今実行しているソース、バイトコード、そのバイトコードを実行するVMのソースまで簡単に手に入れられるのだが、
Javaの場合はどうなんだい?
0210デフォルトの名無しさん
2011/11/12(土) 15:06:48.63動的型付け言語だと、能力が必要になることなのかい?w
0211デフォルトの名無しさん
2011/11/12(土) 15:07:32.94> その機能、動的言語のIDEでは遅くとも70年代には実装されていたのだが…
じゃあ、今の動的型付け言語で
同じことが出来るIDEを教えて下さい。
smalltalkは知らないし、あまり使われていないので
それ以外で!
0212デフォルトの名無しさん
2011/11/12(土) 15:08:34.92> Squeakなら今実行しているソース、バイトコード、そのバイトコードを実行するVMのソースまで簡単に手に入れられるのだが、
> Javaの場合はどうなんだい?
CGLIBやJavassistはバイトコード(クラスファイルの中身)を操作するライブラリ
代表的なのはこの3つ
・ASM
ttp://asm.ow2.org/
低水準なライブラリ
JVM言語の処理系では自作を除けばこれが定番
Java7リリース前からinvoke dynamic に対応するなどJSR292チームと連携して開発されてる
・CGLIB
ttp://cglib.cvs.sourceforge.net/viewvc/cglib/cglib/
ASM上に作られたやや高水準のライブラリ
SpringやHibernateで使われたため有名だが開発は停滞してる
Springが依存するcglib-nodep-2.2.jarにはASMのクラスファイルが含まれてる
・Javassist
ttp://www.csg.is.titech.ac.jp/~chiba/javassist/
東工大の千葉先生が開発した高水準のライブラリ
現在はJBossでメンテされてる
HibernateやSeasar2で使われてる
これらを使うと動的にクラスを作ったり、クラスファイルを読み込んで
フィールドやメソッドの追加、メソッドの書き換えができる
0213デフォルトの名無しさん
2011/11/12(土) 15:08:47.460214デフォルトの名無しさん
2011/11/12(土) 15:10:35.40おk、おk。じゃあそれで、>>152をさくっとやってみてくれ。
0215デフォルトの名無しさん
2011/11/12(土) 15:10:40.10静的型付け言語用に比べて大きく劣っていることは事実だろう。
0216デフォルトの名無しさん
2011/11/12(土) 15:11:28.81めんどくえから、ソースコードでも読んでろ。
ttps://src.springframework.org/svn/spring-framework/trunk/org.springframework.aop/src/main/java/org/springframework/aop/framework/Cglib2AopProxy.java
Cglib2AopProxy#getProxy(ClassLoader classLoader)から抜粋
Class rootClass = this.advised.getTargetClass(); //これが元のクラス
Class proxySuperClass = rootClass; //元のクラスと同じ
if (ClassUtils.isCglibProxyClass(rootClass)) {
//元のクラスが既にCGLIBでエンハンスされてた場合なのでここは無視
}
enhancer.setSuperclass(proxySuperClass); //元のクラスをスーパークラスに設定
proxy = enhancer.create(); //動的にクラスを生成
CGLIBによって作られるクラスは元のクラスを継承したクラス
0217デフォルトの名無しさん
2011/11/12(土) 15:12:41.00おまえは馬鹿すぎて話しにならん
0218デフォルトの名無しさん
2011/11/12(土) 15:13:20.30つまり静的言語では能力は必要ないってことか?
だから静的厨はみんなバカなんだなw
0219デフォルトの名無しさん
2011/11/12(土) 15:14:33.37静的厨ってEclipseがないと何もできないの?
もっとも、Eclipseがあっても何もできないようだがww
0220デフォルトの名無しさん
2011/11/12(土) 15:14:45.40>smalltalkは知らないし、あまり使われていないので
>
>それ以外で!
ついには静的厨もSmalltalkには敗北を認めざるをえなかったみたいだなw
レベルの低い相手にしかイバルことができない卑屈なヤシwww
0221デフォルトの名無しさん
2011/11/12(土) 15:15:59.93継承関係もおかしいコードをリファクタリングしたことあるけど、
Javaじゃなければ無理だと思ったよ。
リファクタリングフェーズでは、人間による修正は
最小限コードの順番を整えるだけにして、
あとはEclipseに付いているリファクタリングブラウザを使って
自動的にメソッドの移動を移動したり継承関係を整えていった。
あれが他の動的型付け言語だと完全に不可能だね。
まず、リファクタリングブラウザがついてるIDEあるの?
まあ無いことはないけど、ローカル変数書き換え程度しかないような
とても実用レベルには達しないものだった。
0222デフォルトの名無しさん
2011/11/12(土) 15:16:38.83やっぱり他の動的型付け言語用のまともな
IDE知らないんじゃないか。
0223デフォルトの名無しさん
2011/11/12(土) 15:18:46.83そこまでしてSmalltalkを避けたいわけ?
0224デフォルトの名無しさん
2011/11/12(土) 15:19:18.30お前日本語おかしいよ。
簡単なことに能力は必要ないって言ってるだけ。
なぜ、「簡単なこと」を省略して
どんなことにも能力は必要ないってことに
しちゃうのか?
0225デフォルトの名無しさん
2011/11/12(土) 15:19:19.79リファクタリングブラウザの元祖はSmalltalkだということすら知らないの?
0226デフォルトの名無しさん
2011/11/12(土) 15:20:02.82お前仕事したことある?
Smalltalkを避けたいのではなく、
使われてないんだよ。
実用レベルの話しようぜ。
0227デフォルトの名無しさん
2011/11/12(土) 15:20:20.72Smalltalkは使われてないんだよ。
実用レベルの話しようぜ。
0228デフォルトの名無しさん
2011/11/12(土) 15:20:40.78> なぜ、「簡単なこと」を省略して
元レスのどこに「簡単なこと」なんて書いてあるの?
>>210
> >>206
> 動的型付け言語だと、能力が必要になることなのかい?w
おまえ、日本語つーより頭おかしいよ?
0229デフォルトの名無しさん
2011/11/12(土) 15:20:53.92やっぱり他の静的型付け言語用のまともな
IDE知らないんじゃないか。
0230デフォルトの名無しさん
2011/11/12(土) 15:20:58.71すまん。
これのどこに「3+4」のバイトコードを書き換えてかけ算をさせる要素が含まれるの?
0231デフォルトの名無しさん
2011/11/12(土) 15:21:03.40最初から書くときだけ。つまり修正する必要がないときだけ。
試行錯誤するフェーズというのは、そこで書いたコードは捨てるレベル。
捨てるのだから修正する必要はない。だからここでも動的型付けは効率がいい。
だいたい決まったフェーズとか完全に間違い。
実際のプロジェクトの多くは、修正がメインになる。
プロジェクトが大きい物ほど、すでに作られたものを修正することのほうが多い。
そしてプロジェクトが大きい物ほど、人の入れ替わりも多く
つまり「なにも知らない人がいきなり修正を任される」ってことが多くなる。
バグの原因は、想定外のことが発生したから。
なぜ想定外のことが発生するかというと知るべきことに気づかなかったから。
なぜ気づかなかったかというと、その知るべき情報を手に入れられなかったから。
これが静的型付け言語だと、簡単の情報を手に入れることができる。
メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
すべて判明する。これは一例であり静的型付け言語だともっと多くの情報を手に入れられる。
よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。
0232デフォルトの名無しさん
2011/11/12(土) 15:21:07.08FedExは実用されてないの?www
0233デフォルトの名無しさん
2011/11/12(土) 15:21:42.90動的型付けが効率がいいのは、ちゃんと設計もできて
最初から書くときだけ。つまり修正する必要がないときだけ。
試行錯誤するフェーズというのは、そこで書いたコードは捨てるレベル。
捨てるのだから修正する必要はない。だからここでも動的型付けは効率がいい。
だいたい決まったフェーズとか完全に間違い。
実際のプロジェクトの多くは、修正がメインになる。
プロジェクトが大きい物ほど、すでに作られたものを修正することのほうが多い。
そしてプロジェクトが大きい物ほど、人の入れ替わりも多く
つまり「なにも知らない人がいきなり修正を任される」ってことが多くなる。
バグの原因は、想定外のことが発生したから。
なぜ想定外のことが発生するかというと知るべきことに気づかなかったから。
なぜ気づかなかったかというと、その知るべき情報を手に入れられなかったから。
これが静的型付け言語だと、簡単の情報を手に入れることができる。
メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
すべて判明する。これは一例であり静的型付け言語だともっと多くの情報を手に入れられる。
よって、動的型付け言語はなぐり書きするのは効率がいいが
修正するときには静的型付け言語のほうがはるかに効率が高い。
0234デフォルトの名無しさん
2011/11/12(土) 15:22:07.66俺はFedEx社員じゃないもの(笑)
0235デフォルトの名無しさん
2011/11/12(土) 15:22:09.50> メソッドを右クリックしてぽちっと押すだけで、そのメソッドを使っている箇所が
> すべて判明する。
Smalltalkでは70年代から実装されている機能ですが何か?
0236デフォルトの名無しさん
2011/11/12(土) 15:22:34.00Smalltalkは使われてないんだよ。
実用レベルの話しようぜ。
0237デフォルトの名無しさん
2011/11/12(土) 15:22:47.38それはやばい。
0238デフォルトの名無しさん
2011/11/12(土) 15:23:05.53つまり知らないってことね。
知らない事は恥じゃないよ。知らないということを自覚していないことが恥なんだ。
覚えておこうね。
0239デフォルトの名無しさん
2011/11/12(土) 15:23:17.14結論になっていることに気づけ馬鹿ども
自滅したいのか
0240デフォルトの名無しさん
2011/11/12(土) 15:23:40.44それでいいよw
0241デフォルトの名無しさん
2011/11/12(土) 15:24:19.74じゃあ、スレタイを「やっぱりSmalltalkを除く動的型付け言語は…」に変えとけ。
それまではSmalltalkアリだ。
0242デフォルトの名無しさん
2011/11/12(土) 15:25:30.33リファクタリングブラウザは、Smalltalkじゃろくな実装作れなかっただろ。
知らないのか?
0243デフォルトの名無しさん
2011/11/12(土) 15:25:48.82それってプログラミングのプロとしてすごく恥ずかしいことだと思うんだけど。
0244デフォルトの名無しさん
2011/11/12(土) 15:26:14.53ラルフにそう言ってみれば?
0245デフォルトの名無しさん
2011/11/12(土) 15:27:43.70ジョブズがSmalltalk GUIをパクったことを知らないでドヤ顔の
旧マカに似ててかわいいな。
0246デフォルトの名無しさん
2011/11/12(土) 15:28:41.20えーと、それは
・動的型付け言語であっても大規模開発規模に対応可能なIDEは実現可能である
という事実を認めたということでいいのかな?
0247デフォルトの名無しさん
2011/11/12(土) 15:29:41.36こんなくだらない機能しかないんだぜ。
http://st-www.cs.illinois.edu/users/brant/Refactory/
undoとかリファクタリングと関係ない機能まで書いてあるしw
0248デフォルトの名無しさん
2011/11/12(土) 15:30:21.87> ・動的型付け言語であっても大規模開発規模に対応可能なIDEは実現可能である
いいえSmalltalkだけです。ちゃちなIDEが作れるのはw
0249デフォルトの名無しさん
2011/11/12(土) 15:30:52.31http://pharobyexample.org/
0250デフォルトの名無しさん
2011/11/12(土) 15:31:14.80自分じゃ恥ずかしくないのかな?
0251デフォルトの名無しさん
2011/11/12(土) 15:31:21.44知ってる。
Smailtalkから始まって、その他の言語に移っていった。
そして今はSmailtalkは殆ど使われていない。
0号機が一番強いなんて設定は
アニメの中だけだよw
0252デフォルトの名無しさん
2011/11/12(土) 15:32:47.55ググるにして何年前の資料だよ!w
0253デフォルトの名無しさん
2011/11/12(土) 15:33:04.72知らないってことは恥ずかしいことじゃないが、
知らないことを自覚していないことはすごく恥ずかしいことなんだぜ?
0254デフォルトの名無しさん
2011/11/12(土) 15:34:56.28おもちゃを触るほど暇じゃないし
0255デフォルトの名無しさん
2011/11/12(土) 15:35:00.09自分に言うようにw
0256デフォルトの名無しさん
2011/11/12(土) 15:35:27.37なつかしいな、それ、15年ぐらい前だったか?
よく探してきたな、そんな初期のパッケージ。
おまえ、実はロートルスモールトーカーなんじゃねーの?
0257デフォルトの名無しさん
2011/11/12(土) 15:35:28.21地団駄踏んでるw
0258デフォルトの名無しさん
2011/11/12(土) 15:37:49.80これを見るといい。何も出来ないといってもいいから。
ST 4U 105: Using the Refactoring Browser in VA Smalltalk
http://www.youtube.com/watch?v=jih7QVlbzj8
0259デフォルトの名無しさん
2011/11/12(土) 15:37:58.41Smalltalkで開発されたシステムなら、ウォールストリートにいっぱいあるぜ?
人は見たいものだけを見るものだってカエサルの言葉が、お前見てると頭によく浮かぶよw
0260デフォルトの名無しさん
2011/11/12(土) 15:39:39.88だってそれ、標準との差分の説明だから。おまえ、英語大丈夫?
0261デフォルトの名無しさん
2011/11/12(土) 15:40:25.80他人が何を作ったかなんか関係ないよ。
Smalltalk に限らんが、一般にマイナー言語厨は人の褌で相撲取りすぎ。
0262デフォルトの名無しさん
2011/11/12(土) 15:40:37.400263デフォルトの名無しさん
2011/11/12(土) 15:41:27.90動画なり資料を見つけてくるべきだな
0264デフォルトの名無しさん
2011/11/12(土) 15:42:59.42おまえはキチガイか?
使われていないというから、使われていることを示したのだが?
そんなに自分が書いたコードに限定したいなら、
まずはお前が書いたコードを示せ。今すぐだ。
0265デフォルトの名無しさん
2011/11/12(土) 15:44:38.35継承関係にあるクラスのメソッドを修正するとか
そういったことを自動的にするのが壊滅的だよ。
修正したら、何かを壊してしまう。
Smalltalkもそれは例外じゃない。
0266デフォルトの名無しさん
2011/11/12(土) 15:44:43.72これは示したことにならんだろw
0267デフォルトの名無しさん
2011/11/12(土) 15:45:17.66Smalltalkのリファクタリングが凄いつーより、
Java厨が例示する「静的型付言語の最強リファクタリング機能」ってのが
Smalltalkでは黎明期から実装されている常識的基本機能だと言ってるだけ。
文句あるならJava厨に言えw
0268デフォルトの名無しさん
2011/11/12(土) 15:45:44.53FedExは?
0269デフォルトの名無しさん
2011/11/12(土) 15:46:16.88コードっつーか実体験で書いてるっつーレスがないから
全然なんだよ。
大規模開発の話だろ?
今まで「協力会社さん」の面接100人以上やってるが、
業務経歴書のプログラミング言語欄にSmalltalkなんて書いてる奴いねーよ。
人も集まらん言語でどうやって大規模開発するんだ?
0270デフォルトの名無しさん
2011/11/12(土) 15:46:23.500271デフォルトの名無しさん
2011/11/12(土) 15:46:41.02それは仕方ないね。
型がないから、同じものなのか、同じ名前で違うものなのか区別できない。
動的型付け言語で機能が限定的になるのは仕方ないこと。
0272デフォルトの名無しさん
2011/11/12(土) 15:46:51.84具体的にどのリファクタリング機能を指しているんだ?
0273デフォルトの名無しさん
2011/11/12(土) 15:47:06.00ぷ
それ、本気で言ってんの?
すげえ面白い冗談だなw
0274デフォルトの名無しさん
2011/11/12(土) 15:47:29.99相場教えてくれよ。なあ。
0275デフォルトの名無しさん
2011/11/12(土) 15:47:35.54さあ、正座してまとうw
0276デフォルトの名無しさん
2011/11/12(土) 15:47:46.50senders w
0277デフォルトの名無しさん
2011/11/12(土) 15:50:55.52証拠もなにも、
Squeak/Pharoの標準ブラウザのmethod refactoringに
add parameterとremove parameterがあるが、
それがどうかしたか?www
0278デフォルトの名無しさん
2011/11/12(土) 15:53:24.38言えてる
「アップル以外のマウスじゃボタンがいっぱいで使いにくい!」とか
言ってたアフォなおっさんが昔いたのを思い出したわw
0279デフォルトの名無しさん
2011/11/12(土) 15:53:33.93それはいつからあったの?
SqueakでもPharoでもよいけど、世に出た最初のバージョンから
既に標準ブラウザのmethod refactoringにadd parameterとremove parameterがあったの?
0280デフォルトの名無しさん
2011/11/12(土) 15:54:38.721. IDEをネタに動的言語をDISって遊ぶときは、めんどくせーからSmalltalkはあらかじめ除外しておけ。
2. 動的言語を尻目にEclipseの自慢をするときは、事前にSmalltalkの機能くらいはさらっておけ。
0281デフォルトの名無しさん
2011/11/12(土) 15:56:03.98言語自慢は威勢がよくても>>274みてーな大前提でだんまりだよ。
結論:
人がいなけりゃ開発できない
0282デフォルトの名無しさん
2011/11/12(土) 15:57:04.65どうしてそうなるの? 可不可の問題じゃないの? 馬鹿なの? 死ぬの?
0283デフォルトの名無しさん
2011/11/12(土) 15:57:42.71Sun JDKが世に出た最初のバージョンではリファクタリングはどうだったのよ?
0284デフォルトの名無しさん
2011/11/12(土) 15:57:43.47えっ黎明期から当たり前だったんじゃないの?違うの?
0285デフォルトの名無しさん
2011/11/12(土) 15:59:09.64俺は良い時で人月250万ぐらいだったな。今は200万ぐらいか。
一番景気悪い時でも150万まで落ち込んで、マジで落ち込んだわ。
0286デフォルトの名無しさん
2011/11/12(土) 15:59:48.92おまえ、完全に頭おかしいぞ
0287デフォルトの名無しさん
2011/11/12(土) 16:00:12.66高すぎる
0288デフォルトの名無しさん
2011/11/12(土) 16:01:01.980289デフォルトの名無しさん
2011/11/12(土) 16:01:19.33他人様に要求した以上は、当然自分の人月単価を晒すよな?
これで答えないようなら、人間として最低のクズだぞw
0290デフォルトの名無しさん
2011/11/12(土) 16:04:02.190291デフォルトの名無しさん
2011/11/12(土) 16:04:13.010292デフォルトの名無しさん
2011/11/12(土) 16:04:41.51単価200万とか、バーゲン価格だろ
0293デフォルトの名無しさん
2011/11/12(土) 16:05:16.84八つ当たりしてるんだろうw
0294デフォルトの名無しさん
2011/11/12(土) 16:06:03.08静的厨って、みんなこんな程度の人格なの?
0295デフォルトの名無しさん
2011/11/12(土) 16:06:12.80リアルでそんな事言っている奴がいたから、
じゃあSmalltalk使っていいから1/10の給料で働いてくれって
言ったら黙ったよw
0296デフォルトの名無しさん
2011/11/12(土) 16:06:17.33それ個人だろw
「Smalltalk開発者5人よろしく」
って話なんだよ。わかってねーなー
0297デフォルトの名無しさん
2011/11/12(土) 16:06:32.52実力を見せたらどうだw
0298デフォルトの名無しさん
2011/11/12(土) 16:06:36.36答えろ。(マジ
0299デフォルトの名無しさん
2011/11/12(土) 16:07:21.20で、おまえの単価はいくらか答えろ。命令だ。
0300デフォルトの名無しさん
2011/11/12(土) 16:07:58.710301デフォルトの名無しさん
2011/11/12(土) 16:08:40.92自分の単価を言って
いちゃもんつける
真性のキチガイか
0302デフォルトの名無しさん
2011/11/12(土) 16:09:15.89相場を聞いているわけだな。
0303デフォルトの名無しさん
2011/11/12(土) 16:09:31.31お前は技術論以前の、人間として最低なクズ野郎だ。
軽蔑にも値しない。消えろ。
0304デフォルトの名無しさん
2011/11/12(土) 16:10:13.44それが言い訳か?おまえはその程度の倫理観の人間なんだな。よくわかった。
0305デフォルトの名無しさん
2011/11/12(土) 16:11:29.500306デフォルトの名無しさん
2011/11/12(土) 16:11:41.780307デフォルトの名無しさん
2011/11/12(土) 16:12:27.640308デフォルトの名無しさん
2011/11/12(土) 16:12:46.08仕様書読めるかどうかも怪しい
0309デフォルトの名無しさん
2011/11/12(土) 16:14:27.610310デフォルトの名無しさん
2011/11/12(土) 16:14:57.62それぞれの言語で、最高のIDEはどれだ?
最低限リファクタリングツールの機能は付いているもので。
0311デフォルトの名無しさん
2011/11/12(土) 16:16:30.130312デフォルトの名無しさん
2011/11/12(土) 16:16:39.73http://twitter.com/#!/maeda_/status/135253704063451137
0313デフォルトの名無しさん
2011/11/12(土) 16:19:23.90どれだけ本当に凄腕でも無理なもんは無理。
ご縁が無かったということで
0314デフォルトの名無しさん
2011/11/12(土) 16:19:24.34おもちゃなんか触っているひまねーとか…
0315310
2011/11/12(土) 16:20:32.190316デフォルトの名無しさん
2011/11/12(土) 16:20:36.650317デフォルトの名無しさん
2011/11/12(土) 16:22:25.84Smalltalkは別格。ザクとは違うのだよ、ザクとは!
0318デフォルトの名無しさん
2011/11/12(土) 16:22:31.60無能ども。
0319デフォルトの名無しさん
2011/11/12(土) 16:23:04.12一番使われてないのはなぜ?w
0320デフォルトの名無しさん
2011/11/12(土) 16:24:01.660321デフォルトの名無しさん
2011/11/12(土) 16:24:40.21いーなー、俺も勉強会に出れるような都会にいれば良かった。
ttp://bit.ly/mWaBd7
0322デフォルトの名無しさん
2011/11/12(土) 16:25:19.68静的厨は煽ることしかできないのか?
0323デフォルトの名無しさん
2011/11/12(土) 16:25:33.98おまえ、本気でJavaやWindowsが一番優れているとか思っているの?
0324デフォルトの名無しさん
2011/11/12(土) 16:25:34.27関数型は、マルチコアマルチスレッドやGPGPUといった流れの中で、
参照透過性と並列処理との相性の良さが理由になって持て囃されるのはわかる
むしろ今こそ KL1 でどうだ
0325デフォルトの名無しさん
2011/11/12(土) 16:26:54.880326デフォルトの名無しさん
2011/11/12(土) 16:27:31.84JAVA+IDE+Windowsって一番多いんじゃないの?ここでいう土方ならほぼ100%
だろ?
0327デフォルトの名無しさん
2011/11/12(土) 16:27:56.95ダイナブック論文を読めば、Smalltalkの真価が発揮されるのはこれからだとわかる。
0328デフォルトの名無しさん
2011/11/12(土) 16:29:20.55大腸菌こそが至高の生物だと言っているようなもの。
0329デフォルトの名無しさん
2011/11/12(土) 16:29:24.21ム板だからしょうがないか。スレがマ板向けだよなこれ。
0330デフォルトの名無しさん
2011/11/12(土) 16:30:16.43ちょっと古文や漢文読んでみるみたな軽いノリだろ
Smalltalkをメインに使っていこうって感じじゃないでしょ
0331デフォルトの名無しさん
2011/11/12(土) 16:30:43.24その証拠持ってきてみなさいよ。
0332デフォルトの名無しさん
2011/11/12(土) 16:31:00.36論文とか言ってもケイのは読み物の類。
http://swikis.ddo.jp/abee/74
0333デフォルトの名無しさん
2011/11/12(土) 16:31:04.61http://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%
0334デフォルトの名無しさん
2011/11/12(土) 16:31:25.7832 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%
0335デフォルトの名無しさん
2011/11/12(土) 16:31:26.78ぶっちゃけネタは何だっていいんだよ
0336デフォルトの名無しさん
2011/11/12(土) 16:34:08.40Objective-Cはオブジェクト指向部分は動的型付けだしC系では一番Smalltalk的だな。
Objective-Cって、アプリのインストール数でいえばマイナーなのかな?
0337デフォルトの名無しさん
2011/11/12(土) 16:34:24.29(アジェンタより)
今後なにやるか
- Amber Smalltalk http://amber-lang.net/ の開発に貢献
- メディアアート向けのフレームワークの開発
(ProcessingやOpenFrameworksのような)
- Smalltalkを改造
+ パターンマッチ
+ モナド用の構文(F# のコンピュテーション式)
+ trait(amberにはない)
- blue bookを和訳
-プログラミングのローレベルな部分(コンパイラ・インタプリタなど)のコードを読む・いじる
0338デフォルトの名無しさん
2011/11/12(土) 16:35:53.56いや「的」じゃなくてSmalltalkがマイナーだと名指しで言われてるだけだろ
0339デフォルトの名無しさん
2011/11/12(土) 16:36:03.34ものづくりをする人間は
smalltalkを選ばない法則
0340デフォルトの名無しさん
2011/11/12(土) 16:37:01.38いや。TIOBEって10位より下はあてになんないから。メディアリテラシー欠如なの?
0341デフォルトの名無しさん
2011/11/12(土) 16:37:56.130342デフォルトの名無しさん
2011/11/12(土) 16:40:42.01実際に選ばれてないからなぁw
0343デフォルトの名無しさん
2011/11/12(土) 16:40:42.49Objective-CはC/C++のコードも動かせるからな
大部分のコードはC/C++だよ
0344デフォルトの名無しさん
2011/11/12(土) 16:42:21.37え、それ、本気でそう思ってる?
なんともはや…
0345デフォルトの名無しさん
2011/11/12(土) 16:43:25.42正直に答えてくれ。あんた、Objective-Cで開発したことないだろ?
0346デフォルトの名無しさん
2011/11/12(土) 16:43:28.64いやいや。TIOBEはネットでの言及ランキングだから。メディアリテラシー皆無なの?
0347デフォルトの名無しさん
2011/11/12(土) 16:44:51.74Statically 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
0348デフォルトの名無しさん
2011/11/12(土) 16:44:56.08みてわかるのは、おまえが統計データの読み方を知らないということ。
0349デフォルトの名無しさん
2011/11/12(土) 16:46:47.83反論したいなら、お前が信じるデータもってこいと言う話だよ。
0350デフォルトの名無しさん
2011/11/12(土) 16:47:36.19http://amber-lang.net/learn.html
0351デフォルトの名無しさん
2011/11/12(土) 16:47:41.99それがナナメ上なデータでドヤ顔した言い訳か?
0352デフォルトの名無しさん
2011/11/12(土) 16:48:17.1510位以上と10位より下で区切る根拠は?
もしかしてPerl厨ですか?
0353デフォルトの名無しさん
2011/11/12(土) 16:50:27.04こいつら、どうせ開発言語を選ぶ権利なんてない底辺肉体労働者なんだからww
0354デフォルトの名無しさん
2011/11/12(土) 16:50:33.14メディアリテラシー欠如者にどんなデータ持ってこいと…
はっ。もしかして「メディアリテラシー」すら分からないのか?
0355デフォルトの名無しさん
2011/11/12(土) 16:51:01.71触る価値がない
0356デフォルトの名無しさん
2011/11/12(土) 16:51:03.540357デフォルトの名無しさん
2011/11/12(土) 16:51:33.54じゃあなにを信じるの?
信じるのは己だけだ!
つまり、何のデータもない、妄想を信じると?
0358デフォルトの名無しさん
2011/11/12(土) 16:52:03.24単価250万が休日に2chやってるのと
どっちが滑稽かって話だろうな
0359デフォルトの名無しさん
2011/11/12(土) 16:52:20.25そんな勝ち目のない所に口を出さなきゃいいのに・・・。
それとも勝ち目があるの?
なら勝ってみせてよ。
0360デフォルトの名無しさん
2011/11/12(土) 16:52:33.47やっぱ馬鹿だこいつ。
0361デフォルトの名無しさん
2011/11/12(土) 16:53:03.99募集してないんだからwww
0362デフォルトの名無しさん
2011/11/12(土) 16:54:25.590363デフォルトの名無しさん
2011/11/12(土) 16:55:34.87大規模開発のスレなんだから、その言語がいくら優れていたとしても、
現実問題として、大規模開発に使えない技術以外の要因があるんだから
しょうがないでしょと。それだけなのに。
0364デフォルトの名無しさん
2011/11/12(土) 16:55:48.16作ったものに対して払うもんだ。
0365デフォルトの名無しさん
2011/11/12(土) 16:57:14.65なんでみんなエスペラント勉強しないの?馬鹿なの?
って言ってるようなもんですよ。
ここのSmalltalkの人。
0366デフォルトの名無しさん
2011/11/12(土) 16:58:03.93優秀なJavaプログラマ10人なら
後者のほうがはるかに開発量は多いだろうな。
0367デフォルトの名無しさん
2011/11/12(土) 17:00:09.16>Objective-CはC/C++のコードも動かせるからな
>大部分のコードはC/C++だよ
痛イ、痛スグルwwwーーー
これだから静的厨ってのは....
0368デフォルトの名無しさん
2011/11/12(土) 17:00:21.34学がないのは分かったから、ぶっちゃけるならせめてラテン語に喩えておけ。
0369デフォルトの名無しさん
2011/11/12(土) 17:00:42.17> 別に誰もSmalltalk自体が糞言語だなんてdisってないのに。
このスレの今日分のログ読んでもそう思うのなら、日本語を勉強しなおしたほうがいいよ。
煽りじゃなく、アドバイス。
0370デフォルトの名無しさん
2011/11/12(土) 17:03:34.39InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
みたいなステキな名前に変更するためにIDEのリファクタリング機能必要でしょ
最初からこんな名前考えるのも面倒だし
0371デフォルトの名無しさん
2011/11/12(土) 17:03:43.03開発量を行数で測るなら、そうだろうな。
開発量を、同じ案件を実装した時の工期の逆数として測るなら、おそらく前者のほうが上。
0372デフォルトの名無しさん
2011/11/12(土) 17:04:28.36逆。そんな長い名前をつけてしまったものを
あとから正しく直すのがリファクタリング機能の一つ
0373デフォルトの名無しさん
2011/11/12(土) 17:05:26.43開発中に自分用メモとして仮付けした名前を仕様書にあわせて
F5291 みたいなステキな名前に変更するためのリファクタリング機能です
0374デフォルトの名無しさん
2011/11/12(土) 17:05:58.810375デフォルトの名無しさん
2011/11/12(土) 17:06:30.940376デフォルトの名無しさん
2011/11/12(土) 17:07:00.27一応アランケイとは面識がある
0377デフォルトの名無しさん
2011/11/12(土) 17:08:39.08大学で情報系やってきた就活生は、大抵はObjective-CかHaskellあたりに興味を示す。
あとはC++とか、たまにRだな。
Javaとかやってもスキルの商品価値はあと5年も持たないと知ってるからね。
0378デフォルトの名無しさん
2011/11/12(土) 17:08:43.11話半分に聞くことにしている。
0379デフォルトの名無しさん
2011/11/12(土) 17:09:17.60学生の興味とかどうでもいいわw
0380デフォルトの名無しさん
2011/11/12(土) 17:09:43.84相手は覚えてないだろうけど
0381デフォルトの名無しさん
2011/11/12(土) 17:09:44.14話半分で聞かれることを想定して話しているので半分も聞いてはいけない
0382デフォルトの名無しさん
2011/11/12(土) 17:09:50.040383デフォルトの名無しさん
2011/11/12(土) 17:10:18.19今のうちにコボルオヤジの体験談を聞いて対策しておけ、ってことだろw
0384デフォルトの名無しさん
2011/11/12(土) 17:10:32.86わかった。全く聞かないことにするw
0385デフォルトの名無しさん
2011/11/12(土) 17:10:47.06Smalltalkに呪いに言葉を吐きつつ土方たちが必至こいて勉強する姿が目に浮かぶようだ。
0386デフォルトの名無しさん
2011/11/12(土) 17:11:08.28SmallTalkは現場では全く使われていない。
0387デフォルトの名無しさん
2011/11/12(土) 17:11:26.610388デフォルトの名無しさん
2011/11/12(土) 17:11:37.58結局、静的言語に取り入れられるのかよw
0389デフォルトの名無しさん
2011/11/12(土) 17:11:38.63くやしいのおw
0390デフォルトの名無しさん
2011/11/12(土) 17:11:47.06少なくともsmalltalkなんかよりは
0391デフォルトの名無しさん
2011/11/12(土) 17:12:15.350392デフォルトの名無しさん
2011/11/12(土) 17:12:57.42もうScalaには入ってるんじゃなかったか?
このスレでは静的型言語=Javaなのか?
実際のところ、Javaは「ブルーカラーの言語」だから難しい機能は入らない可能性が高いよ
0393デフォルトの名無しさん
2011/11/12(土) 17:13:05.17そりゃそうだろ。
今までもずっと、動的言語で発案された技術が静的型言語に移植されて、ドカタがドヤ顔で自慢してきた。
歴史は繰り返すのさ。
0394デフォルトの名無しさん
2011/11/12(土) 17:13:47.45うん。動的型付け言語は実験的な言語の意味合いが強い。
そこで研究されてから、そののち静的言語に洗練された形で
統合される。
今までの歴史がそうだろう?
0395デフォルトの名無しさん
2011/11/12(土) 17:14:31.97あ、「難しい機能」なんだw お前にとっては?w
0396デフォルトの名無しさん
2011/11/12(土) 17:14:58.71何にせよ、プログラミング言語一つ覚えるときに一々必死にはならんだろ
というか必要な時期に勉強する方が
それこそ先駆者が必死に作ってくれた「ドカタでも分かりやすい」情報が
溢れているから楽だ。
庶民には庶民の知恵がある。先頭を走る奴とは価値観が違うんだよ
0397デフォルトの名無しさん
2011/11/12(土) 17:14:59.28オブジェクト指向というパラダイムも動的型付言語が発祥だな。
もっと遡れば、
チューリングマシンも動的型付だし、ラムダ計算も動的型付だ。
0398デフォルトの名無しさん
2011/11/12(土) 17:15:06.17だってクロージャごときが「難しい機能」としてマジで議論される言語だぜ?
0399デフォルトの名無しさん
2011/11/12(土) 17:15:47.14お前の周りで?w
0400デフォルトの名無しさん
2011/11/12(土) 17:15:52.83smalltalkのリファクタリングみたいに
0401デフォルトの名無しさん
2011/11/12(土) 17:17:55.28http://www.infoq.com/jp/news/2007/12/closures-preserving-feel-of-java
「Javaはブルーカラーの言語」
「「Javaらしさ」にさらなるダメージを与える危険を冒してはならない」
「ジェネリクスは大失敗でした。Javaの習得や理解は難しくなりましたが、それを避けることはできないのです」
0402デフォルトの名無しさん
2011/11/12(土) 17:18:39.94え?
0403デフォルトの名無しさん
2011/11/12(土) 17:18:53.81ドカタすぎだろ
0404デフォルトの名無しさん
2011/11/12(土) 17:20:11.410405デフォルトの名無しさん
2011/11/12(土) 17:21:33.74くしくも戻ってきた。w
動的言語の「試行錯誤するフェーズ」っていうのは、言語それ自体も対象になるそういうものだ。
http://metatoys.org/oxymoron/oxymoron.html
0406デフォルトの名無しさん
2011/11/12(土) 17:21:45.77だからSmalltalkも拒否する。
0407デフォルトの名無しさん
2011/11/12(土) 17:23:06.05Scalaのあれは名前だけで中身はただの抽象クラスの多重継承。
0408デフォルトの名無しさん
2011/11/12(土) 17:23:15.36ネラーのユーザ構成は基本年寄りだと認識しなさい。
0409デフォルトの名無しさん
2011/11/12(土) 17:23:27.08ヌルポとは永遠におさらばできていたんだよな..... (遠い目)
0410デフォルトの名無しさん
2011/11/12(土) 17:24:03.05だから、研究用なんだよね。
なぐり書きするのは最適、
でもそのあとで大きく作るのは大変。
大きくしてしまったら、そのあとは修正がメインになる。
修正フェーズでは、コードを把握するのが楽な静的型付け言語が有利となる。
0411デフォルトの名無しさん
2011/11/12(土) 17:24:40.14nullで初期化できるんだから型の問題じゃなくね?
0412デフォルトの名無しさん
2011/11/12(土) 17:24:47.970413デフォルトの名無しさん
2011/11/12(土) 17:25:32.890414デフォルトの名無しさん
2011/11/12(土) 17:25:46.940415デフォルトの名無しさん
2011/11/12(土) 17:26:01.770416デフォルトの名無しさん
2011/11/12(土) 17:27:22.09いや、だからSmalltalkはSmalltalkで書かれていて修正もされつつ運用されているわけで。
つーかリンク先ぜんぜん読んでねーだろ?
0417デフォルトの名無しさん
2011/11/12(土) 17:28:13.68そこでモナドでしょう!
0418デフォルトの名無しさん
2011/11/12(土) 17:28:17.880419デフォルトの名無しさん
2011/11/12(土) 17:30:33.25http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.115.6865
0420デフォルトの名無しさん
2011/11/12(土) 17:30:39.48「できる」と簡単に出来るかどうかってのは話は別。
たとえば、ヨットでだってアメリカにいける。
0421デフォルトの名無しさん
2011/11/12(土) 17:33:03.03Javaでのチーム開発とSmalltalkでのチーム開発を比べた経験から言えば、
メンテはSmalltalkのほうが遥かに簡単だ。
なにせコード量が違う。ドカタコードはメソッドが長いし、クラスも大きなクラスが多い。
Smalltalkのほうが単機能なメソッド、単機能なクラスにまとめやすい。
なぜかそうなるのかというと、それぞれの言語の既存のライブラリのコードがそうなっているから。
新しく書き下ろしたコードも既存のライブラリを使えば、どうしても既存コードの粒度に引きずられる。
書き下ろされたコードをリファクタリングしたりデバッグしたり機能拡張する時は、
Javaのほうが周囲のコードからの束縛が強いことが多い。
だからJavaのコードをいじるときには本当に神経を使う。Smalltalkのほうが分解しやすい。
以上、俺個人の経験だから、そうじゃないという経験がある人は反論してくれ。
0422デフォルトの名無しさん
2011/11/12(土) 17:34:14.96これが答えなだけじゃんか。
結局違いが出てるのは、プログラマの技術力に違いがあったからってだけだろ。
俺の所の優秀なJavaプログラマなら、コード量は少ない。
0423デフォルトの名無しさん
2011/11/12(土) 17:35:15.47仕事じゃねーから読みたいと思うもんしか読まねーよ。
長文ならなおさら。
読みたい!と思わせるような紹介ができないのが問題。
マイナー言語を宣伝するなら宣伝力を身につけよう!
0424デフォルトの名無しさん
2011/11/12(土) 17:36:08.80Smalltalkでの経験をベースにして、比較した上で言っている?
それとも単にJavaのコードしては短いほうだと思う、という話?
0425デフォルトの名無しさん
2011/11/12(土) 17:36:26.4510倍優れているという
Smalltalkのコードを見せてみ?
0426デフォルトの名無しさん
2011/11/12(土) 17:36:28.39そもそも静的言語で出来ていないことをSmalltalkはやっているだろ?
静的言語で組まれたソフトで、30年動き続けているものがあるのか?
修正がラクなら出来るんだよな? つーか動かしながら修正すらおぼつくまい。
0427デフォルトの名無しさん
2011/11/12(土) 17:36:39.89次はチームが使う言語を逆にして比べるべきだね。
Smalltalkを使っていたチームがJavaを使うと、ドカタコードになるのか。
JavaチームがSmailltalkを使うと、驚異的にコードが良くなるのか。
それを経験してからまたおいでw
0428デフォルトの名無しさん
2011/11/12(土) 17:37:24.12> 仕事じゃねーから読みたいと思うもんしか読まねーよ。
カエサルの言うとおりだな。凡人は事実を見ずに、見たいと思うものだけを見る。
0429デフォルトの名無しさん
2011/11/12(土) 17:37:57.29Scratchのコードでもダウンロードして読んでみれば?
0430デフォルトの名無しさん
2011/11/12(土) 17:38:09.83それはバージョンアップなしで?
Smalltalkならそういうのがあるというの?
名前は?
バージョンアップしていいのならWindowsとかもう30年立つだろう。
0431デフォルトの名無しさん
2011/11/12(土) 17:38:58.470432デフォルトの名無しさん
2011/11/12(土) 17:39:04.46ほぼ同じメンバーのチームで、ほぼ同じ内容のシステムの開発を比較したんだけど。
ちなみに、Smalltalkが先で、Javaは後で開発。それでもSmalltalkのほうが整理されていた。
0433デフォルトの名無しさん
2011/11/12(土) 17:39:34.17それはJavaの経験が浅かっただけだなw
0434デフォルトの名無しさん
2011/11/12(土) 17:39:44.25このレベルのプログラムなら
Javaには無数にあるだろ
10倍優れたのを出せよw
0435デフォルトの名無しさん
2011/11/12(土) 17:40:19.61Springのソースコードとかどうだい?
0436デフォルトの名無しさん
2011/11/12(土) 17:40:32.41いや、ほとんどのメンバーは5年以上の経験を持っていた。
むしろSmalltalkのほうが初めてという形だった。
0437デフォルトの名無しさん
2011/11/12(土) 17:41:33.19いやさ、だから先とか後とか関係ないんだよ。
両者を”入れ替えれ”と言ってる。
0438デフォルトの名無しさん
2011/11/12(土) 17:41:47.22VisualWorksとかSqueakとかXEROX Smallalk-80直系の子孫はみんなそうだよ?
再起動(と呼べるかどうか分からないけれど、オブジェクトの再配置)すら、数度しかない。
0439デフォルトの名無しさん
2011/11/12(土) 17:43:42.45でも、starlogoとscratchじゃ、断然scratchのほうが高度だし、より多くのユーザ数だと思うけど。
それ以外に分散並行logo環境のJava実装があるなら、教えてくれ。面白そうだから使ってみたい。
0440デフォルトの名無しさん
2011/11/12(土) 17:44:24.54だから、ほぼ同じメンバーだと言っている。 >>432
0441デフォルトの名無しさん
2011/11/12(土) 17:44:28.580442デフォルトの名無しさん
2011/11/12(土) 17:44:55.58VisualWorks 1.0がでたのって、90年代なんだけど、
30年前から動き続けてる?
お前なに言ってるの?w
0443デフォルトの名無しさん
2011/11/12(土) 17:45:25.67だから経験の違いだろ。
0444デフォルトの名無しさん
2011/11/12(土) 17:46:31.291.0より前があるんだろ
0445デフォルトの名無しさん
2011/11/12(土) 17:46:54.74だから、ほとんどのメンバーはJavaのほうが経験が長かった、と言っている。>>436
0446デフォルトの名無しさん
2011/11/12(土) 17:47:24.43一ついいか。少なくとも国内の事例を紹介してくれんか。
0447デフォルトの名無しさん
2011/11/12(土) 17:47:47.07VisualWorksという新参者の1.0がどうかしたって?
0448デフォルトの名無しさん
2011/11/12(土) 17:48:38.45何か優秀なJavaプログラマが書くプログラムより
10倍優れたプログラム書いてみてよ
0449デフォルトの名無しさん
2011/11/12(土) 17:48:47.290450デフォルトの名無しさん
2011/11/12(土) 17:48:54.85そういう理屈なら、Visual Basic.NETは1.0より前の
Visual Basic 1.0の前のQuickBasic 1.0の前の
Basicとかさかのぼって、30年前から使ってるといえるよな。
0451デフォルトの名無しさん
2011/11/12(土) 17:49:14.07俺は俺自身が入ったプロジェクトでのjavaとsmalltalkの開発結果を比較して書いている。
具体的な案件名を挙げるとほぼ個人特定されるから勘弁してくれ。
0452デフォルトの名無しさん
2011/11/12(土) 17:50:27.38それが通用するというのなら、俺の入ったプロジェクトでは
Smalltalkを使っていたチームよりも
Javaを使っていたチームの方が優秀だったという結論も
事実として受け止めよう。
0453デフォルトの名無しさん
2011/11/12(土) 17:50:54.21Smalltalk-80の流れの処理系は、基本的なアーキテクチャはあまり変わってないのだが。
0454デフォルトの名無しさん
2011/11/12(土) 17:51:54.19なら結構。
おまえの自己満足のために個人特定のリスクを冒すつもりは毛頭ない。
バイバイ
0455デフォルトの名無しさん
2011/11/12(土) 17:51:59.23その時、JavaとSmalltalkで使った
ライブラリとフレームワークを教えてくれ。
あと言語のバージョン。
それが答えだと思うから。
0456デフォルトの名無しさん
2011/11/12(土) 17:52:36.00アーキテクチャが変わってないから何?
0457デフォルトの名無しさん
2011/11/12(土) 17:53:21.08あーなるほど。Smalltalkでは便利なものを使っていて
Javaは全部まるまる自分らで作ったとか
そういう流れかw
0458デフォルトの名無しさん
2011/11/12(土) 17:55:54.54すまんけど、それ言うとマジで個人割れる。
0459デフォルトの名無しさん
2011/11/12(土) 17:56:41.40わかりやすいドカタ世界観だなw
0460デフォルトの名無しさん
2011/11/12(土) 17:56:44.92ということは、何の情報もないチラ裏ということだ。
同意も反論もしようがない。
0461デフォルトの名無しさん
2011/11/12(土) 17:57:31.330462デフォルトの名無しさん
2011/11/12(土) 17:57:43.51検索しても出てこないんだが
0463デフォルトの名無しさん
2011/11/12(土) 17:58:42.97ま、信じる/信じないはあんたの内心に任せるよ。
繰り返すが、あんたのためにこんな所で個人割れのリスク冒すほど馬鹿じゃないんで。
0464デフォルトの名無しさん
2011/11/12(土) 17:59:26.71だから信じる根拠も信じない根拠も何もないってことだよ
0465デフォルトの名無しさん
2011/11/12(土) 17:59:49.44いや。むしろ文法やアーキテクチャは変わったがイメージファイル(オブジェクトがつまった袋)が引き継がれている。
つまり動かしながら変えていっている。つーかSmalltalkは止めて機能改変できない。
つねに動きっぱなし。エターナル・コンピューティング。
http://tele-task.de/archive/video/flash/14029/
0466デフォルトの名無しさん
2011/11/12(土) 18:01:34.43相場を聞かれたのに、自分の単価を勝手に言って
他人に単価を言うのを強制するくらい馬鹿なんだから
0467デフォルトの名無しさん
2011/11/12(土) 18:02:14.13そうなんだよね。独特すぎてなんかようわからんかった。
そのイメージファイルってのが、ぬか床みたいなもんだね。
0468デフォルトの名無しさん
2011/11/12(土) 18:02:37.730470デフォルトの名無しさん
2011/11/12(土) 18:06:10.80そうそう。秘伝のタレだね。VisualWorksとSqueakは元は一緒なんだけど
のれん分けした一つをアップルが腐らしていたの(Apple Smalltalk)をフェローだった
アラン・ケイが見つけてまた育てた。
0471デフォルトの名無しさん
2011/11/12(土) 18:06:54.58静的型、動的型なんていう対立の枠外にあるという印象しかない。
出自から、オブジェクト指向言語のルーツというような言い方をされるが
手続き型、関数型、オブジェクト指向、論理型、そういうパラダイムで
オブジェクト指向言語の一つと捉えることも、適切じゃないような。
SmalltalkはSmalltalk。Smalltalkという世界。
プログラミング言語の一つという理解が、そもそも間違っていると思う。
Smalltalkを学ぶのは、プログラミング言語を一つ学ぶという話とちょっと違う。
得体の知れない未知の体験
0472デフォルトの名無しさん
2011/11/12(土) 18:08:07.660473デフォルトの名無しさん
2011/11/12(土) 18:08:09.480474デフォルトの名無しさん
2011/11/12(土) 18:09:19.13ものからの類推で理解するのは違うと思う。
IDEがSmalltalkであり、SmalltalkはIDEである。世界。
0475デフォルトの名無しさん
2011/11/12(土) 18:12:38.31こんなとこに馬鹿なsmalltalkerが
一度に二匹も来るわけないだろw
0476デフォルトの名無しさん
2011/11/12(土) 18:13:43.470477デフォルトの名無しさん
2011/11/12(土) 18:14:24.940478デフォルトの名無しさん
2011/11/12(土) 18:14:57.690479デフォルトの名無しさん
2011/11/12(土) 18:15:07.140480デフォルトの名無しさん
2011/11/12(土) 18:15:46.75生物だから、何か言えばちゃんと言う事を聞く。
言う事を聞いて、Smalltalkの世界の中での生き様が変わる。
コンパイルとか再起動とか。なにそれ意味がわからない。
僕らはみんな、Smalltalkという大宇宙に生きています。
それがSmalltalk!
0481デフォルトの名無しさん
2011/11/12(土) 18:20:54.95あとSmalltalkの規格外ぶりはGemStoneが顕著だな。
あんなDBMS他にないだろ。
0482デフォルトの名無しさん
2011/11/12(土) 18:25:18.28自分ではSmalltalkを使ったことがない。480はその時の印象で適当に書いただけ
0483デフォルトの名無しさん
2011/11/12(土) 18:30:45.790484デフォルトの名無しさん
2011/11/12(土) 18:45:53.470485デフォルトの名無しさん
2011/11/12(土) 18:57:46.44plus := [3 + 4]
plus value
=> 7
plus method byteAt: 31 put: 16rB8; decompile
=> DoIt ^plus := [3 * 4]
plus value
=> 12
0486デフォルトの名無しさん
2011/11/12(土) 19:16:23.180487デフォルトの名無しさん
2011/11/12(土) 19:23:01.66いや、Objective-CにはC++のコードを混ぜられるって知ってから、ほとんどC++で書いてる。
0488デフォルトの名無しさん
2011/11/12(土) 19:24:27.17俺部下がたくさんいるから、だから有能だから
俺の単価は一千万、選ばれたエリートだから
俺の言ってることは正しいから
↓
>ま、信じる/信じないはあんたの内心に任せるよ。
>繰り返すが、あんたのためにこんな所で個人割れのリスク冒すほど馬鹿じゃないんで。
0489デフォルトの名無しさん
2011/11/12(土) 19:48:13.17まともなC++コード書けるでしょ
0490デフォルトの名無しさん
2011/11/12(土) 20:08:13.81ここは匿名掲示板で嘘もハッタリも真実も何でもある。ただひとつ、
真面目な議論をする場ではないよ。
0491デフォルトの名無しさん
2011/11/12(土) 20:22:21.66立場が上の奴が発言力を行使して意見を言ったら
みんな黙るからな
そうすると万能感を得られる
つまり会議の場が接待の場になってるのと同じ
匿名で議論するのは合理的
頭が悪い奴が自分の意見を押し通したい場合には最悪だけどな
ここでまともな議論にならないのはスレタイが悪い
討論風になってるから無理
最初から荒れることを想定してるからな
わしがこのスレを育てたという全能感が欲しいんだろ
ネトウヨも最初は政治板にいたけどぼこられて追い出されたから
こいつもム板でぼこられて逃げてきたんだろう
ずれた居場所で大声を張り上げるとみんな避けていくから
俺最強感を得たり勝利した気分になれる
そう考えると哀れすぎて嘲笑する気も起きないから
精神分析して遊びたいのでもっと挑発してください
0492デフォルトの名無しさん
2011/11/12(土) 20:26:05.32数百文字程度の文なんて一瞬で読めよな
それくらいできないと理解できるはずもない
0493デフォルトの名無しさん
2011/11/12(土) 21:12:10.05「好き好んでゆとりになったんじゃない!」とか。怒るなよ。
0494デフォルトの名無しさん
2011/11/12(土) 21:22:05.580495デフォルトの名無しさん
2011/11/12(土) 21:43:13.94あらかじめ結論が決まってるのに会議すること
理由は失敗してもみんなで決めただろと責任転嫁するため
こういう会議が繰り返される組織は独裁されていると考えてよい
逆らう奴にはレッテル貼って個人攻撃だ
それが信者の義務であり社畜の義務でもある
難しいことがわからないんなら下品な口げんかで数押しするしかないだろ
一体感を感じれ
0496デフォルトの名無しさん
2011/11/13(日) 05:21:00.39自分がそうしてるからって、みんなObjective-CをC++として使ってると思い込んじゃったの?
0497デフォルトの名無しさん
2011/11/13(日) 05:28:54.05> ここは匿名掲示板で嘘もハッタリも真実も何でもある。ただひとつ、
> 真面目な議論をする場ではないよ。
そうか、他の人はともかく、おまえは議論する気なんて持ち合わせちゃいないんだな。
じゃ、おまえが出ていけばいい。
荒らしは禁止って、2ちゃんルールにもローカルルールにもあるよ。
0498デフォルトの名無しさん
2011/11/13(日) 07:14:09.370499デフォルトの名無しさん
2011/11/13(日) 08:17:08.040500デフォルトの名無しさん
2011/11/13(日) 09:46:03.71そんなことよく考えたらわかることじゃない?ここは匿名だからな。
キチガイも出入りしてくるのは当然だし。ちょっとした恨みで、道理が通じず
個人割れに力を入れるような奴もいる。まだfacebookで議論するというならば
わかるけどな。
0501デフォルトの名無しさん
2011/11/13(日) 09:49:11.19Java vs. Smalltalk で盛り上がるとか
0502デフォルトの名無しさん
2011/11/13(日) 11:15:31.16Pharoの情報は少ないし、squeakの情報は子供向けだし。
取っ掛かりがちょっと面倒ですね。Pharoのwelcomeを読むことしかしてないけど
0503デフォルトの名無しさん
2011/11/13(日) 11:45:17.16いやおれは>>343じゃないから。
「Objective-Cを使ったことがないだろ」に対するツッコミ。
0504デフォルトの名無しさん
2011/11/13(日) 11:47:43.40だれも>>11なんてふーんぐらいとしか思ってないからw
0505デフォルトの名無しさん
2011/11/13(日) 11:59:25.47ふーんで 284もブックマークがついて、原著がacmに載せられるんだ。
面白い解釈だと思う。:-)
0506デフォルトの名無しさん
2011/11/13(日) 12:02:42.810507デフォルトの名無しさん
2011/11/13(日) 12:09:36.150508デフォルトの名無しさん
2011/11/13(日) 12:36:21.04www
0509デフォルトの名無しさん
2011/11/13(日) 12:48:48.78Pharo なら 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/
0510デフォルトの名無しさん
2011/11/13(日) 14:07:15.47Javaが最低なことくらい、わざわざ言われなくても誰でも知ってるもんなw
0511デフォルトの名無しさん
2011/11/13(日) 14:23:37.170512デフォルトの名無しさん
2011/11/13(日) 14:34:46.11Objective-Cの言語仕様だと思ってる香具師がいるのか?
0513デフォルトの名無しさん
2011/11/13(日) 14:42:33.820514デフォルトの名無しさん
2011/11/13(日) 14:47:24.24トップに向かって、右肩下がりだねぇといっても、
虚しくない?
0515デフォルトの名無しさん
2011/11/13(日) 14:52:22.97ドカタのエースww
0516デフォルトの名無しさん
2011/11/13(日) 14:53:12.58ペースが落ちてきたなって言うようなもんか。
周回どころか動的型付け言語トップのPHPでさえJavaの1/3程度でしか無いけど、
動的型付け言語トップのPHPも、右肩下がりだけどね。
その次に頑張ってる動的型付け言語PythonはPHPの半分しかなく、
こっちも右肩下がり。
動的型付け言語で頑張ってるのはJavaScriptぐらいか?
javaの1/7だけどな。
0517デフォルトの名無しさん
2011/11/13(日) 14:59:20.970518デフォルトの名無しさん
2011/11/13(日) 15:02:30.800519デフォルトの名無しさん
2011/11/13(日) 15:18:42.930520デフォルトの名無しさん
2011/11/13(日) 15:27:45.18どんなプロジェクトも持ち前の冗長さで大規模開発にしてしまうから、
大量のドカタの雇用を守ってるよ
0521デフォルトの名無しさん
2011/11/13(日) 15:33:35.230522デフォルトの名無しさん
2011/11/13(日) 15:38:31.71つまり、オープンソース限定にするってこと?
0523デフォルトの名無しさん
2011/11/13(日) 15:39:35.84動的型付け言語というかスクリプト言語に有利な結果が出そうだ。
0524デフォルトの名無しさん
2011/11/13(日) 15:42:13.620525デフォルトの名無しさん
2011/11/13(日) 15:42:49.12http://sourceforge.jp/magazine/09/08/13/0423202
C 40.91%
C++ 14.02%
Java 10.95%
Shell 8.96%
JavaScript 5.55%
0526デフォルトの名無しさん
2011/11/13(日) 15:46:56.76上位はC/C++、Javaなどの静的型付け言語、ついでPHPとJavaScriptとPythonが頑張る。
そのあとはそこそこ有名な言語が入り乱れて、
マイナーな関数型言語やSmalltalkなんかが尾を引っ張るって感じか。
0527デフォルトの名無しさん
2011/11/13(日) 15:52:14.91http://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/
0528デフォルトの名無しさん
2011/11/13(日) 15:55:29.25Ranking the popularity of programming languages
(StackOverflow Questions Tagged vs. Projects on Github)
http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/
0529デフォルトの名無しさん
2011/11/13(日) 15:56:24.70ありがとう。最初pharo 1.3を入れたけど、pharobyexampleの内容(画像)が若干違うことの
戸惑いがあって
いろいろ仕様変更してるんだな。と思って見てた。1.0出始めるのが良いってことですね。
0530デフォルトの名無しさん
2011/11/13(日) 15:56:34.50githubは偏ってんなー
0531デフォルトの名無しさん
2011/11/13(日) 16:02:02.11Cを静的型付言語と呼んでもいいのか?
呼ぶのなら、Cが抱えた型に関する欠陥は静的型付の欠陥ということになるが
0532デフォルトの名無しさん
2011/11/13(日) 16:04:02.36http://en.wikipedia.org/wiki/C_%28programming_language%29
Typing discipline Static, weak, manifest, nominal
http://en.wikipedia.org/wiki/Type_system
0533デフォルトの名無しさん
2011/11/13(日) 16:05:22.740534デフォルトの名無しさん
2011/11/13(日) 16:06:27.03え?静的型付けと動的型付けの二択だと思ってるの?どこのドカタ?
0535デフォルトの名無しさん
2011/11/13(日) 16:09:35.22で、このスレで主張している静的型のメリットというのはCでも享受できるのかい?
サポートしている具体的なIDEを挙げて説明してみろ。
0536デフォルトの名無しさん
2011/11/13(日) 16:10:06.700537デフォルトの名無しさん
2011/11/13(日) 16:12:32.79あーまた変な理屈言い出したよ。
ドカタとか煽りだしたってことは、もうまともな議論できませんって敗北宣言だね。
まともな反論がくるまで無視するからそのつもりで。
0538デフォルトの名無しさん
2011/11/13(日) 16:15:06.51そう言えば、動的でなければ静的型付だとかいうアフォの言い訳になると思ってるのか?
0539デフォルトの名無しさん
2011/11/13(日) 16:18:46.50これは屁理屈をこねてもくつがえせません。
0540デフォルトの名無しさん
2011/11/13(日) 16:20:16.17俺はドカタなので説明はできない。
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
0541デフォルトの名無しさん
2011/11/13(日) 16:22:49.03これは納得できたけど「動的でないけど静的ともいいきれない」とか屁理屈がすぎるな。
まあ、自分の主張が弱くなったら、言葉の定義がどうこうとか細かい議論に逃げるとか
いつものことだけど。
0542デフォルトの名無しさん
2011/11/13(日) 16:26:23.18一方静的型付けというのは通常強い型付けのうちの1つです
0543デフォルトの名無しさん
2011/11/13(日) 16:30:38.37Smalltalkは良くも悪くもパーソナルゆえ動的で仕様や機能も流動的なので、まず
お手元のドキュメントやチュートリアルのバージョンに合わせた環境(イメージと呼ばれます)を
動かせるように心掛けるのが初学時にはよいと思います。古いバージョンでもコツをつかめば
その後の変化を吸収することは難しくないので、必ずしも最新版を追いかけなくても大丈夫です。
あと、疑問な点が環境の中で解決できたり、Programming by Example というスタイルも
他の言語には見られにくい慣習で、Smalltalk を学ぶのにまず Smalltalk を知らないといけない
という学習時のブートストラップ問題みたいな奇妙な障壁があります。
ググるにしても検索キーワード選びにもコツがいるので、最初わからないこと、試してみたいことが
あれば、自力解決に拘らず、臆せず気軽にSmalltalkスレでもここでもどこでもどんどん訊いてください。
http://hibari.2ch.net/test/read.cgi/tech/1131349633/
0544デフォルトの名無しさん
2011/11/13(日) 16:30:44.48出典を。
0545デフォルトの名無しさん
2011/11/13(日) 16:33:52.21このスレッドでリファクタリングや静的分析ができることが静的型付の長所です
しかしCには当てはまりません
なぜならCの型付けは弱く、静的型付のようには依存関係を保証できません
分析可能性としては、Cは動的型付言語よりも弱いです
なのでCを持ち上げることはこのスレッドで主張されている静的型付の利点を
否定することになります
0546デフォルトの名無しさん
2011/11/13(日) 16:41:13.96ttp://lucacardelli.name/Papers/TypeSystems.pdf
0547デフォルトの名無しさん
2011/11/13(日) 16:52:33.38C言語もリファクタリングも静的解析も
できるんだから、やっぱり静的型付け言語であってるんじゃね?
0548デフォルトの名無しさん
2011/11/13(日) 16:57:10.59thanks, 読んでみた。この辺か。
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.'
静的型付けだが型安全性を保証できない。
0549デフォルトの名無しさん
2011/11/13(日) 16:59:05.57> 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.
0550デフォルトの名無しさん
2011/11/13(日) 17:01:58.640551デフォルトの名無しさん
2011/11/13(日) 17:04:08.78動的型付けってことですよね?
0552デフォルトの名無しさん
2011/11/13(日) 17:05:34.67しつこい。いい加減諦めろ
いくら言ったってお前の好きな動的型付け言語の
一位はPHPで、Smalltalkははるか下なのは変わらん。
0553デフォルトの名無しさん
2011/11/13(日) 17:45:20.21ドカタは黙ってろ!
0554デフォルトの名無しさん
2011/11/13(日) 17:47:25.19自演してまで煽りたいのか? おまえは惨めなウンコ虫だなw
0555デフォルトの名無しさん
2011/11/13(日) 18:12:21.45いくら言ったってお前の好きな動的型付け言語の
一位はPHPで、Smalltalkははるか下なのは変わらん。
0556デフォルトの名無しさん
2011/11/13(日) 18:24:49.50おいおい
大規模開発に向く言語=土方用言語。だろ
土方でも使えて、バッチリ土方の量産するバグを取れる動的言語を提示しないか
0557デフォルトの名無しさん
2011/11/13(日) 18:30:40.24ハッスルしてるなw
0558デフォルトの名無しさん
2011/11/13(日) 18:32:09.01バカが自分のバカさを隠す目的で
糞レスをばら撒いてバカを集めようとすること
0559デフォルトの名無しさん
2011/11/13(日) 18:42:04.23またおじゃまします。OOPの本拠だからちょっと楽しみです。:-)
JavaともCLOS(Common LispのOOP)ともまた違うものですから、どのような発想が
あるのか時間をかけて感じたいと思います。:-)
0560デフォルトの名無しさん
2011/11/13(日) 18:59:54.32自由自在Squeakという入門書オススメ
英訳して海外でも出版していい出来
0561デフォルトの名無しさん
2011/11/13(日) 20:11:36.52あいにく絶版みたいですね。
0562デフォルトの名無しさん
2011/11/13(日) 20:33:46.39こればっかりは、洋書当たるよりは中古で自由自在Squeak探してくれ
洋書と和書合わせても、これ以上のSmalltalk入門に適した本は多分無い
0563デフォルトの名無しさん
2011/11/13(日) 20:48:06.29変なのに居つかれてしまったものだ。
議論のストレスを嫌がらせで発散する輩というのはあちこちで見かけるが、
どうにも有効な対策がない。
匿名掲示板というのはこの手の厄介な知能犯に極めて無力だ。
0564デフォルトの名無しさん
2011/11/13(日) 21:02:23.45日本人は頭がおかしいのがデフォ
特に完璧主義な奴多いだろプログラマは
自分の想定していた人間関係が完璧じゃないと発狂する奴がいるんだよ
そいつはバグを潰すためにどんな手を使ってでも追い出しにかかる
他に居場所がある場合は逃げるのが普通だけど
日本は狭すぎて逃げ場がなかったりしたせいでとどまる性格の奴が多い
閉鎖的な集団がいじめを発生させるのも、精神病の頭のおかしな奴がいるのと
逃げ場がない二点に原因がある
そして頭のおかしな奴も親や周りの大人がおかしいので洗脳されてる
その連鎖が今の日本を作り出した
0565デフォルトの名無しさん
2011/11/13(日) 22:43:43.65なるほど、
0566デフォルトの名無しさん
2011/11/13(日) 22:49:56.90自由自在Squeakプログラミング、アカデミアにまだ在庫あるみたいですよ。
でも Squeak4.2 向けに改訂版出して欲しいですね。
http://www.academianetwork.co.jp/service/book6/index.html
0567デフォルトの名無しさん
2011/11/14(月) 00:25:31.53丁寧に調べてもらってありがとう :-)
0568デフォルトの名無しさん
2011/11/14(月) 00:35:50.56自分の手柄っぽくなってて、本当に手柄を立てた>>566に悪いから言うけど、
>>560=>>562(自分)だが、>>566は別の人。
お礼は>>566に捧げてくれ。
0569デフォルトの名無しさん
2011/11/14(月) 00:36:30.63借りるリクエストをしてみれば、持ってる図書館から回してくれる。継続はで
きないけど2週間OKかな。大学なら多分情報系があればあるんじゃない?
0571566
2011/11/14(月) 00:49:40.26ばか?
0572デフォルトの名無しさん
2011/11/14(月) 00:51:32.03SSLを使っていないから。
0573デフォルトの名無しさん
2011/11/14(月) 00:57:46.69smalltalkの本
30冊もあるじゃん
わりとメジャーなんじゃないか
0574デフォルトの名無しさん
2011/11/14(月) 01:02:22.51一番新しいのが3年前の本だぞ。
0575デフォルトの名無しさん
2011/11/14(月) 10:09:05.54メソッドもオブジェクトでソースはその属性扱いであることと、
加えてインクリメンタル(つまりメソッド単位)コンパイルである特性を活かし、
ごく初期からメソッド単位でバージョン管理が非常にシンプルな形で実現されていたところ。
もっとも、その流れでチェンジセット(変更点集合)みたいなものの必要性が生じ、
それによる変更点の管理がややこしいことになっていたのが
古典的Smalltalkにおけるバージョン管理運用の欠点か。
0576デフォルトの名無しさん
2011/11/14(月) 12:28:21.19その辺りに興味があるので、教えてくれると嬉しいです。
素朴な疑問としては、イメージ(バイナリ)をマージできるの?とか。
コンフリクトの解消はどうやってるの?とか。
0577デフォルトの名無しさん
2011/11/14(月) 14:15:05.43イメージファイルはデータベースのバイナリのようなものなので、
特殊な事情でその必要に迫られない限りマージとか差分をとったりはしませんね。
コミットごとのコンフリクトの解消は、初期はチェンジセット(変更点の集合)が非力だったので
ほとんど手作業でしたが、その後徐々に改善されてきて、最近は通常のバージョン管理システム同様
ある程度半自動化できるようになっています。それでも、最後は人間が取捨選択しないといけないのと、
メソッド単位のマージではdiffライクな機能を支援に使ったソースレベルでの作業に落とし込む必要があります。
0578デフォルトの名無しさん
2011/11/14(月) 18:28:10.03になってるな。つぎスレは計算機言語バトル・ロワイヤル。にしたほうがいいかも。
0579デフォルトの名無しさん
2011/11/14(月) 20:07:09.74ありがとう。上の方でイメージファイルが秘伝のタレ状態になると
書いてあったので、イメージのままマージしてるのかと思ってました。
0580デフォルトの名無しさん
2011/11/14(月) 23:35:18.04わかってるな?>ここでスレ違いやってる奴ら
0581デフォルトの名無しさん
2011/11/14(月) 23:38:38.960582デフォルトの名無しさん
2011/11/14(月) 23:39:29.89http://pc12.2ch.net/test/read.cgi/tech/1150106090/
0583デフォルトの名無しさん
2011/11/14(月) 23:53:39.26Squeakでマターリ語りましょうや
http://hibari.2ch.net/test/read.cgi/tech/1131349633/
0584デフォルトの名無しさん
2011/11/15(火) 01:06:23.75smalltalk系の話が出てきただけじゃない。
大規模開発に向いてるかどうかは触れないが
違ったパラダイムも触ろうとせずに理解もできないからね。
ここの人がマルチの言語使いばかりではないのは仕方がないが
頭を柔らかくすることも少しはやってみてもいいんじゃないか?
smalltalk系って知識を持ってる人より知識がない人のほうが習得
しやすいみたいだって話があるな。lisp系でも同じようなことは
感じてるけど、やっぱり一つのパラダイムに浸ってしまったら
融通が効かないというのはあるのかもね。たしかに、squeakを最初に
さわって、今までの経験を忘れて触ったほうがとっつきやすいとも
思った。
0585デフォルトの名無しさん
2011/11/15(火) 01:19:59.46IDEの話も聞きたい所。
0586デフォルトの名無しさん
2011/11/15(火) 08:54:23.61まずはEclipse以外の静的型IDEから始めようか…
Eclipse自体がSmalltalkの脱け殻なんだから…
0587デフォルトの名無しさん
2011/11/15(火) 09:12:51.790588デフォルトの名無しさん
2011/11/15(火) 09:41:21.62Visual Studio, NetBeans, IntelliJ IDEA
0589デフォルトの名無しさん
2011/11/15(火) 10:08:51.86感じる。謎 一つのOSみたいだもん
0590デフォルトの名無しさん
2011/11/15(火) 10:39:46.440591デフォルトの名無しさん
2011/11/15(火) 12:18:17.54いかに多いかというのもよくわかったよ。やはり批評する前に少しでも
触ったほうがいい。
0592デフォルトの名無しさん
2011/11/15(火) 12:36:30.260593デフォルトの名無しさん
2011/11/15(火) 13:19:19.55あれ、今は違うの?
昔、トランスクリプトをクリックしてクラスブラウザ呼び出して眺めた記憶あるんだけど。。。
0594デフォルトの名無しさん
2011/11/15(火) 13:32:32.70> 昔、トランスクリプトをクリックしてクラスブラウザ呼び出し
'70年代の暫定ダイナブックOS色を排除するためにデスクトップを無くしたSmalltalk IDEでは、
トランスクリプトウインドウに各種機能(クラスブラウザなど)を呼び出すための
ボタンを配置するUIがよく用いられますが、それのことですかね。
0595デフォルトの名無しさん
2011/11/15(火) 13:39:44.27いんやSqueak
ああ、VsualWorksとか、そっちのSmalltalkの話か
0596デフォルトの名無しさん
2011/11/15(火) 13:39:56.18バージョンによって使い勝手かなり変わってる。
0597デフォルトの名無しさん
2011/11/15(火) 15:25:51.490598デフォルトの名無しさん
2011/11/15(火) 18:29:26.92動的系はやっぱり柔らかさがある感じがする。
アップデート後の再起動の必要もあまりないし、動的系言語で
静的言語IDEを作らせて見たらいいような気もする。
Javaで言えば、ClojureでJava用のIDEを作るみたいな感じ。
0599デフォルトの名無しさん
2011/11/15(火) 19:08:11.50気持ちは分かるが、javaで作られたEclipseでさえ遅い遅い言われてんのに、その上で走る動的言語にIDE作らせたら、どんだけ遅くなるのよ
0600デフォルトの名無しさん
2011/11/15(火) 19:12:41.18IDEではそんなに遅くは感じない、というか、Eclipseよりはるかにキビキビうごくんだよね。なんでだろう。
0601デフォルトの名無しさん
2011/11/15(火) 19:19:00.28Squeakにない機能を積んでいるとか
CPU以外がボトルネックになっているとか
あたりじゃね?
0602デフォルトの名無しさん
2011/11/15(火) 19:29:19.61Javaの場合、JavaVM本体の起動に時間がかかるから・・・
何だかんだで起動時間以外は体感できんよ
0603デフォルトの名無しさん
2011/11/15(火) 19:35:31.78静的言語で無理にIDE作るから、無駄に複雑になってるんだろうな
0604デフォルトの名無しさん
2011/11/15(火) 19:41:47.44でてないのかよ。
開発すらされてないのか?
0605デフォルトの名無しさん
2011/11/15(火) 19:43:40.650606デフォルトの名無しさん
2011/11/15(火) 19:47:10.410607デフォルトの名無しさん
2011/11/15(火) 19:47:17.63もちろんIDEなんで、コード補完とかバックグラウンドで
リアルタイムで処理しているものね。
なにもやってないから軽いとか
ジョークにしかならないから。
0608デフォルトの名無しさん
2011/11/15(火) 19:51:13.370609デフォルトの名無しさん
2011/11/15(火) 19:52:53.32とりあえずこれでも見てみてくれ。>>111
ここで使われているPharoっていうのはSqueakと実質同じSmalltalk IDEだ。
0610デフォルトの名無しさん
2011/11/15(火) 19:53:29.27リアルタイムコンパイルで、構文エラーを
すぐに教えてくれる機能も便利だよ。
0611デフォルトの名無しさん
2011/11/15(火) 19:54:27.93あ、Smalltalkはもうお腹いっぱい。
それ以外の動的言語でまともなIDEは無いんだねって
結論になってるのをくつがえそうぜ。
0612デフォルトの名無しさん
2011/11/15(火) 19:56:05.12そうだよね
構文チェックぐらいはSmalltalkどころかemacs上でも
とっくの昔に実現されているよね
0613デフォルトの名無しさん
2011/11/15(火) 19:56:08.440614デフォルトの名無しさん
2011/11/15(火) 19:57:08.19リアルタイムではないぞ。
0615デフォルトの名無しさん
2011/11/15(火) 19:58:40.65評価できない。どちらも無料版はあるんだけどね。lisp系はemacs+slime
があまりに強力すぎて、IDE,IDEと言わなくなってしまう。common lispや
clojureではemacs+slimeがIDEの役目をしているかな。
あとは、schemeならdrrachetがある。こちらはオートインデントなどは
効くけど、補完はあるとしたら誰かが作ってるかもという程度。
0616デフォルトの名無しさん
2011/11/15(火) 20:00:27.86ちなみに、slimeの強力なのは、lispのREPLの強力さに由来する。
0617デフォルトの名無しさん
2011/11/15(火) 20:09:10.21そうだね
emacsの場合はリアルタイムじゃなくてキー押下イベント毎だね
0618デフォルトの名無しさん
2011/11/15(火) 20:10:18.62キー押下イベントごとにmake実行すんの?
とんでもなくイライラしそうだなw
0619デフォルトの名無しさん
2011/11/15(火) 20:10:58.560620デフォルトの名無しさん
2011/11/15(火) 20:12:06.830621デフォルトの名無しさん
2011/11/15(火) 20:14:01.02間違った行に戻れません。
0622デフォルトの名無しさん
2011/11/15(火) 20:16:44.69え?www
お前がREPL使った事無いのは分かったwww
0623デフォルトの名無しさん
2011/11/15(火) 20:18:43.621人でここまでオールラウンドにアサッテなのは難しいと思うんだ
0624デフォルトの名無しさん
2011/11/15(火) 20:19:13.65どこが間違ってるというのかい?w
書いてる時に実行したくないんだよね。
実行してしまったら間違って実行してしまったらどうする。
そんな行き当たりばったりの開発。
小さなスクリプトでしか使い物にならない。
0625デフォルトの名無しさん
2011/11/15(火) 20:19:31.90ものでまかなわれている。
0626デフォルトの名無しさん
2011/11/15(火) 20:20:16.78それなりに使い物になると思うけどな。
副作用があるような開発では使えないよ。
0627デフォルトの名無しさん
2011/11/15(火) 20:23:42.72SmalltalkはGUIも込みの言語だということがよくわかる
0628デフォルトの名無しさん
2011/11/15(火) 20:23:46.69ブレークポイントで止めて、イミディエイトウィンドウから
いろんな関数を実行できる。
あれはあれで便利だけど、これはIDEの一機能ではあるが、
IDEを置き換えるものではないだろう。
0629デフォルトの名無しさん
2011/11/15(火) 20:24:08.49凄腕の釣り師なんじゃないかと思ってる
0630デフォルトの名無しさん
2011/11/15(火) 20:26:41.09プロジェクト管理システムは分けてるから、IDE使わない派が出てくる。
0631デフォルトの名無しさん
2011/11/15(火) 20:26:44.67リアルタイムなコード補完からか。
REPL環境にならないとコード補完ができないっていうのは
制約だろう?常にREPL環境にいるわけじゃないし、
エディタ状態でもコード補完ぐらい出来なくては。
0632デフォルトの名無しさん
2011/11/15(火) 20:28:21.36(あれ、静的言語もか?)
0633デフォルトの名無しさん
2011/11/15(火) 21:15:04.380634デフォルトの名無しさん
2011/11/15(火) 21:18:07.34これほど拒絶反応があるとは・・・ ある意味面白い。
0635デフォルトの名無しさん
2011/11/15(火) 21:20:18.98EclipseやNetBeansを出してくると思ったんだけどな。
(中途半端ながら採用している)
0636デフォルトの名無しさん
2011/11/15(火) 21:59:52.17何を今さらw
0637デフォルトの名無しさん
2011/11/16(水) 00:21:14.460638デフォルトの名無しさん
2011/11/16(水) 00:36:52.49クイックリファレンスを自動的にチップ出して表示するぐらいが最低ライン
関数の呼び出し元や先、定義実装辺りも同時に表示すべき
コードを書くという行為以外の全てを自動的にバックグラウンドで行うのが理想
0639デフォルトの名無しさん
2011/11/16(水) 05:05:10.28メモ帳で書くRubyの1/10の生産性
0640デフォルトの名無しさん
2011/11/16(水) 06:21:51.250641デフォルトの名無しさん
2011/11/16(水) 06:55:37.97エディタ以外でも使えるし
ブラウザでも使える、そしてhtml5の時代
emacsに求めていたものが本質の人は移行すると思うし
emacsそのものを求めている人はそこで化石になればいい
0642デフォルトの名無しさん
2011/11/16(水) 09:26:31.520643デフォルトの名無しさん
2011/11/16(水) 09:39:11.710644デフォルトの名無しさん
2011/11/16(水) 09:53:13.70eclipse使って満足してる奴って思考速度が常人より数段劣ってる感じ
0645デフォルトの名無しさん
2011/11/16(水) 10:41:52.16と思ったら、厳しいと思った。淡々と資材を並べて組み立てていくなら問題ない。
0646デフォルトの名無しさん
2011/11/16(水) 11:14:59.890647デフォルトの名無しさん
2011/11/16(水) 11:19:51.30「動的言語をドカタに使わせていはいけない」でFA?
ってことだったのか。
0648デフォルトの名無しさん
2011/11/16(水) 12:21:38.05EclispみたいなGUIベースのIDEで作業効率化!! という話なら分かるけど、
どうもこのスレのJava厨はGUIしか使えないドカタだものなぁ....
0649デフォルトの名無しさん
2011/11/16(水) 12:32:45.280650デフォルトの名無しさん
2011/11/16(水) 12:40:01.27「FizzBuzzクラス無いんですか?じゃあメソッドは?無い?あばばばば」
って言い出すイメージ
0651デフォルトの名無しさん
2011/11/16(水) 12:57:30.470652デフォルトの名無しさん
2011/11/16(水) 13:29:01.09printTheNumbersFromOneToOneHundredButForMultiplesOfThreePrintFizzInsteadOfTheNumber
AndForTheMultiplesOfFivePrintBuzzAndForTheMultiplesOfBothThreeAndFivePrintFizzBuzz
っていうメソッド名になるよ
補完無しでは打てないよ
0653デフォルトの名無しさん
2011/11/16(水) 13:37:42.99正規表現もSQLも補完できない
なるべく定数を少なく変数を多くするためにフレームワークを発展させた
0654デフォルトの名無しさん
2011/11/16(水) 17:20:53.36常に補完を軸に考えるその発想が面白い
文字列定数だから補完できないって謎主張も面白い
0655デフォルトの名無しさん
2011/11/16(水) 17:27:37.100656デフォルトの名無しさん
2011/11/16(水) 18:43:42.700657デフォルトの名無しさん
2011/11/16(水) 19:06:19.08環境がなくても作れるプログラムや
環境があっても作れないプログラムでは勝負がつかない。
0658デフォルトの名無しさん
2011/11/16(水) 19:26:18.110659デフォルトの名無しさん
2011/11/16(水) 19:42:13.930660デフォルトの名無しさん
2011/11/16(水) 20:48:20.58JBoss Seam のプレゼン読んだらJSFの問題点が書いてあった。
第1位 URL が遅れる (Postback)
第2位 GET Method のパラメータは取得不可
第3位 戻るページ対策、二度押し対策の不備
javaすごいな!よくこんなんを標準採用したな!
0661デフォルトの名無しさん
2011/11/16(水) 21:17:39.14あれはlispを使うためのエディタとして開発されたのであって
使いやすいエディタという思想はない
操作を見ればすぐにわかる
上下左右移動
ctrl-n ctrl-p ctrl-f ctrl-b
使いやすさじゃなくて覚えやすさでとりあえず決めてみました
使い慣れたのでこのままにしておきます、後はカスタマイズしてね
おかしいと気づけ
0662デフォルトの名無しさん
2011/11/16(水) 22:02:25.270663デフォルトの名無しさん
2011/11/16(水) 22:32:29.370664デフォルトの名無しさん
2011/11/16(水) 22:35:02.06gosmacsは別にlisp用じゃないぞ
確かにelispは強力だしあの拡張性のおかげで
20年以上も使い続けられてるんだしな
0665デフォルトの名無しさん
2011/11/16(水) 22:38:53.11エディタ使いながら動的に機能追加や
変更が出来る
stもだが動的言語で環境作る利点だし
静的な環境でも参考にすべき特徴だと思うがね
0666デフォルトの名無しさん
2011/11/16(水) 23:02:23.50emacsほど手軽ではないが。
0667デフォルトの名無しさん
2011/11/16(水) 23:38:44.52大規模開発では効率が悪いって結論か
0668デフォルトの名無しさん
2011/11/17(木) 01:08:25.410669デフォルトの名無しさん
2011/11/17(木) 01:33:43.39環境としてもos相手に戦えるほど高機能じゃない
初心者には使いづらい
しかもemacsを使い続けると保守的になりすぎて他のエディタが使えなくなる
emacs村の住人として永住を決めない限り無理
0670デフォルトの名無しさん
2011/11/17(木) 02:28:37.30どうぞゲイツの尻でも舐め続けてください。
0672デフォルトの名無しさん
2011/11/17(木) 07:40:22.47出来る事と言えば用意されたメソッドを順番に呼び出す事だけ、
自分一人ではFizzBuzzすら書けないドカタを使った大規模開発か
そういうドカタを片っ端から首切るのが一番効率が良さそうだが
0673デフォルトの名無しさん
2011/11/17(木) 08:23:07.26・動的型付け言語だと〜は? → Smalltalkは〜できる
・静的型付け言語はリファクタリングが強力 → Smalltalkが元祖
0674デフォルトの名無しさん
2011/11/17(木) 08:25:13.280675デフォルトの名無しさん
2011/11/17(木) 08:27:26.200676デフォルトの名無しさん
2011/11/17(木) 08:44:01.82開発にそんな奴いないからw
この仕事してるなら常識でわかるよね?
0677デフォルトの名無しさん
2011/11/17(木) 08:44:37.95・静的型付け言語はリファクタリングが強力 → Smalltalkが元祖
・Smalltalk以外は? → 動的型付け言語だめだめじゃんw
0678デフォルトの名無しさん
2011/11/17(木) 08:46:06.82・静的型付け言語はリファクタリングが強力 → Smalltalkが元祖
・Smalltalk以外は? → 動的型付け言語だめだめじゃんw
・でもSmalltalkはでk → でも仕事でSmalltalk使われてないじゃん。お前も使ってないでしょ?
・ぐぬぬ
0679デフォルトの名無しさん
2011/11/17(木) 08:49:33.69動的型付け言語は大規模開発で使えるか? → Smalltalkなら可能 → ただし大規模どころか小規模開発でも使われない言語
0680デフォルトの名無しさん
2011/11/17(木) 11:41:20.60プログラムが多いから、リファクタリングを騒いでる感じ。 CSを学んでる
人だったら、そのへんのセンスは改善されるだろう。力技に夢見るより
ちょっとくらい勉強したほうがいいよ。
ガウディ本を勉強するならozと遊ぶことになるだろうがoz/mozartはIDEで
騒いでいる人には悪夢かもしれない。
0681デフォルトの名無しさん
2011/11/17(木) 11:57:32.98「FizzBuzz書ける」と言ってるドカタも、
ちょっと問題をアレンジしたら書けなくなるけどね。
ネットに落ちてるコードを探してコピペしてるだけで、
実際には自分で書いてないから。
例えば、端末へ出力する代りに結果をリストで返すようにして、
さらに戻り値のリストの中の数値の総和を計算するとかね。
もちろんリストで戻すときは、数値は数値型のまま、"Fizz"や"Buzz"は文字列型で。
0682デフォルトの名無しさん
2011/11/17(木) 12:09:20.53実際には使われないダミーのコード書かせている
0683デフォルトの名無しさん
2011/11/17(木) 12:23:13.720684デフォルトの名無しさん
2011/11/17(木) 12:42:11.78Qiやmaximaを調べてみればいい。
0685デフォルトの名無しさん
2011/11/17(木) 12:42:13.71CUIでなおかつ動的型付けなら、テストコード書かせればいいと思うけど
GUIはテスト自動化できないし静的型付けはテストしたら損かなと思う
この閉塞感はたぶん脳に悪い
0686デフォルトの名無しさん
2011/11/17(木) 12:46:26.69テストに失敗するたびに
条件分岐が増えるから
ダミーを書かせた方がいいよ
0687デフォルトの名無しさん
2011/11/17(木) 12:50:44.170688デフォルトの名無しさん
2011/11/17(木) 12:55:39.120689デフォルトの名無しさん
2011/11/17(木) 12:58:38.53わりとよくいるけどな
0690デフォルトの名無しさん
2011/11/17(木) 13:28:35.62なんだね。
0691デフォルトの名無しさん
2011/11/17(木) 13:58:19.79大規模開発の定義を静的派が一向に明示しない事からしても、ここが隔離スレなのは明らかだが、何れにしても、雇用に影響しない程度のしょぼい規模では話にならないだろう。
公共事業レベルだと、品質は勿論重要だが、それ以上にスキルのばらつきが多い要員をあえて採用して(公共事業だからね)、如何にプロジェクトを軟着陸させるかがポイントになる。
つまり熟練者には邪魔でしかない機能や、一貫性がなくても世間的にそういうものだと思われている方法、回りくどい手続きが外せなくなる。
動的派が見落としているのはまさにこの点で、彼らは自分のスキルを基準に考えるからおかしくなる。
「大規模」というのは、信じがたいほど低スキルの人間もあえて使わざるを得ない、という現実を知っておいた方がいい。
0692デフォルトの名無しさん
2011/11/17(木) 14:04:58.560693デフォルトの名無しさん
2011/11/17(木) 18:20:00.940694デフォルトの名無しさん
2011/11/17(木) 18:31:28.97Javaはすげーな
0695デフォルトの名無しさん
2011/11/17(木) 18:38:40.25ダミーコード書いているんだって
0696デフォルトの名無しさん
2011/11/17(木) 18:38:45.800697デフォルトの名無しさん
2011/11/17(木) 18:40:56.610698デフォルトの名無しさん
2011/11/17(木) 18:42:41.840699デフォルトの名無しさん
2011/11/17(木) 18:50:14.31このスレで「動的言語は効率が悪い」と言ってると思うと
なんだか悲しい気分になるな
0700デフォルトの名無しさん
2011/11/17(木) 19:02:14.600701デフォルトの名無しさん
2011/11/17(木) 19:14:04.92求人サイトで
コミュニケーション力のある方って
求人良く見るでしょ
0702デフォルトの名無しさん
2011/11/17(木) 19:24:39.53このスレのJavaドカタにFizzBuzz(>>681みたいなの)を書いてとお願いしたら?
本当に書けるなら書いてくれるよ。一分くらいで書けるはずだし。
あ、一分じゃeclipse起動するだけで終わっちゃうかw
0703デフォルトの名無しさん
2011/11/17(木) 19:30:28.400704デフォルトの名無しさん
2011/11/17(木) 19:30:53.41少数に群がるなんとかだから大規模といって大手を振ってこのスレに
来る時間があるんだよ!
0705デフォルトの名無しさん
2011/11/17(木) 22:38:10.62> FizzBuzzレベルが書けないドカタが戦力になるの?
> Javaはすげーな
本気でそう思っているんだろ?
動的厨は。
だから馬鹿だと言われる。
世間知らずで仕事やってない証拠でもあるんだろう。
0706デフォルトの名無しさん
2011/11/17(木) 22:51:52.26http://ideone.com/7mPvk
Javaには組み込みのジェネレータや無限リストが無いからそもそも面倒くせーし
さらにこれはBigInteger使ってないからすぐオーバーフローするダメなコードだ
正直この程度のコードパッと書けないやつなんてゴロゴロいるんじゃねーかな
「プログラミング好き」には理解しがたいことだと思うが
0707デフォルトの名無しさん
2011/11/17(木) 23:03:27.88いつもどんな言語を使っている人?
すごく冗長だよね。
0708デフォルトの名無しさん
2011/11/17(木) 23:05:29.96Javaで書くとこんな感じになると思うけど……ためしに自分で書いたらどう?
ジェネレータっぽいものはたぶんjava.lang.Iterableで実装するんだけど
ジェネレータがないから明示的に4つぐらいのメソッドと状態機械を
実装しないといけない
0709デフォルトの名無しさん
2011/11/17(木) 23:05:52.000710デフォルトの名無しさん
2011/11/17(木) 23:06:15.040711デフォルトの名無しさん
2011/11/17(木) 23:13:00.33設計がおかしいね。
イテレータ使うのはまあいいとして、イテレータの終了条件が、
イテレータが持っているのではなく、無関係のループ内部にある。
これじゃイテレータじゃなくて、数値生成してるだけ。
とおもいきや、イテレータでやるべきではない条件判定処理が
イテレータ内部にある。
どう見ても”こんなテクニックを知ったから使ってみた”レベル。
0712デフォルトの名無しさん
2011/11/17(木) 23:15:58.73現実的な「アレンジ」というのは、
count は DB から読むこと。DB は Oracle, Postgresql を切り替えられるように抽象化すること。
これをサービス化して総和をクライアントに返すこと。
こういう事を言う。
プログラミング「好き」なだけの奴は、こういうアレンジに弱い。
普及していない言語は、こういうアレンジに弱い。
0713デフォルトの名無しさん
2011/11/17(木) 23:16:25.64?
無限列なんだから終了条件がitratorの側にあるわけがないんだが……
無限リストやジェネレータというキーワードを言ってるのにそういうことを
言うってのは、話が通じていないということかしら?
0714デフォルトの名無しさん
2011/11/17(木) 23:16:58.38普通に作るのであれば、
FizzBuzzクラスが、FizzBuzzを解くという責務を持ったクラスなら、
ループはFizzBuzzクラスが持つべき。
FizzBuzzクラスが(その名前に反して)数値の集合を生成するものであれば、
new FizzBuzz(0,count)とするべき。
一番ひどいのは、for (Object x: 略 { を使っているのに、
その終了条件が、if (--count < 0) break; であること。
0715デフォルトの名無しさん
2011/11/17(木) 23:18:50.28むしろ「小規模開発で力を発揮する言語」だ。
0716デフォルトの名無しさん
2011/11/17(木) 23:19:39.070717デフォルトの名無しさん
2011/11/17(木) 23:20:07.98そこは無限列から有限個の要素をtakeしたいんだけど、takeのような便利なものは
ないからベタにループで書いてるだけですよ
0718デフォルトの名無しさん
2011/11/17(木) 23:21:07.26小さなプログラムなら動的型付け言語のほうが得意ってことだよ。
だから小規模なFizzBuzzが得意でも、「大規模開発で効率が悪い」を
否定することにはならないからね。
0719デフォルトの名無しさん
2011/11/17(木) 23:21:43.81FizzBuzzジェネレータには終了条件はいらないし
無限列を生成するほうが汎用的
総和を計算するにはどこかで計算を打ち切らないといけないので終了条件が必要
0720デフォルトの名無しさん
2011/11/17(木) 23:22:19.94自分で、takeメソッドを実装すればいいだろう?
そのtakeメソッドの戻り値(有限個の要素)をfor(x : ここ )に指定すればいいんだよ。
0721デフォルトの名無しさん
2011/11/17(木) 23:23:01.22もちろん作れるが、この程度のコードでは行数が無駄に増えるだけだな
0722デフォルトの名無しさん
2011/11/17(木) 23:23:04.240723デフォルトの名無しさん
2011/11/17(木) 23:23:44.91じゃ、作ってみ。
0724デフォルトの名無しさん
2011/11/17(木) 23:24:05.05(1-passで総和を計算したいだけ)
なので、実際にはtakeを作ると効率も悪化する
0725デフォルトの名無しさん
2011/11/17(木) 23:24:30.310726デフォルトの名無しさん
2011/11/17(木) 23:24:39.39書けないプログラマがいるかどうか?なんだが
そんで、動くJavaのコードを書いてみせてるのが
今のところJava屋じゃない奴しか居ないってのが
0727デフォルトの名無しさん
2011/11/17(木) 23:25:36.05うん。だからそもそもイテレータを使わないほうがいいんだよ。この場合は。
そもそもそこがおかしいんだけど、それはそれでそういう考え何だろうってことで
> イテレータ使うのはまあいいとして
って書いたんだけど。
0728デフォルトの名無しさん
2011/11/17(木) 23:25:56.52そんなもん
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;
}
程度で済む話だろ
見ればわかるようにこの場合には完全に無駄で、無益だ
0729デフォルトの名無しさん
2011/11/17(木) 23:26:46.41いやそれは元の問題がリストを返せと言ってるから
無限リストの代用としてIterableを使ったんじゃないか
ちゃんと理解してるか?
0730デフォルトの名無しさん
2011/11/17(木) 23:27:25.88> FizzBuzzレベルが書けないプログラマがいるかどうか?
ほうw
じゃあ、それを証明する方法を考えてくれ。
たぶんその証明方法を使えば、
どんな言語でも「FizzBuzzレベルが書けないプログラマがいる」は
成り立つだろうな。
0731デフォルトの名無しさん
2011/11/17(木) 23:29:22.97俺なら、FizzBuzzはただのループで書くよ。
そのほうが効率的でコード量も減るだろう?
↑これに反論があるならレスよろしく。
0732デフォルトの名無しさん
2011/11/17(木) 23:30:12.22冗長になってしまった例である。
0733デフォルトの名無しさん
2011/11/17(木) 23:30:19.84Javaって末尾再帰できないんじゃなかったっけ?
元々の問題は無限リストじゃなくて1..100だから。抽象性を下げた作り方
で十分なんだろうな。
0734デフォルトの名無しさん
2011/11/17(木) 23:30:38.66だから問題は
>>681
なんだって
ただのFizzBuzzならこんなコード書くわけがない
0735デフォルトの名無しさん
2011/11/17(木) 23:32:24.90java屋たちとは感覚がかなり違うのは仕方がないかも。
0736デフォルトの名無しさん
2011/11/17(木) 23:33:38.85この条件をつけたのは、わざとJavaで不利になるように?
0737デフォルトの名無しさん
2011/11/17(木) 23:34:38.38それは違うだろ。っていうかあまり関係ない。
0738デフォルトの名無しさん
2011/11/17(木) 23:34:51.01static 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);
}
}
0739デフォルトの名無しさん
2011/11/17(木) 23:34:55.80>>711, >>714あたりにはちょっと驚いた
関数型やジェネレータを有する言語をまったく知らないのは明らかなんだが
設計常識として自分の正しさを信じて押し付けてくるタイプのようだから
上司だったら嫌だな
0740デフォルトの名無しさん
2011/11/17(木) 23:36:21.26笑。それはお前の勘違いだ。
俺が知らないいのは、過去スレ読んでないだけだよw
0741デフォルトの名無しさん
2011/11/17(木) 23:37:12.47スマンなwww
0742デフォルトの名無しさん
2011/11/17(木) 23:40:56.09def 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
0743デフォルトの名無しさん
2011/11/17(木) 23:41:49.01やっぱりscalaは静的型付け言語の中で最高の言語だよな。
動的型付け言語をはるかに上回ってる。
0744デフォルトの名無しさん
2011/11/17(木) 23:42:14.990745デフォルトの名無しさん
2011/11/17(木) 23:43:38.65無知発見w
いや、それとも、動的言語と動的型付け言語の区別がついてないのか?
Scalaは静的型付け言語です。
http://ja.wikipedia.org/wiki/Scala
> Scala (スカラ、スカーラ、スケイラ、Scalable Language) は
> オブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。
> 型付け 強い静的型付け
0746デフォルトの名無しさん
2011/11/17(木) 23:46:36.42それは短くて効率もいいんだが、大きなnに対し大量にメモリを消費するし
終了条件が単純な個数でない場合に使いにくい
>>742
まったく、Javaで書くのが馬鹿らしくなるな
0747デフォルトの名無しさん
2011/11/17(木) 23:48:40.61後から条件を足すのは反則だな
0748デフォルトの名無しさん
2011/11/17(木) 23:49:06.30JavaもScalaも同じ静的型付け言語なんですから
ケンカしないでください。
0749デフォルトの名無しさん
2011/11/17(木) 23:49:32.00小規模なコードを Java で書く奴はいないだろ。例が悪い。
0750デフォルトの名無しさん
2011/11/17(木) 23:50:57.53いや、実際の開発はそんなもんだが……
実際はそこまで必要ではないことは多いが
いずれにせよ見ればすぐに気づく程度の欠点だ
0751デフォルトの名無しさん
2011/11/17(木) 23:52:08.20いや、だからメモリ消費を気にしなきゃいけない規模で、Java なんだったら
「リストで返せ」という仕様が馬鹿そのものだと上流で噛み付くべき。
0752デフォルトの名無しさん
2011/11/17(木) 23:52:49.620753デフォルトの名無しさん
2011/11/17(木) 23:53:17.89毎回文字列を数にパースし直す(失敗するたびに例外発生する)コードが効率良いか?
0754デフォルトの名無しさん
2011/11/17(木) 23:54:47.42ああ、よく見てなかったwwwごめん
効率に関する発言は、単にIterableとArrayListの差に関するもんだと思って
0755デフォルトの名無しさん
2011/11/17(木) 23:55:47.70文字と数値を混ぜて返すという仕様が馬鹿そのものだと
上流に噛み付きましょう。
0756デフォルトの名無しさん
2011/11/17(木) 23:56:46.40>>742がベタにループで書いたコードと同程度の効率なら言うことはない
そうではないのが残念だ
0757デフォルトの名無しさん
2011/11/17(木) 23:56:58.01Ruby遅いから。
0758デフォルトの名無しさん
2011/11/17(木) 23:57:31.10だから上流にかみつけと
0759デフォルトの名無しさん
2011/11/17(木) 23:57:48.69というか、Java で真面目に書くなら、
まずは「Integer もしくは String」を表現する型を定義するところからだろ。
そういう所を端折って Object 型にするなら、それこそ Java で書く意味がない。
土台から丁寧に固めて行くのが Java 流だし、その手堅さこそが大規模になった時に生きる。
0760デフォルトの名無しさん
2011/11/17(木) 23:59:29.79動的型付け言語は大規模開発で効率が悪いという結論になる。
0761デフォルトの名無しさん
2011/11/18(金) 00:01:21.16いやそう馬鹿でもないんじゃね
動的型ならごく自然だし
ADTがある言語ならただのunionだし
Cでも低レベルのunionを使ってvariant的なことはできる
タグつきunionみたいなのは言語処理系の実装ではたいてい使われているはずだ
Javaで手抜きをするとObjectを使うことになってイマイチ、というだけ
0762デフォルトの名無しさん
2011/11/18(金) 00:04:42.55いい加減動的型と動的型付け言語の区別つけろよ。
Javaは動的型だぞ。
あと動的型付け言語は遅い。
0763デフォルトの名無しさん
2011/11/18(金) 00:07:01.03必須機能を実現するのに、リソースを大量消費するのはスキルが低いせいなんだが、バブルが忘れられない団塊かな?
0764デフォルトの名無しさん
2011/11/18(金) 00:08:31.73型は Object ではなくちゃんと union 的になってるの?
つまり case x:Int のところに Int でも String でもない型を書いたら、
それは有り得ない case だとして弾いてくれる?
0765デフォルトの名無しさん
2011/11/18(金) 00:09:44.03JavaはJavaのバッドノウハウが必要なんだろうけど、関数型やってると
どうもね。。。
0766デフォルトの名無しさん
2011/11/18(金) 00:10:30.27関数型には代入というバッドノウハウが。
0767デフォルトの名無しさん
2011/11/18(金) 00:14:13.07大規模開発は知らずに一生を終えられるならその方が幸せだよ。
好きでやってる人は少ないだろう。原発作業員のようなものだ。
そういう人をドカタと馬鹿にするのはどうかと思うけどね。
0768デフォルトの名無しさん
2011/11/18(金) 00:15:02.450769デフォルトの名無しさん
2011/11/18(金) 00:15:34.77お前何か勘違いしてないか?
大規模ってのは、開発の規模が大きいってことで、
リソースを大規模に使用する開発のことじゃないんだがw
0770デフォルトの名無しさん
2011/11/18(金) 00:16:51.67死滅したが)に比べて競争力にさらされる度合いが低いので、
それほど淘汰がすすまずスキルの低い要員をかかえて雇用するという形態が
成立してたと思う
社会における雇用、という高い観点で考えるとこれも重要なことっす
役人じゃなくても大企業の責任のある立場にある人なら考えなければいけないこと
ま、競争が激しいところだと非効率は結局淘汰されることになりますよね
要はプログラマとして食える人間が少なくなる
0771デフォルトの名無しさん
2011/11/18(金) 00:18:38.990772デフォルトの名無しさん
2011/11/18(金) 00:20:14.22社会が社会としてなりたたなくなるでしょう、という話
0773デフォルトの名無しさん
2011/11/18(金) 00:21:46.95ロボットが人間の仕事を取るようなものだな。
0774デフォルトの名無しさん
2011/11/18(金) 00:22:31.78○要は優秀な人間以外どの会社も雇わなくなったら
ごめんwww
上じゃ意味わからんわwww
0775デフォルトの名無しさん
2011/11/18(金) 00:22:56.80弾いてくれません
0776デフォルトの名無しさん
2011/11/18(金) 00:29:12.16もともと優秀かどうかより、>>701みたいはなしが多いから。
社会がだんだん弱ってるんだろうな。
0777デフォルトの名無しさん
2011/11/18(金) 00:30:13.33Any型っていう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
0778デフォルトの名無しさん
2011/11/18(金) 06:10:15.41let 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))
0779デフォルトの名無しさん
2011/11/18(金) 06:33:01.98n % 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)))
0780デフォルトの名無しさん
2011/11/18(金) 06:35:32.48それで「開発の規模って何で測るのさ?」という問いが出るたびに
何の答えも出てこないんだよね、このスレは。
0781デフォルトの名無しさん
2011/11/18(金) 06:50:53.19さらに次の条件を加えてみよう
7で割り切れる時にはbaka。
合計する時、bakaは3.14として計算する。
さあ、各言語のfuzzbuzzsumはどれだけ変更が必要かな?
0782デフォルトの名無しさん
2011/11/18(金) 06:59:41.89それってFizzBuzzレベルのコードは書けないけど
APIは知ってますよってことだろ?
まさに>>672が指摘するドカタの人物像そのままじゃん。
お前自身はケチつけるだけで一行もコード書けなかったみたいだしね。
ホントお前面白いわww
0783デフォルトの名無しさん
2011/11/18(金) 07:14:53.793と7の公倍数や5と7の公倍数はどうすんの?
0784デフォルトの名無しさん
2011/11/18(金) 07:28:16.27そういう仕様を煮詰められないとこがドカタだよな
たぶん>>781はFizzBuzz問題を理解してない
0785デフォルトの名無しさん
2011/11/18(金) 07:47:04.83http://maglev.github.com/
1.0が出たのはようやく最近みたいだけど、smalltalk+rubyというのがあるんだな。
0786デフォルトの名無しさん
2011/11/18(金) 07:53:59.96のどちらかだからな。
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を適当に変えればね。
0787デフォルトの名無しさん
2011/11/18(金) 08:05:47.52そのときだったら関数型ならばfilterと組み合わせればなんとでもなる。
0788デフォルトの名無しさん
2011/11/18(金) 08:28:16.69それが正解。
指定されていないのだから、それをどうするか訊くのが当然。
冷やかすことしかできない>>784はプログラマではないね。
0789デフォルトの名無しさん
2011/11/18(金) 08:56:37.73完全に動的型付け言語のスタイルだね
それがプログラマとして当然だよね
0790デフォルトの名無しさん
2011/11/18(金) 09:18:47.910791デフォルトの名無しさん
2011/11/18(金) 09:44:20.150792デフォルトの名無しさん
2011/11/18(金) 09:52:06.95Integer >> 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
0793デフォルトの名無しさん
2011/11/18(金) 12:56:21.94「それが正解(キリッ」じゃねーっつのw
コードも仕様も満足に書けない奴が上から目線とか笑わせんなw
Javaの連中は仕様を変える前に、まずObjectへキャストしたり
Stringに変換してから数値に戻すようなコードじゃなくて
「Integer もしくは String」型を使ったコードを書くのが先だろ。
静的型チェックは飾りか?
0794デフォルトの名無しさん
2011/11/18(金) 13:30:42.03と言われていることに気付けw
0795デフォルトの名無しさん
2011/11/18(金) 13:59:08.85レベルの低い末端には
バラした結果しかやらさないから
どーでもいいんだよね
動的な機能なんて理解もされないしな
0796デフォルトの名無しさん
2011/11/18(金) 14:20:01.51その簡単すぎてつまらん問題すら
満足に解けないJavaってなんなのよ?
0797デフォルトの名無しさん
2011/11/18(金) 14:36:21.890798デフォルトの名無しさん
2011/11/18(金) 16:29:55.54Javaはポインターやメモリ割り当てで挫折する人でも開発できるように、
と作られた言語だから、他言語のエキスパートと比べるのは可哀想だ。
まあ、そのお陰で公共事業と同じで、とにかく大人数を動かす事の役には立ってるけどね。
経済そのものが無駄で成り立っているので、無駄を究極まで削減すると、失業者が溢れることになる。
0799デフォルトの名無しさん
2011/11/18(金) 17:15:47.00>Javaはポインターやメモリ割り当てで挫折する人でも開発できるように、
>と作られた言語だから、
それは初耳だ。ソースはいずこ?
0800デフォルトの名無しさん
2011/11/18(金) 17:37:45.72let 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)
0801デフォルトの名無しさん
2011/11/18(金) 18:08:46.800802デフォルトの名無しさん
2011/11/18(金) 18:13:11.41丘むるかエフプラ化?
0803デフォルトの名無しさん
2011/11/18(金) 21:34:26.87最強言語がある今、動的型付け言語に価値を見いだせなくなったね。
0804デフォルトの名無しさん
2011/11/18(金) 21:36:27.71を狙ってるんだろうが、jetbrainやeclipseが別の言語をつくろうとするあたり
やっぱり無理があるんだろう。
0805デフォルトの名無しさん
2011/11/18(金) 21:52:06.23なくしたのがScalaだからね。
0806デフォルトの名無しさん
2011/11/18(金) 22:06:05.44どちらかというとJavaカラの人が多いのが特徴じゃないかな。
0807デフォルトの名無しさん
2011/11/18(金) 22:17:19.910808デフォルトの名無しさん
2011/11/18(金) 22:31:08.99Ruby好きにはHaskell好きが多いという話は聞くし、それには理由がある
でもRuby好きはScalaも好きという話は聞かないなあ....
(ただし自分はRuby好き&ML好きだけど、それは人それぞれ)
>>806の言うようにJava好きの人が好む言語じゃないかと思われ
0809デフォルトの名無しさん
2011/11/18(金) 22:32:18.310810デフォルトの名無しさん
2011/11/18(金) 22:51:01.08Cにオブジェクト指向を加えたのがC++であるように
Javaに関数型言語を加えたのがScala
0811デフォルトの名無しさん
2011/11/18(金) 22:51:49.76この2つのメリットは大きい。
0812デフォルトの名無しさん
2011/11/18(金) 23:07:42.66公倍数の扱いを統一する(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も急速に育ってるらしいしね
0813デフォルトの名無しさん
2011/11/18(金) 23:18:34.18逆にJava資産の無い人にとっては、ScalaのJava環境前提は「負債」でしかない
静的型付けな関数型言語であれば、他にいくらでも選択肢はあるからね
0814デフォルトの名無しさん
2011/11/18(金) 23:44:37.75Rubyのコードを見ないんだけど(Smalltalkすらあるのに)
実はRubyプログラマって存在しないの?想像上の生き物?
0815デフォルトの名無しさん
2011/11/19(土) 00:19:18.370816デフォルトの名無しさん
2011/11/19(土) 00:30:39.450817デフォルトの名無しさん
2011/11/19(土) 00:36:09.38実行前の型チェックが「無い方がよい」と積極的に主張する人は一人もいない。
それが結論。
0818デフォルトの名無しさん
2011/11/19(土) 00:50:46.62def 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))
0819デフォルトの名無しさん
2011/11/19(土) 01:38:31.16どこまで本気で書いてるかは知らないが酷いコードだな
関数型の言語(pythonは違うが)を使っていても考え方は全く理解していないのが分かる
というかFizzBuzzをまともに書けない人がいるというのは本当なんだな
0820デフォルトの名無しさん
2011/11/19(土) 02:00:14.080821デフォルトの名無しさん
2011/11/19(土) 02:22:54.94それくらい酷い
0822デフォルトの名無しさん
2011/11/19(土) 03:29:22.930823デフォルトの名無しさん
2011/11/19(土) 03:44:55.280824デフォルトの名無しさん
2011/11/19(土) 03:46:50.690825デフォルトの名無しさん
2011/11/19(土) 04:08:28.47好きか嫌いか明言しただけだよ
キー操作を何文字当たり何秒短縮できただのそういう具体的な分析ぐらいしろ
autoit autohotkey keyhac nilscript ironahkその他色々
全部同じような機能を持つツール
これだけ同じような機能を持つツールが乱造されている現実から目をそらすなよ
それだけの価値がある何かだという意味がある
関数型言語と違う部分は
プログラムが書けないユーザーですらこのツールを使うためにプログラムを書いているという点
関数型はプログラマでさえも積極的に覚えようとしない使わないのに対して
これらツールはプログラムを書けなくても使いたいと思える何かがある
何かが普及するときに大切なのはその何かであって
すばらしい言語仕様じゃないって事だ
ahkの言語仕様はクソだクソだと言われてるけどそれでも使われてる
関数型なんてすばらしいすばらしい言ってるくせにまったく普及しない
泣けよ
お前のそれは好き嫌いを言ってるだけで分析すらもしてない
身につけたアクセサリを見せびらかして自慢しているのと同じレベル
emacsなんて化石はごみ箱に捨ててしまえ
0826デフォルトの名無しさん
2011/11/19(土) 04:20:39.64object. TAB TAB で長い文字を省略できちゃった!
静的型付け言語はキー操作を減らすことが出来る!
0827デフォルトの名無しさん
2011/11/19(土) 04:21:41.490828デフォルトの名無しさん
2011/11/19(土) 04:22:27.47>>670
何一つ具体的なことを言えないお前が唯一言った具体的な事
>どうぞゲイツの尻でも舐め続けてください。
お前がなめろ
0829デフォルトの名無しさん
2011/11/19(土) 04:25:36.750830デフォルトの名無しさん
2011/11/19(土) 04:52:30.67> 動的型付け言語厨のいう、Javaの欠点を
> なくしたのがScalaだからね。
その対価として、静的型付け言語厨のいう、動的型言語の欠点を
装備したのがScalaだからね。
0831デフォルトの名無しさん
2011/11/19(土) 05:14:13.27動的型付けの欠点って、
静的型付けではないことなわけで、
Scalaは静的型付け言語なんだから
なにも欠点持ってないんだが。
もしかしてわかってない?
静的型付け言語は素晴らしい、
Scalaは静的型付け言語だ。
こういう流れなんだけど。
0832デフォルトの名無しさん
2011/11/19(土) 05:48:14.05鰯の頭も信心、か。昔の人は知恵があったんだなww
0833デフォルトの名無しさん
2011/11/19(土) 07:26:12.81関数リテラルとオブジェクトリテラルが有る方がよい
JavaScriptかOCaml
0834デフォルトの名無しさん
2011/11/19(土) 07:34:31.31関数型言語が素晴らしいかどうかは知らんが、
未だにJavaでまともなFizzBuzzコードが出てこないってことは
そういうツール使ってキー操作を短縮しても
FizzBuzz書くのに何日も掛かるってこと?
0835デフォルトの名無しさん
2011/11/19(土) 07:37:05.75まともではないという意見で却下するなら自分がまともなのを出せ。
0836デフォルトの名無しさん
2011/11/19(土) 07:40:05.48お前等本番でもあんなコード書いてんの?
あんな文字列と数値の違いすら静的型として区別しないコードで
良く静的型言語は素晴らしいとか言ってられるな
0837デフォルトの名無しさん
2011/11/19(土) 07:41:19.550838デフォルトの名無しさん
2011/11/19(土) 07:42:21.90でもさ、「JavaドカタにFizzBuzzは書けるか?」というのも主題なわけだから
俺が書いたらそのテストにならないわけよ
0839デフォルトの名無しさん
2011/11/19(土) 07:42:46.100840デフォルトの名無しさん
2011/11/19(土) 07:44:17.74設計のセの字も知らない学生が使い捨てで書くようなプログラムしか出てこないじゃん
0841デフォルトの名無しさん
2011/11/19(土) 07:46:17.41どうまともでないか「具体的に」説明してみてよw
文字列を数値にパースしなおすような糞コードは存在しないみたいだけど
0842デフォルトの名無しさん
2011/11/19(土) 07:46:35.89お前等本番でもあんなコード書いてんの?
0843デフォルトの名無しさん
2011/11/19(土) 08:46:49.44http://ideone.com/yWbwA
0844デフォルトの名無しさん
2011/11/19(土) 08:52:48.30ごくろうさまです。
その調子で>>681も書いてみてね。
0845デフォルトの名無しさん
2011/11/19(土) 09:25:33.11abstract 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);
}
}
どうでもよくね?
0846デフォルトの名無しさん
2011/11/19(土) 09:43:15.81> data <- data.frame(N=range, Fizz=range%%3==0, Buzz=range%%5==0)
> sum(subset(data, !Fizz & !Buzz)$N)
[1] 2632
0847デフォルトの名無しさん
2011/11/19(土) 09:52:06.150848デフォルトの名無しさん
2011/11/19(土) 09:55:26.890849デフォルトの名無しさん
2011/11/19(土) 09:56:18.590850デフォルトの名無しさん
2011/11/19(土) 10:01:59.48846くらいは総務のネーチャンでもexcelで5分で書くよな
0851デフォルトの名無しさん
2011/11/19(土) 10:07:49.060852デフォルトの名無しさん
2011/11/19(土) 10:18:11.77(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))))
0853デフォルトの名無しさん
2011/11/19(土) 10:19:37.34A1 =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)
求めたい行までコピペ
0854デフォルトの名無しさん
2011/11/19(土) 10:21:24.170855デフォルトの名無しさん
2011/11/19(土) 10:39:29.45# 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
0856デフォルトの名無しさん
2011/11/19(土) 10:43:08.80抽象化の技法を全く理解してないんだな。
0857デフォルトの名無しさん
2011/11/19(土) 10:43:10.360858デフォルトの名無しさん
2011/11/19(土) 10:45:35.190859デフォルトの名無しさん
2011/11/19(土) 10:47:00.22そゆこと
条件の真偽の組み合わせに対するcaseだってことを
理解できてないドカチン大杉
0860デフォルトの名無しさん
2011/11/19(土) 10:47:39.18ここが、プログラマを二つに分ける一番高い壁。
この壁に比べれば他は全部誤差。
0861デフォルトの名無しさん
2011/11/19(土) 10:50:19.96ここさえ越えれば、あとは世界中のプログラマがボランティアで教育してくれるのでどんどん伸びる。
0862デフォルトの名無しさん
2011/11/19(土) 10:52:47.86実用的なレベル(大規模)での
コードの書き方の話をしようぜ。
0863デフォルトの名無しさん
2011/11/19(土) 10:53:43.3315の倍数の場合を書くのは問題ないだろ
批判するポイントがずれてる
0864デフォルトの名無しさん
2011/11/19(土) 10:54:30.37おれここの批評を見てて、土方批判が散々されてる現状を
目の当たりに見た感じがしたよ。抽象化するときに使った
テクニカルなことをつかったらわからないみたいだし。
この辺ってSICPの1,2章レベルなのにな。
0865デフォルトの名無しさん
2011/11/19(土) 10:56:10.99お前も批判のポイントがずれてる。
わからないやつをお前がドカタと言ってるだけで、
大半のドカタ(仕事をしている奴)は
おまえなんかよりもずっと分かってるよ。
0866デフォルトの名無しさん
2011/11/19(土) 10:57:16.21FizzBuzzと違って具体的なコードはなかなか出せない。
実体験としてバックグラウンドを共有している開発者同士でなければ理解できない話がどうしても出てくる。
ここでは、趣味や学生のようなアマチュアが煽ってくるから、まともな議論にはならないだろう。
0867デフォルトの名無しさん
2011/11/19(土) 10:57:40.40教科書に載ってるようなものぐらいしか言えないんじゃ
ドカタよりも劣ると思う。
0868デフォルトの名無しさん
2011/11/19(土) 10:58:07.44じゃあ、どんなフレームワークがあるかの話ぐらいはできるのでは?
0869デフォルトの名無しさん
2011/11/19(土) 10:59:30.81高速に作るときと、抽象に作るときとの2つの技法くらい身につけたほうが
いいと思うんだがな。場所によって使い分けしなきゃならんし。
0870デフォルトの名無しさん
2011/11/19(土) 11:00:58.44○○の機能を使ったFizzBuzzを実装しろって話なら、
それはFizzBuzzではなく○○の機能を知っているかどうかでしかないわけで
本質がFizzBuzzではなくなってる。
こんな知ってるかどうかで成績が決まるのは学生時代までだよ。
0871デフォルトの名無しさん
2011/11/19(土) 11:01:50.65これじゃあ国際競争力も生まれないわ。
0872デフォルトの名無しさん
2011/11/19(土) 11:02:26.12そういうのは使うときに調べればいいんだよ。
0873デフォルトの名無しさん
2011/11/19(土) 11:02:38.23満たしたのを書いて出してくれよ。
0874デフォルトの名無しさん
2011/11/19(土) 11:03:38.15うん、ドカタとばかにするような連中ばかりだからね。
文句があるのならお前がやれって話。
でやらせると、何も出来ない。
口ばっかり。そういう奴が多い。
ユーザーが要求しているものを作れ。
0875デフォルトの名無しさん
2011/11/19(土) 11:04:22.14それは言いだしっぺが書かないからいかんのだよw
0876デフォルトの名無しさん
2011/11/19(土) 11:05:49.73確かに。自分で答えも用意しない出題者とか涙が出てくる
0877デフォルトの名無しさん
2011/11/19(土) 11:06:30.69スタイルにかかわっている気がするな
当面の仕事をてっとりばやく済ませる(余計なことはしない)
当然その後のことはあまり考えてない、後から要求が来たら当然金をもぎ取る
自社の製品やサービスとして提供しない請負仕事ならそんな感じだろう
0878デフォルトの名無しさん
2011/11/19(土) 11:06:56.82ぶっちゃけ、そういった仕様は読んでない。
いちいち過去のレスをちゃんと読む?
読まないでしょ。ほんの数レスしか読まないで書き込む。
だから違ったコードがでるのは当たり前。
それを見て、仕様理解出来ないんだーって勘違いしている人がいる
ここが2ちゃんねるだってことをわかってないよね。
その場のノリの適当なレスみて、優越感に浸るなよw
0879デフォルトの名無しさん
2011/11/19(土) 11:07:14.10この人もトンチンカンだな。やっぱり腕を磨かないといけないよ。
まだ、2つの数字の辛味だけで話がすんでるからおおくて条件は2つ、3つだが
これが4つの数字なら、4もしくは10になるんだよ。
nの素数を使ったわけかたなら、条件をnもしくはn(n-1)/2になる。これをいちいち
if文に書くのか?というのが目先の問題をとく方法と抽象化の方法の違いだよ。
当然、使い回しするから保守が楽だったりするけど、そういったことも理解できな
いんだろ?ゲロっちゃえよ。
いずれにしてもここの連中に呆れてるよ。
0880デフォルトの名無しさん
2011/11/19(土) 11:08:02.84> あらかじめ保守性や拡張性を考慮したコードを書くかどうかってのは仕事の
> スタイルにかかわっている気がするな
だが、それが一番重要なことだろう。
そういった話ができないのが
実務経験無いやつなわけで。
0881デフォルトの名無しさん
2011/11/19(土) 11:08:43.55そんな些細なこと、どっちでもいい。
0882853
2011/11/19(土) 11:10:34.49C1 =IF(MOD(ROW(),7)=0,"Baka","")
D1 =IF(C1="",IF(AND(A1="",B1=""),ROW(),0),3.14)
コピペ
0883デフォルトの名無しさん
2011/11/19(土) 11:11:52.58対局を見た設計の方が重要だからね。
設計といっても紙に買いたい資料の話じゃないよ。
コード全体の構造の話。
構造がちゃんとできていれば、細かいコードは
ダメだとわかれば書き換えればいいだけになる。
そういった構造の話が教育の現場では行われていないんだよね。
でいきなり実践に入って、フレームワーク(構造の一例)を使わされて
なんじゃこりゃ?ってなる。
今までやってきたことよりも、更に大きな視点が要求されるから。
0884デフォルトの名無しさん
2011/11/19(土) 11:17:28.810885デフォルトの名無しさん
2011/11/19(土) 11:19:58.07そうゆうことなんだけど、仕様変更に強い作り方をどうすればいいか
って学んでないんだろうと思ったよ。考え方を知ってるか知らないか
だけでずいぶん違ってくるんだけど、知らないがために幼稚な世界で
満足をしている。。。そうゆうふうにここの批評家の多くの人を
とらえてる。
0886デフォルトの名無しさん
2011/11/19(土) 11:20:50.66ただな、要は請負でコードを書くという業務形態が
ソフトウェア品質を向上させるという方向にプログラマを動かさないなら
本当はそういう構造自体に問題があるんだよ
現状は経済として成り立っているが、長期的に日本のソフトウェア産業の
競争力という観点から見れば良いことじゃない
0887デフォルトの名無しさん
2011/11/19(土) 11:22:20.79その仕様変更に強い作り方をしたコードはもう出てる?
0888デフォルトの名無しさん
2011/11/19(土) 11:22:50.92公倍数で割り切れる時の出力が各素数の組み合わせだからそれで済むだけで、
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だろ。
中途半端な抽象化が一番使えない。最初に無駄なコストを使った挙句、
結局想定を超える仕変が入って無駄になるだけ。仕事してりゃ、これ常識だと思うけどな。
0889デフォルトの名無しさん
2011/11/19(土) 11:27:08.69動的言語だって15の場合を書いてるドカタレベルは実際いただろ。
0890デフォルトの名無しさん
2011/11/19(土) 11:29:54.39例が下品すぎて嫌だけど内容的には同意
0891デフォルトの名無しさん
2011/11/19(土) 11:30:08.41両方が犠牲になることが多い)ので、全部トレードオフとして考えないといけない
関数型のループや再帰に代わる構造はそれでもコードが非常に簡潔になるという
利点があるけれども(ただしScalaのような言語ではただの配列とwhileループ
のほうが比較にならないほど効率がいい)、Javaの重量フレームワークのようなタイプの
層を何層も重ね、大量の設定ファイルを用いるタイプの「抽象化」は、
本当にそれが必要なのか、よく考えたほうがいい
0892デフォルトの名無しさん
2011/11/19(土) 11:30:56.48引数の数値に対してあらゆる条件を想定するなら
デフォルトルールを末端に置いて chain of responsibility で書くか?
fizzbazz を書けと言われてそういう設計をするのか?アホか。
0893デフォルトの名無しさん
2011/11/19(土) 11:35:07.42> 3と5で割り切れるならunko
この時点で元ネタのFizzBuzzゲームの枠組み関係なくなっちゃってるって事に
いいかげん気づけよ。
0894デフォルトの名無しさん
2011/11/19(土) 11:36:23.19>まだ、2つの数字の辛味だけで話がすんでるからおおくて条件は2つ、3つだが
>これが4つの数字なら
この時点で
0895デフォルトの名無しさん
2011/11/19(土) 11:36:52.08保守性拡張性はあと楽になってくるし、だからDSLという話も出てくるんだけど
それと同時に、ここはかなり最適化を頑張らないとというところもでてくるから
そちらはまた違った発想が必要になってくる。場所による使い分けのセンスは
大切なんだけどな。でも、ここの人って目先さえ満たさればOKという人が多い。
なんか残念な人たちが集まってる。
0896デフォルトの名無しさん
2011/11/19(土) 11:47:13.69予想し得る拡張には備えなければならないし、発生し得ない拡張に備えるのは無駄。
ここを的確に押さえて必要十分な設計を行うことが要求される。
プログラミングスキルだけではなく業務ドメインの知識になってくる。
むしろ真剣に事前の勉強が必要なのはそっちだ。開発言語なんか細かな話。
上流での設計ミスは取り返しがつかない。
仕事をしてない奴は、こういう話が分かってないんだよな。
だから実装レベルの話しかしない。
自分で仕様を決めて自分で実装するなら全知全能の神だからな。そりゃ楽だろ。
ここんとこの話は FizzBuzz では議論にならん。
出題者が脳内で想定している拡張には備えておき、出題者が想定していない拡張には備える必要がない。
FizzBuzz のような現実に結びつかない問題でそれができるのは、本人とエスパーだけ。
0897デフォルトの名無しさん
2011/11/19(土) 11:50:02.33サンデープロジェクトのハリーになった気分みたいだな。
そもそも、どこに拡張性が絞られるかすらも考えるも放棄しているような
記述が見られる所が、どの程度のことまで考えられるかも見え隠れする。
これじゃあまともに人も育てられんだろうよ。
0898デフォルトの名無しさん
2011/11/19(土) 11:52:17.94では FizzBuzz の例で具体的に。
3で割り切れるならfizz
5で割り切れるならbuzz
両者で割り切れるならfizz buzz
さあ、将来の拡張性はどこに絞られるでしょうか。最適な設計をどうぞ!
0899デフォルトの名無しさん
2011/11/19(土) 11:53:55.45批判だけで提案しない人間は相手にされない
0900デフォルトの名無しさん
2011/11/19(土) 12:03:26.78ttp://ja.wikipedia.org/wiki/Fizz_Buzz
もともとのルールが
3 で割り切れる場合
5 で割り切れる場合
両者で割り切れる場合
と、3 通りの場合分けになっているのだから、その通り書くのが素直だと思う。
「複数の条件を満たす場合には、条件を満たすものを全部出力する」という仕様ではないので。
ちなみに、もしそういう仕様なら、"Fizz Buzz" なのか "Buzz Fizz" なのかという順番が問題になるけど。
0901デフォルトの名無しさん
2011/11/19(土) 12:14:54.073で割り切れて5で割り切れない場合
5で割り切れて3で割り切れない場合
3でも5でも割り切れる場合
3でも5でも割り切れない場合
じゃない?
これが良いかは別として。
0902デフォルトの名無しさん
2011/11/19(土) 12:15:14.023で〜、5で〜ってきて続けて「両者で割り切れる場合 FizzBuzz」と書いてあったら
それは「複数の条件を満たす場合には、条件を満たすものを昇順に全て出力する」
って読むだろJK。
0903デフォルトの名無しさん
2011/11/19(土) 12:18:51.95同意。
>>902
それはない。仕事でその "JK" は危険すぎる。
0904デフォルトの名無しさん
2011/11/19(土) 12:25:12.45(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))))
0905デフォルトの名無しさん
2011/11/19(土) 12:48:18.320906デフォルトの名無しさん
2011/11/19(土) 12:56:28.44Objectにキャストしてはいけない
整数を文字列にしてはいけない
15で割ってはいけない
などというルールを提案する人間も相手にしたくない。
何かを禁止するルールを提案する人間は、批判だけする人間と同じ。
0907デフォルトの名無しさん
2011/11/19(土) 12:57:23.94perl -le "print(($_%3?'':Fizz).($_%5?'':Buzz)or$_) for(1..100)"
0908デフォルトの名無しさん
2011/11/19(土) 13:05:40.66しょっちゅうそういう注意をされているんだろう?
いかにもドカタが言うそうな言い分でわらえる。
0909デフォルトの名無しさん
2011/11/19(土) 13:17:11.65お客様。
こちらではお下手くそなゴルフの素振りは他のお客様のご迷惑になるので
ご遠慮ください。あるいは仕様書を良く読み直してからおいでください。
0910デフォルトの名無しさん
2011/11/19(土) 13:17:31.88> 保守性・拡張性=善、とする教科書の教えと現場の実情は違うわけだ
教科書の、保守性・拡張性というのは
○○言語を使えば、保守性拡張性が高くなる程度の
机上の空論レベルでしか無いからダメ。
保守性・拡張性ってのは、そんな何かを導入すれば終わりみたいな簡単なものではなく、
それらが高くなるような設計で作ることを意味する。
で、作りましょうで終わるのが教科書で実際に作るのが実践。
教科書は所詮教科書。心得までしか書いてないんだよ。
0911デフォルトの名無しさん
2011/11/19(土) 13:27:46.40学がない奴の言い訳はいろいろあるけど、適した考えを理解しておくことが
プラスになることがあってもマイナスになることはない。
ここの人って、プログラム作業にしても目先を考えるので精一杯なんだもの。
残念だよ。そりゃIDEだのリファクタリング*機能*だのって話になるわ。考え
られないんだから。
0912デフォルトの名無しさん
2011/11/19(土) 13:28:32.380913デフォルトの名無しさん
2011/11/19(土) 13:37:42.61> ○○言語を使えば、保守性拡張性が高くなる程度の
> 机上の空論レベルでしか無いからダメ。
> 保守性・拡張性ってのは、そんな何かを導入すれば終わりみたいな簡単なものではなく、
それ言ったらこのスレ終わる
だってここは静的厨が「静的型付け言語を導入すれば効率が改善する」
「IDEを導入すれば効率が改善する」って言ってるスレだから
0914デフォルトの名無しさん
2011/11/19(土) 13:38:27.41>○○言語を使えば、保守性拡張性が高くなる程度の
そんな(○○言語を使えば〜みたいな)教科書は見たことがないな
エセ教科書じゃねーのか
教科書ってのはSICPみたいなやつのことだぞ
まともな教科書には理論と実践の両方が書いてある(後者は演習問題)
それがどう(業務的な)実践に役に立つのか、立たないのかを判断できずに
「机上の空論」の一言で済ませるような奴は、一言でいえばリテラシーがない
先人の知恵を自分の糧にする能力がないということだ
0915デフォルトの名無しさん
2011/11/19(土) 13:38:42.91スポーツでも実際に練習して初めて身につくんだ。
実践を積んでないスポーツ選手はいない。
リファクタリングも同じ。
実際に使っている人のほうがはるかに技術は上だ。
0916デフォルトの名無しさん
2011/11/19(土) 13:40:52.71> 教科書ってのはSICPみたいなやつのことだぞ
そんなのを教科書に使っているのは
情報工学科ぐらいなもんだろ。
たいていの大学生はそんなの読んでない。
実際にうちの大学でもそんなの使ってないし。
0917デフォルトの名無しさん
2011/11/19(土) 13:46:36.520918デフォルトの名無しさん
2011/11/19(土) 13:46:43.26自慢しなくていいのに
0919デフォルトの名無しさん
2011/11/19(土) 13:47:52.21鍛えるのにはかなりいいからね。そこに基礎力を作るヒントがある。
SICPなら一部の企業では輪読してる連中もいるし、勉強会もマメに行
われてる。別に大学にいなくてもやれるよ。独学でやるのはかなり骨
が折れるが不可能ではない。その差は技術を磨く気持ちがあるかないかさ。
教科書という言葉で浮かべるイメージの違いもあるもんだなって914を指摘を
読んで思ったよ。極論だがまなたんを浮かべる奴とSICPを浮かべるやつでは違うだろうし。
0920デフォルトの名無しさん
2011/11/19(土) 13:50:24.62emacsが必要になってくるからここの人には嫌われるかもな。
0921デフォルトの名無しさん
2011/11/19(土) 13:51:44.95大規模ドカタの巣窟にのこのこやってきてCS教養自慢する馬鹿も十分はずいけどな。
0922デフォルトの名無しさん
2011/11/19(土) 13:52:34.49何使った?
0923デフォルトの名無しさん
2011/11/19(土) 13:55:18.940924デフォルトの名無しさん
2011/11/19(土) 13:56:16.710925デフォルトの名無しさん
2011/11/19(土) 13:57:24.850926デフォルトの名無しさん
2011/11/19(土) 14:02:55.50古くて誰も参考にしていない。
0927デフォルトの名無しさん
2011/11/19(土) 14:04:19.39この業界では
science > engineering
という不等号を持っている人は使えない。例外は無い。
0928デフォルトの名無しさん
2011/11/19(土) 14:08:16.94システム全体の拡張性とか保守性とかそういう話じゃないからね。
現場で要求される、拡張性とか保守性ってのは
お客の仕様変更やメンテナンスやバージョンアップにたいする
拡張性とか保守性だから。
0929デフォルトの名無しさん
2011/11/19(土) 14:11:59.89一般教養として身に付けておくべきとは思うが
それは一々話題にするようなことではない。
仕事をこなす上では、やはり実用書を読まなければ。
0930デフォルトの名無しさん
2011/11/19(土) 14:14:50.37教科書に書いてあるものと
実践で要求されるものが全く違うと分かるはずなんだが。
オライリーの本を教科書に使ってる
大学って無いの?
0931デフォルトの名無しさん
2011/11/19(土) 14:20:22.27C=1とするとJava=2.5 VB=4.5 Perl=6だそうだ
これが現実世界か
0932デフォルトの名無しさん
2011/11/19(土) 14:24:46.35鮮度という概念で重み付けくらいしないと。
0933デフォルトの名無しさん
2011/11/19(土) 14:25:03.64オライリーは昔はともかく今は...
0934デフォルトの名無しさん
2011/11/19(土) 14:35:45.69(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)))
0935デフォルトの名無しさん
2011/11/19(土) 14:36:58.67場合分けの基本ができていない証拠。
つまり、任意の数に対して、
・該当するcaseが少なくとも1つ存在し、
・該当するcaseが多くとも1つしか存在しない、
ことを満たすことを簡単かつ明瞭に示す。
それが安全性・保守性・再利用性の高いソフトウェアを書く基本だ。
そしてそれを言語レベルでサポートできるのが静的型付けのメリットでもある。
このスレの静的型厨は、静的型付けの重要なメリットを知らずに
ただ静的型付け最強、動的型付けクソ、と喚き続けていたことを
自ら証明してくれたわけだ。
ご苦労さんw
0936デフォルトの名無しさん
2011/11/19(土) 14:37:33.920937デフォルトの名無しさん
2011/11/19(土) 14:38:47.35> 静的型付け最強と喚き続けていたことを
> 自ら証明してくれたわけだ。
なにも問題なさ過ぎてワロタw
0938デフォルトの名無しさん
2011/11/19(土) 14:47:53.620939デフォルトの名無しさん
2011/11/19(土) 14:48:00.08静的言語しかしらないから、混ぜっ返さないで答えて欲しいんだけど、
> 15の倍数のcaseまで書いちゃう人は、
> つまり、任意の数に対して、
>・該当するcaseが多くとも1つしか存在しない、
これって矛盾しないの?
0940デフォルトの名無しさん
2011/11/19(土) 14:50:03.24ことに関する腕を上げられると言ってることが読めないんだな。
SICPってそのセンスを巧みに育てる演習問題をだしてるよ。
基礎がない人間って、応用が聞かないし融通が効かないのって
ふつうのコトなんだがな。
0941デフォルトの名無しさん
2011/11/19(土) 14:50:56.66それでいいんじゃないか? ほんとそんな感じだもんここの
。。。
0942デフォルトの名無しさん
2011/11/19(土) 14:52:23.79> これって矛盾しないの?
静的厨は矛盾している、ってことだw
わかんないの?
0943デフォルトの名無しさん
2011/11/19(土) 14:53:00.87ここの多くの批評家の知的レベルも高くはないけど、スキルも低そうと
いうのが率直な感想かな。
0944デフォルトの名無しさん
2011/11/19(土) 14:54:03.26そうだね、ドカチン稼業には何の問題もないだろうね。
本当に複雑なシステムをちゃんと動くように構築する係の人には
とても大切な基本スキルだけどw
0945デフォルトの名無しさん
2011/11/19(土) 14:54:37.36SICPなんか読んでて当たり前で、一々ドヤ顔で喋るようなことじゃねーだろって言ってんだよ。
0946デフォルトの名無しさん
2011/11/19(土) 14:56:12.010947デフォルトの名無しさん
2011/11/19(土) 14:57:50.84当たり前な割に、まるで実行できてないじゃんw
0948デフォルトの名無しさん
2011/11/19(土) 14:59:44.20SICPしか読んでねえからパズルしか解けねーんだよ
0949デフォルトの名無しさん
2011/11/19(土) 15:02:08.63自分では模範解答一つ書き込めないんだろ?それ読んだ意味なくね?
0950デフォルトの名無しさん
2011/11/19(土) 15:06:06.82混ぜっ返しはいいから、矛盾ないことを説明してみてくれ。
0951デフォルトの名無しさん
2011/11/19(土) 15:07:56.410952デフォルトの名無しさん
2011/11/19(土) 15:08:49.500953デフォルトの名無しさん
2011/11/19(土) 15:13:14.30いや、静的型付け言語厨が
静的型付けが最強と自分で証明するのは
当たり前だろってことなんだが。
0954デフォルトの名無しさん
2011/11/19(土) 15:15:47.57良く分からん。
関数だから入力に対して出力が一意に決まるし、
関数の中をどう表現するかは書き手次第でしょ。
0955デフォルトの名無しさん
2011/11/19(土) 15:17:03.85それは副作用を持っていない関数限定だ
0956デフォルトの名無しさん
2011/11/19(土) 15:19:56.97- 大規模開発にはドカタ動員が必須
- ドカタは静的型チェックやIDEの補完の助けなしではFizzBuzzも書けない。
- 逆にコンパイラとIDEの助けを借りれば、なんとか動くコードは書ける。
- 動的言語には現状まともなIDEがない(Smalltalkerはこっちくるな。Emacs?笑えんな)
- よって大規模開発で動的言語を使うと炎上する
0957デフォルトの名無しさん
2011/11/19(土) 15:22:08.100958デフォルトの名無しさん
2011/11/19(土) 15:22:33.80図星なんだろうと思う。ほんとどの教科書でもいいから
基礎くらいは身につけたほうがいいよ。しょーもない反論
聞かされるより、本を開いて読んで見たらいい。
IDEの使い方を勉強するだけじゃ面白くないだろ?
その基礎をどう応用するかは貴方次第。
できないのは残念ですが、その程度の人間ってこと。
これでいいんじゃないの?ここのスレの結論は。
0959デフォルトの名無しさん
2011/11/19(土) 15:23:39.16優れた煽りまとめだと思う。
0960デフォルトの名無しさん
2011/11/19(土) 15:24:40.24まとめ
- 大規模開発には技術力も経験も考え方も違った開発者が多く必要
- コンパイラとIDEの助けにより、開発の高速化とコードの書き方の統一ができる。
- 動的言語には現状まともなIDEがない(Smalltalkは殆ど使われていない。Emacs?笑えんな)
- よって大規模開発で動的言語を使うと炎上する
0961デフォルトの名無しさん
2011/11/19(土) 15:24:59.32写像(関数)だから、対応が一意でしょ。
0962デフォルトの名無しさん
2011/11/19(土) 15:25:18.29なんだ。すっきりしたじゃないかw
0963デフォルトの名無しさん
2011/11/19(土) 15:25:19.790964デフォルトの名無しさん
2011/11/19(土) 15:26:10.99面白くない。不思議!
0965デフォルトの名無しさん
2011/11/19(土) 15:27:34.43ちょこっと近所にでかけるには便利
0966デフォルトの名無しさん
2011/11/19(土) 15:30:38.18そのレベルの開発者を集められないなら諦めるべき。
0967デフォルトの名無しさん
2011/11/19(土) 15:31:02.19SICP訳がおかしくて
原書読まなきゃ解けないもんだいがあるとか
0968デフォルトの名無しさん
2011/11/19(土) 15:31:13.81TwitterがRuby on Railsを使っているってことぐらい。
0969デフォルトの名無しさん
2011/11/19(土) 15:32:10.140970デフォルトの名無しさん
2011/11/19(土) 15:34:29.87静的型付け言語で作られた物が殆どだしな
0971デフォルトの名無しさん
2011/11/19(土) 15:38:07.19パッケージソフト開発で動的型付け言語が殆ど使われないのは、要はそこなんじゃないのか?
0972デフォルトの名無しさん
2011/11/19(土) 15:38:09.49Rubyは遅いと思っていたのだが。
0973デフォルトの名無しさん
2011/11/19(土) 15:38:26.85ダミーコード要員もいっぱいいるくらいスキルが低い。近視眼的な目線だけでOK。
この辺だろうな。
0974デフォルトの名無しさん
2011/11/19(土) 15:39:22.79パッケージソフト開発で動的型型付け言語が使われないのは
ソースコードを公開しないといけないのが一番の理由。
0975デフォルトの名無しさん
2011/11/19(土) 15:39:41.28逆に、君がブラウザで利用するサービスは
かなり多くが動的型付け言語で作られているよ。
0976デフォルトの名無しさん
2011/11/19(土) 15:40:10.27これって間違ってるっしょ
0977デフォルトの名無しさん
2011/11/19(土) 15:40:10.74いや、だからコンパイラさえあれば、
ネイティブコードにコンパイルしてバイナリで売ればいいだろ?
0978デフォルトの名無しさん
2011/11/19(土) 15:40:21.89ソースコードの公開は必須になるんだよな。
0979デフォルトの名無しさん
2011/11/19(土) 15:41:31.55しなければいいだろ。
実行時のソースコード書き換えにしか動的型付け言語のメリットってないの?
0980デフォルトの名無しさん
2011/11/19(土) 15:41:49.44TwitterはScalaに変更になったぞw
ウェブサービスも最近は静的型付け言語が多い。
特に大規模になってくると、tomcat(つまりJavaだろう)とか
ASP(.net)とか出てくるでしょ。
個人が使うようなものはPHPが多いけど。
0981デフォルトの名無しさん
2011/11/19(土) 15:43:12.45どこでやってるのかわからんだろ。
自分が作ってない所(ライブラリ内部)で勝手にやってるかもしえない。
しかも静的型付けではないから、そういうコードは
実行するまで検出できない。
0982デフォルトの名無しさん
2011/11/19(土) 15:43:55.73そんなに良い言語なのかな?
0983デフォルトの名無しさん
2011/11/19(土) 15:44:46.30参加者を限定して大規模にする意味がない
0984デフォルトの名無しさん
2011/11/19(土) 15:45:54.43必須ではないけど、実質必須になることが多いよね。スクリプト言語が多いしね。
修正BSDライセンスのSBCLやCMLCLならば、バイナリ配布だけでも良いし。
外に見せたくないものならどうしても静的なコンパイラーをつかった言語に
なるのは自然の流れかと思う。
もうこのスレも終わりでいいかもね。なんだかつきあいきれねーっつーか
さらばするわ。ダメっぽさの中にいると自分までダメになってしまいそう
で怖い。ほな
0985デフォルトの名無しさん
2011/11/19(土) 15:46:01.750986デフォルトの名無しさん
2011/11/19(土) 15:46:44.50> 規模だけで言うなら、誰でも参加できるオープンソースが一番大きい
えっと、参加人数ではなく、工数で考えてください。
0987デフォルトの名無しさん
2011/11/19(土) 15:49:38.250988デフォルトの名無しさん
2011/11/19(土) 15:50:57.820989デフォルトの名無しさん
2011/11/19(土) 16:27:08.470990デフォルトの名無しさん
2011/11/19(土) 16:37:20.71証左はこのスレ Q.E.D.
0991デフォルトの名無しさん
2011/11/19(土) 16:37:53.40高効率でクリーンで安全な動的言語をもっと使おう
0992デフォルトの名無しさん
2011/11/19(土) 16:40:48.840993デフォルトの名無しさん
2011/11/19(土) 17:02:11.320994デフォルトの名無しさん
2011/11/19(土) 17:22:33.110995デフォルトの名無しさん
2011/11/19(土) 18:07:10.93次スレはいらんけど、もし立てるなら「ドカタ」のキーワードはスレタイに入れろよ
0996デフォルトの名無しさん
2011/11/19(土) 18:08:10.040997デフォルトの名無しさん
2011/11/19(土) 18:18:31.770998デフォルトの名無しさん
2011/11/19(土) 18:19:16.750999デフォルトの名無しさん
2011/11/19(土) 18:23:11.57いや、静的型付け言語厨が
静的型付けの長所を台無しにするようなコードを
当たり前のように書いてドヤ顔してどーすんだ、
って話w
1000デフォルトの名無しさん
2011/11/19(土) 18:23:56.0910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。