OOP

DCI パラダイムの提唱者、Reenskaug 氏の BabyIDE で遊ぶ - Squeak4.5対応版向け

久しぶりに DCI がらみで BabyIDE にヒントがあるかもしれないな…と思われる話題に接したのを機に、以前遊んでみた BabyIDE のその後を調べてみたところ、引き続き Squeak3.10.2 上で開発が続けられている BabyIDE-2018.07.31.ZIP というのを発見して驚きま…

『プログラミングElixir』出版記念: Elixir、Ruby、Squeak Smalltalkでspawn/chain.exの速度対決

OOP

なぜか Ruby インタプリタ開発者が翻訳をしたことで話題の『プログラミング Elixir』 p.167 にある「14.2 プロセスのオーバヘッド」のサンプルコード https://media.pragprog.com/titles/elixir12/code/spawn/chain.ex これと似たようなことを Ruby の軽量ス…

Consセルがメッセージを受け取って動くLispもどきをPharo3.0 Smalltalk で

OOP

引数を評価する(carをevalしていく)ときにatomとして使っているSmalltalkのデータ全てがevalメッセージを理解 http://phaendal.hatenablog.com/entry/2015/04/17/164825 名詞とか動詞とか宣言的とかは難しくてよく分からないのですが(をゐ)、このアイデア…

DCI パラダイムの提唱者、レインスカウ氏の BabyIDE で遊ぶ 改訂版

BabyIDE については元エントリーのこちらの長い前振りを参照してください。 DCI パラダイムの提唱者、レインスカウ氏の BabyIDE で遊ぶ - Smalltalkのtは小文字です さらに比較的新しいバージョンの BabyIDE を念頭に、インストールの仕方からコードや操作の…

DCI パラダイムの提唱者、レインスカウ氏の BabyIDE で遊ぶ

BabyIDE は、古くは MVC(Model-View-Controller)、近年では DCI(Data-Context-Interaction)というパラダイムの提唱者として知られるトリグヴ・レインスカウ(Trygve Reenskaug)氏自らが手がける Squeak Smalltalk ベースの DCI 向けプログラミング&モ…

二つのオブジェクト指向とそれぞれのメリット

OOP

