動的言語で大規模開発
■ このスレッドは過去ログ倉庫に格納されています
1uy
2012/07/24(火) 09:10:42.04 たててみた
577デフォルトの名無しさん
2014/11/30(日) 20:11:34.14ID:VpMFGcKd578デフォルトの名無しさん
2014/11/30(日) 20:15:01.73ID:7WEYW95R >>576
両方が同じデータベースインターフェースを
サポートしているならばそうだろうね。
現実的な話をするならば、mysql.connect を
使うコードは、実際にはmysql.connect だけを
使うことはなく、複数のメソッドを使う。
だから、その複数のメソッドというものを
定義しないといけない。
そしてその定義したものがインターフェースであり
そのインターフェースを使いますよと宣言するのが
型宣言なのである。
そうすればある型がデータベースインターフェースを
定義していることを保証する型宣言だけあれば、
全てのメソッドを安心して使うことが出来る。
このオブジェクトはconnectメソッドは持ってるけど、
disconnectメソッドを持っていないかもしれない
なんてことはなくなるのである。
両方が同じデータベースインターフェースを
サポートしているならばそうだろうね。
現実的な話をするならば、mysql.connect を
使うコードは、実際にはmysql.connect だけを
使うことはなく、複数のメソッドを使う。
だから、その複数のメソッドというものを
定義しないといけない。
そしてその定義したものがインターフェースであり
そのインターフェースを使いますよと宣言するのが
型宣言なのである。
そうすればある型がデータベースインターフェースを
定義していることを保証する型宣言だけあれば、
全てのメソッドを安心して使うことが出来る。
このオブジェクトはconnectメソッドは持ってるけど、
disconnectメソッドを持っていないかもしれない
なんてことはなくなるのである。
579デフォルトの名無しさん
2014/11/30(日) 20:16:45.31ID:nRiDRl39 足し算と掛け算のある型なら複素数でも行列でも良いとかいうパターンは有るな
580デフォルトの名無しさん
2014/11/30(日) 20:21:32.59ID:7WEYW95R 足し算をaddメソッドだとして、
addメソッドさえあればなんでも使えるかというと
(addメソッドでググって一番目にでてきた)
> Addメソッドとはエクセルのシートに表とグラフを同時に表示するメソッドです。
に対してもうまく動くことはおそらくないだろう。
つまり名前が一緒でも、正しく動くとは限らんのさ。
だから名前と意味が一緒であることを保証するために
名前をつけたものが型なのである。
addメソッドさえあればなんでも使えるかというと
(addメソッドでググって一番目にでてきた)
> Addメソッドとはエクセルのシートに表とグラフを同時に表示するメソッドです。
に対してもうまく動くことはおそらくないだろう。
つまり名前が一緒でも、正しく動くとは限らんのさ。
だから名前と意味が一緒であることを保証するために
名前をつけたものが型なのである。
581デフォルトの名無しさん
2014/11/30(日) 20:24:10.20ID:T2KLr1TM >>575
アヒルのインスタンスを実行時にその振る舞いから分類するところがポイントなのであって
アヒルというクラスに対してコンパイル時に分類するのはダックタイピングじゃないよ
というわけでダックタイピングはインターフェースや構造的部分型とは全く別
アヒルのインスタンスを実行時にその振る舞いから分類するところがポイントなのであって
アヒルというクラスに対してコンパイル時に分類するのはダックタイピングじゃないよ
というわけでダックタイピングはインターフェースや構造的部分型とは全く別
582デフォルトの名無しさん
2014/11/30(日) 20:25:36.35ID:VpMFGcKd >>580
Excelのaddメソッドは戻り値の型が違うだろ
Excelのaddメソッドは戻り値の型が違うだろ
583デフォルトの名無しさん
2014/11/30(日) 20:25:53.73ID:T2KLr1TM >>580
だから同じ「意味」に対して名前を揃えるのが動的言語でのメソッド名のつけ方だ
だから同じ「意味」に対して名前を揃えるのが動的言語でのメソッド名のつけ方だ
584デフォルトの名無しさん
2014/11/30(日) 20:26:04.76ID:7WEYW95R アヒルのインスタンスを実行時にその振る舞いから分類というけれど、
コード自体は、実行時に分類してないんだよ。
コードは、アヒルであること、を前提として書いてる。
実行前にコードで分類しているのに、
なぜ実行時に分類しないといけないのか。
型は動的に変わるが、コードは静的なのである。
コード自体は、実行時に分類してないんだよ。
コードは、アヒルであること、を前提として書いてる。
実行前にコードで分類しているのに、
なぜ実行時に分類しないといけないのか。
型は動的に変わるが、コードは静的なのである。
585デフォルトの名無しさん
2014/11/30(日) 20:28:54.03ID:7WEYW95R >>583
> だから同じ「意味」に対して名前を揃えるのが動的言語でのメソッド名のつけ方だ
だから大規模では無理なんだよ。
大規模=大多数の人間が係る。場合によっては全く知らない人が作った
ライブラリを使うこともあるしな。
そんなんで、すべて意味を揃えるなんてことは不可能
いくつもの意味を持つ英単語なんてざらにある
単語の意味を揃えるのは不可能。というのが大前提
> だから同じ「意味」に対して名前を揃えるのが動的言語でのメソッド名のつけ方だ
だから大規模では無理なんだよ。
大規模=大多数の人間が係る。場合によっては全く知らない人が作った
ライブラリを使うこともあるしな。
そんなんで、すべて意味を揃えるなんてことは不可能
いくつもの意味を持つ英単語なんてざらにある
単語の意味を揃えるのは不可能。というのが大前提
586デフォルトの名無しさん
2014/11/30(日) 20:29:37.63ID:T2KLr1TM587デフォルトの名無しさん
2014/11/30(日) 20:30:01.03ID:/BRxH/wW588デフォルトの名無しさん
2014/11/30(日) 20:31:08.34ID:T2KLr1TM589デフォルトの名無しさん
2014/11/30(日) 20:33:46.05ID:SVLUkCya >>588
SmalltalkでObjectに500もメソッドなんてねーよw
あったとしたら、アンチパターン ゴッドクラス
(設計の一部分(クラス)に、過剰に機能を集中させること)に
適合してしまうわw
SmalltalkでObjectに500もメソッドなんてねーよw
あったとしたら、アンチパターン ゴッドクラス
(設計の一部分(クラス)に、過剰に機能を集中させること)に
適合してしまうわw
590デフォルトの名無しさん
2014/11/30(日) 20:34:01.13ID:T2KLr1TM >>587
分岐(メソッド探索)の話などしていない
どの式がどのインターフェースを実装しているのかを実行時に検査してるのか?
どの式がどの型の部分型かを実行時に検査しているのか?
へー、それ、なんていう言語だい?
分岐(メソッド探索)の話などしていない
どの式がどのインターフェースを実装しているのかを実行時に検査してるのか?
どの式がどの型の部分型かを実行時に検査しているのか?
へー、それ、なんていう言語だい?
591デフォルトの名無しさん
2014/11/30(日) 20:36:14.22ID:TE77vkUw592デフォルトの名無しさん
2014/11/30(日) 20:36:20.46ID:VpMFGcKd >>585
大規模なシステムは作者が異なる様々なライブラリを使うが、違うライブラリ間で
同じ意味の機能に同じインターフェースを持たせるのは不可能
インターフェース方式は、ある数値計算ライブラリと別の行列演算ライブラリを混ぜて使う場合などで問題になる
大規模なシステムは作者が異なる様々なライブラリを使うが、違うライブラリ間で
同じ意味の機能に同じインターフェースを持たせるのは不可能
インターフェース方式は、ある数値計算ライブラリと別の行列演算ライブラリを混ぜて使う場合などで問題になる
593デフォルトの名無しさん
2014/11/30(日) 20:40:02.67ID:/BRxH/wW >>590
実行時にvalidationするのがダックタイピングというなら
構造的部分型は確かに違うな
"If it walks like a duck and quacks like a duck, it must be a duck"
という文章からそのような意味を読み取るのは無理だが
実行時にvalidationするのがダックタイピングというなら
構造的部分型は確かに違うな
"If it walks like a duck and quacks like a duck, it must be a duck"
という文章からそのような意味を読み取るのは無理だが
594デフォルトの名無しさん
2014/11/30(日) 20:40:22.76ID:SVLUkCya >>591
> Smalltalkでは色々なパッケージがObjectクラスにメソッドを追加していくんだよw
最悪だな。JavaScriptでprototypejsっていうのがあったけど、
名前が標準のメソッドとobjectに追加したメソッド名が
被って大変な目にあっていた。
それ移行Objectにメソッドを追加するのは
ダメなやり方だって広く知られるようになったね。
> Smalltalkでは色々なパッケージがObjectクラスにメソッドを追加していくんだよw
最悪だな。JavaScriptでprototypejsっていうのがあったけど、
名前が標準のメソッドとobjectに追加したメソッド名が
被って大変な目にあっていた。
それ移行Objectにメソッドを追加するのは
ダメなやり方だって広く知られるようになったね。
595デフォルトの名無しさん
2014/11/30(日) 20:40:39.28ID:360iudbJ >>570
いや。duck typing とは言わないけれど、Smalltalk の動的型と
同様の柔軟性を持たせつつ型安全を目指したのがインターフェイス。
(Eiffel流のクラスの継承をサブタイプに使うと型安全でないという流れで)
http://www.cs.utexas.edu/~wcook/papers/InheritanceSubtyping90/CookPOPL90.pdf
いや。duck typing とは言わないけれど、Smalltalk の動的型と
同様の柔軟性を持たせつつ型安全を目指したのがインターフェイス。
(Eiffel流のクラスの継承をサブタイプに使うと型安全でないという流れで)
http://www.cs.utexas.edu/~wcook/papers/InheritanceSubtyping90/CookPOPL90.pdf
596デフォルトの名無しさん
2014/11/30(日) 20:43:21.18ID:/BRxH/wW597デフォルトの名無しさん
2014/11/30(日) 20:45:52.98ID:TE77vkUw >>593
If it walks like a duckというのは、実際のitの振る舞いのことを指しているのだから実行時のことだと考えるのが自然だと思うが?
If it will walk like a duckならばコンパイルだろうけどな。
If it walks like a duckというのは、実際のitの振る舞いのことを指しているのだから実行時のことだと考えるのが自然だと思うが?
If it will walk like a duckならばコンパイルだろうけどな。
598デフォルトの名無しさん
2014/11/30(日) 20:47:16.39ID:TE77vkUw599デフォルトの名無しさん
2014/11/30(日) 20:48:14.19ID:360iudbJ600デフォルトの名無しさん
2014/11/30(日) 20:51:13.03ID:TE77vkUw >>592
>大規模なシステムは作者が異なる様々なライブラリを使うが、違うライブラリ間で
>同じ意味の機能に同じインターフェースを持たせるのは不可能
そういう初心者は補助輪(静的型)を使えばいいよw
ちなみに動的言語の環境では
様々なライブラリでどういうメソッド名がつけられているか検索する仕組みと
指定したメソッド名のメソッドを検索する仕組みが
遥か80年代から用意されていたりするけどなw
>大規模なシステムは作者が異なる様々なライブラリを使うが、違うライブラリ間で
>同じ意味の機能に同じインターフェースを持たせるのは不可能
そういう初心者は補助輪(静的型)を使えばいいよw
ちなみに動的言語の環境では
様々なライブラリでどういうメソッド名がつけられているか検索する仕組みと
指定したメソッド名のメソッドを検索する仕組みが
遥か80年代から用意されていたりするけどなw
601デフォルトの名無しさん
2014/11/30(日) 20:53:54.80ID:TE77vkUw >>599
動的言語では全オブジェクト共通の語彙が重要だから当然そうなる
動的言語では全オブジェクト共通の語彙が重要だから当然そうなる
602デフォルトの名無しさん
2014/11/30(日) 20:56:59.55ID:360iudbJ603デフォルトの名無しさん
2014/11/30(日) 21:05:38.46ID:/BRxH/wW604デフォルトの名無しさん
2014/11/30(日) 21:09:31.70ID:360iudbJ >>601
とはいえ、Squeak のカオス化に嫌気してフォークされた Pharo は
だいぶ減らして 374 だし(3.0調べ)、VisualWorks はもとより 303(7.10調べ)だけどね。
とはいえ、Squeak のカオス化に嫌気してフォークされた Pharo は
だいぶ減らして 374 だし(3.0調べ)、VisualWorks はもとより 303(7.10調べ)だけどね。
605デフォルトの名無しさん
2014/11/30(日) 21:10:47.94ID:VpMFGcKd606デフォルトの名無しさん
2014/11/30(日) 21:13:30.42ID:VpMFGcKd607デフォルトの名無しさん
2014/11/30(日) 21:15:20.91ID:guVElZZq >>599
Pharo 3.0 は、374
Pharo 3.0 は、374
608デフォルトの名無しさん
2014/11/30(日) 21:17:02.28ID:guVElZZq >604 で既出だった orz
609デフォルトの名無しさん
2014/11/30(日) 21:30:34.30ID:360iudbJ610デフォルトの名無しさん
2014/11/30(日) 21:50:46.91ID:mFsly3WX >>595
>いや。duck typing とは言わないけれど、
引用した論文は静的型付け言語における継承の意味論モデルに関する内容であり、
duck typing や interface とは直接的に関係してない
Smalltalk における継承の意味について、Effel は Smalltalk と同じように柔軟だけど型安全ではなく、
Modula-3 や C++ は型安全だけど Smalltalk とは意味が異なる
この論文では、Smalltalk と同じ継承の意味を持ちかつ安全な新しい意味論モデルを提案している
まったく無関係な論文を引用して、いったい何を言いたいのか意味不明だね
なお、ここで言う「継承の意味」とは、具体的には Smalltalk の疑似変数 self や super のこと
たとえば Smalltalk と同じ意味論を持つ Ruby では(Smalltalk と同様な)疑似変数 self と super を持つ
それに対して、Smalltalk とは異なる意味論の Modula-3 を参考にして継承が設計された Python では
self や super に相当する疑似変数は存在せず、わざわざメソッドの引数で __self__ を明示しなければならない
結果として Python は動的型付け言語であるにもかかわらず、Smalltalk や Ruby と同等レベルの柔軟な
オブジェクト指向プログラミングができないという言語設計上の欠陥を抱えている
この意味論モデルは、以下の論文で詳細に解説されている
http://www.cs.utexas.edu/~wcook/papers/thesis/cook89.pdf
>いや。duck typing とは言わないけれど、
引用した論文は静的型付け言語における継承の意味論モデルに関する内容であり、
duck typing や interface とは直接的に関係してない
Smalltalk における継承の意味について、Effel は Smalltalk と同じように柔軟だけど型安全ではなく、
Modula-3 や C++ は型安全だけど Smalltalk とは意味が異なる
この論文では、Smalltalk と同じ継承の意味を持ちかつ安全な新しい意味論モデルを提案している
まったく無関係な論文を引用して、いったい何を言いたいのか意味不明だね
なお、ここで言う「継承の意味」とは、具体的には Smalltalk の疑似変数 self や super のこと
たとえば Smalltalk と同じ意味論を持つ Ruby では(Smalltalk と同様な)疑似変数 self と super を持つ
それに対して、Smalltalk とは異なる意味論の Modula-3 を参考にして継承が設計された Python では
self や super に相当する疑似変数は存在せず、わざわざメソッドの引数で __self__ を明示しなければならない
結果として Python は動的型付け言語であるにもかかわらず、Smalltalk や Ruby と同等レベルの柔軟な
オブジェクト指向プログラミングができないという言語設計上の欠陥を抱えている
この意味論モデルは、以下の論文で詳細に解説されている
http://www.cs.utexas.edu/~wcook/papers/thesis/cook89.pdf
611デフォルトの名無しさん
2014/11/30(日) 22:04:51.19ID:SVLUkCya オブジェクト指向プログラミングをするのが目的ではない。
巨大なシステムをより早くより安全に開発するのが目的なのだ。
巨大なシステムをより早くより安全に開発するのが目的なのだ。
612デフォルトの名無しさん
2014/11/30(日) 22:11:54.90ID:rR9TrKjV オブジェクト指向上の欠陥とやらが何か知らんが、
そのお陰で実用レベルの型推論(補完や型検査)が出来てるなら面白いな
そのお陰で実用レベルの型推論(補完や型検査)が出来てるなら面白いな
613デフォルトの名無しさん
2014/11/30(日) 22:22:44.40ID:SVLUkCya 人間が間違わずに全てのコードを脳に記憶して
タイプミスすらしないことを前提にするならば、
コードにわざわざ記憶の断片(つまり型情報)を書く必要はないよ。
それができないから、型情報を書いたほうが
わずかの手間だけで、そのあとずっと楽ができるわけで。
タイプミスすらしないことを前提にするならば、
コードにわざわざ記憶の断片(つまり型情報)を書く必要はないよ。
それができないから、型情報を書いたほうが
わずかの手間だけで、そのあとずっと楽ができるわけで。
614デフォルトの名無しさん
2014/11/30(日) 22:32:19.86ID:360iudbJ >>570
すまん。こっちだった。
Interfaces for Strongly-Typed Object-Oriented Programming
http://www.cs.utexas.edu/~wcook/papers/OOPSLA89/interfaces.pdf
すまん。こっちだった。
Interfaces for Strongly-Typed Object-Oriented Programming
http://www.cs.utexas.edu/~wcook/papers/OOPSLA89/interfaces.pdf
615デフォルトの名無しさん
2014/11/30(日) 22:48:40.83ID:mFsly3WX >>612
>オブジェクト指向上の欠陥とやらが何か知らんが、
有名な Python のself地獄だよ
キーワード「python self地獄」で検索すればGoogle先生が教えてくれる
Python しか知らなければself地獄が気にならないかもしれないけど、
Smalltalk や Ruby を知っている人からすれば、無知は幸せだなぁと見る
これの基礎が「継承の意味論における差異」になる
なお単に意味論の違いだから、self地獄と引き換えに
実用的な型推論(補完や型検査)が手に入るわけではない
両者の間に直接的な関連性は無い(言い換えるとスレチな話題)
>オブジェクト指向上の欠陥とやらが何か知らんが、
有名な Python のself地獄だよ
キーワード「python self地獄」で検索すればGoogle先生が教えてくれる
Python しか知らなければself地獄が気にならないかもしれないけど、
Smalltalk や Ruby を知っている人からすれば、無知は幸せだなぁと見る
これの基礎が「継承の意味論における差異」になる
なお単に意味論の違いだから、self地獄と引き換えに
実用的な型推論(補完や型検査)が手に入るわけではない
両者の間に直接的な関連性は無い(言い換えるとスレチな話題)
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 この言語は危ないという前提があった方が、本当に危なくなった時に逃げやすいね
言語を信用しすぎると逃げ遅れる
言語を信用しすぎると逃げ遅れる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★7 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- なんか歯磨きしたのに口から歯の味がする
- 俺と一緒に寝ろ
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 👊😅👊三☁😶‍🌫三⛅🏡
- コーヒー、来年3月から30パーセント値上げへ [709039863]
- 日本って中国と戦争したら絶対負けるのに何でイキってんの?
