トップページ⇒tech
1001コメント329KB

プログラミング言語 Scala 7冊目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/09/04(日) 20:07:34.70
The Scala Programming Language
ttp://www.scala-lang.org/

■リンク集
ttp://sites.google.com/site/scalatohoku/%E5%8B%89%E5%BC%B7%E4%BC%9A%E8%B3%87%E6%96%99

■前スレ
プログラミング言語 Scala 6冊目
ttp://hibari.2ch.net/test/read.cgi/tech/1307416864/

■Scalaの紹介文(さわり)
Scalaは簡潔かつ優雅で型安全な方法でよくあるプログラミングパターンを表現できるように
設計された汎用プログラミング言語です。
Scalaはオブジェクト指向と関数型言語の特徴をスムーズに統合しておりJavaやその他の言語を扱う
プログラマをより生産的にすることができます。(以下略)
ttp://www.scala-lang.org/node/25

■Scalaに関する書籍(英語)
ttp://www.scala-lang.org/node/959
リファレンスマニュアルや草稿のPDFなども充実しているのでそちらも参照してください。
日本語の資料には、チュートリアルの訳やIBM dW、IT Proの連載記事、各々で開かれた勉強会の資料などがあります。
0153デフォルトの名無しさん2011/09/16(金) 12:29:50.60
慣れないと解決しない時点で負けてる
0154デフォルトの名無しさん2011/09/16(金) 12:38:44.74
俺は;が必須でも必要なコストとして納得できる。むしろソースコードのフォーマットなんぞの為にケースバイケースを求められるほうが苦痛。
0155 ◆CgacaMDhSQ 2011/09/17(土) 01:18:09.69
>>152
それほど記述スタイルに制限付くものでしょうか?確かに、行頭に二項演算子とかおきたいことは
たまにありますが、それは>>142の方法で十分対処できる話ですし、頻度もそれほど多いとは思えません。
というか、セミコロン推論は、元々、低頻度で出現するパターンが書きにくくなる代わりに、高頻度で
出現するパターンが書きやすくなる、というものですよね。

また、ステートメントというか式ですね。というのはともかく、セミコロン必須の方が確かに文法はシンプル(美しいか
どうかはおいといて)になりますが、文法の美しさ(シンプルさ?)をそれほど気にするなら、極論を言えば、S式
使ってればいいのでは?とかいう話になってしまうような…。

>>154
両者が同頻度くらいで出てくるなら確かに嫌な話ですが、実際のところ、明らかに頻度の偏りがある以上、私はセミコロン推論が
あった方がトータルのコストは安くなると思います。実際、最近の言語の多くが;相当の省略をどんどん取り入れてるのはそれを
示しているかと。
0156デフォルトの名無しさん2011/09/17(土) 01:54:58.47
君がScalaを愛してやまないのは分かるが
無理な擁護は逆効果だぞ
0157 ◆CgacaMDhSQ 2011/09/17(土) 02:06:21.37
>>156
Scalaを愛しているかというどうかは別の話です。別にRubyとかの他のセミコロン省略できる言語でも構わないです。で、
>>152と>>154の批判に、「嫌い」とか「美しくない」以外の指標での実用的問題が発生するのかなあという話です。
私は経験上、そういう問題が発生することはほとんどありませんでしたし、Ruby等でその事がそれほど問題視
されたことも無かったと記憶しています。結局、頻度の問題だというのが私の認識です。

実際に〜というコードパターンを書きたい事が頻繁にあって、それでScalaのセミコロン推論が邪魔をして困る、
という問題提起なら意義があると思います。
0158デフォルトの名無しさん2011/09/17(土) 02:13:32.54
Rubyは文法がどれだけ難解になっても
ユーザー側から見て多くのケースで便利になるなら問題ないという立場だったが、
>>152が言うように文法上美しくないという観点もありえる
Scala的には何を良しとするべきなのだろうね
0159デフォルトの名無しさん2011/09/17(土) 02:14:45.02
Rubyはどうだか知らんがPerlやJavaScriptではセミコロンを省略するのは悪い習慣だとされているな
0160デフォルトの名無しさん2011/09/17(土) 02:37:40.56
たかだか1文字省略できるだけで大して書きやすくなるわけじゃなし
ていうか書くときに気にしなければならないことが増えてむしろ面倒になるし
文の区切りが分かりにくくなって可読性は落ちるし
場合によっては分かりにくいバグの元にもなるし

