#scala_impression まとめ

水島さんがまとめたやつ http://togetter.com/li/605164
3
リンク http://erukiti.hatenablog.com/ Scalaを使い始めてから半年だけど印象をまとめてみる - ぽにくすじゃないブログ 僕はScalaを使い始めてだいたい半年というところです。業務で使ってるんですが、最近になってやっと楽しさが少しわかり始めたところで印象をまとめてみました。主観性が高いので異論・反論のある人も多いかもしれません 覚えることが多い ※個人差があります Scala は様々な文化のごった煮なところがあるため、様々な文化を知ってないとツライです。よく better Java として簡単に使えるよという甘言をささやく人がいますが、better Java として使うにはそもそも Java の知識が必要なわけですし、be
kmizu @kmizu

率直な印象として興味深いので、自分の見解をこっからちょっと書いてみる。 #scalajp #scala_impression "Scalaを使い始めてから半年だけど印象をまとめてみる - ぽにくすじゃないブログ http://t.co/K4ojux3naK"

2013-12-20 12:42:53
kmizu @kmizu

とりあえず、最初に断っておくと、 @erukiti さん(id:erukitiさん)には悪印象は持っていません。Scalaを始めてからの率直な印象が書かれているなと素直に思います。 #scala_impression

2013-12-20 12:46:24
kmizu @kmizu

以降、論点に関して個別に言及していきます。 #scala_impression

2013-12-20 12:47:37
kmizu @kmizu

「覚えることが多い」という事に関して。対象が言語そのものなのか、環境も含めてなのかによって異なるかと。環境を含めたときにScalaが特に覚えることが多いとは思わないです。ドキュメントの少ないライブラリについては別の問題としてあるかなと。 #scala_impression

2013-12-20 12:52:28
kmizu @kmizu

たとえば、Javaだったらmavenの使い方とか。Rubyだったら gem や bundlerの扱い。native extensionをビルドするときにこけたときにどうするか、など覚えることはかなり多いかなと。 #scala_impression

2013-12-20 12:54:46
Suzuki Tomohiro @suztomo

@kmizu 一般に言語自体を学ぶよりも言語が動く環境を用意するのが難しい。特にJava。

2013-12-20 12:57:14
kmizu @kmizu

マサカリに関しては、2010〜2011にかけて自分は無差別に投げてました。あくまで個別の論点にしぼるように意識してましたが、メンションされた方にしてはたまったもんじゃない、ということはあったかも。ここ1〜2年はほとんど投げてないはず。 #scala_impression

2013-12-20 12:58:19
kmizu @kmizu

"better Java として簡単に使えるよという甘言をささやく人" 私もこれに近いことは言ってますが、真意としては、better Javaとして簡単に使えるよ、じゃなくて、「最初は」better Javaでもいいよ、という感じです。 #scala_impression

2013-12-20 13:02:01
kmizu @kmizu

"どうしてもライブラリのソースを読まなければならないとか、仕事でほかの人のソースを読むことがあります。そんな時に、結局 Scala の世界で一般的なモノを一通り押さえる必要性があるわけなのです。" これは鋭い指摘です。 #scala_impression

2013-12-20 13:03:29
kmizu @kmizu

ただ、"そんな時に、結局 Scala の世界で一般的なモノを一通り押さえる必要性があるわけなのです。" はどんな言語でも共通の話ですね。宣伝文句と違うじゃないか、という話としては正しいと思います。 #scala_impression

2013-12-20 13:05:26
kmizu @kmizu

次、「コップ本が難し過ぎる」について。これは、自分としてはコメントが難しい。というのは、コップ本が出る以前、原著を最初に読んだときに、「実に平易に書かれてるなー」というのが第一印象であって、「コップ本が難しい」という感覚がわからないのです。 #scala_impression

2013-12-20 13:08:06
とりえ @trpla226

