White Box技術部

WEB開発のあれこれ(と何か)

ScalaとCourseraと英語の話

色々あってScalaをまた始めることにしました。 色々の部分は大したことではないので、末尾に書くとして、Scalaです。

Scala

コップ本が出たあたりに少し勉強はしたのですが、当時はバージョン2.7で今は2.11ですか・・・時の流れは早いですね。

HPもだいぶオシャレになってていいんじゃないでしょうか!

ScalaはマイナーバージョンでもAPIの仕様がガッツリ変わるイメージがあるので、再学習大変かなと思っていたのですが、 APIドキュメントに、いつ変わったとか替わりはこれだよとかが書かれているので、思ったほどではなさそうです。

インストールはbinかIDEかどっちかで大丈夫、のようなことが書いていますが、 EclipseプラグインだとREPLが1行分しか評価されないみたいだったので、両方導入しておくといいかと思います。

以下、Eclipseプラグイン導入後のメモ。

Eclipseプラグインでの挙動

  • コードフォーマッターはScala用の設定が用意されているが、Ctrl+Shift+Fでのフォーマットは、Java > コード・スタイル > フォーマッター の設定が有効になるため、Scala用の設定を別途作って、Scalaプロジェクトに個別適用させる必要がある。
  • REPLが複数行評価してくれない
  • Scalaのバージョンを指定する箇所がない
  • スクリプトっぽく書くとエラーになる(書けなくなった?)ので、スクリプト部分を「object Somescript extends App {}」みたいなので囲むとOK

学習へのモチベーションのために

「今、CLISPやってるんだー」とか言っても、「何作るんですか?」とか言われると、「いや、別に興味があったから・・・」となってしまい、いつの間にかモチベーションが下がってたので、Courseraを利用することにしました。

Courseraとはオンライン上でいくつかの大学の講義が受けられるサービスで、なぜか無料です。

詳しくは調べてもらうとして、そのCourseraにScalaの講義があり、しかも講義をコップ本の作者、というか設計者本人が行っているのであれば、これはもうやってみるしかないかなと。

とりあえず登録してみて3個ほど受けてみたのですが、受けるといっても15分程度のビデオ講義で、間に選択問題が入るぐらいなので、 気張らずに聞くことができました。

内容はもちろん英語ですが、TOEIC400点の自分でもまあなんとかわかるので、本の学習と並行してこっちもやっていこうかと思っています。

全部終わったら自慢しますね!(ぇ

英語の壁

大学受験時をピークに下がり続ける私の英語力ですが、そろそろなんとかしたいと考え、去年くらいから勉強を再開しています。

始めに取り掛かったのは発音で、「英語耳」を参考書に半年ほど毎日発音練習をしてました。そのかいあってか、少しはそれっぽく発音できるようになったのと、英語が随分聞き取りやすくなった気がします。

ですが、語彙力不足を除いても、聞き取れはしても意味がわからないという状態で、これでは全く上達したようには思えず、別の手が必要かなと思い、考えた結果・・・

最近は「どんどん話すための瞬間英作文トレーニング 」を参考書に英作文の練習をしています。やってみて思いましたが、この能力不足が原因だったのかなと思うほどできませんでした。中1レベルから始まるのですが、そこからすでに怪しかったです。

つい先日、中1レベルが終わり、中2レベルに突入しましたが、だいぶ進捗が落ちた気がします。今月中には一通り終わらせたかったのですが、ちょっと無理な感じでいます。英語は長期プランで頑張るしかないですかね。


事の始まり

Scalaは名前が良い感じだったのと、関数言語を学べるモチベーションから、当時結構期待を持っていた言語でした。
ですがインターネットに繋げない環境下でうまくLiftが使えなかったのと、そもそも会社で周りが興味を持ってくれず、 Wikiに紹介やサンプル書いたり、コンパイラをサーバーに置いたりしても、反応してくれるのはもう転職したPerlerの後輩ぐらいの状況では 学習の気力を保つことはできませんでした。

とそれももう4年くらい前の話で、その後JavaScriptと格闘することになったり、当時Scalaで実現したかったことはGroovyで実現できるようになったり、ついでに手を出したGrailsも結構いい感じで、秋にはSwiftも出るという状況では、今Scalaを再学習する意思は全くなかったのですが、

色々ありまして。

色々、ありまして。

というか色々あって気分が落ちてる時に、「開発経験が不足している」とか言われたらちょっとピクっともきまして、 それほどいうなら推奨してたScala覚えてやるわ!というあまりプラスでない方向からのやる気に突き動かされる感じで 再学習を始めることにしました。


と、動機はあれですが、冷静に考えてみるとLISPよりは使われている関数言語ですし、Courseraの内容も聞いてるだけならなんとなくわかるので、続けてるわりには上達しない英語学習にもなるしで、割といい決断だったかなと思っています。

GitBucketももうじきプラグイン構造が入りそうですし、そうしたらプラグイン開発もできますしね!