まあなんもいいことないよね
0161デフォルトの名無しさん2011/09/17(土) 03:13:05.95
まあ、少なくともRubyに比べりゃ分かり易いって
Rubyなんて

p 1 + (1
    + 1)

て書いたら2が出力される言語だぜ?
こんな言語でも実質問題が起きてない(ということになってる)んだからScalaも無問題
0162デフォルトの名無しさん2011/09/17(土) 05:02:50.41
>>161
算術記号の名前を持つメソッドに限って、 1.+( 1 ) は1 + 1 と空白区切りで書いてよいという
シンタックスシュガーが影響を及ぼしているので、例としてはあまり適切ではない
p( 1.+( (1; +1) ) );
+メソッドの引数 (1; +1) の戻り値は最後に評価された+1なので、結局は1+1になって表示は2
0163デフォルトの名無しさん2011/09/17(土) 05:08:19.05
(1; +1) のセミコロンを省略できることが原因じゃんかよ
0164デフォルトの名無しさん2011/09/17(土) 06:33:20.29
基本的には改行で、改行の代わりにセミコロンを書いてもよいという動作
セミコロンを省略してもよい、というのとはちょっと違う
0165デフォルトの名無しさん2011/09/17(土) 06:36:37.60
なにその言葉遊び
0166デフォルトの名無しさん2011/09/17(土) 07:07:07.30
ステートメント終了の改行をセミコロンで表現することができるというだけで、セミコロンには意味はないってことだろ
まあ他の言語は文化ごと違うので参考にはならんな
>>161だって正しく「(2つ目の1の直後の)改行は文の終わり」と判断しているだけに過ぎん
0167デフォルトの名無しさん2011/09/17(土) 07:15:19.27
人間にどう見えるか(慣習含む)は関係なく、正しくパース出来れば良いって話なら
そもそもScalaのセミコロン推論もまったく問題ないがな
0168デフォルトの名無しさん2011/09/17(土) 09:24:07.66
連言・選言や並行性の制御を表現するために使うんならいいと思うし、
むしろそれ相当のものは必須だと思うぜ、;。
「無くしても意味通る」とかいうレベルで考えるべき要素じゃ無いと思う。
記号は慎重に、大切に使うべき。
0169デフォルトの名無しさん2011/09/17(土) 22:23:05.44
eclipseでのJavaのフォーマッタのように、ツールを前提にしている言語ならセミコロン必須にしたほうが享受できるメリットが大きい。
改行、空白は人間の美的感覚というテキトーなものに左右されやすいので言語的な機能を持たせることは間違い。

Python全否定。
0170デフォルトの名無しさん2011/09/17(土) 22:23:26.25
eclipseでのJavaのフォーマッタのように、ツールを前提にしている言語ならセミコロン必須にしたほうが享受できるメリットが大きい。
改行、空白は人間の美的感覚というテキトーなものに左右されやすいので言語的な機能を持たせることは間違い。

Python全否定。
0171デフォルトの名無しさん2011/09/17(土) 22:36:29.30
空白を無視といえばFORTRAN66。
マリナー1号のバグは有名。
0172デフォルトの名無しさん2011/09/19(月) 14:19:46.73
Scalaスケーラブルプログラミング第2版、表紙をサムネイル画像で見ると
第1版と区別しづらいな…と思ったのだけど、コップが2つになってるんですね。
0173デフォルトの名無しさん2011/09/19(月) 18:29:57.23
誰か画像処理に詳しい奴はいないか?
openCV使ってステレオビジョンで視差画像を出したいんだが
誰か心優しい方教えてけろ
0174デフォルトの名無しさん2011/09/20(火) 02:30:57.47
スレチ
0175デフォルトの名無しさん2011/09/20(火) 02:33:46.48
List(8,6,3,2)の標準分散求めるコードは、mapを使って
どのように書くのでしょうか?
0176デフォルトの名無しさん2011/09/20(火) 02:37:15.46
scalaプログラマが愛用してる汎用スクリプト言語は?
0177デフォルトの名無しさん2011/09/20(火) 05:35:53.96
val avg = list.sum / list.size
(list map { i => (avg - i) * (avg - i) }).sum / list.size
0178デフォルトの名無しさん2011/09/20(火) 05:40:12.90
>>176

