オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん2017/09/26(火) 07:20:38.98ID:qu+DPehL
前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
オブジェクト指向システムの設計 173
http://mevius.2ch.net/test/read.cgi/tech/1502182334/

類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714

952デフォルトの名無しさん2018/04/07(土) 10:35:25.27ID:K06NcGxe
Haskellの利用者数が2万人以下?ねーよw

953デフォルトの名無しさん2018/04/07(土) 11:18:19.63ID:f0JiZPxN
少し前のデータだけどHaskellもSmalltalkもさして利用者数に増減はないとして参考にすると
Smalltalk利用者の規模はHaskellのおおよそ半分というのは別の解析でも同じ

http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/

954デフォルトの名無しさん2018/04/07(土) 11:49:47.91ID:sP9L7wqi
それ人気が低い順にランキングで並べて表示してるだけで、利用者数の絶対値じゃないよ
Smalltalkは約20位でHaskellが約40位だけど、これはSmalltalkとHaskellの間に他の言語が20個あるという意味でしかない

そのリンクの下方にrawdataがあるけど(http://www.dataists.com/wp-content/uploads/2010/12/language_ranks1.csv)、
この中で絶対値はtagcountだけで、それだとsmalltalkが189に対しHaskellが1896で10倍の差がある

955デフォルトの名無しさん2018/04/07(土) 12:42:55.45ID:Of9pall5
複数のプログラミング言語を使いこなしてる奴なんて世界でも僅かだろ。
比較する資格すら持たない連中がシェアなるもので一喜一憂するのは何で?

956デフォルトの名無しさん2018/04/07(土) 12:54:32.48ID:y0NHVjlZ
そうか?

957デフォルトの名無しさん2018/04/07(土) 12:58:55.13ID:/W+SxBIg
GitHubのリポジトリーで直近1ヶ月の開発者の数を比べてみると
こちらもくしくもてGlasgow Haskell Compilerの36名に対しPharo Smalltalkの16名と約半分だった

https://github.com/ghc/ghc/pulse/monthly
https://github.com/pharo-project/pharo/pulse/monthly

958デフォルトの名無しさん2018/04/07(土) 13:03:00.34ID:y0NHVjlZ
そんなデータが役に立つんならDだって16人なんだよなあ
https://github.com/dlang/dmd/pulse/monthly

959デフォルトの名無しさん2018/04/07(土) 13:44:56.97ID:Ohs7bjSh
>>924
"sorabito smalltalk" でググったら、

ベンチャーで最初にいたエンジニアがsmalltalkerでsmalltalkを採用したとか、
そのエンジニア(元CTO)は去年12月に辞めたとか、
いまの採用ページにはsmalltalkに一言も触れてないとか、

色々あったんだろうなって想像できて面白かったわ。ありがとうw

960デフォルトの名無しさん2018/04/07(土) 14:52:12.96ID:3aYyVZM2
Smalltalk = Windows 3.1 = D

961デフォルトの名無しさん2018/04/07(土) 16:15:24.12ID:Bd8sR+xj
オブジェクト指向言語でメンバ変数やメソッドをpublicにすべきかprivateにすべきかは
長年議論されてきてることだけど、中には

「privateで変数やメソッドを宣言するくらいならその部分をクラスにまとめて外に追い出してしまえばいい」
「洗練されたプログラムは変数・メソッドともにpublicだけで十分」

という意見もあるんだけどこれってどう思う?

962デフォルトの名無しさん2018/04/07(土) 16:17:51.83ID:vVe4gpjb
pythonの方法は合理的

963デフォルトの名無しさん2018/04/07(土) 16:19:49.34ID:C4tJt4pN
> 「洗練されたプログラムは変数・メソッドともにpublicだけで十分」
洗練されて無くてもpublicだけで十分といえるので

「洗練されたプログラムである」という判断が別に必要になる

964デフォルトの名無しさん2018/04/07(土) 16:35:52.31ID:y0NHVjlZ
プロパティがあるならとりあえずpublicにしといたらいいんじゃない?

965デフォルトの名無しさん2018/04/07(土) 22:08:27.17ID:cSksy2F8
publicもprivateも両方とも有るのが良いよ
選択肢が無くなったり少なくなったりすると利用し難くなる事も有るし
使う人のレベルや理解度もまちまちなんだから
staticだらけでやる人がいても構わないし
どちらか一方になって片方が使えなくなる方がやだな
洗練されているかどうかは悦に浸っている人が勝手に浸かっていればいいし

966デフォルトの名無しさん2018/04/08(日) 06:20:36.36ID:02MXQevY
テセウスの船

967デフォルトの名無しさん2018/04/10(火) 20:37:32.93ID:sh2D9vF0

968デフォルトの名無しさん2018/04/11(水) 03:06:46.30ID:AwbSOt+z
SmalltalkはTcl/Tk未満のゴミってことか…
オブジェクト指向の面汚しだな。死滅してくれて良かった

969デフォルトの名無しさん2018/04/11(水) 07:10:58.74ID:wpPEThCc
世のプログラム言語のほとんどがALGOL系といわれているがALGOLを使った事ない人がほとんどなのと同じじゃね?

970デフォルトの名無しさん2018/04/11(水) 07:18:41.53ID:/rBtvSvm
ちなみにSmalltalkが目指した遅延結合重視のメッセージングのオブジェクト指向は
C++で再定義され現在主流の抽象データ型のオブジェクト指向とはほぼ別物だから
アンチSmalltalkが「オブジェクト指向の面汚し」とか言ってもいまいち響かないよ

971デフォルトの名無しさん2018/04/11(水) 07:47:53.65ID:1hdMjitc
>>969
言語はもちろん、コンセプトも主流から外れちゃったって>>.970は言ってるよ
もう完全消滅だね

972デフォルトの名無しさん2018/04/11(水) 08:52:38.89ID:mEK/0CU7
そうなんだよすっかり主流から外れて久しいのにいまだにオブジェクト指向というと
メッセージを送るのがどうとか遅延結合がどうとか説明し出す自称識者が多くて困るよ
ほんと聞き手が混乱するだけだからやめてほしい

Smalltalkくらい遅延結合性を実践していればわからんでもないけどあれすら肝心のメッセージは非同期じゃないし

973デフォルトの名無しさん2018/04/11(水) 12:24:17.61ID:bG1z7LTF
意外とWindowsのCOMが上手い実装だった

974デフォルトの名無しさん2018/04/11(水) 12:42:09.09ID:wKUnUTjT
>>972
Erlangのメッセージが本物
Smalltalkのは偽物

975デフォルトの名無しさん2018/04/11(水) 12:51:33.38ID:mEK/0CU7
ゲイツもMSもGUIの模倣でこそジョブズやAppleに遅れをとったけどその後はSmalltalkから学んでいる
アラン・ケイも .NET のことは Java よりはマシと言ってた
http://tech.nikkeibp.co.jp/it/members/ITPro/ITARTICLE/20030605/1/

ジョブズも表層のGUIだけパクって終わりにしたLisa/Macを反省してNeXTSTEPを作らせたけどね
http://web.archive.org/web/20121016134054/http://americanhistory.si.edu/collections/comphist/sj1.html#soft

976デフォルトの名無しさん2018/04/11(水) 12:53:12.46ID:mEK/0CU7
>>974
メッセージに関してはそうだろうね
ケイもAltoにもっとパワーがあったらErlangみたいなのを試したかったって言ってたし
ただシステム全体としての動的性に関してはErlangやそれで作られたものとは比較にならない

977デフォルトの名無しさん2018/04/11(水) 12:57:13.75ID:bG1z7LTF
>>975
藤枝あほだな

978デフォルトの名無しさん2018/04/11(水) 14:26:33.25ID:J12WoVZ9
「クラスにメソッド送るシステムなんていまじゃ壊滅してる!
21世紀の現代の主流はC ++!」って5ちゃんねるで喚いてる人とか
そりゃ誰も相手したくねぇよw

979デフォルトの名無しさん2018/04/11(水) 15:19:48.90ID:mEK/0CU7
メッセージングのパラダイムを持ち出しておいて
メソッドとメッセージの区別すらついていない人がよくいるけどここにもいたかw

あと現在主流なのはクラスやそれに準ずるエンティティで抽象データ型を実現することで
その出自がC++というだけだよその程度の区別もつかないのか

たった2行の煽りでここまで致命的に間違えられるとかどんな才能だよ…

980デフォルトの名無しさん2018/04/11(水) 20:33:03.91ID:J12WoVZ9
はいはい、「俺の宗教の教義では俺の信じてるものは俺の神から、
俺の信じていないものは敵の神からもたらされたと決まっているから。」
いただきましたw

981デフォルトの名無しさん2018/04/11(水) 20:37:59.89ID:TKBXZkPL
敗北宣言wwww

982デフォルトの名無しさん2018/04/11(水) 21:16:38.37ID:W3CRQm5Z
>>979
まあまあ、しょせんSmalltalkのメッセージはニセモノの出来損ないなんだから
細かいことに目くじらたてるもんじゃ無いよ

983デフォルトの名無しさん2018/04/11(水) 21:41:58.27ID:wo4fmpFF
ほんとにメソッドとメッセージの区別がついていないらしい…

984デフォルトの名無しさん2018/04/11(水) 22:19:07.62ID:W3CRQm5Z
Erlangという本物を持ち出されてSmalltalkerサンぐうの音も出ないらしい

985デフォルトの名無しさん2018/04/11(水) 23:00:36.75ID:gmGjfvGU
Erlangはオブジェクト指向というよりメッセージ指向

986デフォルトの名無しさん2018/04/12(木) 13:59:17.22ID:LVEtcr4N
>>983
説明をどぞ

987デフォルトの名無しさん2018/04/12(木) 14:50:54.59ID:c5UYloeC
メソッドとニセモノのメッセージと本物のメッセージの3パターンで説明お願いね

988デフォルトの名無しさん2018/04/12(木) 16:00:33.88ID:bfwDINZz
AngularJS

989デフォルトの名無しさん2018/04/12(木) 18:21:05.91ID:OewATdpF
メッセージはオブジェクトに送られる情報(多くの場合はエンティティ)
Smalltalk-72ではトークン列
Erlangなどではデータ列
Smalltalk-76以降はセレクター(多くは呼び出しが期待されるメソッド名)+引数(オブジェクト)
奇妙だけど他の言語でもSmalltalk-76以降に準じた解釈(メソッド名+引数)をそう称する場合が多い
一部の宗派でセレクター(メソッド名)のみをメッセージと称する場合もある(Objective-Cでよく見られる〕

メソッドはオブジェクトがメッセージを受けて行う操作
Smalltalk-72ではメッセージにパターンマッチする記述(リーダーマクロのようなもの)
Erlangには無いが、強いて当てはめればメッセージを受けたときの処理部分
Smalltalk-76以降ではクラスに属する関数がそれに当たる

もともと「メソッド」はメッセージを受け取った際に目指す状態である「ゴール」を記述する場とする予定だったが
Smalltalk-76でSimula-67スタイルのクラスとそれに内包される関数を用いる機構を採用したため
クラスに内包される関数とメソッドとの間に明確な差はなくなった

とか、とりあえずこんな感じで

990デフォルトの名無しさん2018/04/12(木) 18:40:29.87ID:+2RjvR+r
つまり、本当に非同期にメッセージパッシングしてるErlangは特別だけど、
Smalltalkのメッセージはメソッドコールと変わんないってことですね

991デフォルトの名無しさん2018/04/12(木) 21:28:54.61ID:pKim+X9U
メッセージがエンティティであることが重要で同期か非同期かは後付けでなんとかなる問題
たとえばIoなんかはそうなっているし、Concurrent Smalltalkという方向性もある

メソッドコールについてはさすがに静的に決定しているそれをメッセージと呼ぶのは滑稽だろう

動的メソッドコールについても例えば期待するメソッドが存在しない等で失敗したときに
メッセージを第一級オブジェクトとして参照可能な機構が組み込まれていないなどサポートを欠いていれば
その言語での動的コールをメッセージと称することはちょっと無理があるような

992デフォルトの名無しさん2018/04/12(木) 21:43:18.97ID:lUf8ZkQK
同期を非同期に変えるのに比べたら、静的なのを動的に変える方が簡単だし、後付けでどうとでなる問題だよ

993デフォルトの名無しさん2018/04/13(金) 09:04:27.08ID:QuE9cEqD
いずれにせよメッセージと称したい情報を必要なときにエンティティとして扱えるしくみがあればどうとでもできるよ

994デフォルトの名無しさん2018/04/13(金) 09:30:36.78ID:24eyc5OB
メッセージがメソッドコールだとしても、基底クラスに共通メソッドとして実装されているならそれはメッセージで間違いないだろ。

995デフォルトの名無しさん2018/04/13(金) 09:45:51.29ID:QuE9cEqD
メソッドコールと違いメッセージというからには送り手はその都合で情報を勝手に送りつけるわけだから
それを受け手がどう処理するかについて関知しないスタンスがとれなければさすがにダメだろう

996デフォルトの名無しさん2018/04/13(金) 10:39:38.86ID:YQSd9Cqd
そんなん待ち行列になってんじゃね?
つか、メッセージの実装って、結局メソッドコールなOSばかりだしな。

997デフォルトの名無しさん2018/04/13(金) 12:19:05.19ID:ybbP8EF+
Smalltalkのメッセージを全部非同期にしたら、信じられないくらい遅くなるかブッ壊れると思うよ

だからSmalltalkはメッセージの受け手が即座に処理してくれる事を期待してるし、何も関知してないなんてウソだよ

998デフォルトの名無しさん2018/04/13(金) 12:29:44.88ID:aVua03l2
Smalltalkじゃなくても全部非同期なんかにしたら遅くなるか破綻するだろう

999デフォルトの名無しさん2018/04/13(金) 12:41:42.23ID:QuE9cEqD
「関知しない」は「どう処理するか」で「いつ処理するか」だけに限らない
SmalltalkでいえばdoesNotUnderstand:(Rubyならmethod_missing)相当の機構と
その際処理したいメッセージをエンティティとして扱える機構がないといろいろ厳しかろうという話

1000デフォルトの名無しさん2018/04/13(金) 12:45:54.65ID:GALVkBan
1000

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 199日 5時間 25分 16秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。