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

世界のナベアツに“はじめての Scala”で果敢に挑戦

リファレンスをひきひき…(^_^;)。こんなふうに書いた方がシンプルだよ…とか教えていただければさいわいです。 object Nabeatsu { def main(args: Array[String]) { // 1 から 40 まで数えて((3の倍数)と(3がつく数字)の時だけ"アホに"なります) 1 から 40 ま…

世界のナベアツに Ruby で挑戦(sumim 版)

世界のナベアツに Ruby で挑戦する - Tociyuki::Diary すばらしい! 自分なりにも、Squeak Smalltalk 版からの移植っぽいやつを考えてみました(「#アホに」はお借りしました…)。Ruby は、ブロックがオブジェクトじゃないのがつらいですね(^_^;)。あと、Rub…

世界のナベアツに Squeak Smalltalk で挑戦する(改訂)

流行っているみたいなので。 力試しにナベアツのような判定をするプログラムを作ろうとしたと… - 人力検索はてな ただし、ふつうに書いてもつまらないので、例によって Smalltalk ならではの“はるか斜め上”に向かってかっ飛ばしてみました。w (#改訂:最…

世界のナベアツに Squeak Smalltalk で挑戦する(改訂)…の解説

id:sumim:20080417:p1 で定義されたメソッド群について、おおざっぱにですが説明を加えたいと思います。 まず、簡単なところで「#と:」と「#の時だけ:」。前者は #or: のエイリアス。後者も、ほぼ #ifTrue: のエイリアスですが、引数を改めてブロック化する…

三系統の“オブジェクト指向”を「北斗の拳」に例えてみる

OOP

id:sumim:20080415:p1 の続き? ▼データ型にこだわるOO → 南斗聖拳 広く伝承され、主立ったもので総勢一〇八派に分派している。また、有力流派から派生する流派(派生流派)も存在するため、流派の数はさらに増える(南斗聖拳 - Wikipedia より)。切り裂…

三系統の“オブジェクト指向”をできるだけ純粋にサポートする言語を探してみる

OOP

id:sumim:20080416:p1 の続き? ▼データ型にこだわるOO ユーザー定義型へのこだわりといえば、メインプログラムさえも型で表現しようとする Java をおいて他にないでしょう。ありがちな「メッセージングにこだわる〜」からの“汚染”もほぼ皆無のようですし…

“オブジェクト指向”の本質

OOP

「OO(OOP)とは何か?」については、ネタが割れてしまえばそんなに複雑なものではない…と個人的には最近、考えるようになってきています。 リスコフのユーザー定義型(aka、抽象データ型。データと手続きのセット)そのもの、あるいはその「ユーザー定…

プロトタイプベースの誤解

OOP

クラスベースのOOとプロトタイプベースのOOで決定的に違うのは、プログラムを動かしている最中にオブジェクトが出来ること、すなわちメソッド(method)を追加したり再定義したりできるかだ。 404 Blog Not Found:タイプ・クラス・プロトタイプ - OOの語彙 こ…

求人にみるプログラミング言語シェア

とりあえずJavaとC/C++/C#、あとJavaScriptを覚えれば、当分仕事には困らないようである。COBOLのしぶとさも目立つ。ちなみにHaskellやOCamlの求人は10以下だったそうだ。成長率では、C#とRubyが飛び抜けた伸びを示している。 引く手あまたのプログラミング…

Ruby に特異クラスを返すメソッドを設けるなら…

[ruby-dev:34192] Re: Object#singleton_class 気持ちは分かりますが、名前の合意ができるまでは導入しません。 * singleton_class→singletonパターンに登場するクラス、とく に標準添付のsingleton.rbで定義されているSingletonクラス トの混同がうれしくな…

Ruby と Squeak Smalltalk の行単位文字列操作について

Smalltalk と Ruby の類似性の高さに引きずられて、とんでもない勘違いをしていたので改めて自分用のまとめを兼ねてメモ。またおかしいところがあったらツッコミ、お願いします。 Ruby 1.8 の String の Enumerable なメソッドは Smalltalk のような文字ごと…

Squeak Smalltalk にあって Ruby にない文字列操作

大山鳴動して鼠(演算処理。後述)一匹…って感じ? 文字列クラスのメソッド数比較 に絡めた Ruby にあって Squeak Smalltalk にはない文字列操作 の続き。で、まずふと疑問に思ったのですが、 (String.instance_methods - Object.instance_methods).size と…

Ruby にあって Squeak Smalltalk にはない文字列操作

文字列クラスのメソッド数比較 に絡めて。両者の共通項については、以前すでに Ruby との文字列操作の比較 で列挙しましたが、今回は差異(特に Ruby からの視点で…)を意識して整理してみました。 とりあえず、両者共通の機能を持つメソッドを抽出してみる…

文字列クラスのメソッド数比較

文字列(String)クラスのメソッド数。Python: 37 Java: 65 Ruby: 119圧倒的じゃないか、我が軍は。ちなみに、実際に数えたらRuby 1.8で102、Ruby 1.9で103だった。ruby -e 'p ((String.instance_methods - Object.instance_methods).size)' Matzにっき - Numb…

最低限のチェンジセット入門(Squeak Smalltalk 向け)

.stではなくチェンジセット(.cs)で出されると良いと思います 鉄は熱いうちに打て。○○○は柔らかいうちに突け - ずっと君のターン(コメント欄) 勉強会ですでに触れられている内容でしたら重複します(し、コメントに横から失礼とは思いました…)が、チェンジ…

「最低限の Squeak Smalltalk 入門」の補足…というか四方山話

「最低限の…」にからめた、とりとめのない話。 >「コードを入力する場所くらいは用意しないといけない」 じつのところ、Squeak Smalltalk で Smalltalk 式を評価するにあたっては、必ずしもワークスペースを用意する必要はありません(もちろん、ワークスペ…

LISP のマクロの便利さ(の一部)を、構文で補ったのが Ruby 他で、GUI(IDE)で補ったのが Smalltalk …なのでは?

と、あえてクラスブラウザ(GUI)は使わずに式でクラスやメソッドを定義する「最低限の…」を書いていて、ふと思った。というか、通常の言語では構文の工夫で補うところを、Smalltalk は GUI の工夫(本来の式の評価による作業を GUI を介して行なわせること…

最低限の Squeak Smalltalk 入門

ついでにSmalltalkでも試そうと思ってSqueakをインストールしたけど… - 西尾泰和のはてなダイアリー Smalltalk、特に Squeak Smalltalk は、言語処理系や IDE というより、あたかも“ゲストOS”のように振る舞うので、ちょっと試してみたいと思い立ってインス…

Ruby もいいけど Smalltalk でも、おk。2

inforno :: 日本語プログラミング言語Scala で、強敵 Scala からの挑戦がっ!w というわけで、もうひとひねりして Scala の出方をみるテスト。 100の平方根の逆数を表示する "=> 0.1 " なお、このエントリーを登録したあとに気づいた Io のスペースいらない…

Ruby もいいけど Smalltalk でも、おk。3

ネタはネタとして、じつは Io はスペースなしでもできる子 とのこと。なるほど、Rails …というか ActiveRecord 的で面白いですね。 100の平方根の逆数を表示する "=> 0.1 " doesNotUnderstand: aMessage | selStrs | selStrs := aMessage selector findBetwe…

Ruby もいいけど Smalltalk でも、おk。

第20回 日本語でおk | WIRED VISION 100 の平方根 の逆数 を表示する "=> 0.1 " RSpec とかも。 ヽ( ・∀・)ノくまくまー: ちなみに、Smalltalk でやると… もちろん仕込みは必要です(^_^;)。 Number >> の平方根 ^self sqrt Number >> の逆数 ^self reciproca…

Arc チャレンジがらみで Rails をいじる

ほとんど Toxic Elephant - The Arc Challenge からの丸写しですが。 said_controller.rb class SaidController < ApplicationController def click_here; flash[:foo] = params['foo'] end end index.html.erb <% form_tag :action => 'click_here' do %> <…

Arc チャレンジがらみで Seaside をいじる 2

こちらもほぼ Lukas Renggli: We take the Arc Challenge の丸写し。 Said を WAComponent ではなく WATask のサブクラスとして作成し、#renderContentOn: ではなく #go を次のように再定義。ClickHere はそのまま流用。 Said >> go | foo | foo := self req…

Arc チャレンジがらみで Arc をいじる

WiLiKi: Arcからの挑戦 MzScheme は v352 を使わなければいけないので MacPorts にちょっと細工をしないといけないようです。 The electrofriend | You'll see how very reasonable the price is, when you consider that you can put an electrofriend in y…

Arc チャレンジがらみで Seaside をいじる

umejava さんの SeasideJOne を使う。 SeasideJOnePlus Seaside 2.8 ベースの「SeasideJOne(2008/2/23) + Seasideチュートリアル in OSC 2008 Tokyo/Spring」をダウンロードして展開。OS X では mac_seaside.command をダブルクリックして Squeak 環境を起動…

ランダル・シュウォーツによる Squeak Etoys 紹介ビデオ

何かにつけて滅びたことにされがちな Smalltalk への復帰…と聞いてか Matz もビックリな、ランダル・シュウォーツその人による Squeak Etoys 紹介。Smalltalk や Squeak 環境、OLPC XO についても軽く触れられています。オーソドックスな「ドライブ・ア・カ…

BlockSorting を Squeak Smalltalk で

BlockSorting - 西尾泰和のはてなダイアリー 経由で http://homepage3.nifty.com/DO/blocksorting.htm を Squeak Smalltalk で書いてみる。 | encode decode | encode := [:src | | srcsrc vars code | srcsrc := src, src. vars := (1 to: src size) collec…

Rubinius で、Ruby にインクリメント演算子モドキを実装

今のところはまだ C 言語で書かれている Rubinius VM ですが(将来的には、Squeak Smalltalk の VM と似たような感じで、C 言語に直訳可能な Ruby のサブセットにより書き換えられる予定とか)、すでに Smalltalk ばりの面白い機能をいろいろと備えています…

Squeak Smalltalk 指向の Ruby VM、Rubinius でフィボナッチベンチ

http://rubini.us/ http://rubinius.lighthouseapp.com/projects/5089/getting-started Evan Phoenix on Rubinius - VM Internals Interview Cygwin でビルドできねーできねーってあれやこれや試してすっかり時間を無駄にしてしまっていた Rubinius ですが(…

Smalltalk = 名前のわりに使ったことがある人がいない言語

同時に、名前が知られているわりに、日常、そこからどんな恩恵をうけているのかについて具体的には知られていないソフトウエア…だとも言えそうですね。とくに Mac や Ruby のファンは Smalltalk が何だかを知らずに、それぞれのお気に入りの特徴の自慢をした…