基本的には bash のシェルスクリプト。辛くなってくると
ファイルの頭にこれ書いて、何でもかんでも Scala で書いてるわ。

#!/bin/sh
exec scala "$0" "$@"
!#
0179デフォルトの名無しさん2011/09/20(火) 09:05:57.08
$ cat a.sh
#!/bin/sh
exec scala "$0" "$@"
!#
print("hello")

$ time ./a.sh
hello
real 0m13.741s
user 0m0.815s
sys 0m2.254s

小さい方にはスケーラブルじゃないな
0180デフォルトの名無しさん2011/09/20(火) 11:13:17.24
こういうのってスクリプトに使えたっけ?
コンパイルしてるから関係ない?

http://www.google.co.jp/search?q=scala+groovyserv
http://www.infoq.com/jp/articles/groovyserv
0181デフォルトの名無しさん2011/09/20(火) 12:47:16.49
Scalaってなんか実績あんの?
面白そうかとは思うけどただの言語オタの趣味ならやめておこうと思ってる
0182デフォルトの名無しさん2011/09/20(火) 12:54:56.63
twitterのバックエンドとか。つか、実績で左右されるって、脆い知的好奇心だな。
0183デフォルトの名無しさん2011/09/20(火) 13:06:50.12
scalaでliftとかplayを書いた場合、
javaのwicketやrubyのrailsと
並べて評価した場合どうですか?
言語の違いでフレームワークも結構変わりますかね?
0184デフォルトの名無しさん2011/09/20(火) 13:49:42.30
どこに知的好奇心の要素があるんだ
0185デフォルトの名無しさん2011/09/20(火) 13:58:12.51
評価を他人に委ねてる時点でだめだろ
>>183が実際使ってみてなにか分かったら報告してくれ
それまで連絡はしなくてかまわん、以上だ
0186デフォルトの名無しさん2011/09/20(火) 13:58:38.90
暗黙の型変換を使って、いかにトリッキーなことができるか
0187デフォルトの名無しさん2011/09/20(火) 14:41:47.30
同じならマイナーで普及しそうにない言語なんて
時間の無駄だからな
0188デフォルトの名無しさん2011/09/20(火) 18:56:12.26
そこで普及するまで待つという手がある
0189 ◆CgacaMDhSQ 2011/09/20(火) 20:21:20.44
>>178
スクリプトで、サードパーティのライブラリ使いたい場合とか、scalasが何気に便利です。
http://blog.twiwt.org/e/f835d9
スクリプトの最初の方にdependency書くだけで、勝手にライブラリのjar落として来てくれ&&そのまま使えます。

>>184
知的好奇心、という面でもScalaは結構面白い試みを色々していると思います。全く新しいパラダイムを提示する、という
わけではないですが、Scala 2.8のコレクションアーキテクチャとかは精巧に作られていて凄いですし、プラグインとし
て型システムを拡張できるおかげで、型システムに関する実験的&&そこそこ実用的な試みがしやすいと思います。

あとは、Scalaの型システム自体も、λ計算をベースに発展してきた静的型付け関数型言語とは異なったアプローチ
を取っているのですが、それが、既存の静的型付け関数型言語のモジュールシステムとかとうまく対応付く、とかも
面白いです。

何が面白いかは主観になりますが、ともあれ、単に既存のアプローチを集めただけの言語ではないことは確かです。
0190デフォルトの名無しさん2011/09/20(火) 21:14:12.44
>>189
ああ、書いた直後に誤解されるかな、と思った懸念がそのまま…
>>184ではScalaに対して知的好奇心をそそるものが無い、と言いたかったわけではなく、
>>181が求めてるのは知的好奇心じゃなく実用性なんじゃね、その問いに>>182の返しは変じゃね、
ということです。
01911822011/09/20(火) 22:30:25.19
まぁ「面白そうかとは思うけど」って部分で揚げ足取っただけなんで、そう解説されるとそのなんだ困る。
0192 ◆CgacaMDhSQ 2011/09/20(火) 23:39:24.40
>>190,191
どうもすいませんorz

