タグ

ブックマーク / sumim.hatenablog.com (17)

  • Squeak Smalltalk と Ruby のクラス階層をグラフ化 - Smalltalkのtは小文字です

    Route 477 - GNU Smalltalkのクラス階層をグラフ化した が面白かったので、参考にして Squeak Smalltalk (Squeak3.10J) と Ruby1.9 (Ruby1.9.1p0) のを作ってみました。 Squeak Smalltalk Ruby Squeak Smalltalk には Traits(ミックスインみたいで、もう少し柔軟な機構)があるのでこれを青で、抽象クラスは #subclassResponsibility を含むメソッドを持つクラス OR 自分が抽象クラスだとコメントで主張しているクラス OR 名前が Abstract で始まるクラス で判断し、赤で塗りつぶしています。Ruby は抽象クラスの判断ができなかったので、モジュールだけ青にしてみました。 Squeak Smalltalk の一部のクラスが孤立しているように見えますが、これはお

    Squeak Smalltalk と Ruby のクラス階層をグラフ化 - Smalltalkのtは小文字です
  • Smalltalk好きから見た『パターン、Wiki、XP 〜時を超えた創造の原則』 - Smalltalkのtは小文字です

    パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ) 作者: 江渡浩一郎出版社/メーカー: 技術評論社発売日: 2009/07/10メディア: 単行(ソフトカバー)購入: 75人 クリック: 1,306回この商品を含むブログ (159件) を見る とても面白かったのであっという間に読み終えてしまいました。タイトルにある「パターン」「Wiki」「XP」については、以前、それぞれの成立経緯を調べてみたこともあったので、べつに買って読むほどのことはないかなーと当初は思っていたのですが、著者による、 RubyKaigi2009初日のライトニングトークの一番最初に発表します。タイトルは『パターン、Wiki、XP、そしてRuby』。テーマは、このRubyの関わりです。 このには、オブジェクト指向の生みの親であるアラン・ケイやSmalltalkとの関わ

    Smalltalk好きから見た『パターン、Wiki、XP 〜時を超えた創造の原則』 - Smalltalkのtは小文字です
    hengsu
    hengsu 2009/07/29
  • Re: なぜ Smalltalkはマイナーなままだったのか? - Smalltalkのtは小文字です

    ときどきの雑記帖 i戦士篇 - なぜ Smalltalkはマイナーなままだったのか? くしくもこの問いかけ自体が象徴しているように、Smalltalk という存在について、意外に多くの人がそれを“プログラミング言語”という(暫定ダイナブック環境という来あるべき姿からすれば)非常に限定された枠内に押し込めた状態で解釈し、それなりの答えを得て安心してしまう傾向にあることが、比較的大きな原因なのではないかなと考えます。 ぜんぜん参考になりませんね。スミマセン。^^;

    Re: なぜ Smalltalkはマイナーなままだったのか? - Smalltalkのtは小文字です
    hengsu
    hengsu 2009/04/10
  •  「パソコンの父」に京大名誉博士号を贈呈…の記事を勝手に補完 - Smalltalkのtは小文字です

    アランさんは1960年代からパソコンの研究を始め、70年代にプログラミング言語を用いた世界初のパソコンソフトを開発。コンピューターの発展に大きな功績を残した。 http://www.iza.ne.jp/news/newsarticle/it/internet/214298 アランさんは1960年代から「ダイナブック」と自ら名付けた“パソコン”、つまり「個人向けコンピュータ」の構想および研究を始め、70年代にオブジェクト指向プログラミング言語を用いた世界初のGUIを前提としたパソコン向けの基ソフトである「暫定ダイナブック環境(Smalltalk)」を開発。コンピューターの発展に大きな功績を残した。 というところではないでしょうか。Flexマシンのことまでは意識していないのと思うので。 さしたる主張なしにただ「パソコンの父」というキャッチーなキーワードに倣っただけ…という可能性もなくもないで

     「パソコンの父」に京大名誉博士号を贈呈…の記事を勝手に補完 - Smalltalkのtは小文字です
    hengsu
    hengsu 2009/01/22
  • 二つのオブジェクト指向とそれぞれのメリット - Smalltalkのtは小文字です

    似たような話の繰り返しで恐縮ですが、現時点での自分の理解の整理のためのメモ。 前後しますが、こうして改めてまとめてみると、純粋な抽象データ型のオブジェクト指向プログラミングは、メッセージングのオブジェクト指向の影響も多分に受けている OOAD(分析・設計)のテコ入れ無しには、ちょっと弱っちく&古くさい感じが否めませんね(何をいまさら…ですが)。^^; とはいえ、OOAD は OOP とはまた別のものなので、同じ「抽象データ型の〜」あるいは「メッセージングの〜」だからといって対応する OOP とひとくくりにしてよいかというとそういうわけでもないので(整理・分類上は)難しいところです。 ▼ 抽象データ型のオブジェクト指向プログラミング 端的には、「ユーザー定義型(抽象データ型)」を、当初は「クラス」、今はそれに加えて「インタフェース」に準ずる言語機能によるサポートを前提として実践するプログラミ

    二つのオブジェクト指向とそれぞれのメリット - Smalltalkのtは小文字です
    hengsu
    hengsu 2008/10/30
  • 爆速で話題の Google Chrome 搭載 JavaScript VM “V8” は、Animorphic Smalltalk VM がベースになっているらしい - Smalltalkのtは小文字です

    Animorphic Smalltalk というのは、1990年代半ばに作られ、2006年にオープンソース化されて話題になった“Strongtalk”のこと。 Another interesting aspect of the V8 virtual machine is that it's open source. It is mainly written in C++, based on the Strongtalk Smalltalk code and released with a BSD/MIT license. The Hitchhiker's Guide to ...: Google Chrome, JavaScript and Smalltalk Strongtalk は、Objective-C ばりのオプショナルな静的型チェック機能と Ruby と同様にミックスインを用いた

    爆速で話題の Google Chrome 搭載 JavaScript VM “V8” は、Animorphic Smalltalk VM がベースになっているらしい - Smalltalkのtは小文字です
    hengsu
    hengsu 2008/09/04
    日本語の説明の方が判り易いです。ありがとうございます。[smalltalk][javascript]
  • 最低限の Smalltalk デバッガ入門(Squeak システム向け) - Smalltalkのtは小文字です

    Smalltalk ではスタックフレームも「コンテキスト」と呼ばれるオブジェクトです。ちなみに、実行中のコンテキストに容易にアクセスできるようにわざわざ thisContext という擬変数まで用意されています。Smalltalk には予約語は全部でたった6つしかない(他は self、super、nil、true、false)うちのひとつを使うわけですから、これはある意味、破格の扱いです。 こうした背景もあってか、はたまた私の単純な思い込みでか、Smalltalk のデバッガは「コンテキスト(や、その連なりによって表現されるコールスタック)をブラウズするためのツール」という性格が強いように感じられます。クラス用ブラウザがクラスブラウザ、インスタンス用がインスペクタなら、デバッガはコンテキスト向けに特別に用意された“第三のブラウザ”といったところでしょうか。 ▼デバッガの起動 デバッガを起動

    最低限の Smalltalk デバッガ入門(Squeak システム向け) - Smalltalkのtは小文字です
  • Squawk VM という名の Java VM - Smalltalkのtは小文字です

    単なるスペルミスかと思ったら、違いました。w Squawk VMはもともと、Smalltalkで記述されたVM環境Squeakプロジェクトに触発されて生まれたVMで、そのほとんど全てがJavaテクノロジーそのもので記述されています。そのため、Java VMベースの研究の基盤としても興味深いプラットフォームとなりました。しかし、時が進むにつれて、サンの研究者たちは、Javaの実装にJavaを使用することが、Javaを新たなプラットフォームに移植する方法をVM開発者ではない開発者たちにも理解してもらうためのシンプルなメカニズムとなることに気づきました。 日オラクル | Integrated Cloud Applications and Platform Services | Oracle 後半の気づき、重要ですね。

    Squawk VM という名の Java VM - Smalltalkのtは小文字です
    hengsu
    hengsu 2008/06/09
    あ、やっと、状況を理解したような気がする自分
  • プロトタイプベースの誤解 - Smalltalkのtは小文字です

    クラスベースのOOとプロトタイプベースのOOで決定的に違うのは、プログラムを動かしている最中にオブジェクトが出来ること、すなわちメソッド(method)を追加したり再定義したりできるかだ。 404 Blog Not Found:タイプ・クラス・プロトタイプ - OOの語彙 これはひどい。w オブジェクトに対して動的(実行時)にメソッドやインスタンス変数を追加できることと、“プロトタイプベース”においてオブジェクトがそれが属するクラスによらず独自のメソッドやインスタンス変数を持てることとは別の話です。 あらためて、「プロトタイプベース」という用語自体に問題が多いことを実感させられる記事でもありますね。個人的には、クラスを用いないオブジェクト生成手法の話でないのならば(つまり、「プロトタイプの複製でオブジェクトを生成する」ことが話の筋でないならば)「プロトタイプベース」ではなく、「インスタン

    プロトタイプベースの誤解 - Smalltalkのtは小文字です
    hengsu
    hengsu 2008/04/14
  • 「最低限の Squeak Smalltalk 入門」の補足…というか四方山話 - Smalltalkのtは小文字です

    「最低限の…」にからめた、とりとめのない話。 >「コードを入力する場所くらいは用意しないといけない」 じつのところ、Squeak Smalltalk で Smalltalk 式を評価するにあたっては、必ずしもワークスペースを用意する必要はありません(もちろん、ワークスペース変数を使いたい場合は別ですが…)。Squeak Smalltalk 環境では、文字が入力できる場所なら原則としてどこでも do it(alt + d)、print it(alt + p)で、入力・選択した式の評価ができます。 右クリック(第二ボタンクリック)メニューから「式を評価」(do it)や「式を表示」(print it)を選んでも同じ事ができますが、たまにメニューが使えない局面がある(イベントの奪い合いになったり、メニューの表示がブロックされている場合がある)ので、do it(alt + d)、print it

    「最低限の Squeak Smalltalk 入門」の補足…というか四方山話 - Smalltalkのtは小文字です
    hengsu
    hengsu 2008/03/14
  • 最低限のチェンジセット入門(Squeak Smalltalk 向け) - Smalltalkのtは小文字です

    .stではなくチェンジセット(.cs)で出されると良いと思います 鉄は熱いうちに打て。○○○は柔らかいうちに突け - ずっと君のターン(コメント欄) 勉強会ですでに触れられている内容でしたら重複します(し、コメントに横から失礼とは思いました…)が、チェンジセットについてご存じないといけないので、念のため。 「チェンジセット」というのは、ユーザーがシステムに加えた変更を自動的に記録・蓄積してくれるデータベース、およびそこに蓄積された差分情報を指します。開発が一段落ついたとき、チェンジセットに蓄積された差分情報を、別のイメージにファイルイン(file in)可能なチェンジセットファイル(.cs)として書き出すことができます。以下、チェンジセットの使い方を簡単に。 ■ 新しいプロジェクトを作成する 「プロジェクト」とは、簡単には“仮想デスクトップ”のことです。デスクトップクリック →「開く…」(

    最低限のチェンジセット入門(Squeak Smalltalk 向け) - Smalltalkのtは小文字です
    hengsu
    hengsu 2008/03/14
  • 最低限の Squeak Smalltalk 入門 - sumim’s smalltalking-tos

    ついでにSmalltalkでも試そうと思ってSqueakをインストールしたけど… - 西尾泰和のはてなダイアリー Smalltalk、特に Squeak Smalltalk は、言語処理系や IDE というより、あたかも“ゲストOS”のように振る舞うので、ちょっと試してみたいと思い立ってインストール&起動まではできたものの、そこから先には、独自の GUI や操作スタイルに阻まれて進めなかった…という経験をお持ちの方も多いと思います。 そこで、Smalltalk 環境独自の GUI ツール群の使い方はあとで覚える(あるいはそもそもそれほど興味がない←しょぼーん…(^_^;))として、今のところは、試してみたいコードを動かしたり、どんな動作になるのか確認ができればいい…といった忙しい人向けにざっくり、Smalltalk 式を評価するための方法のようなものを書いてみました。 とりあえず、マシンが

    最低限の Squeak Smalltalk 入門 - sumim’s smalltalking-tos
  • 本当に Mac は“the first computer with beautiful typography”なのか? - Smalltalkのtは小文字です

    追記: Alto と言えば Star …と短絡する向きは特に Mac 関係者に意外と多く、そうした方々がここを Star の話であるとの思いこみで読まれるといけないので最初にお断りしておくと、Star と、ここで紹介している Interim Dynabook(すなわち、ハードとしての Alto と、OS としての Smalltalk を組み合わせた製品)とは別物です。両者ともに同じ XEROX の成果物ですが、しかしそれぞれ、開発部門(SDD vs PARC)も、仕組み(Mesa vs Smalltalk)も、GUI の操作スタイル(対象選択はマウスだが命令には専用キーを使用 vs 命令もメニューで指示)も、目的(ビジネス vs パーソナル)も異なる、まったく別のコンピュータ環境なのです。Lisa や Mac は、広く信じられているような Star からの影響も皆無ではない(たとえばアイコ

    本当に Mac は“the first computer with beautiful typography”なのか? - Smalltalkのtは小文字です
    hengsu
    hengsu 2008/01/14
  • id:m-hiyama:20080109:1199863428 を Ruby で - Smalltalkのtは小文字です

    せっかくなので Ruby(1.9)についても調べてみました。結論から書くと、Ruby も Smalltalk と同じく四階建てで、その造りもそっくりでした。この絵が網羅している範囲に限れば、両者はほぼ“瓜二つ”。 ただ、隠し事をしない Smalltalk と違って、何もかもさらけ出してしまうことを必ずしも佳しとしない Ruby では、表面上は三階建てのフリをしている and/or 特異クラスが不可視化されているせいで、上図のような実情どおりにはユーザーには見えません。ちなみにどんな“フリ”をしているかは次図に。 前後しますが、Ruby には「特異クラス」という、オブジェクト特異的な通常は不可視の無名クラスをアドホックに作れる(つまり元のオブジェクトはそれまでのクラスのもとを離れ、新しく作られた特異クラスのインスタンスとなる…)機構があり、これをインスタンス特異的なメソッド(Ruby ローカ

    id:m-hiyama:20080109:1199863428 を Ruby で - Smalltalkのtは小文字です
  • id:m-hiyama:20080109:1199863428 を Squeak Smalltalk で - Smalltalkのtは小文字です

    なにかいろいろと大事なポイントをハズしてしまっているような気もするのですが、ひるまずに。 図は、赤矢印が継承関係、黒矢印がクラス-インスタンス関係です。 Object subclass: #Person instanceVariableNames: 'name' Person class >> named: nameString ^self new name: nameString; yourself Person >> name: nameString name := nameString | s1 s2 p | s1 := 'Hello'. s2 := 'Bye-bye'. p := Person named: 'tonkichi'. " 1 " self assert: [ByteString allSuperclasses includes: Object]. self asser

    id:m-hiyama:20080109:1199863428 を Squeak Smalltalk で - Smalltalkのtは小文字です
  • Implementation Patterns と Smalltalk Best Practice Patterns の類似・相違項目一覧 - Smalltalkのtは小文字です

    「Implementation Patterns - Kent Beck」 「ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集」 Implementation … と SBPP とで共通・類似の内容の項目には「●」、Implementation … で新しく追加された項目には「△」、SBPP のみの項目には「▽」をそれぞれ冠してあります。あと、この機会に SBPP のことを知った Ruby な方々向けの参考までに「▽」な項目については、Ruby に関連ありそうな項目に [Ruby] ラベルを付してみました。 クラス △ Class ● Simple Superclass Name ● Qualified Subclass Name △ Abstract Interface △ Interface △ Abstract Class △ Versio

    Implementation Patterns と Smalltalk Best Practice Patterns の類似・相違項目一覧 - Smalltalkのtは小文字です
  • 「Collatz予想」(角谷予想,3x+1問題)のお題を AspectS で - Smalltalkのtは小文字です

    前回、いろんな変な処理系で書き散らかしてしまったのを反省したばかりだったのですが…。つい、また。w f の定義を記述してから、同じような g を、しかし、今度はステップ数を出力するように再び記述しなおすのは何か違うよな…と感じたとき、ふと思い出したのがアスペクト指向です。もっとも、必ず 1 に到達すると予想されている f を、素直な記述のまま手を加えずに残しておくことには、その意味をほとんど見いだせないので、単純に、いい機会だからアスペクト指向のまねごとをしてみたかった…というだけのはなしだとも(^_^;)。 AspectS は、ロバート・ハーシュフェルドが、XEROX パロアルト研究所(PARC)の AspectJ と、ジョン・ブラントの MethodWrappers のアイデアを組み合わせ、Squeak の Smalltalk を拡張することで、実験的なアスペクト指向プログラミング環境

    「Collatz予想」(角谷予想,3x+1問題)のお題を AspectS で - Smalltalkのtは小文字です
    hengsu
    hengsu 2006/07/23
    アスペクト指向
  • 1