桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

Smalltalk合同勉強会@名古屋

行ってきました。

http://atnd.org/events/1593
http://sites.google.com/a/smalltalk-users.jp/home/Home/gao-zhi/smalltalkgoudoubenkyoukainagoya

    • こちらでは発表資料の入手も可能。

Smalltalkerの情報交換の場
http://www.jac-net.com/~tarzan/smalltalkers/

普段は東京と京都で行われている勉強会を中間地点?の名古屋で開催しよう!というイベントです。ウチの職場の若けぇモンも誘って行ってきました。
とりあえず会場に入って思ったのは、普段自分が行く勉強会に比べると年齢層が明らかに高いw

Smalltalkハッカソン

開始前に全員一言ずつ自己紹介。
Smalltalk?ハァ?何それおいしいの?って状態で、一応開発環境を作っていったのですが、主催者の梅澤さんに入れてきた環境は「古っ、それに違う」って言われてしまい( ゚д゚)ポカーン。Smalltalkの開発環境とかをまとめたサイトをちゃんと見つけられなかったようです。
主催者の梅澤さんが用意して下さった、VisualWorks及びSqueak v3.10.2Jのアーカイブを頂き、とりあえずSqueakを使ってSmalltalkの勉強を進めました。

早わかりSmalltalk
ftp://swikis.ddo.jp/SqueakDevJa/events/RubyStudyTokyo28/SmalltalkTutorial.pdf

FizzBuzz的なものを作ろうと思ったのですが、Squeakの操作に慣れるのに時間が掛かってしまって時間切れ。

STEPSプロジェクトの紹介 by 山宮隆(id:propella) さん

何か色々とメモっていたのですが、山宮さんのAftercare方で良い感じにまとまっているので、以下略。
とりあえず用語的な話で、以下の通りで良いのかな。

CFG
Context Free Grammar(wikipedia:文脈自由文法)
PEG
Parsing Expression Grammar(wikipedia:解析表現文法)
DSL
Domain-Specific Language(wikipedia:ドメイン固有言語)
BNF
Backus-Naur Form(wikipedia:バッカス・ナウア記法)

STEPプロジェクトでは、CFG/PEGの仕組みを利用して、ユーザー操作やパケットデータ等を言語として捉えるという所に、自分的にはそういう考え方もあるんだなと思いました。まあOS開発や言語開発には全く興味ないというか、自分には無理だろと思っているのもありますが。

Groovy使いのためのSmalltalk入門 by 南谷千城 さん

Grails徹底入門を参考に、SmalltalkとGroovyの構文は非常によく似ているという内容。


コレはエイプリルフールネタとの事。

SmallTalk R4.1
http://smalltalk.smalltalk-users.jp/

Smalltalkイディオムは絶版につき、以下で公開されているらしい。

http://www.cc.kyoto-su.ac.jp/~atsushi/Documents/SmalltalkIdioms/index-j.html

日本語に対応したSmalltalkの開発環境としては、現状以下の二つ。

Seaside 3.0 by 梅澤真史(@umejava) さん

自由自在Squeakプログラミングの著者のお方。
SeasideはSmalltalkベースのWebアプリケーションフレームワーク

http://www.seaside.st/

特徴

    • Templateエンジンを使わない
    • ステートフルなWeb
      • セッションID毎にアプリケーションの状態をきめ細かくサーバ側に保存する(保存期間は設定次第。標準では10分)
    • RESTとは異なるアプローチ(URLは自動生成される)
      • URLはセッションID + 継続IDの組み合わせとなる。セッションIDはcookieに保存する事も可能。
    • ページではなくコンポーネントを意識

Web開発にOODを取り戻すフレームワーク
梅澤さんは日本語対応パッチ込み版を公開している。

SeasideJOne
http://swikis.ddo.jp/umejava/39

Seaside自体がHTTPサーバとなるので、運用時はApacheを利用する場合にはmod_proxy/mod_rewriteを利用して連携させる。
Seaside 3.0に対応するSmalltalk環境

AJAXにも対応する。

jQuery for Seaside
http://www.slideshare.net/renggli/jquery-for-seaside

Seasideの弱点はSEO。理由はURLが自動生成される為。お行儀の悪いクローラー(百度等)にガンガンとアクセスされてしまうと、サーバ側に状態を保存してしまう為リソース不足になる。
もう一つの弱点としては、アクセス解析。これも理由は同じでURLが自動生成される為に解析が困難となる。
SeasideはSSL内でのWorkflow処理に向いたフレームワークである。

Pharoの紹介 by Serge Stinckwich(@SergeStinckwich) さん

フランス人のSerge Stinckwichさんによる英語で行われたセッション。
Squeak 3.9から派生したPharoというSmalltalk環境の説明。Smalltalkはマイナーバージョン毎に開発チームが分かれているらしい。

http://www.pharo-project.org

2009Q1を境にSqueakよりもPharoの方がDownload数が多くなっている模様。

  • 個人的な感想

今の所、Pharo自体は日本語対応が全く行われていない為、日本人が利用するメリットはあまりないと思われる。

ESUGの活動報告 by Serge Stinckwich(@SergeStinckwich) さん

引き続きSerge StinckwichさんによるESUG(European Smalltalk User Group)の活動内容の説明。
活動成果のスライドが公開されていたり、書籍になっていたり、有用な情報の紹介。

Squeak by Example

Squeak by Example

ライトニングトーク大会

LT1 Objective-Ruby by @technohippy さん

RubySmalltalk構文が書けるようにしたよ!って話。

http://github.com/technohippy/oruby

LT2 Groovyの紹介 by @tyama さん

Grails徹底入門の9-10章の著者のお方。
Groovy使いのためのSmalltalk入門を受けて、Groovyについての紹介。

LT3 心の社会

建築関係だったと思いましたが、その行動心理をSmalltalkで実現出来ないか?という話。
行動心理はミンスキーの著書の中で説明されており、登壇者の方の対象とする行動にも当てはまる。後はこれをプログラム化するだけなのだが、Smalltalkなら実現する事が出来るのではないでしょうか?という問いかけでした。

懇親会

参加された方は、殆ど東京・京都からの参加者だったのですが、名古屋出身の方や以前名古屋に住んでいた事のある方もいらっしゃいました。
Smalltalkで飯を食っている人でも食いつなぐ為にJavaもやっている人や大学の教授をやられている方が多かったのですが、Javaのインターフェースを駄目出ししすぎワロタ。
後は、食べ物関係の話になって、FA麺*1喫茶マウンテン*2の話、ベトコンラーメン*3台湾ラーメンの話で盛り上がりました。
只、懇親会のドタキャンが多くて20名の予定で13名だったので、料理のキャンセルが出来なかったようでその分ガツガツと食べまくりました。