ともあれ、実績の話なら、Twitterだけではなく、既にVMWare, LinkedIn, Amazon.com, Foursquare, Novell, Siemens,
Remember the Milkとかそれなりに名前の知られてるのが色々ありますね。求人見ても、Scalaなどの関数型言語の
経験のあるエンジニアを求めてるところも増えて来てる感じです。名前出せないけどとある金融系のところで
使われているとか(Scala Days 2011での情報)。

あとは、前どっかで見た話でソース失念なのですが、githubが一部をScalaで置き換えてるという話もあります。

国内だと、有名なところはあまり無いですけど、有限会社ITプランニングさんとか、GMO株式会社さんとかパテントビューロさんとか、
その他中小/フリーランスで使われているところが少しずつ増えて来てるみたいですね。

全く問題が無いわけじゃないですけど、使える周辺ツールは一通り揃っていますし(sbt, ScalaTest/Specs)、IDEに関してもScala版が
だいぶ進歩した他、IntelliJ IDEAは「普通に使える」レベルになってます。あとは、Scala自体の教育コストとか、チーム開発でのノウハウ
とか、それ以外の政治的な話が問題になってくるのかなあと思ってます。
0193デフォルトの名無しさん2011/09/22(木) 00:12:33.24
>>189

確かに便利だけど、java しか入っていない環境に持って行って即座に展開できるようなものがあったらなあ、とも思います。
0194デフォルトの名無しさん2011/09/22(木) 10:07:34.99
>>193
TypeSafeの作ってくれたインストーラ使え
ttp://typesafe.com/stack/download
0195デフォルトの名無しさん2011/09/23(金) 16:01:47.86
ScalaDays 2011 Resources (Paper | Slides | Video | Home Page)
https://wiki.scala-lang.org/display/SW/ScalaDays+2011+Resources
0196デフォルトの名無しさん2011/09/24(土) 08:53:29.72
scala って 関数型系では異質というのか違和感がある言語だけど
IDEの話を読んでて思ったのは、やっぱりjavaの流れでやってる人が
多いんだな。と思った。

なぜ他の言語コミュと上手くいかんのかしらん。でも何かあれば
FUD FUDだからな。S式言語なんて使ってもいない奴がDISるけど
相手にされないのが普通なのにな。いちいち FUDといってるような
無駄はしないわな。ここでも他言語を一人前にDISる連中はおるよう
だけど、わがままだよな。(>>113など)海外のscala使いにそんな狭量を感じる
事は少ないような印象は持ってるんだが。
0197デフォルトの名無しさん2011/09/24(土) 08:56:56.49
>>192
|Scala自体の教育コスト
全てを知らなくても使えるだろうけど、自由度を得るために、複雑な仕様を
みてるとC++と同じに見えることはある。複雑すぎて使いこなせない言語
なんじゃなかろうか?better javaというだけでいいならそれでいいんだろう
けどね。
0198デフォルトの名無しさん2011/09/24(土) 09:15:24.83
>>196
Scala関数型言語じゃない
そのように見える機能を集めたOOだろ
0199デフォルトの名無しさん2011/09/24(土) 09:20:57.86
>>107
そのサイトも他をDISってscalaを持ち上げるパターンだよね。
別にその信念で使ってることは問題ではないけど、発想が減点法というか
他の言語を使っててDISる人も減点法的に書いて使えないと喚く連中は
見かけるから、阿呆な連中は他にもおるとは思うがね。
優れてるならその点だけ全面的にだして話をすればいいだけなんだけどな。
ここでもそうだけど、rubyへの敵対感はかなり強すぎるよな。なんか幼稚
なんだよね。
松本氏の態度に気に入らない連中も多いのも理解はできるけどさ。
0200デフォルトの名無しさん2011/09/24(土) 09:27:54.13
>>198
そうゆう見方もあるね。

