2008年11月26日水曜日

オブジェクト指向

最近,オブジェクト指向の誕生などについて書かれている本を少し読んだのだが,少し疑問に思った.

今,世の中で言われているオブジェクト指向とはどんなものを言うのか.
なんだかよくわかなくなってきました.

さらによくわかないことを書くと

  1. 元祖オブジェクト指向言語とは
  2. オブジェクト指向とは
  3. オブジェクト指向プログラミングとは
  4. オブジェクト指向言語とは

3はプログラミングテクニックのようなもので,4は3が容易にできる言語と理解しているのですが,いまいちしっくりこない.
オブジェクト指向とはどのようなものから考えられたものなのか.

はっきりと答えがわからないことに,嫌になってきそう.

今現在Squeak,Ruby,Objective-Cを勉強しているが,やはり答えはみつからない.

Alan Kayが考えたものこそが,オブジェクト指向なのか.
まずは,sumimさんのページをじっくり読んで勉強してみよう.

「オブジェクト指向入門」も読んでみるのもいいかもしれない.


オブジェクト指向の概念の発明者は誰ですか? - sumim’s smalltalking-tos

2008年11月24日月曜日

Squeak Carbon OS-X VM 3.8.19beta2U

先日のMLにこんなのがありました.

[squeak-dev] Squeak Carbon OS-X VM 3.8.19beta2U ships.
http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-November/132403.html

新しいVMが出たんだなって思ったら,4GBのメモリを搭載した場合の問題を解消したVMということ.
かなり英語には自信がないので,ググっていたら,

ぐる式のページにも書いてありました(さすがです).
Squeak VM 3.8.19b2 - ぐる式

ちょうど研究室の,MacProがそれに当たるので,使わないと.

僕が個人的にもっているMacはCore Duoなのでメモリが4GBなんて話ありませんね.

2008年11月20日木曜日

Rubyのスコープ・制御構造

while や for がスコープを作らないのに対し、loop や each などのイテレータはスコープを作ります


loopやeachはスコープあるんですね・・・.


(1..5).each do |i|
var = true
end
p var

$ ruby test.rb
test.rb:4: undefined local variable or method `var' for main:Object (NameError)



Squeakでいうブロック変数になると考えれば良さそう.

同じような結果にするには・・・.

(1 to: 5) do:[:v |
| var |
var = true.].
var " popupが表示され,var appears to be undefined at this point. Proceed anyway"





trap::スコープ、制御構造 - Rubyリファレンスマニュアル

Ruby on Rails

昨日,Railsを使ってWeb APを作ろうと思って最新版にしてみたのですが・・・.

$ sudo gem update --system
$ sudo gem install rails
$ sudo gem update rake
$ sudo gem update sqlite3-ruby



これで僕もRails2.0だ!って喜んでいたのですが,仕様が結構変わっている?

一番の問題はscaffoldでモデル名のあとにフィールド名とデータ形式を入力しないといけない.かなり扱いづらい.

そのため,古いのに戻すことに(他にも色々変わっていると困るので).

バージョン確認は以下のコマンド

$ rails --version
Rails 1.2.6



さて,久しぶりRubyの勉強をしないといけませんw


2008年11月18日火曜日

Squeak 3.9とOmniBase

最近,忙しくMLを読んでいなかったのですが,梅澤さんによるSeasideの解説の次回はDB接続らしい.
Seasideのアプリを作るのは凄く楽しいのだが,やはりDBとの接続はちょっと大変.
MLにはそれに関連したイメージがお試しで配布がされているが,それが凄いと思った.

[Squeak-ja: 4068] 「SeasideへGO!!」の第三回


DBと言っても,データを保存する方法はさまざまな方法があるので,それをいろいろ試せるようになっている.

また日本語を扱うためのさまざまなパッケージが同梱されている.
(それらはSqueakSourceJでダウンロードできるようだ.すごいな・・・)


一番の驚きはOmniBase.
Squeak3.9でもきちんと動作するんですね.
大元のOmniBaseは全く更新されていないのに・・・(元がしっかりしているのかな,それかOmniBaseJがきちんと改善しているのかな).