タグ

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

  • 普通の言語ではどうやっても真似できない変態FizzBuzzをSqueak Smalltalkで - Smalltalkのtは小文字です

    あるいは、いかにしてここ数年来の懸案だった n fizz buzz 形式のメソッドコールによる FizzBuzz をいわゆる“黒魔術”(―を通り越してもはや禁じ手の類)を用いて実現したか。 オーソドックスに―ということであれば n fizz, n buzz ifEmpty: [n] が Smalltalk での FizzBuzz のベストアンサーだと思っている私ではありますが、それとは別に、考え得るもっともシンプルな式である n fizz buzz と書くだけで同様のことを実現できないものかということも定期的に巡ってくるブームのたびに模索し続けていて、なんとか n fizz buzz value という似た形まではもってこれてはいたものの、最後の余計なメソッドコールをどうにも無くすことができなくて行き詰まっていた、というのがこれまでの流れです。で、今回はその最後のコールをかなり無理矢理では

    普通の言語ではどうやっても真似できない変態FizzBuzzをSqueak Smalltalkで - Smalltalkのtは小文字です
    ogijun
    ogijun 2012/03/10
    いろいろすごい
  • 話題の Big Scripting Languages チートシートの Smalltalk の空欄を埋めてみた [後半] - Smalltalkのtは小文字です

    Big Scripting Languages: PHP, Perl, Python, Ruby, Smalltalk Smalltalk が普通に入っているのがすばらしいので、すこしだけ目立ち気味の空欄を GNU Smalltalk、Squeak、VisualWorks で項目を分けてからざっと調べて分かる範囲で埋めてみた―の巻の後半部分です。GSTer、VWer は、訂正・補足をお願いします。もちろん Squeak使いからのツッコミも歓迎です。 前半:basal, arithmetic and logic, containers, functions, execution control, environment and i/o libraries and modules > ruby GNU Smalltalk Squeak VisualWorks import library re

    話題の Big Scripting Languages チートシートの Smalltalk の空欄を埋めてみた [後半] - Smalltalkのtは小文字です
    ogijun
    ogijun 2010/07/26
    常に期待を裏切らない
  • 忙しい人のための“What Killed Smalltalk Could Kill Ruby, Too” - Smalltalkのtは小文字です

    http://railsconf.blip.tv/file/2089545/ Ruby の未来は TDD が救うというお話。ただ、悲しいかなボブおじさんが持っている Smalltalk の特に最近の知識は、最新の Smalltalk といえば Squeak(←VisualWorksだろjk)、Squeak で書かれたソフトは Etoys くらい(←Seasideくらいは知っとけよorz)…というきわめてお粗末な部類の、しかし、識者にはありがちなレベルであるため、ツッコむだけヤボというくらいツッコみどころ満載ですので要注意。そんなわけで、「滅びた」「死んだ」のくだりは、「かつての勢いは失った」くらいに読み替えつつ、ジェームス・ロバートソンの指摘する点も補足しながら聴いていただければと思います。 00'00"〜 地球史 05'40"〜 Ruby は Smalltalk の生まれ変わり、とも 0

    忙しい人のための“What Killed Smalltalk Could Kill Ruby, Too” - Smalltalkのtは小文字です
    ogijun
    ogijun 2009/11/02
  • MWさんの実行速度比較を、Smalltalkを追加して手元のMacとWinで試す - Smalltalkのtは小文字です

    このページは削除されました Python2.5.1、 Ruby1.8.6、Ruby1.9.1 に Smalltalk 勢として愚直な Squeak3.9 と、精鋭の VisualWorks7.6NC とを加えて速度比較を行なってみました。Java にはあえて抜けてもらったり、元ページで活躍の Python3.1 がまだインストールしてないので試せていないのと、それぞれ使用した処理系が微妙に古い点はどうかお許しを。たんにインストール and/or アップデートをサボっているだけです、すみません。すみませんっ。[8/12 UPDATE: Python3.1 の計測値、加えました] その代わりと言ってはなんですが、ハード(MacBook 2.4GHz 相当品)は変えずに OS を Mac OS X と Boot Camp で動かしている Win Vista (Smalltalk 以外は Cygw

    MWさんの実行速度比較を、Smalltalkを追加して手元のMacとWinで試す - Smalltalkのtは小文字です
    ogijun
    ogijun 2009/08/12
  • 「がっちりマンデー!!」のスティーブ・ジョブズ特集にガッカリ - Smalltalkのtは小文字です

    2月8日(日) あさ7時30分 新シリーズ「儲かり偉人伝」パソコン界の偉人!成功秘話!! こだわりの男!スティーブ・ジョブズの現在までを一挙公開。 リンゴマークのコンピュータファン西郷輝彦がスタジオに!! みどころ 久々となる新企画「儲かり偉人伝」がスタートする。 その記念すべき第1弾はリンゴマークのコンピュータの創業者スティーブ・ジョブズを特集する。 しかし、この会社ならビル・ゲイツなのでは?と思われる方もいらっしゃると思いますが、マスコミの前になかなか登場してこないというスティーブ・ジョブズの功績と実力は掘り下げれば掘り下げるほと興味深い。 スタジオゲストには、発売されているほとんどのモデルを買ったというファンの西郷輝彦と経済アナリストの森永卓郎を招き、長年に渡って実際に使ってきた立場でのトークも展開される。 さて、スティーブ・ジョブズだが、簡単に言えば現在のパソコンのスタイルを考案し

    ogijun
    ogijun 2009/02/09
    あとで書く
  • 恒例のフィボナッチベンチで V8 と Smalltalk、Ruby、Python、Scheme とを戦わせてみる - sumim’s smalltalking-tos

    爆速で話題の Google Chrome 搭載 JavaScript VM “V8” は、Animorphic Smalltalk VM がベースになっているらしい の続き。 その速いと言われる V8。実際、どのくらいの速度で動くのかを具体的な数値として見てみたくなったので、手軽に試すことができるフィボナッチベンチで、そのスコアを手元の処理系たちと並べて比較してみました。 環境は Modbook 2.4GHz Core 2 Duo(MacBook 相当)の Vista SP1 で、40番目のフィボナッチ数(63245986)の算出にかかった秒数をカウントしています。結果は次のようになりました。 言語 処理系 スコア [秒] JavaScript Google Chrome (V8) 2.95 JavaScript Firefox 3.01 (SpiderMonkey) 31.9 Small

    恒例のフィボナッチベンチで V8 と Smalltalk、Ruby、Python、Scheme とを戦わせてみる - sumim’s smalltalking-tos
    ogijun
    ogijun 2008/09/05
  • アラン・ケイの「Is "Software Engineering" an Oxymoron?」 - Smalltalkのtは小文字です

    UPDATE!!: id:propella さんがすばらしい翻訳を公開してくださいましたので、そちらをどうぞ 「ソフトウェア工学」は矛盾語法か? "-- -- -- -- -- -- -- -- -- -- -- -- -- --" Is "Software Engineering" an Oxymoron? [PDF(勝手ミラー版)] タイトルの訳はよく分からないのですが「“ソフトウエア工学”は矛盾表現か?」みたいな感じでしょうか。 これは、Croquet(Squeak システム上に構築された仮想3D空間オーサリング用のフレームワーク。Qwaq 社による商用化もされている)の最初の公開バージョンのマニュアル(Croquet0.1.pdf)の付録に掲載された文章なのですが、なぜか公式サイトからは消えていて、ググって見つけた勝手アーカイブから入手できる元の PDF でも絵が壊れていたので、そ

    アラン・ケイの「Is "Software Engineering" an Oxymoron?」 - Smalltalkのtは小文字です
    ogijun
    ogijun 2008/08/06
  • GemStone の独自拡張 VM(Facets Java VM および MagLev Ruby VM)と、JRuby および Rubinius の Ruby 処理系記述部分を組み合わせると同社製 OODB がフルに使える Ruby 処理系ができる - sumim’s smalltalking-tos

    ってことだったのか!(おそらく) というのも、以前、Rubinius GemstoneのOODBJRubyとRubiniusをサポート を読んだとき、JRuby と Rubinius があるのになんで Matz Ruby や YARV への言及がないんだろうと疑問に思って、くしくも Matz にっきにも関連して、 Gemstoneといえば昔一世を風靡したOODBMS。これがJRubyやRubiniusから使えるようになる、という話。私はその頃ObjectStoreを使ってたけど。 待て。JavaとのコネクションでなんでもできるJRubyは分かるが Rubiniusが出てて、なんでRubyが対象にならないのか。不思議。 http://www.rubyist.net/~matz/20070807.html#p06 といった指摘があったのを見ても、(“昔一世を…”とか、例によって Smal

    GemStone の独自拡張 VM(Facets Java VM および MagLev Ruby VM)と、JRuby および Rubinius の Ruby 処理系記述部分を組み合わせると同社製 OODB がフルに使える Ruby 処理系ができる - sumim’s smalltalking-tos
    ogijun
    ogijun 2008/06/07
  • Squeak Smalltalk 指向の Ruby VM、Rubinius でフィボナッチベンチ - Smalltalkのtは小文字です

    http://rubini.us/ http://rubinius.lighthouseapp.com/projects/5089/getting-started Evan Phoenix on Rubinius - VM Internals Interview Cygwin でビルドできねーできねーってあれやこれや試してすっかり時間を無駄にしてしまっていた Rubinius ですが(Win にはまだ対応していないってドキュメントをまず読めよ…→俺 orz)、OS X であっさりビルドできましたので、とりあえずお約束のフィボナッチベンチ。Rubinius、健闘していますね。 なお、Rubinius が Matz Ruby よりちょっと高速な(そして、YARV よりは遅い(^_^;))だけの Ruby 処理系…というわけではないという話は、次の id:sumim:20080214#p1 に。

    Squeak Smalltalk 指向の Ruby VM、Rubinius でフィボナッチベンチ - Smalltalkのtは小文字です
  • 最もタフになれる「初心者用言語」は Squeak Smalltalk! - Smalltalkのtは小文字です

    Smalltalk は文法が独自だから、一般的なC言語系文法の言語を学び直すのにまたひと苦労できるよ! 特殊形式やマクロがないぶんセマンティックスは LISP よりシンプルだから、脳資源の損失を最少にできるよ! 反面、組み込みクラス数が二千以上、メソッド数が五万弱と尋常じゃないから、スルー力も会得できるよ! たいていのものはそろっているから、書いたあとで気づいて脱力したり、書く前に探す癖がつけられるよ! でもドキュメントなんかないから、半ば強制的にソースを読む習慣をつけられるよ! すべて Smalltalk で書かれているから、Smalltalk を学ばないと何も得られない理不尽さを体験できるよ! 隠しごとがないから、仕様や処理系をめちゃくちゃにする他の言語では禁じられた遊びができるよ! 絶えずいろいろ変わるから、Ruby のバージョン間非互換とかかわいいもんだと笑えるおおらかさを養えるよ

    最もタフになれる「初心者用言語」は Squeak Smalltalk! - Smalltalkのtは小文字です
    ogijun
    ogijun 2008/02/05
  • Ruby vs. Squeak Smalltalk - Smalltalkのtは小文字です

    ときどきの雑記帖 i戦士篇 - from reddit - RubyとSmalltalkの比較 など経由で見つけた、Ruby vs. Smalltalk | Lambda the Ultimate をなぞって(パクって)、Squeak Smalltalk 向けにいろいろ書き直してみました。要約なんだか反論なんだか補足なんだかわからなくなっちゃっていますが、あしからず。あと、ネタ元は最後のほうほど熱く語っていますが、こちらではあとに行くほど疲れて飽きてきて投げやりです。ごめんなさい。 ■ メソッドの再利用は、Ruby はミックスイン(Mixin)、Squeak Smalltalk はトレイツ(Traits)で。 ミックスインは、抽象クラスかそれに準ずるエンティティ(Ruby ではモジュール)をメソッドホルダ代わりに用い、継承パスに差し込んで使う多重継承機構の一。他方でトレイツは、専用のメソッ

    Ruby vs. Squeak Smalltalk - Smalltalkのtは小文字です
    ogijun
    ogijun 2008/01/22
  • 本当に 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は小文字です
    ogijun
    ogijun 2008/01/14
  • Ruby on Rails vs Smalltalk Seaside をお手軽にムービーで鑑賞 - Smalltalkのtは小文字です

    Smalltalk Tidbits, Industry Rants - Seaside and Rails Comparison Rails と Seaside でそれぞれ "Hello World!" Web アプリを作った(Ruby on Rails は出来合いのものを使用?)あと、バグを仕込んでわざとエラーを起こさせ、簡単なデバッグ作業を比較してみせる5分弱のムービーです。Seaside には Squeak Smalltalk ではなく、Cincom Smalltalk(VisualWorks)を使っています。VisualWorks のコードブラウザの使い方(クラスの新規作成やそれへのメソッドの追加や修正方法…)の入門にもお勧め。 個人的には、ちょうど Leopard をインストールしたところなので、こんなかんじの WebObjects 版みたいなのがあると併せて試せてうれしいですね

    Ruby on Rails vs Smalltalk Seaside をお手軽にムービーで鑑賞 - Smalltalkのtは小文字です
    ogijun
    ogijun 2007/11/20
    LeopardでWO環境作ってないよーどうしよう。あとで書く。
  • sumim's smalltalking-tos - ちまた(っても Squeak 界隈限定)で流行りの Coke で遊んでみました

    アラン・ケイが Smalltalk(Squeak)を卒業して次を目指すための秘密兵器と目される“黄金の箱”あるいは「イアンのやつ」 と呼ばれている Pepsi & Coke 。地球の重力(暫定ダイナブック= Smalltalk )に魂を縛られた「オールドタイプ」な私には明らかに新たな「脅威」(^_^;)なわけですが、こいつがどの程度動くものなのか、はたして当に Smalltalk(や LISP)を凌駕する「ニュータイプ」なのかも興味があるところなので、ちょっとだけいじってみました。 とは申しましても、「オールドタイプ」である以前に、私は言語処理系内部や仕組みことがよくわからないので(ぉぃぉぃ…)、サンプルに見つけて面白そうだなーと感じた PythonJavaScript もどきのコードを比較的高速に走らせるってのをチョしてみただけです(実質はたらいまわし大会?w)。けっきょく“コイ

    sumim's smalltalking-tos - ちまた(っても Squeak 界隈限定)で流行りの Coke で遊んでみました
    ogijun
    ogijun 2007/03/06
    Pepsi&Cokeまとめ
  • Squeak Smalltalk で FizzBuzz - Smalltalkのtは小文字です

    コメント欄が「キミならどう書く? 〜いろんな言語で FizzBuzz 〜」状態…になっている Raganwald: Don't Overthink FizzBuzz より。当該エントリー中に提示されている Ruby で書かれたちょっと変わった実装の動きがよく分からなかったので、例によって Squeak Smalltalk で直訳気味に変換してから動きを調べてみることに。 …と、その前に。リンク先にある Ruby 版のように、ある種、難読化を施したものを考えたり読み解いたりするのもそれなりに愉しいことだけれども、やっぱり Smalltalk の真骨頂はコードの読み下しやすさ(誰です!? そこで首をかしげているのは? ムッキー!w)。なので、まずは読んで内容がすぐ分かるオーソドックスなものから。 よくあるように(あるいはコードゴルフ的に…)出力までを一気にまとめて書いてしまってもよいのですが、

    Squeak Smalltalk で FizzBuzz - Smalltalkのtは小文字です
    ogijun
    ogijun 2007/03/01
    たのしい
  • オブジェクト指向言語として必須な要素とは何か? - Smalltalkのtは小文字です

    ときどきの雑記帖 リターンズ -おしえて(OOPLの)えらいひと より。お呼びでない…とは思いましたが、私のこれまで調べたことを頭の中で整理するのに役立ちそうなので、できるだけ簡潔にまとめてみます。 ケイのオブジェクト指向(メッセージングのオブジェクト指向)に立脚する場合 このオブジェクト指向のコンセプト パーソナルコンピューティングに係わるものをメッセージングで表現。 それをサポートする言語に必須のもの メッセージング(あるいは、それに準ずる)機構と、メッセージのレシーバ(たいていは、オブジェクト。状態や処理の保持・保護・隠蔽を行なえることが期待される)。 原則として欠いてはいけない機能 可能な限りの動的性。 ストラウストラップのオブジェクト指向(ユーザー定義型のオブジェクト指向)に立脚する場合 このオブジェクト指向のコンセプト 抽象データ型(この文脈ではユーザー定義型を指す)を「クラス

    オブジェクト指向言語として必須な要素とは何か? - Smalltalkのtは小文字です
    ogijun
    ogijun 2007/01/15
    Shiroさんのコメントも
  • Java や Objective-C におけるクラスの“振る舞い”で驚かされたこと - Smalltalkのtは小文字です

    タイトルのとおりの印象を持ったのをきっかけにして、Java や Objective-C の勉強を兼ねて調べてみたことをメモ。三さんと odz さんとのやりとりを見ていて、ちょっと関係することもあるかな…とも。 Smalltalk のクラスの“振る舞い” よく言われるように、Smalltalk ではクラスもオブジェクトです。このことは、クラスも別のクラス(俗に言うところのメタクラス)のインスタンスであり、また、メッセージのレシーバになることができることを意味します。 もっとも後者の「レシーバに云々…」については、ケイのオブジェクト指向かそれに準ずるオブジェクト指向に立脚したときに限る…との但し書きが必要でしょう。つまり、C++ や Eiffel、Java など、ストラウストラップのオブジェクト指向の強い影響下にある言語においては、そもそもメッセージングという概念はそぐわないので後者は無用と

    Java や Objective-C におけるクラスの“振る舞い”で驚かされたこと - Smalltalkのtは小文字です
  • ガイ・スティールJrが Sun で開発中の新言語は Traits ベース - Smalltalkのtは小文字です

    Derive Your Dreams 経由で。 http://research.sun.com/projects/plrg/fortress0866.pdf Traits are named program constructs that declare sets of methods. They were introduced in the Self programming language, and their semantic properties (and advantages over conventional class inheritance) were analyzed by Schärli, Ducasse, Nierstrasz, and Black [23]. In Fortress, a method declared by a trait may be eithe

    ガイ・スティールJrが Sun で開発中の新言語は Traits ベース - Smalltalkのtは小文字です
  • OS X で Squeak VM の外部プラグインのビルド - Smalltalkのtは小文字です

    Little Smalltalk で VM のソースを眺めていたら、むらむら(違)と Squeak VM をビルドしたくなったのですが、初心者にはとうてい無理っぽかったので、外部プラグイン(OS X 向けには ○○.bundle とかいうやつ。仮想マシンレベルで Squeak システムの機能を拡張する)のビルドで我慢しておくことしました。以下はそのメモ。 いろいろと参考にさせていただきました。ありがとうございます。 Squeaker's Scrapbook - MacOSX版VMのビルドについて 自由自在 Sqeuak プログラミング - 14 章、VM プラグインの作成 ど素人のためのど素人によるSqueak入門 - VM Plugin 2ちゃんねる - [荒井権]すくいーく・スクイーク[アラン・ケイ] (387-391) VMMaker のインストール Squeak システムを起動し、

    OS X で Squeak VM の外部プラグインのビルド - Smalltalkのtは小文字です
  • sumim’s smalltalking-tos - Smalltalk-72 で遊ぶ

    id:lethevert さんのコメント欄で id:squeaker さんのツッコミがあったのをきっかけに、また久々に Smalltalk-72 で遊んでみたので、メモ。 今回は、(今の)Smalltalk について知見を深めるためというより、純粋に“Smalltalk-72”という言語に興味をもって接したせいもあってか、メッセージングというたったひとつのシンプルなルールだけで、言語としての豊かな“表現力”を示してみせるパワーというか妙というかにひどく驚かされながら、けっこう楽しめました。おかげで、これまでは「こんなの Smalltalk じゃないやいっ! ワーン!!゚゚(´□`。)°゚。」的イメージ(^_^;)だったのが、今ではすっかり Smalltalk-72 の にわかファンになってしまいましたとさ。w 素人考えですが、ちょっと言語仕様のようなものをリファインすれば、30年を経た今で

    sumim’s smalltalking-tos - Smalltalk-72 で遊ぶ