>>199
続き、ブログとかでかかれて第三者が読むときって、他をDISって持ち上げる
ような阿呆としか言えない書き方より、どう使って行ったらいいか?という
ことを書いてくれて特徴を生かせるアイデアを出していけばいいんだよね。
言語が複雑になれば、関数や機能が似通ったもんだとかよく使い方がわからない
ものは増えるけど、どんなときに有効か分かるだけでずいぶん読者は参考になるよね。
だけど、DISるだけというのは、それ以上の情報が含まれないから、読む価値
としてはあまりなくなるよね。
0201デフォルトの名無しさん2011/09/24(土) 09:32:17.01
Scalaってインテリが使って満足する言語でしょ
DISられて当然じゃないか?
0202 ◆CgacaMDhSQ 2011/09/24(土) 09:32:44.25
>>196
>なぜ他の言語コミュと上手くいかんのかしらん。
一般論として、Scala特異の事情があるかというと、どうなんでしょうね。他の言語コミュニティとの
摩擦というのは、それなりに名前が知られてきた言語だと大体とこでもある話のような。

>海外のscala使いにそんな狭量を感じる
>事は少ないような印象は持ってるんだが。

コアなScalaistがJavaをこきおろしまくってるのは結構よく見ます。ただ、大体そういう人たちは
生産性の問題から真剣にJavaを嫌がってて、Javaをこき下ろしたい、という印象はあまり受けないです。

ちなみに、海外のScalaistがML/OCaml/HaskellとかCommon Lisp/Scheme/ClojureをDISってるのは
ほとんど見ないです。というか、JVM系言語で言うと、Clojureとかの人たちがむしろScala意識しまくりで、
コード行数の比較の話になると、かなりの確率でScalaが出てきます。

あと、Scalaコミュニティの人(海外勢含む)は不当なDISりには結構敏感で、CeylonやKotlinの
中の人が根拠レスの「Scala is too complex」マーケティング展開したときは、中の人のブログ
がかなり炎上してました(根拠レス、というのは、本当に"too complex"だけしか言わなくて、
どこが"too complex"なのか、というまともなDISりが皆無でした)。Ceylonについては、Gavin King
が、捨て台詞吐いてブログ閉鎖するくらいの勢いで。あと、Odersky先生ご本人が、不当なScala DISが
あったらブログにコメントとかしてるのを時折みます。
0203デフォルトの名無しさん2011/09/24(土) 10:38:53.12
2chの煽りレスを真に受けて日本のScalaコミュニティを語る馬鹿がいると聞いてやってきました
0204デフォルトの名無しさん2011/09/24(土) 10:54:00.25
Scala is too complex
0205デフォルトの名無しさん2011/09/24(土) 12:10:11.04
> 生産性の問題から真剣にJavaを嫌がってて、

こういうことをサラッと書いてしまうのも、
また理由があればdisって良いという思想もヤベェw
0206デフォルトの名無しさん2011/09/24(土) 12:20:07.85
理由があればディスってもいいんじゃねーの
JavaもC++もいたるところでディスられまくってるけどね
C++なんかよく耐えてるよな
実際ディスってるやつでC++使ったことないやつも多いだろ
0207デフォルトの名無しさん2011/09/24(土) 12:21:22.36
>>205
いいんじゃないか?言語作者自信が、ブログ炎上させて閉鎖に追い込んだりと一部では、思想体系がネオナチに近いって言われているからな。
0208デフォルトの名無しさん2011/09/24(土) 12:24:08.18
酷い日本語を見た
0209デフォルトの名無しさん2011/09/24(土) 12:28:28.75
むしろ日本の問題点はこういうところだろうな
なぜか言語じゃなくて個人攻撃になる
コミュニティがどうとか口調が怖いとか
そういう低レベルなところでしか言語を語ることができないのが問題
英語読めないやつが多いんだろうな
0210デフォルトの名無しさん2011/09/24(土) 12:34:29.23
反論があればかかってこいやぐらいの気概があればdisもいいんじゃねーかと思う

