Smalltalk

Cincom Smalltalk(VisualWorks)を使ったスクリーンキャスト

Smalltalk は文法や仕組みはおどろくほど簡単なくせに、なぜか文書を通じて学ぶのが難しい言語処理系です。その背後にあるもののうち最初につまずく場所のひとつは、かつて、GUI がまだ一般的でなかったころの Mac において似たようなことが言えたのとも無関…

Ask Reddit に見る、そんなあなたが Squeak Smalltalk 使ってみたところで幸せになれるとはちょっと思えない10の場合

ときどきの雑記帖 リターンズ - Redditに訊け: Squeakのナニが間違っているのか? 経由で Ask Reddit: So what is wrong with Squeak Smalltalk? をながめていて、つらつらと「こういう場合は、ちょっと Squeak Smalltalk は薦めにくいなぁ…」とおもんみたと…

世の中には三種類の人間がいる。

Smalltalk、ラヴ。(追記:問題が多いことは認識できている(^_^;)) Smalltalkは優れた点もあるが問題のほうが多い(だから私は使わない)。 Smalltalkって何? おそらくは、真の一番目と真の二番目がタッグを組むと三番目(≒大衆)ウケする良さげなものがで…

括弧の対応を調べる(…のにも使える)操作

一連のパイプ機能の話と関係あるような無いような。 Squeak Smalltalk 環境では、括弧のひとつ内側(開き括弧ならすぐ後、閉じ括弧ならすぐ前)をダブルクリックすることで注目している括弧に括られたテキストを選択できます。 ↓ 細かいことを言えば、「ダブ…

パイプ機能について

ときどきの雑記帖 リターンズ - Pipeにするかしないかそれが問題だ? 解説するほど詳しくはないのですが(^_^;)、その前に、きむら(K)さんの疑問に思われている点が分からないので、それを明らかにしていただければそれについて何か書けるかもしれません。 個…

この教授には Smalltalk を本当に理解することなど永久に不可能かも…(追記あり)

Rubyは純粋なオブジェクト指向言語だ。これは、Rubyではすべてのものがオブジェクトだ、という意味だ。20年以上たってしまったが、筆者はいまになって、Smalltalkのプログラミングコミュニティーがあれだけこの言語に熱中していた理由が分かるようになった。…

Smalltalk は死につつある…とかってバカじゃね?

Factor: a practical stack language: Smalltalk is dying via Matz にっき。比較的名前の知られた Smalltalk 処理系の一つがディスコンになったというニュースをたまたま目にして、脊髄反射的に毎度おなじみの「Smalltalk、もうダメぽ…」的な何かをひと言い…

なぜかくも人は Smalltalk を殺したがるのか?

アラン・ケイが Smalltalk を死んだことにしたがるのは、まあ分かります。かつての自分のアイデアの実証や検証のために一定の成果を挙げられたのでもう用済み。あるいは、その後、変化をやめてしまい and/or 望んだように育ってくれなかったのでもはや興味を…

Squeak Smalltalk 向けの分散処理関連で遊ぶ

どう書く?org - 分散関数呼び出し に触発されて、これまで苦手にしてきた…というかほとんど知識のない通信・分散処理系のしくみをいじったのでメモ。例によっていろいろと勘違い and/or そんなことふつーやらねーよ的なことを書いているかもしれませんが、…

サンタクロース問題を Squeak Smalltalk で 2

id:sumim:20070607:p1 の続き。 jijixi さんの JoCaml 版に触発されて、トナカイとこびとたちが独立したスレッドになっていてチョーかっこいいっ!&ところでこのサンタってぜんぜん寝ないですげー勤勉に働いてなくなくね?版。 | トナカイたち こびとたち …

サンタクロース問題を Squeak Smalltalk で

今日の一行 - [お題] サンタクロース問題 Squeak Smalltalk のスレッドは、処理を記述したブロック [...] に fork を送信することで、手軽に作ってフォークさせられます。ただ、よほどのことがない限り、他へは制御を渡さないので(^_^;)、今回の求められてい…

Erlang の ring benchmark を Squeak Smalltalk で

haskell - haskellのある暮らし - リングノードベンチマーク: Erlang vs Haskell 経由で知った、Programming Erlang の Chapter 7 [β版 PDF] にある課題に Squeak Smalltalk にて挑戦。 そのまえに、Squeak Smalltalk でどのていど太刀打ちできるものなのか…

トレイトで遊ぶための最低限のブラウザ拡張

Squeak3.9 で Traits(トレイト)を扱うにあたっては、公式には OmniBrowser を使え…ということになるのでしょうが、ちょっと試した感じ、残念ながら OmniBrowser は私の手にはなじまないようです。そこで、使い慣れたクラシカルなシステムブラウザでも、ト…

トレイトで、再定義時に遮蔽されてしまうメソッドを super へのメッセージングで呼び出せるようにする方法

Ruby のモジュールや Strongtalk のミックスインは、継承パスに挿入された抽象的なクラスのように振る舞うため、下位のクラスやモジュール(ミックスイン)でオーバーライドしたメソッドでも、 super(Strongtalk では super へのメッセージング)でコールで…

トレイトにおける、メソッドコンフリクト時の対処のしかた

