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はなかった.正しいかもしれませんね.

2007年12月8日土曜日

Haskellのzip関数をSqueakで考えてみる

Haskellを勉強したいと思っていますが,卒研がいまいちなのであまり勉強が進んでいません.

面白い関数の一つZip関数.
Squeakでやってみたいと思います.

| x |
x :=#(1 2 3).
x with:#(4 5 6) collect:[:v1 :v2 | Array with:v1 with:v2]. #(#(1 4) #(2 5) #(3 6))

collectの引数のblockを好きなようにすれば,いろいろできそうです.

Squeakって本当にいろいろ書けると関心.

2007年12月2日日曜日

言語を学ぶのは

最近,プログラミング言語にすごく興味を持っています.

本屋へいくとさまざまな言語の解説書,入門書があります.
そんな中にいくと結局何が勉強したいかわからなくなるので,Webで言語のよさなどと調べてから勉強したいと思っています


さて最近僕が最近読み始めているBlogでは何か少しもめているようです.
Smalltalk,Objective-C,Javaについて・・・?.

しゃくしゃしてやった。OOPが解ればそれでよかった。今は反省している。 - みねこあ
Java] 元ネタ != 発明CommentsAdd Star - カレーなる辛口Javaな転職日記


僕みたいなど素人が発言するのは本当に失礼だと思いますが,もっと平和的に話せないものなのでしょうか.
なんだか少し怖いですw(ネガティブな正確なものでなんだか自分が怒られているみたいに感じてしまいます.読まなければいいと言われれば,それまでなのですが・・・)


3つとも僕としては人生の間で全て学びたい言語です.

全ての言語に関して言えますが,プログラミング言語を学ぶのは僕みたいな人にはとても大変なことです.

初めてC言語と勉強したときポインタは意味不明でした.(今も結局よくわかっていません.いろいろと個人的な理由はありますが,言い訳になるので,ただの勉強不足と言っておきます)

ポインタもわからない人間は素養がなさそうなことが書かれていることや,Javaが分からない人はプログラマーをやめた方がいいかも発言はちょっと控えていただきたい.

これから目指そうと思うのに,これはかなりの不安を感じます.

言語はあうあわないがないのでしょうか?
人間の言語でもそういうことはあると思います.

仲良く話し合えたら本当にいいですけどね.

それにしてネットのプログラマーと言われる人は本当にいろいろな言語を学ばれているのですね.
いつになったらそうなれるのか.









時よ止まってください.僕に理解する時間をください.
そして,理解するまでしからないでください.

Squeakはやっぱりすごい

BlockClosureができないことを知りちょっとショックでしたが,そんな必要はなさそう?です.
sumimさんのBlogにBlockClosureのことが書かれていました.(本当にsumimさんはすごいですね.読んでいるだけですごくためになります)

それによるとClosureComplierを入れればできるみたい.
Squeak3.9の場合はNewComplierという名前になっています.

やはり僕のなかでSqueakは一番の言語です.
ちょっと一安心.
といっても無いならないで,普通にSqueakに適用して書けばいいんですけどねw
できると思えば,またSqueak自慢ができます.

ClosureCompilerCommentsAdd Star - sumim’s smalltalking-tos

あと,sumimさんの記事によるとVisualWorksは普通にBlockClosureが使えるらしい.
さすがですね.


自宅に帰ってからやってみようと思います.

2007年12月1日土曜日

決意 Haskellを勉強することにします

BlockClosureがやはり分かっていないのでは?

最近思うのは,いつでも読めるプログラミングのメモを残そうと思ったこのBlogですが,誤った情報ばかりながすものとなっています.
こういう記事がネット全体の質を下げちゃうのでは?と思ってしまいます.(ネガティブ指向)

コンピュータを勉強する学生としていいのか?もっと基礎から丁寧に勉強しないといけませんね.

ということでまずは関数型言語を勉強することにします.
多くのことはできないのでJavaは保留.
関数型の方がこの先に役立つと思いますし,僕にとっては今優先順位が高くなりました.

さてMacPortを使ってghcを簡単に入れようと思ったのですが,エラー発生.
LeopardはX11がよく分からないことになっているので,そのせいではないかと思っています.

[追記] MacPortはあきらめ,Binary Packageで入れました