2007-01-01から1年間の記事一覧

ある Rubyist が吐露する Squeak の何が駄目なのか

まあ、このさい、発言者が Ruby 使いであることはあまり関係ないのですが(^_^;)。 Well ... both the full-sized Squeak and the eToys version packaged in the XO laptop are visually jarring to me, for openers. The mouse bindings are unlike anythin…

フィボナッチベンチ

ゲキ遅だった Ruby が、Ruby 1.9 で人が変わったようにチョー速くなっているという話。 http://journal.mycom.co.jp/news/2007/12/03/010/index.html ナイーブな実装のフィボナッチでの比較はしたことがなかったように思ったので、手元の各種 Smalltalk 処理…

x == x + 1 なる x

x == x + 1 - ellaneous 経由で、さらに http://d.hatena.ne.jp/nishiohirokazu/20071129/1196348472、n == n + 1 - 西尾泰和のはてなダイアリー を経て知った、2007-11-25 - プログラミング日記 より。 大きな数の精度を超えた小さな数を足しても変化は感知…

Java の「インターフェイス」という機能の元ネタ

具体的な言語処理系というわけではありませんが、おそらくこれが元ネタだろうというアイデアが記された論文は見つかりました。もっともゴスリングが Java や Oak(Java の前身…というか初期バージョンそのもの。変わったのは名前だけなので)について書いた…

Implementation Patterns と Smalltalk Best Practice Patterns の類似・相違項目一覧

「Implementation Patterns - Kent Beck」 「ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集」 Implementation … と SBPP とで共通・類似の内容の項目には「●」、Implementation … で新しく追加された項目には「△」、…

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

OOP

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

RubyTraits-0.2 であそぶ

Matzにっき 経由で、RubyForge: RubyTraits 。 Traits というのは、 Black、Schärli らにより 2002 年頃に提唱され、Squeak Smalltalk を使って実験的な実装が行なわれていた新しい多重継承機構やそのためのエンティティ(trait)のことです。Squeak Smallta…

Like/Don't Like Ratio なら Smalltalk も負けていない…つか、圧勝。w

RubyとPerlとPHPと…、どの言語が最も「愛されて」いるか? - Love/Hate Ratio からデータを拝借して…(^_^;)。 言語 Love/Hate Like/Don't Like Smalltalk 3.806 362.9 Lisp 4.536 4.817 JavaScript 1.773 2.875 Python 4.356 1.709 Ruby 7.189 1.514 Java 1.…

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

OOP

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

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

OOP

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

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

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

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

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

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

OOP

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

Python のクラスで驚かされたこと

new-style class のことを調べていていまごろ気づいて、ちょっとびびったのでメモ。それは、classic class のインスタンスの型は、それが属するクラスではないということ。 >>> class Foo: pass ... >>> type(Foo()) == Foo False もちろん、__class__ 属性…

今年1月の最後の日曜日は?

ruby-talk:271046 - Finding the last Sunday of a month より。ただし、もちろん Ruby ではなくて Squeak Smalltalk で(^_^;)。 最初に考えたのは、こんなかんじの。 | thisJan | thisJan := Month month: #Jan year: Date today year. thisJan dates rever…

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

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

レイトレースベンチを Ruby で

昨日の続き。Smalltalk のコードを機械的に Ruby のコードに変換してみました。Ruby っぽくないところはご勘弁あれ、かし。 ray.rb 手元のがちょっと古めの Ruby なので、最新のものではもっと速いかもしれません。 $ ruby -v ruby 1.8.5 (2006-08-25) [powe…

レイトレースベンチを Squeak Smalltalk で

Flying Frog Consultancy - Ray tracer language comparison Matzにっき や 航海日誌 - 動的言語対静的言語(ただしGroovy対Scala) で取り上げられていた coding, by Derek Young: Scala vs. Groovy: static typing is key to performance 経由で。 Squeak Sm…

レイトレースベンチを Cincom Smalltalk で

ということで、Cincom Smalltalk(VisualWorks)向けに書き換えてみました。Squeak 版との違いは…、 double のリテラル表現の違い ファイルストリームの生成方法の違い #+ などを持たない Array を継承させてもうま味がないので、改めて Vec を Object 下で…

Squeak Smalltalk でシーザー暗号を簡単に

有名なところでは(で、それがデマであることは作者によって明らかにされているところではありますが(^_^;))'HAL' -> 'IBM' となるところのアレ。ふつうに一点の曇りもない読んだそのまんまの手続き的に書くと、 'HAL' collect: [:each | (each asciiValue …

Squeak Smalltalk における文字列リテラルとその同一性

シンボルとは何か その1(前編) - 文字列の同一性と同値性 @ 2007年09月 @ ratio - rational - irrational @ IDM 次は真だろうか。"abc" == "abc"勿論、真である。RubyではString#==はオーバーライドされていて、長さと内容が等しい文字列同士を比較すると真…

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

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

パイプ機能について

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

自分のフィールドへのアクセスにアクセッサを使うことの是非

もちろん、すべてがすべてアクセサを利用するわけではない。だが、まさにいつか誰かのソースで問題が起きたり、忘れた頃の自分のソースに問題が起きたときのために、ここぞというフィールドについてはアクセサを利用する。 L'eclat des jours - 自分のフィー…

この教授には 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 そんなことふつーやらねーよ的なことを書いているかもしれませんが、…

Smalltalk の #timesRepeat: を Ruby の #times っぽく使う

Rubyの times って引数とれるんですね。初めて知りました。いいなぁRuby。Smalltalk の #timesRepeat: は引数なしなので、Rubyのもてっきりそうだと思い込んでました(^^; みねこあ - ツンデレC#2.0 の yield 入門 - コメント欄 えーっ。Smalltalk でも引数、…

Squeak Smalltalk で小町算

Karetta|キミならどう書く 2.0 - 2007 - 問題 2 : 小町算 演算子に優先順位を持たせていない Smalltalk の場合、ただ式を作って評価しただけでは電卓モードの答えしか出せません。しかし、括弧を付ける細工をするのは個人的に苦手(^_^;)なので、パーサーをち…