探検
動的言語で大規模開発
■ このスレッドは過去ログ倉庫に格納されています
1uy
2012/07/24(火) 09:10:42.04 たててみた
616デフォルトの名無しさん
2014/11/30(日) 22:53:53.26ID:rR9TrKjV617デフォルトの名無しさん
2014/11/30(日) 22:55:23.26ID:360iudbJ618デフォルトの名無しさん
2014/11/30(日) 22:55:36.39ID:/BRxH/wW619デフォルトの名無しさん
2014/11/30(日) 22:57:41.96ID:mFsly3WX >>614
この論文内では duck typing という用語は一度も使われていないし、
タイトルに Strongly-Typed と書かれているように静的型付け言語に関する内容だ
で、いったいどこから duck typing を連想したの?
この論文内では duck typing という用語は一度も使われていないし、
タイトルに Strongly-Typed と書かれているように静的型付け言語に関する内容だ
で、いったいどこから duck typing を連想したの?
620デフォルトの名無しさん
2014/11/30(日) 23:00:20.47ID:360iudbJ 典型的なアスペか。
621デフォルトの名無しさん
2014/11/30(日) 23:01:15.62ID:mFsly3WX622デフォルトの名無しさん
2014/11/30(日) 23:09:04.67ID:rR9TrKjV623デフォルトの名無しさん
2014/11/30(日) 23:09:46.51ID:tHR3Cg3X あれ?int型の+とstring型の+に対するオーバーロードみたいな話になってる?
無知なら口だすなと言われそうなので黙っておきます…
無知なら口だすなと言われそうなので黙っておきます…
624デフォルトの名無しさん
2014/11/30(日) 23:22:20.73ID:/BRxH/wW >>621
そうか。じゃあスレ違いの話は止めないと荒らしになってしまうな
そうか。じゃあスレ違いの話は止めないと荒らしになってしまうな
625デフォルトの名無しさん
2014/11/30(日) 23:27:42.56ID:mFsly3WX >>616
Python のオブジェクト指向は Modula-3 を参考にしているけど、
Modula-3 のオブジェクト指向は Simula を参考にしている
そして疑似変数 self の概念は Simula には存在せず、
Simula を参考にした Smalltalk で生まれた
だから、Modula-3 や Python に疑似変数 self は存在せず、
これを模倣するにはメソッド引数で明示的に __self__ を
渡さなければならない訳
あと疑似変数 self の値は実行時に決まるから、
もし Python で __self__ を省略できるようにするためには、
構文論(syntax)の変更すなわちパーザの改造だけではダメで、
意味論(semantics)も変更しなければならない
こうした背景も知らずに「変人だから」という理由で決めつけるのは、
Guido氏に失礼だと思うよ
Python のオブジェクト指向は Modula-3 を参考にしているけど、
Modula-3 のオブジェクト指向は Simula を参考にしている
そして疑似変数 self の概念は Simula には存在せず、
Simula を参考にした Smalltalk で生まれた
だから、Modula-3 や Python に疑似変数 self は存在せず、
これを模倣するにはメソッド引数で明示的に __self__ を
渡さなければならない訳
あと疑似変数 self の値は実行時に決まるから、
もし Python で __self__ を省略できるようにするためには、
構文論(syntax)の変更すなわちパーザの改造だけではダメで、
意味論(semantics)も変更しなければならない
こうした背景も知らずに「変人だから」という理由で決めつけるのは、
Guido氏に失礼だと思うよ
626デフォルトの名無しさん
2014/11/30(日) 23:31:44.94ID:guVElZZq もう、超優秀なIDEがあって動的構造取り入れた c# 最強って事で良いんじゃないの?
627デフォルトの名無しさん
2014/11/30(日) 23:42:47.38ID:UnYKruMf628デフォルトの名無しさん
2014/11/30(日) 23:43:33.56ID:mFsly3WX >>622
> 1989年の論文にduck typingと言う用語が出てきたらそっちの方が驚くわ
そうだろ、だから驚いて >>619 では
>>で、いったいどこから duck typing を連想したの?
と書いた
論文を引用するのはいいけど、この論文をどう解釈して duck typing に結びつけたのか、
説明が無ければ意味が分からんという話だよ
>abstract斜め読みしただけだがSmalltalkには言及されてんぞ
Smalltalk の柔軟な継承を強い型付け(=静的型付け)なOO言語に取り込むために
インターフェイスを用いる、という文脈でね
動的型付けを濫用するというニュアンスを持つ duck typing とは何の関係も無い
この論文、型システムと言語設計に興味がある人にはとても有益だから、
斜め読みと言わずじっくり読んでみたほうがいいと思うな
> 1989年の論文にduck typingと言う用語が出てきたらそっちの方が驚くわ
そうだろ、だから驚いて >>619 では
>>で、いったいどこから duck typing を連想したの?
と書いた
論文を引用するのはいいけど、この論文をどう解釈して duck typing に結びつけたのか、
説明が無ければ意味が分からんという話だよ
>abstract斜め読みしただけだがSmalltalkには言及されてんぞ
Smalltalk の柔軟な継承を強い型付け(=静的型付け)なOO言語に取り込むために
インターフェイスを用いる、という文脈でね
動的型付けを濫用するというニュアンスを持つ duck typing とは何の関係も無い
この論文、型システムと言語設計に興味がある人にはとても有益だから、
斜め読みと言わずじっくり読んでみたほうがいいと思うな
629デフォルトの名無しさん
2014/11/30(日) 23:44:44.78ID:/BRxH/wW >>616
http://neopythonic.blogspot.jp/2008/10/why-explicit-self-has-to-stay.html
・ただの関数を、後からクラスにメソッドとして後付けできること(そのとき暗黙のselfの扱い)
・decoratorがあるから(動的にstatic methodやclass methodに変更できる)
というのが理由だそうだ
http://neopythonic.blogspot.jp/2008/10/why-explicit-self-has-to-stay.html
・ただの関数を、後からクラスにメソッドとして後付けできること(そのとき暗黙のselfの扱い)
・decoratorがあるから(動的にstatic methodやclass methodに変更できる)
というのが理由だそうだ
630デフォルトの名無しさん
2014/11/30(日) 23:49:11.15ID:guVElZZq >>627
Roslyn凄そうだが、どんだけのヤツが付いていけるんだろ。
Roslyn凄そうだが、どんだけのヤツが付いていけるんだろ。
631デフォルトの名無しさん
2014/11/30(日) 23:50:00.23ID:nRiDRl39632デフォルトの名無しさん
2014/11/30(日) 23:52:00.50ID:mFsly3WX633デフォルトの名無しさん
2014/11/30(日) 23:53:34.74ID:/BRxH/wW 言語だけでいうならRustに期待しているんだが……
634デフォルトの名無しさん
2014/11/30(日) 23:57:11.19ID:SVLUkCya635デフォルトの名無しさん
2014/11/30(日) 23:58:47.30ID:mFsly3WX >>634
おいおい、Python は動的型付け言語だよ
おいおい、Python は動的型付け言語だよ
636デフォルトの名無しさん
2014/11/30(日) 23:59:07.80ID:rR9TrKjV637デフォルトの名無しさん
2014/11/30(日) 23:59:36.82ID:UnYKruMf638デフォルトの名無しさん
2014/11/30(日) 23:59:39.73ID:guVElZZq >>631
dynamic型
dynamic型
639デフォルトの名無しさん
2014/12/01(月) 00:02:55.46ID:v1/AC0CB640デフォルトの名無しさん
2014/12/01(月) 00:04:29.77ID:JhMfQ7kZ >>636
いや、Procオブジェクトを明示的にコーディングするのは稀だ
クロージャの無い Python とは違って、
Ruby だと普通は do |x| ... end や { |x| .... } で書ける
いや、Procオブジェクトを明示的にコーディングするのは稀だ
クロージャの無い Python とは違って、
Ruby だと普通は do |x| ... end や { |x| .... } で書ける
641デフォルトの名無しさん
2014/12/01(月) 00:08:40.28ID:v1/AC0CB642デフォルトの名無しさん
2014/12/01(月) 00:11:50.96ID:WHPunuUw643デフォルトの名無しさん
2014/12/01(月) 00:13:16.83ID:2BTgZC4D 結局は、静的言語が動的言語の要素を取り入れて進化し、両方の境界が曖昧になるんだよ。
644デフォルトの名無しさん
2014/12/01(月) 00:15:06.71ID:JhMfQ7kZ >>641
逆だろw
クロージャを使えば簡潔に書けるのに、結局 Python ではコードが書けずに終わった
で、しまいに火病を発症してわめきちらしただけ、それがフルボッコなのか?www
今からでもいいから Python でコード書いてみな
逆だろw
クロージャを使えば簡潔に書けるのに、結局 Python ではコードが書けずに終わった
で、しまいに火病を発症してわめきちらしただけ、それがフルボッコなのか?www
今からでもいいから Python でコード書いてみな
645デフォルトの名無しさん
2014/12/01(月) 00:18:09.70ID:v1/AC0CB646デフォルトの名無しさん
2014/12/01(月) 00:20:09.36ID:JhMfQ7kZ >>640
ほう、Python で Soft Typing が実用化されたとは初耳だ
ググってみると2003年に提案はあったものの、
その後に実装されたという情報は見つけられなかった
本当に実用化されているの?
また嘘でも何でも議論に勝ちさえばいいという発想じゃないのかなあ....
ほう、Python で Soft Typing が実用化されたとは初耳だ
ググってみると2003年に提案はあったものの、
その後に実装されたという情報は見つけられなかった
本当に実用化されているの?
また嘘でも何でも議論に勝ちさえばいいという発想じゃないのかなあ....
647デフォルトの名無しさん
2014/12/01(月) 00:21:49.35ID:v1/AC0CB648デフォルトの名無しさん
2014/12/01(月) 00:28:35.48ID:v1/AC0CB649デフォルトの名無しさん
2014/12/01(月) 00:29:56.57ID:JhMfQ7kZ650デフォルトの名無しさん
2014/12/01(月) 00:36:07.76ID:2BTgZC4D651デフォルトの名無しさん
2014/12/01(月) 00:39:00.66ID:JhMfQ7kZ >>648
外部にツールが存在することと、
ある言語が Soft Typing で設計されている話は関係ないよ
Python の言語処理系(インタプリタ)だけで
明示的な型宣言が無くとも実行前に型検査できるなら
話は別だけどね
というか、Soft Typing という用語の意味を
間違って理解しているんじゃね?
外部にツールが存在することと、
ある言語が Soft Typing で設計されている話は関係ないよ
Python の言語処理系(インタプリタ)だけで
明示的な型宣言が無くとも実行前に型検査できるなら
話は別だけどね
というか、Soft Typing という用語の意味を
間違って理解しているんじゃね?
652デフォルトの名無しさん
2014/12/01(月) 00:42:41.17ID:v1/AC0CB653デフォルトの名無しさん
2014/12/01(月) 00:50:53.90ID:JhMfQ7kZ654デフォルトの名無しさん
2014/12/01(月) 04:58:08.58ID:CuP+pzia >>559
かっこいいとかそういう基準で判断してるわけじゃないから。契約とか内容次第だから勝手なイメージだろ。
かっこいいとかそういう基準で判断してるわけじゃないから。契約とか内容次第だから勝手なイメージだろ。
655デフォルトの名無しさん
2014/12/01(月) 06:42:19.33ID:Weh8bUwF 645はクラスを名前空間だと思い込んでいる初心者
早く補助輪を取れるといいね
早く補助輪を取れるといいね
656デフォルトの名無しさん
2014/12/01(月) 09:10:41.83ID:B1S4sCHX そんなつまらない事にしかレスできないから
馬鹿にされるんだよw
馬鹿にされるんだよw
657デフォルトの名無しさん
2014/12/02(火) 12:19:36.12ID:KrePR2s0 昔Basicはプログラマとしてのセンスを破壊すると言われたが、
今回Smalltalkも破壊することが判明したな
今回Smalltalkも破壊することが判明したな
658デフォルトの名無しさん
2014/12/02(火) 13:56:12.38ID:3rN5XUau 2ちゃんねるは人間としての品格を破壊する
659デフォルトの名無しさん
2014/12/02(火) 14:29:13.80ID:XRdoM1I9 “Smalltalkのデバッガがどのくらい強力かと言うと、
任意の時点で任意のプロセスをインタラプトし
実行中のメソッドコンテクストのスタックをトレースして任意の時点まで遡り、
その時の内部状態を観察してソースコードを修正、コンパイルした後、
そのままリジュームして処理を継続できるレベル。
デバッガは何枚でも開けられるし、作業の途中でやめたくなったら、
スナップショットを撮って終了し、再開すればその直前から続けられる。
たとえ、それが他のコンピューターでも(直接下回りを触っていない限り、
プラットフォームやOSが違っていても可)、それが10年後でも。”
https://twitter.com/abee2/status/539355671729152000
任意の時点で任意のプロセスをインタラプトし
実行中のメソッドコンテクストのスタックをトレースして任意の時点まで遡り、
その時の内部状態を観察してソースコードを修正、コンパイルした後、
そのままリジュームして処理を継続できるレベル。
デバッガは何枚でも開けられるし、作業の途中でやめたくなったら、
スナップショットを撮って終了し、再開すればその直前から続けられる。
たとえ、それが他のコンピューターでも(直接下回りを触っていない限り、
プラットフォームやOSが違っていても可)、それが10年後でも。”
https://twitter.com/abee2/status/539355671729152000
660デフォルトの名無しさん
2014/12/02(火) 16:22:17.31ID:+stn5l+y 10年とか先にarmのcpuが流行ってるとは思わなかったでしょ
661デフォルトの名無しさん
2014/12/02(火) 19:47:59.90ID:OQmm7jB2 >>659
凄いけど役に立たないなw
凄いけど役に立たないなw
662デフォルトの名無しさん
2014/12/02(火) 19:49:38.18ID:OQmm7jB2 なんで役に立たないかというと
実行中のメソッドコンテクストのスタックをトレースして任意の時点まで遡り、
その時の内部状態を観察してソースコードを修正、コンパイルした後、
そのままリジュームして処理を継続したらバグで変な状態になった。
また止めて変な状態を直して、正しい所に移動させて続けることも可能だけど
最初からやり直したほうが早い。
実行中のメソッドコンテクストのスタックをトレースして任意の時点まで遡り、
その時の内部状態を観察してソースコードを修正、コンパイルした後、
そのままリジュームして処理を継続したらバグで変な状態になった。
また止めて変な状態を直して、正しい所に移動させて続けることも可能だけど
最初からやり直したほうが早い。
663デフォルトの名無しさん
2014/12/02(火) 22:07:07.23ID:DpCZ+4Qy664デフォルトの名無しさん
2014/12/02(火) 22:38:50.95ID:OQmm7jB2 人間はミスするとう前提の話をしてるんだが?
スキルや能力とは関係ない。
ミスしないようなすごい人しか使えない道具ではなく、
ミスしてもすぐにリカバリできる仕組みを作るほうが重要。
ということで静的型付け言語はそうなってるって話なんだよ。
スキルや能力とは関係ない。
ミスしないようなすごい人しか使えない道具ではなく、
ミスしてもすぐにリカバリできる仕組みを作るほうが重要。
ということで静的型付け言語はそうなってるって話なんだよ。
665デフォルトの名無しさん
2014/12/02(火) 22:48:09.93ID:DpCZ+4Qy666デフォルトの名無しさん
2014/12/02(火) 22:52:44.71ID:OQmm7jB2 一体何の機能が制限されているというのか?
タイプ数が少し増えるというのならわかる。
制限されているという機能の名前を聞いたことがないし、
どうでも良い機能のために、動的型付け言語を使うという話しか聞かない
静的型付け言語で出来ないことはないし、(たとえば、C言語は静的型付け言語)
多くのことが動的型付け言語よりも便利に行える。
デメリットはほんの少しタイプ量が増えるだけ
タイプ数が少し増えるというのならわかる。
制限されているという機能の名前を聞いたことがないし、
どうでも良い機能のために、動的型付け言語を使うという話しか聞かない
静的型付け言語で出来ないことはないし、(たとえば、C言語は静的型付け言語)
多くのことが動的型付け言語よりも便利に行える。
デメリットはほんの少しタイプ量が増えるだけ
667デフォルトの名無しさん
2014/12/02(火) 22:57:12.61ID:ySWWhxWC 修正したコードが実機の上、しかもファイルじゃなくてメモリ上にしかないとか
よく考えなくても怖いことなんだけどな。
よく考えなくても怖いことなんだけどな。
668デフォルトの名無しさん
2014/12/02(火) 22:58:05.38ID:AvSKqXZA669デフォルトの名無しさん
2014/12/02(火) 23:01:26.70ID:DpCZ+4Qy >>667
よく考えてたら、VCSにチェックインするとか想像できそうなものだけど。
よく考えてたら、VCSにチェックインするとか想像できそうなものだけど。
670デフォルトの名無しさん
2014/12/02(火) 23:23:32.69ID:DpCZ+4Qy671デフォルトの名無しさん
2014/12/02(火) 23:41:57.12ID:f9ZuLJgk >>666
動的型付けの利点はコンポーネント間を柔軟に結合できること
大規模開発の具体例は OSX/iOS で使われている Objective-C と Cocoa フレームワーク
Objective-C はコンポーネント内部の実装には静的型付けなC言語を用いるが、
コンポーネント間の結合に用いるオブジェクトに対しては id型 という動的型付けを用いる
結果として2001年の初リリース移行、多くの機能強化や改善を加えて発展を続けている
対して、静的型付けな C++ と MFC ライブラリを採用した Windows は開発に行き詰まる
Windows ではコンポーネント間の結合に CORBA を基礎とした COM を開発して対応したが、
COM は高度で優れた技術ではあるものの、あまりに一般のプログラマには難解すぎて普及しなかった
(一般のプログラマが普通に使えるのは OLE Automation と呼ばれるクライアント側APIのみ)
このため Microsoft は C++ や MFC を放棄して C# と .Net へ全面移行せざるをえなかった
結果として開発チームは大混乱に陥って Windows Vista の大失敗に始まる開発の大幅な停滞をまねき、
Apple の台頭を許した
動的型付けの利点はコンポーネント間を柔軟に結合できること
大規模開発の具体例は OSX/iOS で使われている Objective-C と Cocoa フレームワーク
Objective-C はコンポーネント内部の実装には静的型付けなC言語を用いるが、
コンポーネント間の結合に用いるオブジェクトに対しては id型 という動的型付けを用いる
結果として2001年の初リリース移行、多くの機能強化や改善を加えて発展を続けている
対して、静的型付けな C++ と MFC ライブラリを採用した Windows は開発に行き詰まる
Windows ではコンポーネント間の結合に CORBA を基礎とした COM を開発して対応したが、
COM は高度で優れた技術ではあるものの、あまりに一般のプログラマには難解すぎて普及しなかった
(一般のプログラマが普通に使えるのは OLE Automation と呼ばれるクライアント側APIのみ)
このため Microsoft は C++ や MFC を放棄して C# と .Net へ全面移行せざるをえなかった
結果として開発チームは大混乱に陥って Windows Vista の大失敗に始まる開発の大幅な停滞をまねき、
Apple の台頭を許した
672デフォルトの名無しさん
2014/12/02(火) 23:43:16.07ID:DpCZ+4Qy673デフォルトの名無しさん
2014/12/03(水) 00:24:16.86ID:B6A3kVmE >>659
なぜDockerみたいな技術が持て囃され、こういう機能がスルーされるのか
Smalltalkerには永遠に理解できないんだろうな
Smalltalkは見当違いの問題を解いているんだよ
言語の中だけでリスタートできても意味がないんだ
価値がないから真似もされない
なぜDockerみたいな技術が持て囃され、こういう機能がスルーされるのか
Smalltalkerには永遠に理解できないんだろうな
Smalltalkは見当違いの問題を解いているんだよ
言語の中だけでリスタートできても意味がないんだ
価値がないから真似もされない
674デフォルトの名無しさん
2014/12/03(水) 01:01:00.52ID:/c7/jI5U 道具に使われてる人たちが・・・
675デフォルトの名無しさん
2014/12/03(水) 01:03:45.51ID:cgD8+cJC >>673
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
計算機の言語を狭い意味でとらえる人にSmalltalkの特徴を
説明するのは難しい。
ユーザーがアクセスできる部品のすべてはユーザーが
観察し操作するのに適した方法で自らを表現できなければ
ならない
オペレーティングシステムがこの原則を破っているようで
あることはちょっと注目すべきだろう。
オペレーティングシステムは言語におさまりきらないものを
集めたもので、これは存在すべきでない
Smalltalkにはそうした意味での「オペレーティングシステム」は
無い。
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
計算機の言語を狭い意味でとらえる人にSmalltalkの特徴を
説明するのは難しい。
ユーザーがアクセスできる部品のすべてはユーザーが
観察し操作するのに適した方法で自らを表現できなければ
ならない
オペレーティングシステムがこの原則を破っているようで
あることはちょっと注目すべきだろう。
オペレーティングシステムは言語におさまりきらないものを
集めたもので、これは存在すべきでない
Smalltalkにはそうした意味での「オペレーティングシステム」は
無い。
676デフォルトの名無しさん
2014/12/03(水) 01:07:46.87ID:9SD5P0Ri この言語は危ないという前提があった方が、本当に危なくなった時に逃げやすいね
言語を信用しすぎると逃げ遅れる
言語を信用しすぎると逃げ遅れる
677デフォルトの名無しさん
2014/12/03(水) 05:01:07.21ID:Fu5jXwDM >>667
大抵のSmalltalk処理系はソース編集をジャーナリングしているのだが?
普通の開発環境でいえば、
テキストエディタで編集するごとに自動的にcommitしているようなもの。
PVSやMonticelloを使えばもっと高機能かつ安全だ。
むしろ、commitを自分でやらないと編集履歴が残らない
普通の開発環境のほうがよく考えなくても怖いことなんだけどな。
大抵のSmalltalk処理系はソース編集をジャーナリングしているのだが?
普通の開発環境でいえば、
テキストエディタで編集するごとに自動的にcommitしているようなもの。
PVSやMonticelloを使えばもっと高機能かつ安全だ。
むしろ、commitを自分でやらないと編集履歴が残らない
普通の開発環境のほうがよく考えなくても怖いことなんだけどな。
678デフォルトの名無しさん
2014/12/03(水) 09:01:37.48ID:XWw3OxN9 >>675
OSの上でOSゴッコしてるだけのSmalltalkが笑わせてくれる
OSの上でOSゴッコしてるだけのSmalltalkが笑わせてくれる
679デフォルトの名無しさん
2014/12/03(水) 09:09:27.83ID:RRftfJUJ >>677
もう少し分かりやすくいおう。
SmalltalkはVCSが言語に統合されている。
VCSが言語に統合されていない言語では、
自分で統合するかIDEの力を借りる。
そこまでセットアップする手間を省けるだけなのだ。
もう少し分かりやすくいおう。
SmalltalkはVCSが言語に統合されている。
VCSが言語に統合されていない言語では、
自分で統合するかIDEの力を借りる。
そこまでセットアップする手間を省けるだけなのだ。
680デフォルトの名無しさん
2014/12/03(水) 09:13:57.48ID:RRftfJUJ >>671
> 大規模開発の具体例は OSX/iOS で使われている Objective-C と Cocoa フレームワーク
> Objective-C はコンポーネント内部の実装には静的型付けなC言語を用いるが、
> コンポーネント間の結合に用いるオブジェクトに対しては id型 という動的型付けを用いる
> 結果として2001年の初リリース移行、多くの機能強化や改善を加えて発展を続けている
動的型付け言語じゃなくても達成出来てることを言われてもなw
だいたい発展し続けると言っても、再起動してるじゃん。
なぜ動的型付け言語ならではの理由が
あんたの言っていることには一つのないんだよね。
> 大規模開発の具体例は OSX/iOS で使われている Objective-C と Cocoa フレームワーク
> Objective-C はコンポーネント内部の実装には静的型付けなC言語を用いるが、
> コンポーネント間の結合に用いるオブジェクトに対しては id型 という動的型付けを用いる
> 結果として2001年の初リリース移行、多くの機能強化や改善を加えて発展を続けている
動的型付け言語じゃなくても達成出来てることを言われてもなw
だいたい発展し続けると言っても、再起動してるじゃん。
なぜ動的型付け言語ならではの理由が
あんたの言っていることには一つのないんだよね。
681デフォルトの名無しさん
2014/12/03(水) 09:21:29.91ID:XWw3OxN9682デフォルトの名無しさん
2014/12/03(水) 10:48:31.33ID:9SD5P0Ri なんでも理由があるべきという思い込みはよくない
実力だけでなく運で決まることもたくさんある
実力だけでなく運で決まることもたくさんある
683デフォルトの名無しさん
2014/12/03(水) 11:22:27.25ID:zGKDhFQQ >>681
Smalltalkを使っている人間はgitを理解できないと決めつける時点で
発想が貧困すぎて困る。この調子じゃ、比較的最近のMonticelloはおろか、
古典的なチェンジセットすらどこまで理解した上でけなしているのかわかったもんじゃない。
Smalltalkを使っている人間はgitを理解できないと決めつける時点で
発想が貧困すぎて困る。この調子じゃ、比較的最近のMonticelloはおろか、
古典的なチェンジセットすらどこまで理解した上でけなしているのかわかったもんじゃない。
684デフォルトの名無しさん
2014/12/03(水) 12:24:53.21ID:zGKDhFQQ >>673
> Smalltalkは見当違いの問題を解いている
Smalltalkはもう過去の遺物だし、問題はすでに解き終わっている。
あとはSmalltalkがどう解いたかを調べて理解するだけでいいと思うよ。
そこから使えそうなアイデアだけを引っ張ってきてちょっと見栄えをよくすれば、
運が良ければイノベーションや新しいトレンドも生み出せる(した人もいる)。
古くはWIMPなGUIしかり、MVCやコレクションなどのフレームワークしかり、
XPやTDDなどアジャイルな開発手法しかり、近年であればトレイトやクラスボックスしかり。
向いている方向が見当違いだというのは同意するけど、それはたまたま今は
ファイルシステムに密着したUNIXライクなOS+C言語マシンで成り立つ世界だからで
そこから外れた物の見方はいっさい価値なしと切り捨ててしまうのは少しもったいない。
少し、だけどね。土方には目の前に解決しなきゃならない問題や、学ばなくちゃいけない
ついて行かなきゃいけないトレンドや技術がいっぱいあるから、
食いつないでいくためにはまずそっちを優先すべきだし。
> Smalltalkは見当違いの問題を解いている
Smalltalkはもう過去の遺物だし、問題はすでに解き終わっている。
あとはSmalltalkがどう解いたかを調べて理解するだけでいいと思うよ。
そこから使えそうなアイデアだけを引っ張ってきてちょっと見栄えをよくすれば、
運が良ければイノベーションや新しいトレンドも生み出せる(した人もいる)。
古くはWIMPなGUIしかり、MVCやコレクションなどのフレームワークしかり、
XPやTDDなどアジャイルな開発手法しかり、近年であればトレイトやクラスボックスしかり。
向いている方向が見当違いだというのは同意するけど、それはたまたま今は
ファイルシステムに密着したUNIXライクなOS+C言語マシンで成り立つ世界だからで
そこから外れた物の見方はいっさい価値なしと切り捨ててしまうのは少しもったいない。
少し、だけどね。土方には目の前に解決しなきゃならない問題や、学ばなくちゃいけない
ついて行かなきゃいけないトレンドや技術がいっぱいあるから、
食いつないでいくためにはまずそっちを優先すべきだし。
685デフォルトの名無しさん
2014/12/03(水) 14:17:36.95ID:Fu5jXwDM >>678
原論文を理解できなかったなら正直にそう書けばいいのにw
原論文を理解できなかったなら正直にそう書けばいいのにw
686デフォルトの名無しさん
2014/12/03(水) 14:23:59.81ID:Fu5jXwDM >>673
メインフレームを笑っていたUnix厨が
メインフレーム由来の仮想化技術をあたかも最新技術のように持て囃す、
あんたが好きな「価値」ってのはその程度のものだ
必死に追いかければ、その先に青い鳥がいるかもなあw
メインフレームを笑っていたUnix厨が
メインフレーム由来の仮想化技術をあたかも最新技術のように持て囃す、
あんたが好きな「価値」ってのはその程度のものだ
必死に追いかければ、その先に青い鳥がいるかもなあw
687デフォルトの名無しさん
2014/12/03(水) 20:48:36.10ID:nRr7XZh4 Dockerはunixの世界においても枯れた既存技術の寄せ集めだし、
最新技術だから持て囃されてるんじゃないよ
標準化の動きが急速に進んでて、クラウドサービスにベンダーロックインされる危険が極小になる所が肝
あるクラウドサービスで動かしてた仮装イメージを、別のサービスに即座に引っ越せるようになる
メインフレームみたいに極限までロックインさせる話とは根本的に違う
やっぱり分かってないと言わざるを得ない
最新技術だから持て囃されてるんじゃないよ
標準化の動きが急速に進んでて、クラウドサービスにベンダーロックインされる危険が極小になる所が肝
あるクラウドサービスで動かしてた仮装イメージを、別のサービスに即座に引っ越せるようになる
メインフレームみたいに極限までロックインさせる話とは根本的に違う
やっぱり分かってないと言わざるを得ない
688デフォルトの名無しさん
2014/12/03(水) 21:23:44.95ID:o4Xb4UE8 ベンダーロックインを静的型にたとえると
短いソースをコンパイルするために多くのヘッダーをincludeすることを強制される
ヘッダーと本体が分かれていない言語では全部必要
短いソースをコンパイルするために多くのヘッダーをincludeすることを強制される
ヘッダーと本体が分かれていない言語では全部必要
689デフォルトの名無しさん
2014/12/03(水) 21:45:16.01ID:RRftfJUJ690デフォルトの名無しさん
2014/12/03(水) 21:49:32.75ID:RRftfJUJ >>684
> には目の前に解決しなきゃならない問題や、学ばなくちゃいけない
> ついて行かなきゃいけないトレンドや技術がいっぱいあるから、
プロなら当たり前のことなんじゃねーの?
プロには目の前に解決しなきゃならない問題や、学ばなくちゃいけない
ついて行かなきゃいけないトレンドや技術がいっぱいあるから、
うん、違和感ない
> には目の前に解決しなきゃならない問題や、学ばなくちゃいけない
> ついて行かなきゃいけないトレンドや技術がいっぱいあるから、
プロなら当たり前のことなんじゃねーの?
プロには目の前に解決しなきゃならない問題や、学ばなくちゃいけない
ついて行かなきゃいけないトレンドや技術がいっぱいあるから、
うん、違和感ない
691デフォルトの名無しさん
2014/12/03(水) 22:07:22.24ID:o4Xb4UE8692デフォルトの名無しさん
2014/12/03(水) 22:22:38.66ID:RRftfJUJ そのおかげで、矛盾するもの。つまり
明らかに動かないコードを検出することが可能になっている。
動的型付け言語では、動かして該当コードに
たどり着かないとわからないバグを
動かすことなく見つけることが可能になってる。
これこそ、大規模開発で必要なことの一つなんだ。
明らかに動かないコードを検出することが可能になっている。
動的型付け言語では、動かして該当コードに
たどり着かないとわからないバグを
動かすことなく見つけることが可能になってる。
これこそ、大規模開発で必要なことの一つなんだ。
693デフォルトの名無しさん
2014/12/03(水) 22:25:08.05ID:o4Xb4UE8 大規模炎上の主な原因はバグではなく設計ミスではないのか
694デフォルトの名無しさん
2014/12/03(水) 22:26:49.02ID:B6A3kVmE 静的型の方がアカデミック方面での発展も凄いので
確かに学ぶことは多いと思うよ
確かに学ぶことは多いと思うよ
695デフォルトの名無しさん
2014/12/03(水) 22:31:22.32ID:0xDgvp4s >>693
違う、営業的に決められた納期だな
違う、営業的に決められた納期だな
696デフォルトの名無しさん
2014/12/03(水) 22:36:19.29ID:RRftfJUJ >>693
大規模炎上の話なんかしていないw
まず、スコープが小さいほど、変更が与える影響は少ない。
プライベートメソッドなら、クラスの外は関係ないし、
関数内の修正は、引数と戻り値さえ同じなら
どう修正しても問題ない。
修正の影響範囲が大きいのはスコープが多い時なんだ。
例えばクラスメソッド引数が変更された時、
その他の"すべての"ファイルから参照しているコードを突き止めないといけない。
基底クラスが変更になった時、その全ての派生クラスへの影響を考えないといけない。
そこに静的型付け言語のメリットが生きてくる。
動的型付け言語だと、クラスを変更した時、そのクラスの利用者全てを確認するのは難しい。
なぜなら変数に依存関係が明示されていないから。
静的型付け言語だと、変数に型を明示するから、変更による影響を瞬時に知ることができる。
これこそ大規模開発で必要なことなんだよ。
大規模炎上の話なんかしていないw
まず、スコープが小さいほど、変更が与える影響は少ない。
プライベートメソッドなら、クラスの外は関係ないし、
関数内の修正は、引数と戻り値さえ同じなら
どう修正しても問題ない。
修正の影響範囲が大きいのはスコープが多い時なんだ。
例えばクラスメソッド引数が変更された時、
その他の"すべての"ファイルから参照しているコードを突き止めないといけない。
基底クラスが変更になった時、その全ての派生クラスへの影響を考えないといけない。
そこに静的型付け言語のメリットが生きてくる。
動的型付け言語だと、クラスを変更した時、そのクラスの利用者全てを確認するのは難しい。
なぜなら変数に依存関係が明示されていないから。
静的型付け言語だと、変数に型を明示するから、変更による影響を瞬時に知ることができる。
これこそ大規模開発で必要なことなんだよ。
697デフォルトの名無しさん
2014/12/03(水) 22:43:05.49ID:o4Xb4UE8 うっかり基底クラスを変更したら
継承も知らないのかと疑われそうで嫌だな
継承も知らないのかと疑われそうで嫌だな
698デフォルトの名無しさん
2014/12/03(水) 22:44:57.73ID:RRftfJUJ モジュール間の依存は小さくするというのは
ソフトウェアの開発者の常識だが、
なぜ小さくするのかというとモジュール間の依存が大きいと
修正する時に発生する影響範囲が大きくなって修正が大変だからなんだ。
だからモジュール間の依存は小さくするべきだが、
モジュールを連携してシステムが動く以上0にはできない。
例えば、obj.foo() というコードがあったとき、そこには
objはfooメソッドを持っていなければならないという依存情報が生まれる。
この依存情報を動的型付け言語では、実行時までチェックしない。
静的型付け言語ではobjの型を明示することで、
実行前にfooメソッドが有ることを確認できる。
影響範囲を確認することが大変なモジュール間の依存を
明確にすることで、不具合の発見を容易にし
修正のコストを減らすのが、静的型付け言語の特徴なんだ。
ソフトウェアの開発者の常識だが、
なぜ小さくするのかというとモジュール間の依存が大きいと
修正する時に発生する影響範囲が大きくなって修正が大変だからなんだ。
だからモジュール間の依存は小さくするべきだが、
モジュールを連携してシステムが動く以上0にはできない。
例えば、obj.foo() というコードがあったとき、そこには
objはfooメソッドを持っていなければならないという依存情報が生まれる。
この依存情報を動的型付け言語では、実行時までチェックしない。
静的型付け言語ではobjの型を明示することで、
実行前にfooメソッドが有ることを確認できる。
影響範囲を確認することが大変なモジュール間の依存を
明確にすることで、不具合の発見を容易にし
修正のコストを減らすのが、静的型付け言語の特徴なんだ。
699デフォルトの名無しさん
2014/12/04(木) 01:15:00.87ID:jHjIGczB インタフェースみたいにメソッドの実装を強制したいです
どうしますかおしえて
どうしますかおしえて
700デフォルトの名無しさん
2014/12/04(木) 02:09:44.10ID:8pz5p6Zv したら良いんじゃない?
できない言語を使ってるの?
できない言語を使ってるの?
701デフォルトの名無しさん
2014/12/04(木) 08:48:23.43ID:1fNTZGeK >>699
実装しなかったら開発者をクビにする
実装しなかったら開発者をクビにする
702デフォルトの名無しさん
2014/12/04(木) 09:42:52.10ID:rp/BpD2j703デフォルトの名無しさん
2014/12/04(木) 10:26:14.06ID:5ZEJ+Feh704デフォルトの名無しさん
2014/12/04(木) 12:32:36.38ID:TqunBxc9 >>702
> 超マイナーなVCSや低性能のODBに
> 自分からロックインされに行く
ありがたい話じゃないか。
そこまでしてSmalltalkから将来出てくるであろう新しい何かを育ててくれるんだから。
トレイトしかりクラスボックスしかり。
> 超マイナーなVCSや低性能のODBに
> 自分からロックインされに行く
ありがたい話じゃないか。
そこまでしてSmalltalkから将来出てくるであろう新しい何かを育ててくれるんだから。
トレイトしかりクラスボックスしかり。
705デフォルトの名無しさん
2014/12/04(木) 19:31:17.50ID:mwV5k8HO >>702
Smalltalkでは何十年も昔から常識だったことが
新技術として他の言語や環境でも使えるようになったら
「こんな便利な技術は技術オンチのSmalltalkerには理解できないだろう」
とか言いながらありがたく使いなさいよ、技術乞食さんw
Smalltalkでは何十年も昔から常識だったことが
新技術として他の言語や環境でも使えるようになったら
「こんな便利な技術は技術オンチのSmalltalkerには理解できないだろう」
とか言いながらありがたく使いなさいよ、技術乞食さんw
706デフォルトの名無しさん
2014/12/04(木) 20:15:36.06ID:rp/BpD2j707デフォルトの名無しさん
2014/12/04(木) 21:21:32.12ID:tYdcY83W え? なに? 俺の言語が起源だとかいう話をしてんの?
起源なんかどうでもよくて、その技術を
"今" 有効活用することのほうが大事だろ。
起源はベータ版。今その技術を取り入れた言語というのは
ベータ版を評価して、より優れた方法で取り入れてるってことなんだよ。
つまり、同じ機能であっても、起源よりも
後から取り入れた言語のほうが優れている。
初号機のほうが優れているっていうのは漫画の中の話だけだよ。
現実には、二号機、三号機の方が優れている。
起源なんかどうでもよくて、その技術を
"今" 有効活用することのほうが大事だろ。
起源はベータ版。今その技術を取り入れた言語というのは
ベータ版を評価して、より優れた方法で取り入れてるってことなんだよ。
つまり、同じ機能であっても、起源よりも
後から取り入れた言語のほうが優れている。
初号機のほうが優れているっていうのは漫画の中の話だけだよ。
現実には、二号機、三号機の方が優れている。
708デフォルトの名無しさん
2014/12/04(木) 21:36:40.87ID:RpORv8ek709デフォルトの名無しさん
2014/12/04(木) 21:47:04.11ID:8pz5p6Zv >>708
この論文は読んだ上で言ってるの?
あ、Martin OderskyはScalaの作者ね
http://ropas.snu.ac.kr/~bruno/papers/TypeClasses.pdf
この論文は読んだ上で言ってるの?
あ、Martin OderskyはScalaの作者ね
http://ropas.snu.ac.kr/~bruno/papers/TypeClasses.pdf
710デフォルトの名無しさん
2014/12/04(木) 21:48:59.20ID:RpORv8ek711デフォルトの名無しさん
2014/12/04(木) 21:50:19.83ID:5ZEJ+Feh712デフォルトの名無しさん
2014/12/04(木) 21:54:36.04ID:RpORv8ek713デフォルトの名無しさん
2014/12/04(木) 22:05:12.01ID:8pz5p6Zv >>712
最初の方だけでも読んでみようとは思わないの?
> This paper presents a lightweight approach to type classes in object-oriented (OO) languages
> with generics using CONCEPT pattern and implicits (a type-directed implicit parameter passing mechanism).
> This paper also shows how Scala's type system conspires with implicits to enable, and even surpass,
> many common extensions of the Haskell type class system, making Scala ideally suited for generic programming in the large.
最初の方だけでも読んでみようとは思わないの?
> This paper presents a lightweight approach to type classes in object-oriented (OO) languages
> with generics using CONCEPT pattern and implicits (a type-directed implicit parameter passing mechanism).
> This paper also shows how Scala's type system conspires with implicits to enable, and even surpass,
> many common extensions of the Haskell type class system, making Scala ideally suited for generic programming in the large.
714デフォルトの名無しさん
2014/12/04(木) 22:11:18.04ID:tYdcY83W このペーパー、プレゼントします
最初の方だけ読みました!
最初の方だけ読みました!
715デフォルトの名無しさん
2014/12/04(木) 22:16:14.84ID:RpORv8ek >>713
だからそれのどこにtraitが出てくるのさ。
Scalaのtraitsの出自について言及はこっちでしょ。
http://www.bytelabs.org/pub/tpl/slides/sm@lausanne/expressionProblem.pdf
Traits in SCALA[23] are abstract classes without state or
parameterized constructors; another way to characterize them
would be as JAVA-like interfaces that may also contain
inner classes and concrete implementations for some
methods. Unlike the original trait proposal[29], traits in Scala
are not different from classes. In the example above
and all examples that follow one could have also used
abstract class instead of trait.
だからそれのどこにtraitが出てくるのさ。
Scalaのtraitsの出自について言及はこっちでしょ。
http://www.bytelabs.org/pub/tpl/slides/sm@lausanne/expressionProblem.pdf
Traits in SCALA[23] are abstract classes without state or
parameterized constructors; another way to characterize them
would be as JAVA-like interfaces that may also contain
inner classes and concrete implementations for some
methods. Unlike the original trait proposal[29], traits in Scala
are not different from classes. In the example above
and all examples that follow one could have also used
abstract class instead of trait.
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 神田沙也加さん元恋人で元俳優の前山剛久 六本木のメンズラウンジ勤務を報告「真叶(まなと)です。よろしく」 [muffin★]
- 地震 [Hitzeschleier★]
- 変な人「俺は正しい!お前らは間違っている!」←大体こいつのほうが迷惑で間違ってる件について
- ココアさん好き好き大好き
- ひまだねー
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 「妨」という字が女へんという事実…
- (´・ω・`)おはよ