反論でファビョったり、一方的な言い逃げとかだとあららって感じ
0211デフォルトの名無しさん2011/09/24(土) 14:30:13.89
>>206
DISるのって根拠が不十分なことも多かったり、実際に使ってない
状況で、オナニーしてるだけのもあってね。それは水嶋さんが
書いてるような傾向もあるんだけど、他のところならスルーする
ところがこっちではFUDだとか刈込にいったりするからな。
おかしいんだよな。
0212デフォルトの名無しさん2011/09/24(土) 14:33:56.67
disるのって大体が極論なことが多くってね。参考にならないことがある。
たいてい会話が成り立たないから、炎上してしまうんだろうな。
言語界のネオナチか。。。なんでそこまで陶酔するんだろうか?
Scalaに麻薬的要素があるの? 知らんねんけど
0213デフォルトの名無しさん2011/09/24(土) 14:38:56.54
宗教論争は麻薬
言語でも何でも
0214デフォルトの名無しさん2011/09/24(土) 14:46:26.39
スカスケ2版amazonから発送通知来た!
0215デフォルトの名無しさん2011/09/24(土) 15:00:38.71
>>210
disじゃなくてただの感想言っただけなのに突撃してくるイメージ。
0216デフォルトの名無しさん2011/09/24(土) 15:09:27.76
そしてその突撃は正当なものと信じて疑わず、
「議論できないのは日本人の悪いところ」と言わんばかりに揚げ足を取り、
挙句には「◯◯を示せたので満足です」「実は◯◯は重要だとは思っていません」などと捨て台詞を残して去って行く。
0217デフォルトの名無しさん2011/09/24(土) 15:12:32.67
うむ。なるほどモヒカンだな
0218デフォルトの名無しさん2011/09/24(土) 18:59:05.57
たぶんScalaユーザーを減らしたいんだろう
0219デフォルトの名無しさん2011/09/24(土) 19:44:07.53
技樹的に間違ったことを書いておいて、それを指摘されたら人格攻撃にすり替えるんだから
日本のネットのプログラマーは救いようがねえな
しかも本人には言えず2chでネチネチと叩くんだから酷すぎるわな
0220デフォルトの名無しさん2011/09/24(土) 20:03:32.79
何でも一般化しようとするな
0221デフォルトの名無しさん2011/09/24(土) 20:59:20.13
http://mobile.twitter.com/tatsuya6502/status/117520413545873409
http://mobile.twitter.com/tatsuya6502/status/117522292564692992
>38
これって、主にJVMのGC実装の問題で、
追加でscalaの不変データ構造の実装の問題なのかな。
0222デフォルトの名無しさん2011/09/25(日) 00:02:46.87
http://www.infoq.com/jp/news/2010/09/bigmemory
こういうやつのscala版が必要なのか、akkaあたりで良いのか
http://akka.io/docs/akka/1.1/general/jmm.html
0223デフォルトの名無しさん2011/09/25(日) 00:39:29.14
clojureで、scalaと比較が多くなるのは
JVM言語でとりあえず両方触れるぐらいの人が多いのと、
あとは、たまたま当時のscala実装(>221)で商用アプリの実装が上手いかず
clojureを使ったら上手くいったという、経路の書き込みが多いから。

移行時に行数が出てくるのは当たり前だけど、
javaからrubyに移動した時と同じ話で
静的型チェックを補うテストコードまで考えていないし、
scalaでチェック済みではあるので、rubyでテストコードが膨らんでscalaに移行したら総行数減ったというのとは
ちょっと違う。

そして、cl,schemeと行数比較する機会や意味はあまりない。
0224デフォルトの名無しさん2011/09/25(日) 02:04:05.68
2.8から不変データ構造の実装変えてたよね?
twitterの話は、2.8以降の話なんだろうか?
0225 ◆CgacaMDhSQ 2011/09/25(日) 04:29:58.20
>>221
http://mobile.twitter.com/tatsuya6502/status/117522292564692992
の書き込みは、一部勘違いがあるのではないか、というのが私見です。原理的に、現在のSTW型のGCは、
色々工夫されているとはいえ、メモリ量に応じて最大停止時間が長くなる傾向があるので、
特にメモリ搭載量がどんどん増えてるサーバでは、そっちの方が問題なんじゃないかと。Erlang VMのGCは
詳しくないですが、Erlangの複数のプロセスでGCが走ったらやっぱり問題が起きるような気が…。Erlang VM
のGCは詳しく無いので、外してるかもしれません。