似たような話の繰り返しで恐縮ですが、現時点での自分の理解の整理のためのメモ。前後しますが、こうして改めてまとめてみると、純粋な抽象データ型のオブジェクト指向プログラミングは、メッセージングのオブジェクト指向の影響も多分に受けている OOAD(分…

アラン・ケイの「Is "Software Engineering" an Oxymoron?」

OOP

UPDATE!!: id:propella さんがすばらしい翻訳を公開してくださいましたので、そちらをどうぞ 「ソフトウェア工学」は矛盾語法か? "-- -- -- -- -- -- -- -- -- -- -- -- -- --" Is "Software Engineering" an Oxymoron? [PDF(勝手ミラー版)] タイトルの訳…

三系統の“オブジェクト指向”を「北斗の拳」に例えてみる

OOP

id:sumim:20080415:p1 の続き? ▼データ型にこだわるOO → 南斗聖拳 広く伝承され、主立ったもので総勢一〇八派に分派している。また、有力流派から派生する流派(派生流派)も存在するため、流派の数はさらに増える(南斗聖拳 - Wikipedia より)。切り裂…

三系統の“オブジェクト指向”をできるだけ純粋にサポートする言語を探してみる

OOP

id:sumim:20080416:p1 の続き? ▼データ型にこだわるOO ユーザー定義型へのこだわりといえば、メインプログラムさえも型で表現しようとする Java をおいて他にないでしょう。ありがちな「メッセージングにこだわる〜」からの“汚染”もほぼ皆無のようですし…

“オブジェクト指向”の本質

OOP

「OO(OOP)とは何か?」については、ネタが割れてしまえばそんなに複雑なものではない…と個人的には最近、考えるようになってきています。 リスコフのユーザー定義型(aka、抽象データ型。データと手続きのセット)そのもの、あるいはその「ユーザー定…

プロトタイプベースの誤解

OOP

クラスベースのOOとプロトタイプベースのOOで決定的に違うのは、プログラムを動かしている最中にオブジェクトが出来ること、すなわちメソッド(method)を追加したり再定義したりできるかだ。 404 Blog Not Found:タイプ・クラス・プロトタイプ - OOの語彙 こ…

Ruby on Rails vs Smalltalk Seaside をお手軽にムービーで鑑賞

OOP

Smalltalk Tidbits, Industry Rants - Seaside and Rails Comparison Rails と Seaside でそれぞれ "Hello World!" Web アプリを作った(Ruby on Rails は出来合いのものを使用?)あと、バグを仕込んでわざとエラーを起こさせ、簡単なデバッグ作業を比較し…

クックの分類を意識した、Python による「未定義な遷移の解釈」の実装

OOP

Diary?::2007-10-12 - (22:35) 経由で、未定義な遷移の解釈 -- 3つの立場 - 檜山正幸のキマイラ飼育記 のうち未定義がエラーを(値として…)返す場合を同じく Python で。関数とメソッド(クラス内定義関数)の区別を持つ Python は、クックの ADT と PDA(O…

ADT にからめて、OOP とは何か?を単純化して分類・整理してみる

OOP

OOP は ADT のたんなる別の呼び名だよ。(現在主流。本質寄り) OOP とは ADT を「クラス」という言語機能で実現するものだよ。つまり、クラスの特徴である“継承”やそれに付随して使える“多態性”が、 他の方法で ADT(“カプセル化”)を実現したプログラミン…

リスコフの「抽象データ型」について

OOP

「A History of CLU」(PDF) の 2. Data Abstraction からの抜粋。 概要 「抽象データ型」という考え方は、リスコフらにより 1972 年の終わりから 1973 年の夏頃までにまとめられた。 「抽象データ型」は、データとオペレーションのセット。 データの内部情報…

“Tell, Don't Ask” vs "Ask, Don't Touch"

OOP

L'eclat des jours - なんで? 経由で、The Pragmatic Programmers, LLC: Tell, Don't Ask を知って、どんだけーっ!?とか思って読んでみたら、たんなる“ask”違いでした(^_^;)。前者は「(前もってあれこれ)尋ねるな」で、後者は「(メッセージを介して)…

Smalltalk や C++ は何も発明していない。発明したのはケイやストラウストラップ。

OOP

第1回 サルでも分かるプログラミング言語の新潮流【前篇】の図中の 1969 年の Smalltalk というのはご愛敬として…(おそらく、FLEX システムあたりと取り違えられたのでしょう。自他共に認める言語オタクだけあって間違い方としては渋いですね(^_^;))気にな…

大事なのは、オブジェクト…じゃなくて、メッセージング

Smalltalk の場合、一歩という基本に当たるのはオブジェクトです。つまり Smalltalk では、すべてがオブジェクトとメッセージ交換を扱います。 IBM Developer 日本語版 : 大変申し訳ありません。このページは無効です。 ポール・グレアム …じゃなくて ブルー…

オブジェクト指向言語として必須な要素とは何か?

OOP

ときどきの雑記帖 リターンズ -おしえて(OOPLの)えらいひと より。お呼びでない…とは思いましたが、私のこれまで調べたことを頭の中で整理するのに役立ちそうなので、できるだけ簡潔にまとめてみます。 ケイのオブジェクト指向(メッセージングのオブジェク…

Re: 残念ながら、Smalltalkerのようなイメージでプログラムを見ることができない…

OOP

矢沢久雄のソフトウエア芸人の部屋 : 【第3回】 このごろオブジェクト指向セミナーの人気が高まっています より。 正直、あまり残念がる必要はないと思います。ケイのオブジェクト指向とストラウストラップのオブジェクト指向は、同じ「オブジェクト指向」を…

Dynamic Object-Oriented Programming with Smalltalk

http://www.iam.unibe.ch/~scg/Teaching/Smalltalk/ Squeak3.9 でクロージャを扱えるようにするための機能拡張パッケージ、NewCompiler と AST のことを調べていたとき、こんなページを発見しました。Smalltalk と銘打っていますが、Squeak(の Smalltalk)…

re: re: 代入とメッセージング

id:sumim:20060602:p1 で、(少なくとも“ケイのオブジェクト指向”に立脚して Smalltalk を利用する際には)「すべてはオブジェクト」というよりは「すべてはメッセージング」であることを意識すべし…という話をうけての、結城さんの、 sumimさんの「すべてが…

Ruby のブロックってオブジェクトじゃないよね。これって“驚き最小の法則”に反しない?

プログラマ向けオンラインマガジンの bitwise magazine にて、どうしてかくも多くの人が Ruby に魅了されるのか…を編集者があれこれ語った記事が掲載されているのですが、ちょっと笑ってしまった一節。 Huw: Matz has said that, with Ruby, he has 'tried t…

Scheme のクロージャとアクター理論のアクター

h003149b さん(?)の「SchemeとActor理論」 http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/actor/actor.html こうして改めてアクターによるプログラミングを見ると、そこで要求されるメンタルモデルが Smalltalk-72 のそれとそっくりであることに驚かさ…

Squeakによるオブジェクト指向プログラミング入門

http://www.spice-of-life.net/wiki/index.cgi/d/?wikiname=LearnOOPWithSqueak Ruby で書かれた Web アプリケーションフレームワーク、CGIKit で知られる トーフサロン の suzuki さんによる。 (主にメッセージ指向の)オブジェクト指向がまだピンとこない…

Java のクラスはオブジェクトじゃない?!

関連:id:sumim:20040525:p1 keisuken さんの 航海日誌 発、babie さんの 遅レス 経由で、オライリーのオープンソースコンベンション(OSCON 2005)のセッション「10 Things Every Java Programmer Should Know About Ruby」(スライド、brazil さんの和訳)…

Code Complete 第2版

OOP

プログラマー日記経由で。 第6章のみサンプル公開されているみたいですね。http://www.atmarkit.co.jp/fdotnet/bookpreview/codecomp2nd_index/codecomp2nd.htmlhttp://www.atmarkit.co.jp/fdotnet/bookpreview/codecomp2nd_06/codecomp2nd_06_01.html mixi…

interstitial "ma" oriented

関連:id:sumim:20040525:p1 上の、The big idea is "messaging"... あるいは messages, not objects にからめて、id:squeaker さんに確認していただいたところによると、アラン・ケイ自身、message oriented という言葉に思い当たらないとかおっしゃってお…

Time to learn Ruby (or relearn Smalltalk)

OPC Diary 経由で。 Also, I'm strongly in the Alan Kay/Smalltalk camp - messages, not objects have become the way I think. Go look at Indigo for an example :-) DB messages, not objects …というところに重みがありますね。参考:The big idea is …

Re: オブジェクト指向とオブジェクト管理

OOP

関連:id:sumim:20040525:p1 また、村山さんにオブジェクトの広場 ML で参照していただいているようです。いつもありがとうございます。 継承は大事ですよね。ストラウストラップもかの whatis 論文(「C++ の設計と進化」風に言えば、「…とは何か?」論文。…