2008年2月27日水曜日

その気になれば

Squeakって日本語のクラス名もありなんですね.

日本語EToysで日本語のmethodを送っているので,同じ感じでクラス名も日本語で作成したらきちんと動作したので驚きです.

これを使えばオブジェクト指向の勉強にもいかせるのでは?
こういうメリットを生かして,新しいプログラミング学習方法を提案するのも面白いかもしれませんね.

ちなみに試しに作ったもの


以下の内容問題あり*1

Object>>りんご

りんご (class)>>身長
^"146cm"



そして,実行.


りんご 身長 "146cm"



それにしても,なんだか奇妙な感じですね.


以前から,bloggerでcodeを書くときに困っていたのですが,CSSで一応改善.


*1 クラスもオブジェクトなのでいいような気がしますが,やっぱりinstanceを作ってメッセージを送るほうがいいのかな・・・

2008年2月15日金曜日

Squeakに感謝

今日,卒業研究発表会がありました.
なんとか無事に終えることができました.

振り返ってみると本当にSqueakにも助けられました.
やはり来年度もSqueakを使い続けていこうと思います.

2008年1月29日火曜日

Squeakの日本語環境

Squeak3.9に正式対応した日本語環境のパッケージが公開されたようです.

僕にとっては本当にうれしいことです.
英語が読み書きできれば,本当はいいんですけどね.

最近卒業論文を書いていてSqueakの良さを再認識しています.
卒研が終わったらいろいろとSqueakについて調べようと思っています.

TraitsとかSUnitの使い方,VMについてなどなど.

それにしてもSmalltalkerの人に弟子入りしたい気分です.

2008年1月24日木曜日

メソッドの再利用

あけましておめでとうございます.
最近卒論を書くので急がしくてプログラミング言語に関して全然勉強ができていません.
卒研の発表が終わり次第,勉強を再開したいと思います.

sumimさんのblogを読んでいたら・・・

Ruby vs. Squeak SmalltalkCommentsAdd Star

Squeak3.9にはTraitsというメソッド再利用の機能があるらしい.
ちょっと調べたらかなり前から提案されているものらしく,知らない自分にちょっと失望.

僕みたいな素人にはなかなか多重継承という高度なことを使うことができないが,やはり勉強しておく内容だと思った.
以前RubyのMix-inについて勉強したので,もう一度そちらを学び直そうと思う.

オブジェクト指向についての勉強の旅はまだまだつづく.

2007年12月26日水曜日

今年を振り返って

今年は本当にプログラミング言語に関してはいい年でした.

プログラミング言語とはこれほど楽しいものだとは.
きっかけはやはりSmalltalkですが,そこから広がった世界はすさまじいものです.

オープンソースカンファレンスもかなり刺激になりました.
やはり名古屋から外へ出て,いろいろなものを見ることはいいことと痛感しました.

昨日から自宅を離れて,休養をしています.
これからのことを考えてみました.

大学院にいくことは決まりましたが,来年の目標をしっかりと考えたいと思います.

だけど一つ思ったことはやはりSmalltalkによって,変えられたこの考え.
来年はなにか一つでもSmalltalkに貢献したいと思います.

今年の残りの時間はいろいろと来年どうするか考える時間にしたいと思います.

とりあえず体をやすめながら・・・.


では,みなさんよいお年を.

来年はいっぱいプログラミングメモを書こう.

2007年12月15日土曜日

Squeakのcopyを学ぶ

今日もSqueakについて勉強です.(やっと趣旨らしくなってきた)

Squeakのcopyについてです.

Object>>copy
^self shallowCopy postCopy

まずはshallowCopyについて勉強していました.

x := {{'a'}}.
y := x shallowCopy.
x == y. "false"
x at:1 put:'b'.
x #('b')
y #(#('a'))


x := {{'a'}}.
y := x shallowCopy.
x == y. "false"
(x at:1 )at:1 put:'b'.
x #(#('b'))
y #(#('b'))

なるほどshallowCopyはその意味通り浅いcopyみたいですね.
deepCopyがあるので,そちらを試すと完全コピーになるようです.

ただこれはお互いに参照していたら,大変なことになります.
なのでcopyはpostCopyをオーバーライドすることで振る舞いを変更してcopyをきちんと指定するみたいです.

copyは気をつけないといけませんね.(現実世界に無いことをやっているのだから,当然ですね).
きっと僕はdeepCopyを何かと使いたくなりそうな・・・.

VisualWorksを少しながめていたらdeepCopyというmethodはなかった.正しいかもしれませんね.