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

  • Ruby1.9 のクラスのメタ階層を整理する 2 - Smalltalkのtは小文字です

    sumimさんの「Ruby1.9のクラスのメタ階層を整理する」という記事、Rubyの型階層は雑然としているというのは、なんかsumimさんの図が悪いような気もするなぁ。整理すればもうちょっと情報を引き出せるよ。 Ruby1.9 のクラスのメタ階層とかevil-rubyとか - 世界線航跡蔵 んー。メタ階層がどうなっているかを整理したかったので、書き方はこれでいいのです。お世辞にもきれいな絵とは言い難いですが、雑然としているのはやはり Ruby の実状を示しているからだと思います。 yugui さんの図は、たしかにクラスと特異クラス(メタクラス)が揃って並んでいて見た目にはきれいなのですが、これだとクラスが整然と並んでこそいるものの、肝心のメタ階層がどうなっているかという情報のほうは、正直なところ、いささか得にくいものになってしまっています。 図の目的をわかりやすくするために、先に示した図か

    Ruby1.9 のクラスのメタ階層を整理する 2 - Smalltalkのtは小文字です
    zu2
    zu2 2024/04/02
  • 100までの整数から素数を列挙せよ…を Smalltalk-76 で - Smalltalkのtは小文字です

    1977 年から、時空を越えてのエントリー。w "Smalltalk-76" limit ← 100. primes ← #() asStream. primes next ← 2. for% i from: (3 to: limit by: 2) do% [ isprime ← true. for% prime from: primes contents do% [ i \ prime = 0 ? [isprime ← false]]. isprime ? [primes next ← i]]. ^primes contents => (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97) 蛇足として、アラン・ケイに似ていると言われている Ruby

    100までの整数から素数を列挙せよ…を Smalltalk-76 で - Smalltalkのtは小文字です
    zu2
    zu2 2023/11/26
  • Ruby は Smalltalk-76 に似ている。by アラン・ケイ 番外編 - Smalltalkのtは小文字です

    id:sumim:20060615#p1 の続き。いろいろと調べているうちに Smalltalk-76 で見かけた、Ruby にも Smalltalk-80 にもない、ちょっとおもしろい機能、編。 ▼心持ちインテリジェントな配列要素アクセス #• は、通常はパラメータである整数の位置にある要素を取り出すメソッドですが、整数以外にも an Interval などの配列もパラメータにできます。 ('abc' • (3 to: 1 by: `1)) copy " => 'cba' " ここで、` は、数値リテラルの前に付することで、負数を表現するための記号です。 Ruby でも、順番を変えることまではできないものの、同様に a Range を渡して部分配列を得ることは可能ですね。 #ruby "abcdef"[2..4] # => "cde" [10,20,30,40,50][2..4] # =

    Ruby は Smalltalk-76 に似ている。by アラン・ケイ 番外編 - Smalltalkのtは小文字です
    zu2
    zu2 2023/11/26
  • Ruby は Smalltalk-76 に似ている。by アラン・ケイ 2 - Smalltalkのtは小文字です

    id:sumim:20060613#p1 の続き。Smalltalk-76 の勉強を兼ねて、Smalltalk-76 が Ruby に似ているっぽいところを列挙しています。 ▼制御構造の書き方 Smalltalk-80 以降では、条件分岐や繰り返しなどの制御構造もすべて、しかるべきレシーバに対するメッセージ送信として記述します(少なくとも見た目は…。実際はコンパイル時にインライン展開されて、通常の制御構造文として解釈、実行)。しかし、Smalltalk-76 では Ruby 同様、メッセージ式ではない、専用の構文ライクな特別な式を用います。 条件分岐 "Smalltalk-80 以降では、通常のメッセージ式で" 3 < 4 ifTrue: [5] ifFalse: [6]"Smalltalk-76" if% 3 < 4 then% [5] else% [6] 3 < 4 ? [5] 6#r

    Ruby は Smalltalk-76 に似ている。by アラン・ケイ 2 - Smalltalkのtは小文字です
    zu2
    zu2 2023/11/26
  • Ruby は Smalltalk-76 に似ている。by アラン・ケイ - Smalltalkのtは小文字です

    Matzにっき - Alan Kayといっしょ によれば、前のエントリーで取り上げさせていただいた“死んだ言語”以外にも、タイトルのような示唆に富む言及があったとのことだったので、さっそく調べてみました。正直、これまで Smalltak-76 はあまり興味がなかったのですが、Ruby は(Smalltalk-80 より)76 に似ていると御大がのたまうのを耳(目?)にしたからには、話は別です(^_^;)。 関連: Smalltalk-72 で遊ぶ 残念ながら Smalltalk-76 のオリジナルの処理系は、当然、ALTO とともに失われてしまっているので、ダン・インガルスの The Smalltalk-76 programming system design and implementation(PDF)が主な情報源ということになります。しかし、幸いなことにインガルス協力のもと、ヘルゲ・

    Ruby は Smalltalk-76 に似ている。by アラン・ケイ - Smalltalkのtは小文字です
    zu2
    zu2 2023/11/26
  • Smalltalk は死んだ言語だ。by アラン・ケイ - Smalltalkのtは小文字です

    Matzにっき - Alan Kayといっしょ や 日 Ruby カンファレンス 2006(RubyKaigi)の まつもとさんの基調講演での言及から、一部の隠れ Smalltalk ファンの方々には衝撃をもって受け止められたり、あるいはおもしろおかしく取り上げる向きもある、くだんのセリフ。実は、アラン・ケイが Smalltalk への失望や批判的評価を述べることはそんなに珍しいことではありません。(…ので、びっくりしちゃった人は、これを機会に“耐性”を持つようにしましょう!w) たとえば、このブログではお馴染みの The Early History of Smalltalk には、こんなくだりがあります。 When I looked at Smalltalk in 1975, I was looking at something great, but I did not see an

    Smalltalk は死んだ言語だ。by アラン・ケイ - Smalltalkのtは小文字です
    zu2
    zu2 2023/11/26
  • Pythonが速度改善に本気出すと聞いたので恒例のたらい回しベンチをとってみたら、RubyがYJITですごく速くなっていて驚いた話 - Smalltalkのtは小文字です

    2022-09-09改訂: gcc バージョンが古すぎたのと、C が内部計測でなかった点を改め計測しなおしました。結果、Rust は C より速くはなくなりました。紛らわしいことで、ごめんなさい。また、gcc のバージョンアップに伴い、Python および Ruby についてはビルドと計測をしなおしたので、これらも少し速い値に変わっています。この点もどうぞあしからず。 2022-09-10追記:ご要望のあった Python numba.njit 使用時と Go の結果を追加しました。PHP は JIT 有効化が面倒だったので断念しました^^; 2022-09-10追記2:C の計測で clock() を使うのはフェアではないという指摘がありましたので、念のため clock_gettime() を使用したコードに差し替えました。結果に大きな差はありません。 2022-09-10追記3:PHP

    Pythonが速度改善に本気出すと聞いたので恒例のたらい回しベンチをとってみたら、RubyがYJITですごく速くなっていて驚いた話 - Smalltalkのtは小文字です
    zu2
    zu2 2022/09/14
    なつかしいなtarai。最初に動かしたのはTL/1だったか
  • Mac のメニューバーの正体 - Smalltalkのtは小文字です

    リファラによると、「メニューバーの正体」という検索で訪れてくださった方がおられたようですので…。 “正体”が何を意図するのか分かりませんでしたが、Mac の前身である Lisa のプロトタイプで、画面トップにメニューバーが設けられるまでの経緯は、以前もご紹介したこちらの文書に関連の言及があります。 Origins of the Apple Human Interface Menus -- this was what, August 18th? "I think we should experiment with menus at the top or right of the window, or even totally detached at the top of the screen, full width." So up to this time, we were doing so

    Mac のメニューバーの正体 - Smalltalkのtは小文字です
    zu2
    zu2 2013/06/29
  • sumim’s smalltalking-tos - Mac のスクロールバーはいかにしてできあがったか

    あるいは、両端の矢印+スクロールボックスからなる、現在主流のスクロールバーへの進化の道筋…というような話。 ※2017-01-25: ContrAlto という ALTO シミュレーターと現存する当時のディスクパックの内容を保持したディスクイメージを使うことで、ジョブズらが見たのに非常に近い GUI の様子がほぼ再現できるようになったので、図や内容を改訂しました。 このブログにおいては今さら言うまでもないことですが、MacGUI(より正確には、その前身となる Lisa の GUI)は、完全なオリジナルというわけではなく、ALTO を暫定ダイナブックたらしめた Smalltalk の GUI を“たたき台”にして再デザインされたものです。その具体的なところは長らく謎だったのですが、近年、ビル・アトキンソンがいくつかの場所で公開した、Lisa の開発初期のプロトタイプのポラロイド写真によ

    sumim’s smalltalking-tos - Mac のスクロールバーはいかにしてできあがったか
    zu2
    zu2 2013/06/29
  • Rubinius で、Ruby にインクリメント演算子モドキを実装 - Smalltalkのtは小文字です

    今のところはまだ C 言語で書かれている Rubinius VM ですが(将来的には、Squeak Smalltalk の VM と似たような感じで、C 言語に直訳可能な Ruby のサブセットにより書き換えられる予定とか)、すでに Smalltalk ばりの面白い機能をいろいろと備えています。 たとえば、Smalltalk では thisContext という第六の擬変数により実行中のコンテキスト(いうまでもなく、Smalltalk ではこんなものもオブジェクト…)を得ることが可能ですが、Rubinius でも MethodContext.current という式で同じ情報にアクセスできます。 Squeak Smalltalk thisContext class "=> MethodContext " thisContext method class "=> CompiledMethod

    Rubinius で、Ruby にインクリメント演算子モドキを実装 - Smalltalkのtは小文字です
    zu2
    zu2 2008/02/14
    昔、F-BASICに命令拡張したりしたなあ
  • 1