カバン買いました。
「小さい方は前から持ってたじゃん」ってツッコミ入りそうですが同じの買いましたから(ぇー
# 年末にいろいろあったんですってば;
先日「カバンを持たなくなりました」とは書きましたけど、このカバンは使いやすくて愛用していたのでないと寂しいんですよ。
iPhone とサイフとラノベがちょうど入るサイズなんです。
小さい方はそういう事情がありましたけど、大きい方は新しく買いました。
何が嬉しいって、今まで使っていた小さい方と同様に、モノを突っ込めて蓋をかぶせるだけというシンプル構成。
容量はとても少ないのですけど、すぐにモノが取り出せます。
# 機能は似てるけどブランドは別物。
VAIO Type T にちょうどいいサイズで、外の勉強会とかに参加するときとかにいいなあっと。
後は同人誌がちょうど入るサイズ?
前にうめさんが eeePC を持ち歩くようになったのを見て、自分も VAIO を持ち歩くようにしたいなあと思っていたのと、今まで使っていたカバンと同じ機能性を持ってかつジャストサイズだったので、迷わず買ってしまいました。オサレとかはよくわかりません。
NetBeans から「新規プロジェクト」で「Scala Application」のプロジェクト作成したところ、書こうと思っていた Hello World を先に書かれてしまいました。
やることがなくて寂しいのでパッケージだけ作りましたよ。
/*
* HelloWorld.scala
* kei <http://apribase.net>
* Created on 2009/01/31
*/
package net.apribase.index001
object HelloWorld {
/**
* @param args the command line arguments
*/
def main(args: Array[String]) = {
println("Hello World!");
}
}
main のお作法は?
main は static じゃなくてシングルトンオブジェクトのメソッドとして定義するらしいですよ。
println という関数は何者?
ライブラリの確認にはとりあえず src を展開ですよね。
$ mkdir tmp
$ cd tmp
$ unzip /opt/java/scala/src/scala-library-src.jar
Predef.scala
よく使うものは Predef.scala に定義され、最初から import されているという仕組みらしいです。
そして println() は Console.println() を呼ぶみたいですね。
Console.scala
println() は out.println() を呼ぶみたいですよ。Java も out に入れてましたよね。
ところで Unit とはなんぞやと。void みたいなものらしいです。
out は outVar.value を見るということで、プライベートメモリに outVar という名前で java.lang.System.out を使う仕組みが保持されていましたよ。
とりあえずここまで。
実行して無事 Hello World がコンソールに出力されることを確認できました。
公式サイトに書かれているんですけど、NetBeans のプラグインがあるらしいんですよ。
Scala Plugin for NetBeans 6.5 | The Scala Programming Language
# 上の記事から飛んじゃうと 0.15.0 のページへ行ってしまうのでバージョンはしっかり確認してから。
# SourceForge.net: ErlyBird: Files
scala-plugin-090118.zip を展開すると nbm ディレクトリの中にいくつかの nbm ファイルがあります。
これを、「ツール」「プラグイン」「ダウンロード済み」「プラグインの追加」で全てインストールすれば、Scala プロジェクトを作成できるようになりました。
Scala 本体も .netbeans 配下にインストールされます。このへんは JRuby とかと同様ですね。
# Scala は自前で入れたのを使おうと思ってたんですけど、Add Platform で追加すると画面がリフレッシュされてないだけで裏で追加されていたり、リフレッシュ後もタブが表示されなかったりと挙動が怪しいので組み込みのを使うことにしました。
これで Java, JRuby, Ruby, C, C++ に加えて Scala も NetBeans で書けることになりました。
# 依存度高すぎて心中コースです。
少し前から Scala を触ってます。プライベート時間に少しずつなので全然進んでませんけど。
どんなところに魅かれた?
特徴は wikipedia 様に書いてありまして、魅かれた理由も羅列してるものほぼそのままです。
Scala – Wikipedia
オブジェクト指向と関数型の特徴を統合してるよ!
JVM で動くし Java の豊富なライブラリもそのまま使えるよ!
型推論もあるよ!
純関数型言語チックに書けるし全てはオブジェクト!
Erlang ライクな軽量プロセス Actor が使えるよ!
遅延評価が使えるので無限リストを作れるよ!
標準でパーサコンビネータが入ってるよ!
ユニットテストライブラリも標準で入ってるよ!
wikipedia の項目コピペすぎるんですが、逆に挙げなかったところで XML を直接記述とかは使ってみないと何を言ってるのか分からないのと、Mix-in とかあまりまだなじみがない知識不足だったりとか。
Smalltalk や Erlang の言語思想に魅かれつつ、実質本気プログラミングのときには母国語の Java を使ってしまう現状だったので、Java の資産をそのまま使えてときめく仕様ってのが大きいです。
インストール
The Scala Programming Language
Scala 2.7.3 final をダウンロードして展開してパスを通す。
Java 関連のツールを入れるときのいつもの流れですね。
同様の方法で JRuby や JavaCC などが入ってる /opt/java 配下の様子を見せているのが最初の画像。
/opt/java 配下に展開し、シンボリックリンクを張っておきます (バージョンが変わっても設定を変更しなくていいように)。
# cd /opt/java
# tar zxvf scala-2.7.3.final.tgz
# ln -s scala-2.7.3.final.tgz
/etc/bashrc の PATH に $SCALA_HOME/bin を追加します。
# for java
...(省略)
SCALA_HOME=/opt/java/scala
PATH=$PATH:...(省略):$SCALA_HOME/bin
一応動作確認。PATH の変更を反映させてからバージョンを表示。
$ source /etc/bashrc
$ scalac -version
しかし NetBeans プラグインが公式から公開されているのでコマンドラインでコンパイルすることはなさそうなんですが;
次は HelloWorld 書きますよ。
NatsuLiphone で twitter を流しつつラノベを読む。
もしかしてカバンいらない?と思って始めたカバンなし生活なんですが、続いてます、いけそうです。
「誰かの話を垂れ流し」の感覚は何か懐かしい気がしたと思ったら、昔の RO に近いかも。
片手で操作できるのはかなり大きいです。
生活スタイルすっかり変わりました。期待通りに。









