タグ

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

  • スティーブ・ジョブズ もうひとつの1995年ロングインタビュー - Smalltalkのtは小文字です

    話題の 『スティーブ・ジョブズ1995 〜失われたインタビュー〜』 を iTunesストアで借りて観たのですが、インタビュワーがなんとなくいちいち煽り気味でむかつくのと、ゼロックスでの GUI との出会いのくだりがあっさりしているのが気にくわないので、同じ 1995年のロングインタビューなら個人的にはこちらのほうをお薦めしたいです。関係者の不注意でロストしてもないし、なによりロハだし。w Steve Jobs 1995 Interview NeXT Computer from Steve Next on Vimeo. 内容も(英語ですが)読めます。 Smithsonian Oral and Video Histories: Steve Jobs 同じ時期だからかもしれないけれど、内容もかなり似通っています。し、前述のとおりアラン・ケイたちの暫定ダイナブック(AltoでSmalltalkをG

    スティーブ・ジョブズ もうひとつの1995年ロングインタビュー - Smalltalkのtは小文字です
    terazzo
    terazzo 2013/11/15
    APL!/あんまり関係ないけど詳解Objective-Cの荻原先生もAPL使ってたって言ってたような。
  • Scalaのトレイトは実はトレイトじゃなくただのミクスイン - Smalltalkのtは小文字です

    タイトルは釣りです。 まずおおざっぱに用語の整理をさせていただくと、ここで「トレイト」は、シェルリ(Nathanael Schärli)らが2002年頃に発表したTraitsやそれ用のエンティティ(trait)を指し、「ミクスイン(Mixin, mixin)」は従来からある実装の多重継承方法のひとつ、具体的には継承機構を使ってメソッドを定義したクラス様エンティティ(クラスでも構わない)を継承パスに差し込むことで対象となるクラスにメソッドを追加する機構(特別な機構を要しないときは単なるクラスの運用方法)、そのときに用いるクラスあるいはクラス様エンティティ(例えばRubyならモジュールとか)を指すことにします。 トレイトやその機構について説明すべきことはいろいろありそうですが、詳しくはシェルリらの論文(Traits: Composable Units of Behaviour など)を読んでい

    Scalaのトレイトは実はトレイトじゃなくただのミクスイン - Smalltalkのtは小文字です
    terazzo
    terazzo 2013/03/06
    この辺読んでるとピンとくる話題→http://d.hatena.ne.jp/sumim/20070425/p1 /traitに多重継承を実現する役目があったこと自体忘れてた
  • 普通の言語ではどうやっても真似できない変態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は小文字です
    terazzo
    terazzo 2012/03/09
    継続の中身を見て処理を変える。/kilimとか使えば似たようなことできるのかな?
  • 数値のFizz、Buzz等への変換を、Smalltalk(とRuby)で通常より直感的に表現したい - Smalltalkのtは小文字です

    FizzBuzz を Smalltalk的に書くとして、ある n に対して、 n asFizzString, n asBuzzString ifEmpty: [n printString] あるいはもっと簡素に、 n fizz, n buzz ifEmpty: [n] というふうに n にメッセージを送ることでしかるべく変換された文字列の結合―という手続きとして表現するのが落としどころかな…ということは分かっているのですが、その一方で、たとえば関数的に n fizz buzz のようにすっきりと書いて(すくなくとも n はひとつ与えるだけで)済ませることはできないかと、常々ひっかかっていたので、みたびブームのこの機にちょっと考えてみました。 残念ながら、リーダーマクロっぽい機能があった Smalltalk-72 のころならともかく、今の Smalltalk にはメッセージに別のメッセージを

    数値のFizz、Buzz等への変換を、Smalltalk(とRuby)で通常より直感的に表現したい - Smalltalkのtは小文字です
    terazzo
    terazzo 2011/01/29
    いっそ数字もAssociationにしたいけどそうすると3FizzとかにならないようにしないといけないのがFizzBuzzの微妙なところ/柑橘類さえ、もといMonadさえあればー
  • Squeak4.1 ではようやくクロージャーがサポートされるらしい - Smalltalkのtは小文字です

    個人的には実験的新機能導入に振り回されるのを嫌って Squeak の最新版を追わなくなって久しいですのですが、その“新機能”のひとつが待望のクロージャーサポートとなれば話は別。RC1 なるベータ版が公開されたようなので、さっそく試してみました。 Squeak4.1-9850-beta-win32.zip 見た目が Pharo テイストですね。新たにウィジェットの配置やアイコンなどにも手が入れられ、さらに小ぎれいになってきました。 リリースノート(What's New)によると、UI のみならず内部的にもいろいろと整理が進んだようです。ただ、そこは悪名高き(…は言い過ぎか?)“Squeakクオリティ”。手が入ったってことは、それだけ壊された場所も多いってことを意味するので、なじみの機能の何がどこまで壊されているのか、こまかく調べてゆくのが今から恐ろしいです。^^; とりあえず、#duplic

    Squeak4.1 ではようやくクロージャーがサポートされるらしい - Smalltalkのtは小文字です
    terazzo
    terazzo 2010/03/31
  • Ruby がクラスにメソッドを詰め込みすぎだって? ふっ… - Smalltalkのtは小文字です

    ソフトウェア工学の講義中、先生が「Rubyはクラスにメソッドを詰め込みすぎ」という主旨のことを言ったけれど、オブジェクトが何であるかよりもオブジェクトがどのように振る舞うかを重視するとき、Rubyのやりかたは正しいんじゃないかなーと思った。 ともくんのママ on Twitter: "ソフトウェア工学の講義中、先生が「Rubyはクラスにメソッドを詰め込みすぎ」という主旨のことを言ったけれど、オブジェクトが何であるかよりもオブジェクトがどのように振る舞うかを重視するとき、Rubyのやりかたは正しいんじゃないかなーと思った。" CocoaのNSStringクラス見せたら発狂すんじゃないかと思ったが、SqueakのStringクラス見たら自分も発狂しかけた。 ともくんのママ on Twitter: "CocoaのNSStringクラス見せたら発狂すんじゃないかと思ったが、SqueakのString

    Ruby がクラスにメソッドを詰め込みすぎだって? ふっ… - Smalltalkのtは小文字です
    terazzo
    terazzo 2009/06/19
    新しい関心事が増えた時に各クラスを扱うハンドラやVisitor書くんじゃなくて、個々のクラスの方にメソッド足すやり方だもんな(←主にObjective-Cのカテゴリを想定。) そういう意味で整理は出来ていると思う。
  •  ある人が会社員になったり、学生になったりすることを Smalltalk で - Smalltalkのtは小文字です

    つまり会社員、学生をクラスとして定義した場合には、ある人が会社員になったり、学生になったりすることをオブジェクト指向プログラミング言語では直接表現できないのです。 オブジェクト指向は当に「オブジェクト」指向か? OOとはなにか - みねこあ で引用されているこの文を見て、「できないのです」と言い切られてしまうとついね。つい。^^; ということで文脈も空気も読まないで悪ふざけ。 Object subclass: #会社員 会社員 >> 就学する ^self become: (self as: 学生) 会社員 >> 就職する self error: 'すでに会社員です' Object subclass: #学生 学生 >> 就学する self error: 'すでに学生です' 学生 >> 就職する ^self become: (self as: 会社員) | Aさん | Aさん := 学生

     ある人が会社員になったり、学生になったりすることを Smalltalk で - Smalltalkのtは小文字です
    terazzo
    terazzo 2009/01/23
    続き(各言語で)も。
  • MacよりもWindowsのほうが歴史が長い? 〜右クリックメニューの起源〜 - Smalltalkのtは小文字です

    一方のWindowsでは、最初から2ボタン以上のマウスを標準的に使用するようにはなっていたものの、左ボタンと右ボタンの違いをシステムレベルではっきりと分け、それぞれの用途を明確に定めたのはWindows 95からだった。その時点で、右ボタンはコンテクストメニュー用として割り当てられた。従って、コンテクストメニューも右ボタンによる操作も、WindowsのほうがMacより歴史が長い。 ASCII.jp:右クリックメニュー、その歴史と効果 (3/3)|柴田文彦の“GUIの基礎と実践” 必ずしも「間違い」というわけではないのですが、右クリックメニュー自体は Mac の前身の Lisa のプロトタイプ時代にすでに試されていますから(Lisa のプロトタイプは2ボタンマウスだった)、Microsoft より Apple のほうが取り組みとしては古い、というのが実際です。まだメニューバーやプルダウンメニ

    MacよりもWindowsのほうが歴史が長い? 〜右クリックメニューの起源〜 - Smalltalkのtは小文字です
    terazzo
    terazzo 2008/12/04
  • 二つのオブジェクト指向とそれぞれのメリット - Smalltalkのtは小文字です

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

    二つのオブジェクト指向とそれぞれのメリット - Smalltalkのtは小文字です
    terazzo
    terazzo 2008/10/29
    メッセージング方式の場合、セマンティックはどうやって固定されるんだろう。同一セレクタ(シグネチャ)なら同一の内容という扱いなんだろうか。
  • 爆速で話題の 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は小文字です
    terazzo
    terazzo 2008/09/04
  • アラン・ケイの「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は小文字です
    terazzo
    terazzo 2008/08/06
  • 「初めてのRuby」の言語系図を勝手に添削 - Smalltalkのtは小文字です

    http://www.amazon.co.jp/dp/4873113679 http://yugui.jp/wiki/LearningRuby この手の系図には間違いがつきものなのですが、「プログラム言語の系譜で、Lisp→Smalltalkの線を引いてるのはこのだけ!」と言われてしまうとつい反応したくなるのが人情というものでして…汗。 ▼ Pascal → Simula !? '70 → '67(SIMULA 67 の場合。SIMULA I なら '66) というのは時系列的にまずいと思います。ここはオーソドックスに、ALGOL 60 から線を延ばして、 ALGOL 60 → SIMULA と、すべきかと。 SIMULA: an ALGOL-based simulation language (ダウンロードは有料) Some features of the SIMULA 67 lang

    「初めてのRuby」の言語系図を勝手に添削 - Smalltalkのtは小文字です
    terazzo
    terazzo 2008/07/23
  • 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は小文字です
    terazzo
    terazzo 2008/01/22
    イメージベースがよく分からなかった。例えばirb上でクラス定義した場合ファイル化されるんでしょうか。
  • 本当に 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は小文字です
    terazzo
    terazzo 2008/01/13
    むしろアカデミックな成果を製品に生かせるところが素晴らしいと思うので、(○○初とかよりも)そっちをアピールした方が良いと思う。
  • Java の「インターフェイス」という機能の元ネタ - Smalltalkのtは小文字です

    具体的な言語処理系というわけではありませんが、おそらくこれが元ネタだろうというアイデアが記された論文は見つかりました。もっともゴスリングが Java や Oak(Java の前身…というか初期バージョンそのもの。変わったのは名前だけなので)について書いたものに Java のインターフェイスは○○を参考にして考えた…という記述を見つけられずにいるので、これをFAとするには、もう少し調査が必要そうですが、とりあえずということで。 Interfaces for strongly-typed object-oriented programming (1989) - ダウンロードは有料 この論文中では、たとえば Point というインターフェイスを定義して、それを実装した polar_point というクラスを定義する例として、仮想言語を用いてこんなコードが示されています。 interface Po

    Java の「インターフェイス」という機能の元ネタ - Smalltalkのtは小文字です
    terazzo
    terazzo 2007/11/26
    Objective-CのProtocolが元ネタ説(http://virtualschool.edu/objectivec/influenceOnJava.html)もあるけど、型付けの研究から直接持ってきたって話の方が自然かも。共通祖先かもしれないけど。
  • 1