>>223
clojureも不変データ構造が基本なので、scalaでダメで、clojureで上手く行ったとしたら、それは当時のScalaの不変データ構造の実装が
あまりこなれて無かった、というのがあるでしょうね。

>>224
Continuation Workshop参加してましたので、Scala < 2.8なのかそれ以降なのかわからないですけど、今のJVM(1.6.0 u24以降くらい?)だと
エスケープ解析が効くので、関数型プログラミングでよくあるパターンの、大量の短寿命オブジェクトによる実行コストの増大はかなり減らせます。
実験的に、implicit conversionで短寿命オブジェクト生成しまくるベンチマーク取ってみましたが、うまいことスタックにアロケートされてるっぽく、GCが
ほぼ起きてなかったです。あと、immutable objectがGCと相性悪いか、というと、使い方の問題も大きいと思います。2.8で導入されたVector
型はかなり効率が良くて、コンパイラ内部にこれを導入しただけでパフォーマンスが結構改善したという話があったり。

Java 6を採用できる現場がどのくらいあるのか、って話は別にあると思いますが。
0226デフォルトの名無しさん2011/09/25(日) 07:56:15.29
ClojureとScalaが好きって人は海外のClojure使いのサイトを見ればよくいる
印象があるけど、ここって前スレの後半にもあったけどClojureを敵視してる
人たちがいるよ。特に敵対する必要もないのに無駄に敵をつくろうとしてる。
0227デフォルトの名無しさん2011/09/25(日) 09:50:08.97
もう、めんどくさいからgithubに多くコミットしてる奴の発言が一番正しいことにしようぜ。
0228 ◆CgacaMDhSQ 2011/09/25(日) 12:04:46.49
>>226
私が見ている範囲がずれてるのかもしれませんが、設計思想の根幹が違うこともあってか、
(Clojureが好き∧Scalaが好き)という方はあまり見かけないです。Clojure作者のRich Hickeyご本人
からして、Scalaには批判的な立場で、実際にpublicな場で"Scala isn't really a functional language"
等等のという批判をしています。

ちなみに、Clojureを敵視しているScalaな人は、国内でも海外でもほとんど居ないです。Scalaな人が、
Clojure --> Scala という批判への応答として、Clojureコミュの人に何か言うことはあっても、積極的に
Clojureに勝負を挑むモチベーションがそもそも無いだけだと思いますが。

ここでClojureを敵視してる人を何名か見かけるのは事実ですけど、それが原因でClojureコミュニティとの軋轢を生む
というのは杞憂じゃないかと。

正直なところ、Clojure言語そのものを羨ましいとは思わないのですが、I/Oも含めて(準)標準ライブラリが揃っているのは
良いなあと思います(ScalaはI/Oが…)。
0229デフォルトの名無しさん2011/09/25(日) 12:16:21.04
>>228
日本人で「ぼくのかんがえたさいきょうのIOライブラリ」を作って世に問うというのはどうか。
0230デフォルトの名無しさん2011/09/25(日) 12:27:04.64
>>229
それはとても楽しそうな案だと思う。
0231デフォルトの名無しさん2011/09/25(日) 14:11:23.73
Scala isn't really a functional language は的を得た感想だと思うけど。
個人的には。

0232デフォルトの名無しさん2011/09/25(日) 14:33:05.43
OCaml isn't really a functional language
0233デフォルトの名無しさん2011/09/25(日) 15:19:13.56
>>231
素直な感想を書くとそうかもしれない。でも、受け取る側は批判ととる。
これがSCALAクオリティー
0234 ◆CgacaMDhSQ 2011/09/25(日) 16:14:07.36
>>231
その言葉が述べられたコンテキストをはずしてたのがまずかったですね。コンテキストとしては、
Scalaはpurityをプログラマに強制しないので、関数型言語としては不適格というもので、
関数型プログラミング=良いもの、という前提に立ってる人の言葉としては、十分な「批判」だと思います。