@kmizu コップ本は、僕は途中からついていけなくなくなりました。自分の実力不足を感じます。Scala自体はあまり覚えることの多い言語でもありませんね。

2013-12-20 13:11:00
kmizu @kmizu

ただ、「コップ本」の方は、翻訳にあたって訳語の選定が適切じゃない部分などがあって、日本語版の方が読みにくくなっています(言語の壁を別にすれば)。ちなみに、内容の誤りがあったら報告していただければと思います(これまでもいくつか直してます)。 #scala_impression

2013-12-20 13:11:14
kmizu @kmizu

それはともかく、「コップ本」はScalaの「入門書」としてはそれほど適切ではないとも思います。Scala言語の設計思想、手続き的な考え方から関数型的な考え方の橋渡し的なものを学ぶには適していますが。コップ本後半部分はライブラリの紹介になったりしてバランスが悪い部分はあります。

2013-12-20 13:14:22
kmizu @kmizu

"最初に読むべき本はSCALAプログラミング入門 とScala逆引きレシピです。" 『Scala逆引きレシピ』を最初に読むべきは賛成ですが、『Scalaプログラミング入門』はScala 2.8より前対象の本なので、今の時点でこれが良いは疑問。 #scala_impression

2013-12-20 13:17:09
Yuta Okamoto @okapies

@kmizu あの記事は、「Scala 自体はシンプルだけど、マルチパラダイムでスケーラブルであるが故に、エコシステムを構成するそれぞれのライブラリが様々な文化(関数型、アクター、スクリプト言語、etc)を持ち込んでおり、結果的に学習すべき範囲が広大だ」という話と理解しました。

2013-12-20 13:19:35
kmizu @kmizu

ちなみに、『コップ本』は最初から最後まで通読して写経する本ではないと思います(多くのプログラミング言語のいわゆる「バイブル」全般に言えることですが)。まずはさらっと流して読んで、気になった部分を深堀りする方が適しているんじゃないかなと思います。 #scala_impression

2013-12-20 13:19:37
kmizu @kmizu

"多用されるDSL" これは割と正しいと思います。ただ、近年のScalaコミュニティでは、過去の、記号多用し過ぎた時代への反省などもあって、色々改善されています。"母体となる文化圏のお約束" はScalazを除けばあまりピンとこないです。 #scala_impression

2013-12-20 13:22:39
Yuta Okamoto @okapies

@kmizu 先日の Scala バッシングについての小田好先生の post もその点を指摘しています。つまり、初学者に対する学習パスは、その人物が属していた文化や目的ごとに整備していく必要がありそうな気がしています。 https://t.co/9OilPEiBUN

2013-12-20 13:22:41
kmizu @kmizu

"関数型言語としての側面がある" 疑いようもなく正しいですね。「モナド」や「型クラス」という用語(Oderskyはこれらの単語を「かなり意図的に」使わずに説明してたのですが…)がScalaコミュニティで広まったのは良かったのか悪かったのか。 #scala_impression

2013-12-20 13:25:53
kmizu @kmizu

あと、『関数型言語のお約束』というより、関数型プログラミングでおさえておくべき作法、というべきかと思います(オブジェクト指向プログラミングでも、間姿プログラミングの作法は役立っているはずですが、とりあえずそれはおいておきます) #scala_impression

2013-12-20 13:28:20
病気の美少女 @lyrical_logical

@kmizu それは関数型言語の宿命というか…Haskell が関数型!型クラス!モナド!遅延評価!みたいに流行らせて(Haskell が悪いという訳じゃないですが)しまったので…実際 Clojure や OCaml でもまあという感じに

2013-12-20 13:28:48
kmizu @kmizu

Scalaの学習コストの高さは、おおむねその出自にあるのかなと思います。JVM上で動作して、Javaライブラリを透過的に呼び出すこと前提で作られているので、Scalaを実用的に使うには、最低でもJ2 SEライブラリ)の知識が必要ですから。 #scala_impression

2013-12-20 13:31:04