多重継承機構を利用する際の問題としてよく取りざたされる「メソッド名のコンフリクト(衝突)」ですが、Squeak Smalltalk のトレイト機構(Traits)では、同種のミックスイン機構の場合と異なり、その対処はユーザーに委ねられます。 たとえば、いずれもメ…

新規トレイト作成用のテンプレートをクラスブラウザに出させるための細工

「トレイト」は Squeak で 3.9 から組み込みになった Ruby のモジュールライクな多重継承機構(Traits。この場合、複数形?)や、そのエンティティの名前(trait)、および、オブジェクトとしてのそれ(Smalltalk なら当然!w)が属するクラス名(Trait)の…

Ruby の落とし穴:モジュールの特異メソッドは include 先クラスからはコールできない?

[ruby-talk:247201] Re: class を読みつつ、へぇ… Ruby には module_function なんて機能(インスタンスメソッドの特異メソッド化?)があるんだ…とか軽く驚きつつ、でもこれって include Foo した Bar からは呼べないのか…と不思議に思ったのでメモ。当初、…

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

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

Squeak Smalltalk で FizzBuzz

コメント欄が「キミならどう書く? 〜いろんな言語で FizzBuzz 〜」状態…になっている Raganwald: Don't Overthink FizzBuzz より。当該エントリー中に提示されている Ruby で書かれたちょっと変わった実装の動きがよく分からなかったので、例によって Squea…

GNU Smalltalk の“あなごる”向け TIPS

関係のない Squeak Smalltalk でも、つい、変数を一文字にしたり、スペースを極力省いて書いてしまって苦笑いをするほど中毒性が高くてキケンきわまる“あなごる”こと shinh さんの anarchy golf ですが、ダメだダメだと文句をいいつつも GNU Smalltalk のタ…

GNU Smalltalk における文字列比較の落とし穴

Squeak Smalltalk とか VisualWorks Smalltalk(Cincom Smalltalk) 'Abc' < 'abc' "=> true " だよねぇ? ふつーは。 なのに、 GNU Smalltalk 'Abc' < 'abc' "=> false " むむむ。 String whichClassIncludesSelector: #< "=> CharacterArray" Return true …

#includes:(あるいは Ruby の include?)のコストは高く付く

ユメのチカラ: Rubyで習作の性能評価 より。正直、あまりコストのことは考えていなかったのですが、こんなふうに歴然とした差を見せつけられると、簡潔に書けて便利だからといって、安易に #includes: を使ってはいけないのだな…と気づかされます。勉強にな…

自然対数の底を求める

shinh さん の anarchy golf に、自然対数の底を小数点以下 100 桁までを出力するコーナー(?)があるのですが、ちゃんと求めようとすると(もちろん、ゴルファとして、この時点ですでに考え方が間違っているというのはおいておくとして…)どうしてもタイムア…

3つのファイルから比較表を作成

404 Blog Not Found:ruby - 添削 - もっとDRYに と、Matzにっき- ユメのチカラ: Rubyで習作 添削 経由で。キミならどう書く?的なノリでトライしてみました。例によって、Squeak の Smalltalk で書いてから、あとで Ruby の直訳っぽいのを載せます。 まず Sq…

テニスの取得ゲーム状況

キミのコードが汚い理由 − @IT をうけた、Haskell 脳その他の方々による Ruby 版などを拝見。 sshi.Continual - 美しいコード? 趣味的にっき - テニスの勝負判定コード Tommy Heartbeat 2nd - 美しいプログラムコードとは。 バカが征く - めんどいからRuby…

Rails vs Seaside

この週末に催される Squeakers' Night in 未来パーティ 2.0(残念ながら私は参加できず…)を受けて、umejava さん こと梅澤さんによる、解凍後にダブルクリックで起動可能な Seaside 日本語版の自習用パッケージ(SeasideJOnePlus)が公開されたこともあり、…

プレゼント交換 再び… 2

鍋あり谷あり - あなたならどうお書きになります1.0 経由で、{informa,computa,evolu}tion: プレゼント交換の手伝い の Mathematica 版がどんなふうに動いているのか興味を持ったので、それを調べる過程で Squeak の Smalltalk で直訳…というか意訳ぎみにし…

プレゼント交換 再び…

仕切り直しで 鍋あり谷あり - あなたならどうお書きになります1.0 に再チャレンジ。 今度は大丈夫だと思うのですが…(^_^;)。 ウリは、大人数の場合、たとえば 100 人参加のパーティでも、平均 0.5 秒程度 @ 1 GHz PenM(ruby 1.8.5 (2006-08-25) [i386-cygwi…

プレゼント交換のペアを決めるスクリプト

#二組四人のときに四通り…というくだりで気づくべきでした(^_^;)。当方で問題を取り違えておりました。ごめんなさい。以下はそのまま晒しておきますが、タイトル共に間違いでリンク先の“お題”とは全然関係ない内容になってしまっていますので、どうぞあしか…

"if necessary" vs. "if need be" vs. "may be"

いやなブログ - 学校では教えてくれないバッドノウハウ英語 #3: if need be より。Squeak の Smalltalk におけるメソッド名(セレクタとも言う)ではどうなっているのか調べてみました。 話題の if need be はありませんでしたが、if needed for がよく使わ…