ちなみに、私自身はRich Hickeyの批判に妥当性が無いとも言って無い、というか彼の立場からすればある程度妥当だろうとすら思っている
ということは付け加えておきます。念のため。
0235デフォルトの名無しさん2011/09/25(日) 16:19:36.07
Perl忍者は偉大
Perlの知名度を上げPerl業界に大きく貢献した

◆CgacaMDhSQでは話にならない
帰れ
Perl忍者様に土下座しろ詫びろ
0236デフォルトの名無しさん2011/09/25(日) 16:39:30.27
巣に帰れよクソ忍者
0237デフォルトの名無しさん2011/09/25(日) 17:25:24.55
P忍 って Scalaモヒカン としてここで現れる予定だろ?
0238デフォルトの名無しさん2011/09/25(日) 17:25:27.54
Scalaサムライと聞いて。
0239デフォルトの名無しさん2011/09/25(日) 17:40:49.63
変なID粘着してからまともな議論
何もないけどこのままでいいのかな
0240デフォルトの名無しさん2011/09/25(日) 19:04:16.16
では、俺らの考えるさいきょうのI/Oライブラリの要件出しでもしようか。
0241デフォルトの名無しさん2011/09/25(日) 23:09:23.59
そもそも俺はScalaのIOのどこがヘボいのかすら把握してないのでそこから頼む。
0242デフォルトの名無しさん2011/09/26(月) 00:23:11.28
へぇー

We will have a PrePrint of Greg's book out soon, with final publication set for early next year.
http://www.scala-lang.org/node/10448#comment-47711
http://www.biosimilarity.com/publications.html

歴史秘話ヒストリア
http://www.amazon.com/Pro-Scala-Monadic-Design-Patterns/dp/143022844X (発売中止)
Monadic Design Patterns for the Web has moved to Artima
http://comments.gmane.org/gmane.comp.lang.scala/19713
0243デフォルトの名無しさん2011/09/26(月) 00:52:21.27
関数型IOだと、こういう話になるのではないか。
Scalaz Tutorial: Enumeration-Based I/O with Iteratees
http://apocalisp.wordpress.com/2010/10/17/scalaz-tutorial-enumeration-based-io-with-iteratees/

最新のJAVA APIでScala/JVMの関数型IOが高速化することが
できたら実装する人いるんだろうか。

発信源のHaskellさんの記事もろもろ
http://www.google.co.jp/search?q=Enumerator+Iteratee
0244デフォルトの名無しさん2011/09/26(月) 01:00:29.74
そういえば、この人たちもscalazの本かもしれないけど、Functional Programming in Scalaという本を執筆中。
http://www.scala-lang.org/node/10448 (上のリンクと同じ)
0245 ◆CgacaMDhSQ 2011/09/26(月) 02:02:17.65
>>244
スレッドの最初から出てくる、Tony MorrisはScalaz始めた人ですね。ただ、スレッドを流し読みした感じ、
Scalazの本にはならないんじゃないですかね?本の中で紹介とかはしそうですが。
0246デフォルトの名無しさん2011/09/27(火) 00:26:25.83
ttp://hibari.2ch.net/test/read.cgi/tech/1316016777/438
0247デフォルトの名無しさん2011/09/27(火) 04:54:11.67
俺もそろそろScalaz習得して優越感ポイント稼ごうかな
0248デフォルトの名無しさん2011/09/27(火) 11:58:56.46
じゃあ俺は圏論はじめまつ
0249デフォルトの名無しさん2011/09/28(水) 19:50:27.83
コップ2のp702、
「Scala2.9.1はScala2.9.0.1と完全にバイナリ非互換であることを目標にしています。」
ってどういう意味?いや意味というか意図というか。前後の文章とのつながりがわからん。
あと、バイナリ非互換って目標にするようなものなの?
0250デフォルトの名無しさん2011/09/28(水) 20:01:24.54
PEPLとREPL(p703)って別物?誤植なのかな?
0251デフォルトの名無しさん2011/09/29(木) 04:37:46.16
つーか2.9.1の話まで載ってんのか
ギリギリまで書いてたんだな
0252デフォルトの名無しさん2011/09/29(木) 12:36:51.07
ミズシマさんパネッス
■ このスレッドは過去ログ倉庫に格納されています