1 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 07:24:16 ] 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 2冊目 pc12.2ch.net/test/read.cgi/tech/1246289771/
2 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 07:25:26 ] ・Scalaの紹介文(さわり) Scalaは簡潔かつ優雅で型安全な方法でよくあるプログラミングパターンを表現できるように 設計された汎用プログラミング言語です。 Scalaはオブジェクト指向と関数型言語の特徴をスムーズに統合しておりJavaやその他の言語を扱う プログラマをより生産的にすることができます。(以下略) ttp://www.scala-lang.org/node/25 ・Scalaに関する書籍(英語) ttp://www.scala-lang.org/node/959 リファレンスマニュアルや草稿のPDFなども充実しているのでそちらも参照してください。 日本語の資料には、チュートリアルの訳やIBM dW、IT Proの連載記事、各々で開かれた勉強会の資料などがあります。
3 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 08:29:35 ] ぬるぽ
4 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 09:31:54 ] Scalaのサイト、雪降ってるw
5 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 10:00:53 ] そりゃ、冬っすから
6 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 10:43:35 ] もっと雪降れ♪
7 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 10:47:01 ] ( ^ω^)おっお
8 名前:934 mailto:sage [2009/12/26(土) 18:06:26 ] RC1版のものだと動かない、訳ではなくて、 2.8.0を入れないと駄目なんですね。 d.hatena.ne.jp/lopes_nb/20091222/1261487236
9 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 18:40:19 ] 寒いっすね
10 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 19:02:29 ] >>9 >>4
11 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 21:03:00 ] NetBeans 6.8でScala2.8を使う人向けリンクです。 Nightly Builds distributions (Scala 2.8.0のリリースまではここからダウンロード) www.scala-lang.org/node/212/distributions Scala2.8.0 latest (Scala 2.8.0最新ビルド) www.scala-lang.org/archives/downloads/distrib/files/nightly/distributions/scala-2.8.0.latest.zip Scala Plugins for NetBeans wiki.netbeans.org/Scala Install with NetBeans 6.8 (Scala 2.8 + Scala plugins v1.1インストール方法) wiki.netbeans.org/Scala68v1#Install_with_NetBeans_6.8 nb-scala (NetBeans用Scala plugins V1.1ダウンロード) sourceforge.net/projects/erlybird/files/nb-scala/ Scala plugins 6.8v1.1.0rc1 (現時点の最新版) sourceforge.net/projects/erlybird/files/nb-scala/6.8v1.1.0rc1/nb-scala-6.8v1.1.0rc1.zip/download
12 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:27:01 ] NetBeans 6.8用のプラグインって上手く動かないんだけど・・・ Scala 2.8じゃないと駄目なの?
13 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:08:04 ] >>12 >>11
14 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 21:34:14 ] IDEどれがいいかなあ? eclipseのやつはかなり補完してくれるけど、たまに変なエラー吐くし
15 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:59:41 ] 補完の精度で言えば、間違いなくeclipseが一番だと思う implicit conversionとかもちゃんと見て補完候補出してくれるし ただ、eclipseのscalaプラグインは不安定で、お勧めできないのがな… 2.8.0ではeclipseのプラグインが安定して欲しいものだが。
16 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 01:26:43 ] 低能乙
17 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:45:40 ] >>15 お、まじ? implicit conversion でも補完してくれるのは大きいなぁ。 IntelliJは悪くはないんだけど、型推論が入っている個所とかは補完効かないんだよね・・・ あと、import文の整理がいまいち。
18 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 13:11:06 ] >>17 まじまじ。低能パワーをなめんなよ…
19 名前:デフォルトの名無しさん [2010/01/02(土) 18:05:13 ] scalaのページ見たけど、地球の絵が描いてあるとどうしてこうビジネス臭がするんでしょう。 ビジネス臭くて近寄りにくいんですけど。
20 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 18:08:41 ] Mosaicってビジネス臭かったっけ?
21 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 18:13:08 ] >>20 実際にビジネス臭いかどうかは知らないけど、 地球の絵が描いてあるWEBページはビジネス臭く感じるということが言いたかっただけ。 深い意味はない。
22 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 21:00:33 ] >>21 ビジネス臭いというかなんか一気に胡散臭くなるよね 半年くらい前に今のページデザインに変わったんだけど、初めて見たとき あまりに胡散臭くて噴いたもん
23 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 21:05:31 ] なんかlift難しい・・・LiftViewってどういう時に使うのかわかんね struts1.XのLookupDispatchActionみたいなものだと思っておけばいいのか?
24 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 01:27:38 ] どこに地球の絵が描いてあるのかよく分からない・・・
25 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 02:45:49 ] スクリプト切ってると出ない
26 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 20:48:26 ] もうブームが去ったか・・・
27 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 20:59:58 ] 毎年この時期はどのスレもあんまり延びない。 2月になればまた伸びるよ。
28 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 11:27:10 ] というかScalaはもう終わってるよ
29 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:09:01 ] >>28 勝手に終わらせないでくれ。
30 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 00:25:05 ] 初心者だけど、XとY座標を扱うプログラムで 座標位置としてタプルを使うのは変?
31 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 00:38:43 ] 変ではないけど、手抜きだと思う。 手を抜いていい場面なら、タプル使ったほうが楽だね。
32 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 01:05:16 ] >>31 元の質問者じゃないけど、ケースクラス使えってこと?
33 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 03:39:58 ] あちこちで座標を表すデータを使いまわすなら、 case class Point(x: Int, y: Int) とかデータ定義した方がいいだろうね。
34 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 05:08:42 ] 例えばPointというオブジェクトを定義したとして それをMapのキーにして扱いたいんだけど、 Point p1 = new Point(100, 100); Point p2 = new Point(100, 100); これは値がいっしょでもインスタンスが異なるから別のキーとして認識しちゃう(Javaなら) ScalaだとPointクラスをどう定義すれば(書けば)いいですか
35 名前:y34 mailto:sage [2010/01/14(木) 05:38:20 ] Javaならこんなんです public class Point { private int x、y = 0; public Point(int x, int y) { thisx. = x; this.y = y; } public int getX() { return x; } public int getY() { return y; } @Override public boolean equals(Object obj) { boolean result = false; if (obj instanceof Point) { Point p = (Point) obj; if ((this.getX() == p.getX()) && (this.getY() == p.getY())) { result = true; } } return result; } @Override public int hashCode() { int hash = 3; hash = 47 * hash + this.x; hash = 47 * hash + this.y; return hash; } }
36 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 09:56:16 ] >>34 質問する前にまず試してみたら?と言いたくなるが、 ケースクラスはequalsメソッドも自動的に書き変わるから問題ない
37 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 19:12:07 ] >>36 一言余計
38 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 22:57:50 ] 書き込み少ないな goに流れたの?
39 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 23:01:03 ] goのほうがシンプルでいいよ。 それにネイティブだし。
40 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:13:23 ] GoとScalaはユーザーが全くかぶってないだろう
41 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 00:11:57 ] ttp://www.manning.com/catalog/undercontract.html ・Scala in Action by Nilanjan Raychaudhuri ・Scala in Depth by Jsshua D. Suereth 一年後ぐらい?
42 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 04:27:05 ] かぶるは、ruby?
43 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 09:06:10 ] かぶるのは、JavaやHaskellあたりじゃない?
44 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 10:13:17 ] Scalaはwebフレームワークが少ないからJavaの代わりにはまだならないな Javaのフレームワーク使うって手もあるんだろうけど
45 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 14:11:02 ] 結局Scalaは流行らなかったな
46 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 14:19:09 ] PHPもRubyもずっとそう言われ続けてきたが、 ゆっくりと浸透し続けて言ってるからなあ
47 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 14:20:26 ] Objective-CがiPhoneの影響でいきなり流行りだしたり 本当に将来は何が起きるかわからんよ
48 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 17:18:42 ] Obj-Cは一生流行りませんw
49 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 17:33:54 ] >>48 世の中何があるか本当に分からない www.tiobe.com/index.php/content/paperinfo/tpci/index.html
50 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 17:43:35 ] Web Flavorは生きてるのか?
51 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 20:50:12 ] >>45 Googleが買収したEtherPadが実はScala(だけじゃないけど)で 書かれてたりとか、foursquare.comがScala + Liftで書かれてるとか 地味にだが採用事例は増えて来てる。爆発的に流行しなくていいけど 着実に実績積み上げて行って欲しいな
52 名前:デフォルトの名無しさん mailto:sage [2010/01/17(日) 20:51:07 ] >>50 一応生きてはいるみたい。ひょっとしたら、今年は何かアップデートが あるかもね。
53 名前:デフォルトの名無しさん [2010/01/17(日) 23:27:55 ] うおおおおお IntelliJ IDEA Community EditionのScalaプラグインすげえええええ!!! EclipseとかNetbeansのプラグインがウンコだったが IDEAのプラグインはマジで普通に完成されてるじゃん! Scalaが俺の中で株を一気に上げまくった
54 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 16:02:18 ] >>53 君の言葉遣いにはウンコがついてるよ
55 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 05:41:20 ] 2.8のドキュメントの形式は変更されたのか。 前スレでコレクションの関数が返す型がわからんとか 心配されてたけどちゃんと考えられてるのね
56 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 15:58:11 ] ubuntuの9.10を使ってるんですが、プラグインの関係でScala 2.8をしようとしています。 とりあえず>>11 のnightly buildから最新版を落としてパスは通したのですが、 どうも実行する実体がスクリプトでcygwin/linuxなど環境によって実行ファイルを替えているためか、 apt-getで入れたものと比べ若干起動が遅くなってしまいました。(起動時に一拍置く感じ) できればaptで入れられればありがたいのですが、scalaのnightly buildでaptパッケージのものとかないんでしょうか? あるいはsubversionリポジトリから自分でコンパイルすればできますか?
57 名前:56 mailto:sage [2010/01/24(日) 16:02:54 ] ちなみにバージョンを表示させたときの実効時間はこんな感じです。 sin% /usr/bin/time -p scala -version Scala code runner version 2.8.0.r20638-b20100123020158 -- Copyright 2002-2010, LAMP/EPFL real 0.61 user 0.50 sys 0.06 sin% /usr/bin/time -p /usr/bin/scala -version Scala code runner version 2.7.5final -- (c) 2002-2008 LAMP/EPFL real 0.18 user 0.10 sys 0.02 この程度の差であれば、普通にコンパイルする分には気にならないもんでしょうか。
58 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 10:50:00 ] ようやく2.8のベータがでたらしい
59 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 11:50:55 ] Scalaの型推論って今後もっと型を明示しなくてもいい箇所が増えたりするものなの?
60 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 11:59:09 ] >>59 どうだろうね。そのような予定自体は特に無いみたいだが。 一般論としては、そもそもScalaみたいな型システム上でHaskellとかML並の型推論を やるのは原理的に難しい。ローカルなメソッドに限定すれば、呼び出し側の情報も 使って推論するとかまだやりようはあるだろうけど。
61 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 12:37:12 ] >>60 どうもです。型推論は素晴らしいんだけど、推論してくれるところとしてくれないところが はっきりしないのがどうも気持ち悪いんです。全部推論してくれる奇跡起きないかな
62 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 13:55:03 ] >>61 Scalaのような型システムで完全な型推論をするのは確か決定不能だったと思うので どうにか制限を加えないと残念ながら、無理かと。
63 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 13:59:31 ] >>62 そうなんですか。おもしろいですね。>決定不能 でもScalaは好きなんで、今後も期待してます。
64 名前:デフォルトの名無しさん [2010/01/30(土) 02:19:53 ] 2.8.0 beta1
65 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 03:14:47 ] よーわからんが2.8はIDEが便利になりそうな悪寒
66 名前:デフォルトの名無しさん [2010/01/30(土) 10:55:09 ] >>65 え?なんでですか?
67 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 12:30:15 ] お試しベータ版 www.scala-lang.org/scala-eclipse-plugin-beta-preview
68 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 22:37:29 ] Scala 3.x proposal: drop method overloading (in light of 2.8 named params) and introduce slots listerals as in Fantom bit.ly/bJHCSe だと
69 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 11:15:19 ] Eclipseでプラグイン入れて使ってるんだが、2000行程度のファイルを開くと死ぬほど重い、というか落ちる。 絶対処理のどっかにO(N^2)以上の繰り返しが入ってる気がする。
70 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:41:52 ] Scala 2.8 ベータ1リリース www.infoq.com/jp/news/2010/02/scala-beta1
71 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:42:13 ] 話題ないのな
72 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 20:41:12 ] >>57 2.8.0の起動たしかに重いね scalac(コンパイル)も重いけど、こっちはfsc使えば気にならないかな。 あとは、別件だけど、 Windowsでコンソールで使う時は、Server VM使うように、 JRE単体ではなくServer VMを持ってるJDK側のJREを使ってる。 (64bitだとClient VMがなく、Server VMしかないらしいが) 各BATのデフォルトが _JAVA_OPTS=-Xmx256M -Xms32Mなので、 set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_18\jre set JAVA_OPTS=-server -Xmx256M -Xms32M を設定して使ってる。 ただし、JDKのバージョンあげた時に、変更するのはめんどくさい。
73 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:11:13 ] とりあえず手元にあったScala 2.8.0の夏ごろのビルドで試し、msysのtimeで計測 (CPU負荷は全部100%張り付いた) ソース ttp://d.hatena.ne.jp/ryugate/20080417 C2D 1.2GHz 2GB Vista 32bit Scala 2.8.0.r18207-b20090705020223 (Java HotSpot(TM) Client VM, Java 1.6.0_18). JAVA_OPTS="-Xmx256M -Xms32M" real 21.538s (user 0.153s sys 0.432s) JAVA_OPTS="-Xmx256M -Xms32M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=25 -XX:GCPauseIntervalMillis=100" real 24.090s (user 0.076s sys 0.430s) Scala 2.8.0.r18207-b20090705020223 (Java HotSpot(TM) Server VM, Java 1.6.0_18). JAVA_OPTS="-server -Xmx256M -Xms32M" real 15.076s (user 0.076s sys 0.401s) JAVA_OPTS="-server -Xmx256M -Xms32M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=25 -XX:GCPauseIntervalMillis=100" real 22.017s (user 0.122s sys 0.401s)
74 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:39:25 ] >>68 この提案、FANTOM(Fan)の作者が指摘した内容そのままなのかw Lex Spoonとかコメント書き込んでるんだw ■Fan vs Scala: Different Trade-offs ( fantom.org/sidewalk/topic/675 ) > 『Slot Reflection』 > One of major design decisions Fan made a long time ago was to disallow method overloading. > Method overloading is the kiss of death for easy reflection and meta-programming. In Fan any > slot can be identified with the qualified name pod::Type.slot. Slot literals are built into the language: > m := List#join // same as Slot.findMethod("sys::List.join") > Languages like Java or Scala which support method overloading require the parameter types in > order to perform method reflection. Identifying methods strictly by name is also a key enabler > for efficient dynamic dispatch. This is a trade-off Fan and Scala have made differently - Fan > took away a Java feature in order to simplify reflection and dynamic dispatch.
75 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 06:38:46 ] >>74 リフレクションの簡易記法を入れようってこと? フレームワークとかDSL作ってる人にはうれしいのかな。 自分はリフレクション使ったことないからなぁ
76 名前:デフォルトの名無しさん [2010/02/11(木) 19:09:36 ] 誰かエロい人説明希望です。 リスト中に1つでも true があれば true を返すって問題を解くときに 下記の1つめがダメなのはなぜですか? バージョン 2.7.7.final です scala> List(false, false, false).exists(_) res0: ((Boolean) => Boolean) => Boolean = <function> scala> List(false, false, false).exists(_ == true) res1: Boolean = false scala> List(false, false, false).exists(e => e) res2: Boolean = false scala> List(false, false, false).exists(!_) res3: Boolean = true
77 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:44:30 ] >>76 関数の部分適用になってるから Scala は _ を使い回ししすぎな観もある まあ、大体わかるんだけど
78 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:01:10 ] 人気ないね(T_T)
79 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 03:47:39 ] 今日使いはじめたよ。Java 使ってる身としては、夢のような言語。
80 名前:76 mailto:sage [2010/02/12(金) 11:24:44 ] >>77 サンクスコです!
81 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 16:02:48 ] すごくバランスが良い言語だな、と思いました。 ビジネス向けシステム開発とかにも多く利用されるようになりそう。
82 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:23:36 ] 現状、ScalaにしろClojureにしろ、後方互換性のないコア部分の変更もあるから、 そこは注意しないと駄目だけど
83 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 04:02:22 ] 疑問なんだが同じ内容の文字列をeqで比較するとtrueが返るんだが、 > "text" eq "text" Boolean = true eqってStringにないからRichStringに変換されて比較されると思うので 別のインスタンスだとfalseになると思ったんだが、違うのかな RichStringを返すreverseメソッドを使って比較すると、こっちはfalseになる > "text".reverse eq "text".reverse Boolean = false
84 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 04:16:35 ] AnyRefのeqが呼ばれてる Javaでいう、参照型を==で比較してるのと同じ つまり、指すインスタンスの同一性を比較していることになる その例だと、同一内容のリテラルだからキャッシュされてるんだろね
85 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:22:48 ] 同一内容の文字列リテラルがinternされるのはJavaの仕様。
86 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 19:15:08 ] Scala上で定義した自作アノテーションをリフレクション経由で読み取る方法ってないですか?
87 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 19:58:33 ] >>84 ,85 レスどうもです いろいろいじってたらなんとなくわかってきた。 class Str class RichStr(val self:Str) { def eq2(rs:RichStr) = this eq rs def eq3(rs:RichStr) = self eq rs.self } implicit def str2richstr(str:Str) = new RichStr(str) val str = new Str str eq2 str // false str eq3 str // true 自分はこのeq2のようなのではと思ってたけど 実際にはeq3のような処理になってるのかな
88 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:57:16 ] >>87 いや、そんなややこしい話ではなくて、StringのスーパークラスであるところのAnyRef にeqメソッドがあって、これはJavaの==と同様に参照の等価性を判定してるってだけの ことであって、implicit conversionは関係無い。Javaで"text" == "text"と書いたのと同じ。
89 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:20:13 ] >>87 もしかしてJavaの(プリミティブ型以外の)クラスはAnyRefのサブクラス扱い?
90 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 01:40:04 ] >>89 もしかしても何も、AnyRefはObjectの別名。
91 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 06:56:59 ] >>90 thx! コンパイル後はJavaのObjectとして扱われる、とはなんとなく思ってたけど 言語的には別物だと勘違いしてたわ
92 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 18:31:30 ] Scalaのfor式ってHaskellでいうdo構文に対応するって言うけど、 do { x <- m; expr } みたいなのはfor式でどうかくんだ? Scalaでは書けない?
93 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 23:40:11 ] >>92 全く同じ形では書けないな。あえてやるなら、 for(x <-m; _ <- expr) ... とかするしかない。
94 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 10:28:46 ] >>93 それだとexprの結果が無視されない? x = do { x <- m; expr } みたいに使いたいんだ。やっぱりScalaでは実現不可能?
95 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 12:13:04 ] >>94 exprがreturn expr2の形なら、for(x <- m) yield expr2で書けるけど、それ以外の場合は forだとちょっとやりづらいかなー。ちょっと見た目が変わるけど、等価な形式なら val x = for(x <- m; y <- expr) yield y とか。それ以外だと、 flatMap(要はHaskellの>>=)直書きするしか。 val x = m.flatMap{x => expr}
96 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 12:15:10 ] >>95 自己レス。等価というのはforの中で副作用が無い場合の話ね。forの中で副作用があった場合、 上の書き換えは等価じゃなくなるので。
97 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 12:43:46 ] >>95 おぉありがとうございます。 x = do { x <- m; expr } ↓ val x = for(x <- m; y <- expr) yield y の書き換えでこれからモナドります。
98 名前:デフォルトの名無しさん [2010/02/16(火) 21:44:01 ] Scalalab に興味ある人います? (科学技術計算用途のScala) 現時点でどれくらい実用になるんだろうか。 MatlabとかScilabとかって、手続き型言語なんで、やってられんので、 Scalalabにはがんばって欲しいなあ。
99 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 22:07:31 ] >>98 科学技術計算は専門じゃないしそれほど興味も無いけど 内部実装がどんな感じなのかには興味あるな。
100 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 08:12:21 ] ttp://sourceforge.jp/magazine/09/09/02/0411204 GroovyからREPLを移し作ってるのか。 jLabのほうは速度の記述ないけど、scalalabは、その部分で速度稼げてるのか > It is the basic scripting engine. Its scripting code is extremely fast, > close to Java, and about 20-40 times faster from equivalent Matlab .m scripts!
101 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 23:08:05 ] なんか今一盛り上がりに欠ける
102 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:07:05 ] erlang/OTPなどを実装したakkaとか 分散処理のspawnとか Web Frameworkもろもろとか Apache CamelとかScala自身で、DSLとか 分散オブジェクトキャッシュ?KVS?のGoat Rodeoとか なにをどう使えばいいのかようわからん。
103 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:39:54 ] twitterの人のはなんかないかな ttp://github.com/robey KVSサーバー側は、Scalaじゃなくても高スループットで可用性上がっている 国産のを使えばいいような気がするが・・・って、kestrelはqueueなのか
104 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 12:18:29 ] びみょうな本がでたらしいね。 みてないけど。
105 名前:デフォルトの名無しさん [2010/02/21(日) 02:45:20 ] >104 Steps in Scala: An Introduction to Object-Functional Programming これか? 2010.9月発売だけど。 Pro Scala: Monadic Design Patterns for the Web Gregory Meredith (ペーパーバック - 2010/4/25) それとも、こっち?
106 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 11:39:43 ] これじゃないかな。 やさしいScala入門 www.cutt.co.jp/book/978-4-87783-238-4.html
107 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 11:48:30 ] なにそれ、そんな本出てたんだ Amazonにはないみたいだけど、なんかあやしい感じだな 目次がJavaの入門書と区別つかないし どう見ても地雷本
108 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 14:26:59 ] Scalaスレにもなると一発で見抜かれるんだなw
109 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:07:36 ] 想定している読者層がよく分からない本だな。
110 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:43:45 ] お気楽極楽のカットシステムじゃあなぁ
111 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:23:18 ] 出版社名で避けるレベル。
112 名前:デフォルトの名無しさん [2010/02/22(月) 00:54:46 ] >>106 > やさしいScala入門 > www.cutt.co.jp/book/978-4-87783-238-4.html 初心者向けの本が出て、ユーザーが増えるのは、喜ばしいことじゃないかな。 あと、初心者向けの本は、一気に速読できるので、上級者が速習するのにも使えるし。 でも、この出版社の本って、紙質が厚めなので、ページ数の割りに厚くて重い本になる。 だから買う気にならない。 文庫本サイズで出してくれれば、電車の中で読む用に買っても良いのだが。。
113 名前:デフォルトの名無しさん [2010/02/22(月) 01:38:31 ] この本でユーザーが増えるのか? 「Javaの方が簡単じゃん?関数って意味わかんねw」って思われるだけじゃね?
114 名前:デフォルトの名無しさん [2010/02/22(月) 08:25:09 ] >>113 >「Javaの方が簡単じゃん?関数って意味わかんねw」って思われるだけじゃね? それはありえない。 なぜなら「やさしいScala入門」を手に取る人は、おそらくJavaも知らない人だろうから。w もっと売れる本を作れば良いのにねえ。あそこの出版社は。 厚くて重い割に、中身がソースでページが割かれていて内容ないので、買う気にならない。 レイアウトとサイズを考慮して欲しい。文庫本大くらいだったら、買ってやるのに。 >この本でユーザーが増えるのか? この本では増えないだろうね。 でも、最近、初心者向けScalaの本が増えてるので、人気高まるかも。 こちらは3月発売予定のだけど、、、どうだろうか? ↓ 初めてのScalaプログラミング DavidPollak/著 出版社名:日経BP出版センター 発売予定日:2010年3月19日
115 名前:デフォルトの名無しさん [2010/02/22(月) 08:58:54 ] >>106 >>111 著者名でも避けるレベルですな。
116 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 09:21:53 ] やさしい(インタープリタ|コンパイラ)の作り方入門の人かw
117 名前:デフォルトの名無しさん [2010/02/22(月) 09:42:26 ] >まとめ >『やさしいScala入門』はひどい本である。 >関数型プログラミングについてほとんど触れられていない >Scalaの特徴的な機能があまり紹介されていない >基本的な事実誤認や珍妙な解説が散見される d.hatena.ne.jp/kmizushima/20100222/1266771623
118 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 11:14:37 ] >>115 誰かと思ったら日向俊二か… この人と矢沢久雄は著者名だけで機械的に選択肢から外していいよ。
119 名前:pom [2010/02/22(月) 11:26:46 ] この本&日向俊二がひどいのは、言うまでもないとして、矢沢久雄って人、知らんかったけど、ダメな人なの。なんか偉そうなこと書いてるようだが。
120 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 11:39:18 ] 多くの本を書いているけど、一冊として役に立たないクズ本ばかりという点で矢沢と日向は似ている。
121 名前:pom [2010/02/22(月) 12:51:14 ] ふむふむ(頭にメモ)。 先程の書込み、句読点変ですまん。 (まぁ、妙な本を出版するよりは・・・)
122 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:12:06 ] まあ、こういう粗悪安物ライターが喰い付いてくる程度にはScalaもメジャーになったと考えればいいのでは。 個人的にはOderskyの本さえあれば十分じゃないかと思うけどね。
123 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 17:31:10 ] >>114 >初めてのScalaプログラミング >DavidPollak/著 >出版社名:日経BP出版センター >発売予定日:2010年3月19日 たぶんBeginnin Scalaの翻訳版だと思う。著者のDavid Pollakさんは Liftの作者だから内容に関しては信頼して良いだろう(訳がよっぽどおかしくなければ)。
124 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 18:08:40 ] h t t p://www.amazon.co.jp/gp/cdp/member-reviews/A1DXJM7NYG32SJ/ 魚拓とっといてもいいレベル
125 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 23:20:32 ] 配布してるソースコードのアーカイブ形式が lha というだけで、なんか「違う」んだよな
126 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 08:16:01 ] 立ち読みしてきたけど、たしかにこれはひどいや。まさに上のブログの通り。 日向ってまともにプログラム書いたことなんてないんだろうな… 駄本書くために自分がわかる範囲でちょこっといじる程度なんだろうよ。
127 名前:デフォルトの名無しさん [2010/02/23(火) 09:40:10 ] 文法的には、odersky本(通称、コップ本) があれば十分かなあ。 今、日本で望まれているのは、もっと応用的な本かと思われ。 Liftつかって、こういうの作れます、、みたいなの。 それとも、scala逆引き辞典みたいなのか。 scala使うことを生かせる応用分野って何かあるかなあ? >126 日向の最近の本でいうと、 「やさしいコンパイラの作り方」 「やさしいインタプリタの作り方」 の本を買っちゃったよ。 紙面の大半が、氏のオリジナル言語を実現するコンパイラのソースで、 まあ、それを読む価値はあるといえばある(他のコンパイラ本は理論的過ぎて難しいので)けど、 説明の方はイマイチな気がする。 要するに買ったけどまだ読んでいない。w
128 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 09:44:46 ] Rubyの場合だけど、アルゴリズムとかオブジェクト指向を考えるのに、Rubyで考えると分かりやすいって 最近気付いた。 でも、Scalaの場合は、どうかなあ? まだ、Scala良く分かってない。 だれか、「Scalaで学ぶアルゴリズム」みたいなの、書いてくれないかなあ。
129 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 09:54:56 ] >>124 「知らないと恥をかくプログラミングの常識」の コメントが自作自演を指摘しています。 www.amazon.co.jp/review/R25Y5JQNH33VC4/
130 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 10:20:09 ] なるほど、これは悪質だな Odersky本にケチをつけて自分の本に誘導してたのか まあ、間に受けるやつなんて誰もいないだろうけど 著者もひどいが、こんなやつに書かせている出版社も問題だな
131 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 11:04:57 ] scalaスケーラブルプログラミング今読んでるんだけど コードの変数名にxsとかysとかよくでてくるけどなんの略なの?
132 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 11:19:56 ] >>131 本は見てないけど複数形じゃね?
133 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:10:35 ] わかた、sequenceの略っぽいすね リストのリストとかにはxssとかも使われてますな
134 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 17:28:45 ] 関数型言語の教科書なんかだとよく xs, ys, ... という変数名が使われるね。
135 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 17:39:53 ] 昔からPrologだとリストの先頭要素をX、残りのリストをXsで表すことが多い ユニフィケーションで [X|Xs] と書く Haskellのパターンマッチングだと (x:xs) だから複数形でよくね?
136 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 19:15:36 ] var map = Map("a" -> 1) map += (("b",2)) だといけて map += ("b",2) ではいけないのはなぜなの?
137 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 19:47:28 ] 「+=」をメソッドだと思えば、その理由がわかるのでは? ちなみに、 map += ("b" -> 2) だとOKなんだね 「->」と「,」って等価ではないのか
138 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 19:58:24 ] class Hoge { def +=(t:Tuple2[String,Int]) = {} } val hoge = new Hoge hoge += ("b",2) これだといけるみたいですねぇ…やっぱわかんなす
139 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 20:31:18 ] >>136 map += ("b", 2) の場合、("b", 2)という二つの引数を取るメソッド呼び出しであると 解釈されるから、だね。 >>137 基本的には同じだと考えて問題無いけど、 -> は単なる組み込みライブラリの*メソッド*に過ぎないのに対して、 (,)はタプルを作るための組み込み*構文*なせいで、上のケースのように 微妙に異なる解釈されちゃうケースが出てるってことだね。 Scalaだと、複数引数を取る関数とタプルを引数に取る関数が異なる扱いに なってるので、その弊害とも言えるかも。
140 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 21:02:30 ] >>138 が気になって2.8のコレクションのソースコード眺めてみたけど、なんでなのかわからんね なんでそれはよくて、mutableのMapだと駄目なんだろ しかし、2.8のソースって読みづらすぎね? 関数型言語としてみると、標準ライブラリがこんなにごちゃごちゃしてるというのは問題だと思うんだけど 普通、言語を勉強するときって、標準ライブラリを読むもんでしょ 十分メジャーになって、本もたくさん出てるから、そっち読みなさいってことなのかなあ
141 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 21:10:10 ] class Hoge { def +=(t:Tuple2[String,Int]) = {} def +=(t:Tuple2[String,Int], t2:Tuple2[String,Int]) = {} } val hoge = new Hoge hoge += ("b",2) //だめ hoge += (("b",2)) //いい なんかオーバーロードが関係してるっぽいことを発見
142 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 21:16:22 ] >>141 ああ、それが原因だね 2.8のソースコードのGrowable.scalaに def +=(elem1: A, elem2: A, elems: A*): this.type = this += elem1 += elem2 ++= elems というのがある 2.7のソースだと同じところにあるのに 2.8だとMap → MapLike → Growableと継承されてんだよな 他にもMapLikeBaseとかあるしさ オーバーロードメソッド見つけるのもしんどいわ
143 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 21:19:30 ] つまりオーバーロードがない場合だと hoge += ("b",2)はt:Tuple2[String,Int]の引数しかとらないことを知ってるから hoge.+=(("b",2))に解釈してくれて(勝手にタプルにパックしてくれる?) ある場合は パックしてt:Tuple2[String,Int]をとるメソッドに渡していいのか t:Tuple2[String,Int], t2:Tuple2[String,Int]の引数の型間違えなのかわからないってことですかね
144 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 21:30:46 ] いやなんかぜんぜん違う気がしてきた
145 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 22:00:40 ] >>143 Scalaのメソッドは二項演算子化して括弧を省略できるよ 要するに型推論のアルゴリズムの問題でしょう オーバーロードされてて括弧を省略されると、タプルと引数の区別ができないと タプルは -> を使ったほうがいいね hoge += "b" -> 2 これでいいわけだし
146 名前:pom [2010/02/23(火) 23:13:36 ] >タプルは -> を使ったほうがいい だね。 関係ないが、 scala> var map = Map{"a" -> 1; "b"->2} map: scala.collection.immutable.Map[java.lang.String,Int] = Map(b -> 2) scala> var map = Map("a" -> 1, "b"->2) map: scala.collection.immutable.Map[java.lang.String,Int] = Map(a -> 1, b -> 2) といったあたりも、 OCamlやらJavaScriptやら他言語のユーザーからすると微妙にストレスなのかな。 表記法は好みの問題も大きいところだろうけど、間違いの少ない表記が言語ユーザー間である程度確立 することは大事だね。
147 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 01:53:55 ] 俺も、タプル前後のスペースの有無で何回もハマった。 おかげで、(a -> b) か Pair(a, b) でごまかす事を覚えたが。
148 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 02:13:50 ] >>143 >>145 あー。オーバーロード絡みだったわけか。完全に勘違いしてた。メソッドオーバーローディング はScalaみたいな複雑な型システムを持った言語と組み合わさるとかなり厄介だねえ。
149 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:16:50 ] ほっほー…すげーなScala。 なんかC++の二の舞になりそうな勢いだね。 悪い意味で(´_`)
150 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:34:46 ] C++は使いこなせてない自分でもScalaは大丈夫だったし、C++程 習得が難しいわけではないと思う。いくつか落とし穴があるのは 事実だが、それほど大した問題ではない場合が多いし。
151 名前:pom [2010/02/26(金) 23:49:19 ] (このあたり、知識がないので大ざっぱな話ですまないが) Scalaの言語仕様の大きさは、 C++に比肩されるようなものだと思う。 だけれど、Scalaでは 自分(そしてチーム)が面倒見切れる範囲でコードを 書いていけば、そこそこ高い生産性を出せると思う。 自分の指向としては、シンプルな言語を望むところがあるのだけれど、 Scalaに代わりうるほどの生産性を発揮出来そうな言語が ないのが、ここ2年ほどメインの言語をScalaに切り替えて判明している事実。 >>150 その通りで、慣れれば、落とし穴にはまることは少ない。 全体としてはScalaは素晴らしく練り上げられているよ。 「理想の言語」かはさておき・・・
152 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 09:53:14 ] Scala製学習環境Kojo netbeans.dzone.com/learn-scala-with-kojo www.kogics.net/sf:kojo
153 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 12:19:59 ] >>151 >シンプルな言語 つClojure
154 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 18:16:55 ] >>152 Kojoはやけにロゴがしょぼいのがアレだけど、なかなかよくできている環境だと思う 入力補完にコマンドヒストリ、オブジェクトインスペクタ、タートルグラフィクスに関する コマンドのUNDOなど機能は豊富だし、割と安定してる。
155 名前:デフォルトの名無しさん [2010/03/01(月) 04:03:36 ] パーサコンビネータを使った言語外DSLの例を載せたサイトとか知ってる人いる? 良くある四則演算DSLとかではなく、変数宣言部があるようなやつが知りたい。どんな感じで作れば良いのか。
156 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 07:22:28 ] 変数宣言まであったらDSLというより普通に言語なんじゃないの?
157 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 11:47:22 ] >>155 変数宣言があっても基本は変わらないと思うよ。普通のパーザジェネレータ使って オレオレ言語のパーザ書くのと本質的には同じ。また、変数宣言を持った言語の パーザ書いたことが無いならパーザコンビネータかどうかというのは本質的な問題 じゃない。
158 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:01:46 ] Option型がよくわからないOption型についておしえてくれ
159 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:20:55 ] HaskellのMaybeみたいなもん
160 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:52:17 ] 自分はC++の関数戻り値での、参照とポインタの使い分けのようなものだと思ってる。 C++だとnullがありえる戻り値ならポインタを返すけど、それがScalaだとOptionになると。 Optionは便利な関数があるからnullのチェックのif文書くより楽チン
161 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 02:06:53 ] Null オブジェクトパターン + パターンマッチ
162 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 02:16:48 ] >158 nullチェックし忘れによる、ぬるぽを防ぐ 加えて、Listもどき(長さが0か1のリスト)と見なせる事により、for文やmapで便利 あと、パターンマッチ でも、Option型使うより、その発展系のBox型の方がより便利で いいとこが分かりやすい。 あ、Box型ってのは、Liftのライブラリね。 で、Liftの作者がBox型の布教文書を書いてたので、それを読むといい。
163 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 12:39:27 ] scala.swing.ListView#listData呼ぶとスタックオーバーフローが起きる。2.8.0Beta1 ソース読んでみたらこんなんなってた。 def length = model.getSize def iterator = new Iterator[A] { var idx = 0 def next = { idx += 1; apply(idx-1) } def hasNext = idx < length } Iteratorにlengthメソッドがあるのでそっちが使われちゃって、さらにその中でhasNextを呼んでるから無限ループになってるっぽい? 本家に報告するべきかなと思ったけど、注意書きに 「お前それほんとにバグかどうか確かめたの?お前の勘違いじゃないの?理解できてないだけじゃないの?死ぬの? てめぇで判断つかないならMLで相談するなりしてからにしろよ^^;;;;」 って書かれてて心が折れたので誰かエロい人報告しといてくだしあ><
164 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 16:26:49 ] 日経と工学社から本が出るね。 Cloujerより需要があるのかなあ?
165 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 03:39:54 ] ClojureはLispだからなぁ
166 名前:デフォルトの名無しさん [2010/03/08(月) 14:29:32 ] 文法にあるTopStatとかのStatって何の略?
167 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:08:55 ] >>163 注意書きに気にせず報告すると良いと思うよ。 がんばって。
168 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 02:20:56 ] (mavenスレで聞いてもscalaのことなど知らんと言われそうなのでこちらで聞きますが) maven-scala-pluginを使っているのですが、 これって分割コンパイルする方法はないのでしょうか。 *.scala ファイルが25個で、1400行程ですが、 40秒近くかかっています。 mavenに限らずscala一般の話でもわかる方、 いましたらよろしくお願いします。
169 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 02:24:39 ] >>168 追記です。 mvn scala:cc は、やってみました。 レスポンス自体の改善にはならなかったです。
170 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 03:33:44 ] >>168 maven-scala-plugin使ったこと無いけど、普通に考えて分割コンパイルされそうなもんだけど… Liftも以前はmaven使ってたはずだけど、修正のたびに全部再コンパイルだったら使い物に ならんかっただろうし。まあ、確実に修正差分だけコンパイルして欲しいならsbt(Simple Build Tool) 使うのが無難かなあ。sbtはコンパイラAPI叩いてファイル間の依存性解析とかしてるから、その辺は 割と正確。
171 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 05:01:40 ] >>170 sbt 試してみました。 毎回コンパイラを起動しない設定だとかなりのスピードアップがあるようです。 (あわせて169の記述は取り下げます) (1〜3回目というのは、ソースを1行だけ編集してコンパイルさせた結果の3回分です) またsbtの効果は大ですが、この規模では真価は発揮できないようです。 mvn scala:compile 33s sbt compile 17s mvn scala:cc 28s (1回目) 7s (2回目) 5s (3回目) sbt ~compile 19s (1回目) 8s (2回目) 4s (3回目)
172 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 05:35:56 ] scalaのコンパイルしてると、昔、DOSでCを一生懸命コンパイルしてた頃を思い出す。 そんな遅さ。
173 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:20:23 ] >>156 >>157 返答が遅くてすまんが、レスありがとう。 結局やりたいことはできますた。 結局、自分がパーサコンビネータの使い方が良く分かってなかっただけだった。良く分からないんで手っ取り早く参考となるものがみたかったと、こういうすんぽうです。 適当にいじくってたらだんだん理解してきてなんとかできた。
174 名前:デフォルトの名無しさん [2010/03/13(土) 21:53:35 ] clojure陣営ですけど戦争したいです、DISりたいです
175 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:26:20 ] ありがちな動的型付け VS. 静的型付けとかだったらどうせ泥沼になるのが 見えてるので勘弁。clojureスレでやってくれ。
176 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:30:55 ] Clojureスレにも来ないでください
177 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:20:57 ] それじゃあ新しく出たScala本の書評をたのむ
178 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:56:34 ] ん?3/18発売のScala入門のこと?
179 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 23:27:14 ] Java使わずにScalaでiモードのアプリ作ったり出来ないだろうか
180 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:13:29 ] SEとCLDCの違いをかなりの手間かけて埋めたとしても ランタイムのサイズがつらくないか?
181 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:01:38 ] ProGuard使って要らないクラスファイルをjarから除去すれば、結構小さくなるので ひょっとしたらそれでなんとかなるかもしれないけど、そこまでする価値があるかどうかだな。
182 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 01:59:39 ] >>179 > Java使わずにScalaでiモードのアプリ作ったり出来ないだろうか Androidは、Scalaでプログラムできるらしいぞ! 今どき、iモードなんて流行らないだろう。Androidで行こうぜ!
183 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 02:51:37 ] >>182 そんなことはこのスレの住人なら誰でも知ってるわ。つか公式サイトに載ってることだろ。 大体、iアプリの質問に対してAndroidに話を換えてどうすんだよ。アホにもほどがある。
184 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 07:54:29 ] マジレスわろた
185 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 05:50:50 ] 2.8のAPIドキュメント眺めてたらMutableListの def union(that: Seq[A]): Seq[A] というメソッドが3つあったんだけど、おなじのが3つってどういうことだろ。 説明文は全部違うみたいだけど英語だからよくわからん。
186 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 18:04:19 ] >>185 恐らく、新しいAPIドキュメントの生成器(scaladoc2)のバグだね 説明文をよく見るとわかるけど、最初の一つがintersect,その次がdiff,最後がunion の説明になってる。MLかTracで報告してあげると良いのではないかと。
187 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 18:10:12 ] ちなみにsは現在けっこう試行錯誤中っぽくて、細かい挙動とか見栄えとかよく変わるので、 その点に注意した方がいいと思う。なんか変な挙動があったらバグの可能性が高い。
188 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 18:12:07 ] ミスった。sは→scaladoc2は
189 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 03:29:24 ] >>186-188 なるほど、バグか。 ScalaはJavaと比べて複雑だし、大変なんだろうな。 報告は・・・うん、ごめん、ムリぽ 英語ができるなら真っ先にあの検索の挙動について文句を(ry
190 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 22:34:01 ] Netbeans 6.8で2.8が使えない なんとかしてくれ
191 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 02:58:23 ] 6.8と2.8なら問題なくいけてるけどなぁ。 とりあえずNetBeansをインストールしなおしてみれば?
192 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 06:01:16 ] platform-dev - NB6.8 with Scala version 2.8.0.Beta1-prerelease www.listware.net/201003/netbeans-platform-dev/67512.html
193 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:44:20 ] scalaの勉強のために、Intellij IDEA入れてみたが中々良いな。 ただ、プラグイン入れてもEmacsライクなSet Markが機能しない。。。 またEclipseに戻りそうだ。
194 名前:デフォルトの名無しさん [2010/03/22(月) 23:18:14 ] scalaすごいわ 数年内にRubyとか淘汰すると思う
195 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 23:50:30 ] >>194 Scalaいいよねぇ Rubyのアホみたいにテスト工数が ざっくり減るし。 ただ技術者なかなかいないよねぇ
196 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 21:22:30 ] おなじJVM上のclojureが攻めてくる・・・わけないなw
197 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 21:56:00 ] 日本語のlift本でも出ないかな・・・
198 名前:デフォルトの名無しさん [2010/03/24(水) 23:35:27 ] Scala言語を学ぶやさしいツール「Kojo」が無償公開 Publickey www.publickey1.jp/blog/10/scalakojo.html
199 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 00:14:10 ] apply関数の意味がいまいちわからないのですが なぜこの関数は存在するのですか?
200 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 00:46:37 ] 関数適用がapplyの呼び出しになるって点は理解している? 理解しているけど使いどころがわからないってこと?
201 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 06:58:37 ] 例えばmap関数を自分で実装するのに使う
202 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:12:19 ] こんなのがあった Specsみたいな書き方のやり方なんだろうけど、 なにをやってるのかさっぱりわからん(;´Д`) 誰か解説プリーズ。 gist.github.com/344299 class Example(description: String) { def in[T](expectations: =>T)(implicit def m: scala.reflect.Manifest[T]): Example = { if (m.erasure == this.getClass) hasSubExamples = true // store expectations for later evaluation } } /** * This allow me to define in specs examples which know if they have nested examples * without having to be evaluated */ "this example is simple" in { 1 must_== 1 } "this example has a nested example but it doesn't have to be evaluated to know it!" in { "I am nested" in { 1 must_== 1 } }
203 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 05:27:10 ] >>202 読んでみた。まず、このサンプルは、inの中にさらにネストしたテストがあるかどうかを テストフレームワーク側で検知することができることを目的にしている。そのために、 implicit parameterとして渡されたscala.reflect.Manifest[T]からT型のクラスを表すClass オブジェクトを取得して、this.getClass()、つまりExample classのClassオブジェクトと比較している。 もし、inに渡される引数の型=> Tが => Exampleだったら、ネストしたテストがあるということになり、 hasSubExamples = trueになる。そうでなければネストしたテストは無いということになる。 で、なんでscala.reflect.Manifestを使ってるのかだけど、これは、inに渡される引数の値がnullである場合 でも処理できるようにしているのではないかと思う。そうでなければ、単にexpectation.getClass = this.getClass で比較すればいいだけだし。
204 名前:デフォルトの名無しさん [2010/03/27(土) 08:15:34 ] scala.reflect.Manifestを使ってるのはexpectationsを評価する前に型を得るためだと思うけど あと implicit def m: は implicit m: の間違い?
205 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 19:08:04 ] >>202 >>203 あー、inがExampleを返すのはネストの判定のためなのか。 ネストならTがExampleになるのね。なるほどなぁ。
206 名前:204 mailto:sage [2010/03/29(月) 21:07:44 ] >>204 ああ、そっか。言われて見ればその通り。全然気付かなかった。
207 名前:203 mailto:sage [2010/03/29(月) 23:06:52 ] ごめん。名前欄、>>204 じゃなくて>>203 の間違いだった。
208 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 16:30:14 ] AnyVal型の変数にjava.lang.Long型のインスタンスが入ってたらそれをInt型に変換するには 2回asInstanceOfやるしかないんですかね? val a: AnyVal = 10L a.asInstanceOf[Long].asInstanceOf[Int]
209 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 21:01:56 ] 言ってることおかしいな、AnyValじゃなくてAnyRefでした val a: AnyRef = 10L.asInstanceOf[java.lang.Long] a.asInstanceOf[Long].asInstanceOf[Int]
210 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 18:46:05 ] >>209 val a: AnyRef = 10L.asInstanceOf[java.lang.Long] a.asInstanceOf[Long].toInt でOK
211 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:25:39 ] 最近、ImpressのScala本をほけーっと眺めてよさげだなぁとか思ってる初心者なんだけど、 処理系としてはどれくらい安定してる感じなの?
212 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 00:15:08 ] >211 何も知らずに言うが、処理系はJVMだから、Javaの10年以上の実績があって超安定。 だが、コンパイルが遅いのが難点ってところ。 コンパイラのバグは、致命的なのはないんじゃないの??
213 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 19:06:00 ] >>212 なるほど。それならわりと使えそうな感じだね。
214 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 20:16:28 ] 型パラメータの条件にこんなコンストラクタ持ってるみたいなのはどう書くんでしょうか こんなメソッド持ってるみたいなのはこんな感じで書けるみたいですが def func[T <: {def hoge(s: String): Unit}](value: T, str: String) = { value.hoge(str) }
215 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 02:02:49 ] >>214 直接的な方法は存在しない。2.7.Xで(実験的な機能として)入った scala.reflect.Manifestを使えば次のような形で書くことが一応できる import scala.reflect.Manifest def fun[T](implicit m: Manifest[T]): T = m.erasure.newInstance.asInstanceOf[T] fun[String] //String型のオブジェクトを生成
216 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 00:50:35 ] 何でFile IOとか付いてるんだろう。中途半端に感じるけど、perlとか見たいなのりなのかな?
217 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 00:50:49 ] 誤爆スマヌ
218 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 02:27:15 ] ?
219 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 19:22:38 ] 15,16とScalaDaysなわけだが、 days2010.scala-lang.org/program どれ注目すればいいん? Running in Browser?Data Parallel Programming?CCSTM?Automatic refactoring?
220 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 00:21:49 ] d(x:Int)(y:Int)(z:Int): Int = x + y + z ってどこまでが引数でどこまでが返り値でどこまでが 関数の実体なのでしょうか
221 名前:136 mailto:sage [2010/04/15(木) 13:15:05 ] scalaでunit testってある?
222 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 13:15:13 ] Scala 2.8.0 RC1
223 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 16:58:57 ] >>221 コップ本で1章使って概説してるよ
224 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 19:27:01 ] 便乗して、ScalaのテストはSpecsとScalaTestのどっちがおすすめ? ちょっと見たかんじだと、なんかあまり違いがないような
225 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 12:55:43 ] 「Scalaのサイトに載せたいから、Scalaユーザグループは メールでPhil Bagwellにグループの詳細を送ってくれ」 だって。
226 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 14:24:24 ] 仮のロードマップ ・Scala 2.9 (late 2010) parallel collections, more specialization, faster vector & hash tries Dynamic type (?), Scala reflection (?), Scala IO (?), more libraries ・Scala 2.10 (2011) Reactive programming, optional exception checking, first parallel DSLs, Scala .NET, more libraries ・Scala 2.11/3.0? (2012-2015) Optimizing parallel DSL framework, contracts (?), generalized effect checking, type debugging
227 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 14:41:09 ] @jorgescalaのtweetから Scala 3.0 could include: unification of tuples + function args, better type inference, union types Virtual classes still on the "research" roadmap, but has no owner Multimethods: definitely a research project. Unlikely to happen, unless someone implements it and nothing breaks. あとScala Foundationを設立して企業からもサポートもらうよ、 次回のScalaDays2011はサンフランシスコでやるよ、とのこと。
228 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 14:49:09 ] >226 .NET版をまだ諦めてなかった事に驚いた。 あと、例外チェックも。
229 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 16:13:11 ] >>228 .NETはMSが(VSの?)scalacモジュール出すらしい
230 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 19:59:01 ] >>229 > .NETはMSが(VSの?)scalacモジュール出すらしい Scala終了か? MSがやると互換性の違うのがいっぱいできて、利用者側が混乱するんだよね。。 MSの作戦でやっているのだろうけど。 Java,Html, 他にも、MSが下手に乗り出すことで、進化が遅くなった言語がいろいろ。。
231 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 20:24:04 ] >>230 わざと1980年代から意図的に同じ事くりかえして 自社の優位性を保とうとしているからなぁw
232 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 21:10:35 ] お前ら偏見持ちすぎだ。 似たケースとしてIronRubyを挙げるが、こっちは変な独自要素はないよ。 WPFなどの.NET API呼び出しが、独自要素だと言えばその通りだが、 それ言ったらJRubyやJythonのJava連携はどうなる、とかいった話になるし、 問題視している奴らはいないだろう。 というか、そんな余計なことに手を出す余裕がない。 ようやくRuby1.8準拠のIronRuby1.0がリリースできたところで、 次はRuby1.9準拠の1.1のリリースが待っている。 Scalaが、ブラウザや往時のJava並みの戦略的プラットフォームだとMSが判断したら、 大量の資金がつぎ込まれてMSの独自要素が作られるかもしれないが、 今の状況を見てそこまでScalaが流行ると思うなら、お前ら幸せすぎだろw
233 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 21:42:14 ] IronRubyは対応したばっかりだからこれからおかしくなるんだろ
234 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 21:50:47 ] IronRubyってMSの息がかかってるの?
235 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 22:08:56 ] そもそもMSが開発してるので
236 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 22:49:55 ] >>232 同意見だなぁ .netなんだし間口広げるだけだろうにな・・・
237 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 23:41:41 ] しかしJavaは改悪された
238 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 01:14:52 ] 今のMicrosoftのプログラミング言語とその周辺に対する取り組み方を知っていて それでもなお独自拡張を恐れるならともかく、古い情報に基づいての偏見はなぁ…
239 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 02:04:22 ] 三つ子の魂百までって言うからね 悪いことはするなって事だよ
240 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 02:09:51 ] >>238 結局、MS製品のある環境でしか動かないものしか作ってないからな。 建前は標準規格と言ってるが。
241 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 02:18:33 ] そりゃ慈善事業じゃないんだからメリットないことはしないだろ? 標準規格にはこだわるにしても
242 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 02:31:03 ] もちろんそうだ。 要は、ベンダーロックインされるリスクを負ってでも、その技術を使いたいかという話。
243 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 03:00:51 ] .Net版scalacは既にあってそれに対するモジュールだろうになんでこんな流れなんだ(;´Д`) MSの部分だけに反応するってことはscalaに興味ない人が荒らすためだけに巡回してるのかな・・
244 名前:242 mailto:sage [2010/04/18(日) 03:54:57 ] 俺は>>230 とは違う人間だよ。俺はMSを過剰に非難するつもりはないが、 歪んだ形の囲い込みを全く警戒しなくてもおk、というわけではないという当たり前の話。
245 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 03:58:32 ] >>241 いやメジャーOSだとそんなことやってるのWindowsだけだよ…
246 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 09:29:46 ] 別にロックインされないだろ。 便利な技術ならOSSでコピッて本家に取り込まれるし、 使えない技術ならそもそも.NET版でも使われなくて、MSの優位性が無くなる。 JavaScriptのXHRなんか、ActiveXベースでMS独自実装の最たるものだが、 標準に取り込まれて、今じゃAjaxの最重要技術だ。 J++を念頭に言っているのなら、あれはSunが相手だからああいう裁判沙汰になっただけで、 もっと緩やかな相手なら、ああはならず、J/DirectやCOM連携が、 他の処理系への移植を考慮した形で取り込まれていたと思う。 実際、J++でやろうとしていたことの必要性は確かにあり、その後OSSベースで実装されている。 JNIが不便だからと言って作られたJNAはNetBeansが由来だし、 いくつかあるJava-COMブリッジとか、OSSで作られてるだろ?
247 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 10:10:09 ] 結局違法にJAVA改悪したから Win2000発売停止になったよな じゃあScalaもきちんと監視しないと 改悪されるぞ
248 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 12:51:02 ] MS を脅かすほど Scala に影響力はないから大丈夫だよ。
249 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 12:53:08 ] >>246 > 便利な技術ならOSSでコピッて本家に取り込まれるし、 世の中には特許というものがあってだね。
250 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 16:19:28 ] 完全互換になんてなる訳ないじゃん Ironなんちゃらシリーズだって.netでしか動かない仕様になるぜ
251 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 17:10:06 ] 完全じゃなくても98%ぐらい互換ならいいよ
252 名前:デフォルトの名無しさん [2010/04/20(火) 21:14:19 ] そんなことより、Scalaの話をしようぜ! >「Scala 2.8.0」がRC1に >2010年04月16日 23:39 >プログラミング言語「Scala」の開発チームは4月14日、次期版「Scala 2.8.0」のリリース候補(RC)版を公開した 続きは、こちらでも、どこでも。。。 ttp://sourceforge.jp/magazine/10/04/16/1440244?from=rss 個人的には、Scala Swingライブラリに期待。 Visualな Swing開発環境が出てくれるとうれしいのだが。
253 名前:デフォルトの名無しさん [2010/04/20(火) 21:30:32 ] SwingをScalaでやるメリットってなんかあんの? 完結になるかどうかはSwingのAPI次第だからScala関係なくね? NetBeansでもう完成形でいいじゃん
254 名前:デフォルトの名無しさん [2010/04/20(火) 21:31:13 ] ×完結 ○簡潔
255 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 22:25:25 ] ScalaとRubyだと、Scalaが秀でているところってどういうところ?
256 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 22:30:51 ] 速い
257 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 22:39:05 ] 実行速度が速い、強い型付けがあるってとこかな
258 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 23:03:16 ] >>252 ScalaでFRPとかできるようにならんのかな。それとももうある?
259 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 23:26:07 ] なるほど速度ですか 関数型言語=マルチコアに対応したプログラムができる というのはScalaの場合当てはまりませんか?(もしくはRubyもそういうのを作れる?)
260 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 00:28:41 ] マルチコアに対応したプログラムなんてPerlでも書けるだろ もちろんRubyでも
261 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 02:18:40 ] Rubyと比べられるべきなのはScalaよりむしろGroovyだと思う。 >>259 マルチコア対応が容易、って不変性がどうとかっていう部分じゃないんですかね。 ということは純粋関数型っぽく作れば良いと思うんですけど。
262 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 03:10:43 ] >>253 JavaFXみたく宣言っぽく書ける イベントハンドラが柔軟に書ける ただ現状ラッパとしての完成度が低い GUIは他の部分よりも恩恵を受けれないのはしょうがないね 特にラッパだと元ライブラリの制限を受けまくるし ちょっとしたグラフのプロットとかをREPL上で さくっと書けるのは楽しいよ
263 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 08:02:54 ] >>225 これか www.scala-tribes.org/p/tribes.html
264 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 09:33:01 ] >>259 Haskellの場合純粋な部分と非純粋な部分を分けて書かざるを得ないけど、 そのお陰でコンパイラが普通のコードを自動的にマルチコア最適化するなんてこともできる(ようになる)らしい Scalaの場合varとvalの使い分けはあるものの、Haskellよりは弱い最適化しかできないかと
265 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 12:44:25 ] 『Scalaプログラミング入門』って本どう? 尼で目次見た限りでは地雷くさいんだが・・・
266 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 13:18:52 ] mutableなスタックとimmutableなスタックで初期化した時の順番がアレなんだがこんなもんなの? 2.8RCで試しました scala> val s1 = scala.collection.immutable.Stack(1,2,3) s1: scala.collection.immutable.Stack[Int] = Stack(1, 2, 3) scala> val s2 = scala.collection.mutable.Stack(1,2,3) s2: scala.collection.mutable.Stack[Int] = Stack(3, 2, 1) scala> s1 top res35: Int = 1 scala> s2 top res36: Int = 3
267 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 19:22:35 ] >>265 Scalaスケーラブルプログラミング www.amazon.co.jp/dp/4844327453 Scalaプログラミング入門 www.amazon.co.jp/dp/4822284239 両方買ってどちらも最後まで読んでないですけど。 『Scalaプログラミング入門』は言語仕様の説明がほとんどなくて 初っ端からScala特有の(=Javaの概念にはない)話が進んでいくので 実行環境のそばで読まないとさっぱり理解できない。 実行してもなんでそうなるのか分からないので応用きかない。 なので初めの1冊どっちを買うかと問われれば 間違いなく『Scalaスケーラブルプログラミング』。 Scala経験者が読んだらまた異なる感想になるかもしれませんが、 「入門」を冠する書籍としては問題あるんじゃないかなあ、と。
268 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 20:10:02 ] 普通のプログラマに必要なレベルの話はどっちにも乗ってるだろ それとも関数型言語と言うものを全く知らないと言うことか?
269 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 20:51:23 ] >>262 > ちょっとしたグラフのプロットとかをREPL上で > さくっと書けるのは楽しいよ そういう用途では、Scalalab(ScalaSci ) に期待しているのだが、、、まだまだかなあ。。
270 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 06:26:03 ] 簡単にグラフってどうやるですか? awtとかswingつかうの?
271 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 05:52:53 ] EclipseのScalaプラグインがScalaで書かれていることにちょっとびっくりした。
272 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 07:50:25 ] >>267 どうせまた、なんにでも「入門」ってつけちゃう日本語書籍の悪いところだろ… と思って原著のタイトル調べてみたら「Beginning Scala」でしたごめんなさい
273 名前:デフォルトの名無しさん [2010/04/23(金) 22:25:35 ] ScalaってJavaで書かれてるのか? JavaはJavaで書かれているのか? Javaを書いてるJavaはなにで書かれているんだ?
274 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 23:18:27 ] >>271 だからあんな糞の役にも立たない糞プラグインなのか IntelliJのScalaプラグインの方が遥かにいいわ
275 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 23:57:38 ] Intellijって、なんかビルドが遅い気がする。 EclipseはXMLを記述するとエラーになるんだよな。
276 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 00:00:49 ] Liftっていいのつかってみたけど 難しすぎて使えない
277 名前:デフォルトの名無しさん [2010/04/24(土) 01:01:01 ] JavaVM必須とか、クソすぎる。
278 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 01:18:01 ] IntelliJは重いしUIが微妙なんでやめた やっぱEclipseかNetBeansになっちゃうな
279 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 03:48:35 ] receiveとreactの使い分けが分からん… いつもreact+loopで良いような。 receive使うのはどんな時だろう。
280 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 04:25:14 ] >>270 import swing._ def point = (util.Random.nextDouble -> util.Random.nextDouble) def data = Stream.continually(point).take(1000).toList new Frame { contents = new BorderPanel { preferredSize = new Dimension(300, 300) def scale(d: Double) = (d * 300).toInt override def paintComponent(g:Graphics2D) { data.foreach(p => g.fillRect(scale(p._1), scale(p._2), 1, 1)) } } visible = true }
281 名前:デフォルトの名無しさん [2010/04/25(日) 11:30:17 ] 環境 scala2.7.7 eclipseのプラグイン メソッド内でmutablueなMapでデータを作成、編集して、immutableにして返したいから、 メソッドの戻り値の型自体はMapで宣言しておき、最後にreadOnlyってメソッドよんで返すと、 type mismatch; found : scala.collection.Map required: Map (scala.collection.Mapをかえしてるけど、このメソッドではMapを返すって宣言してるから型違うよ) っておこられるんだが・・・ Predefの中で type Map[A, +B] = collection.immutable.Map[A, B] って宣言してて、collectionのMapってimmutableのMapのことだから結局おなじじゃないのか? Predefと同じtypeの宣言をそのメソッドのクラス内に書けばエラーでないがこういうモノなのか? なんだが微妙に冗長になって気にくわないんだが・・・ なんかいい方法あったら教えてくれ そもそもScala2.8だと違うのか? eclipseが悪いのか? 効率なんか考えないで最初からimmutableなMapで作成すればいいのか? Listとかでも同じ問題がおきると思うんだが・・・
282 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 11:58:25 ] >>281 別名importで解決できない?
283 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 12:14:29 ] >>281 そうじゃない。scala.collection.Mapという型が scala.collection.immutable.Mapという型と別に存在してて、コンパイラは scala.collection.immutable.Mapが期待されてるのに、scala.collection.Mapが返されてると 文句言ってるわけだ(scala.collection.Mapはscala.collection.immutable.Mapとscala.collection.mutable.Map の共通の親trait)。 で、なんでscala.collection.mutable.MapのreadOnlyがscala.collection.immutable.Mapじゃなくて scala.collection.Mapを返すかというと、APIドキュメント > Return a read-only projection of this map に書かれてる通り、mutableなMapの「読み取り専用」なviewを返したいからだと思われ。 scala.collection.immutable.Mapだと「不変」Mapになっちゃうので。 ちなみに、2.8でお望みの事をしたいなら、toMap使えばscala.collection.immutable.Mapを返して くれる。2.7だとちょっと冗長になるけど、Map(m.toSeq:_*)でいけるかな。
284 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 12:50:00 ] >>280 やっぱswingつかうんね サンキュー
285 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 13:33:19 ] swingとか遅くて使い物にならんだろw
286 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 14:18:11 ] クマー
287 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 14:23:12 ] 専ブラとしてV2Cを愛用している俺に swingの悪口は止めてもらおう
288 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 14:40:04 ] >>287 同じくV2Cを愛用している。最近のバージョンのJavaだと 起動してからは、そんなにもたつきは感じないなーというのが正直なところ。 あと、起動速度もだいぶ早くなったし。
289 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 14:56:13 ] >>288 たまに貼ってあるanimated gifとか見ると真っ黒に表示されること無い? あれって、Javaの問題なんだろうか。元ファイルをブラウザで見ると普通なんだが。ってscalaの話じゃないか
290 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 14:59:17 ] アニメGIFがおかしくなるバグは既知の問題で、未だ原因不明 まあそろそろスレチだが
291 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 15:21:43 ] んじゃscalaで2chブラウザ作ってみるか
292 名前:デフォルトの名無しさん [2010/04/25(日) 18:48:43 ] >>285 我慢するのは実行時コンパイルが済むまでの間だよ。
293 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 18:49:48 ] >>291 作ったとして、Java直接と比べてどんなメリットが考えられるのだろうか?
294 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 19:22:36 ] 作る奴が関数言語得意なら楽に作れる
295 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 19:38:04 ] それは作る時の話じゃん。アウトプットに関してはどうなのよ…って変わらんか、そりゃw
296 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 19:44:15 ] そんなもん、C言語とマシン語だって同じ話だろ?
297 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:51:51 ] そりゃ違うでしょw
298 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:54:06 ] GW中にScalaマスターしたいのですが どこから始めればいいのですか?
299 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:54:56 ] >>281-283 見てviewメソッドの意味が初めてわかった。 immutableばかり使ってたんで、気づかなかったわ。 val m = collection.immutable.Map(1->2, 3->4) val v = m.view v foreach println // (1, 2) (3, 4) m += 5 -> 6 v foreach println // (1, 2) (3, 4) (5, 6) いいね、これ
300 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:56:08 ] まちがえた。 >>299 はcollection.mutable.Mpa(1->2, 3->4)
301 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 23:21:09 ] >>298 > GW中にScalaマスターしたいのですが > どこから始めればいいのですか? ScalaWikiから。 本は、通称コップ本が良い。
302 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 01:33:19 ] operaだとscaladoc2メッチャ遅くない?
303 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 01:39:16 ] >266 なんかきもいな immutable.Stackは1,2,3で初期化されたStackを生成する mutable.Stackは空のStackを生成して1,2,3の順で追加したものを返す ってことか どっちかに統一すればいいのに
304 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:08:17 ] ガチガチに縛られた言語が好きならPythonでも使えば?
305 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 04:54:56 ] >>302 Opera,Chrome,IEで比べたけどOperaが特に遅いとは思わなかったな scaladoc2がそもそも重いつくりだしなぁ
306 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:40:47 ] >>305 どうも、うちの環境が悪いのかなーと思ってプロファイル削除してみたらだいぶましになった >>303 たしかにどっちでもいいけどどっちかに合わせて欲しいね、mutableからimmutableにリファクタするとかなったときこの挙動知らなかったらあれ?ってなるかも
307 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 00:43:50 ] 初心者には入門本よりコップ本がオススメなのか 今日ホッテントリ入りしてたScala記事に影響されて入門本買うどころだったが、買う前にこのスレ見てよかった ちなみにコップ本は2009年の本だけど、Scalaのバージョンはいくつで書かれてる?2.7.7かな
308 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 02:43:25 ] Summer of Code Scala Project www.scala-lang.org/gsoc2010 ・Scalable Remote Actors serializationとブロックIOの機能を持つリモートアクタの開発 ・ENSIME, a new Scala development environment for Emacs Emacsに型チェックやインスペクションの機能をつける ・Lift and SBT template engine SBTのプロジェクトテンプレートエンジンとLiftプロジェクトテンプレート ・Hardware Accelerated 2D Graphics JOGLなどのシェーダをJava2Dとして扱うためのAPI ・Adding LINQ-awareness to Scala.Net 通常のメソッド呼び出しとしてLINQを実装、SQOを分かりやすい形式にする ・Advanced Semantic Tools for the Scala IDE for Eclipse インラインでの、コードの折りたたみ表示のような方法による、推論された型やimplicitなどの視覚化 ・Collaborative Scaladoc wikiのようなAPIドキュメントの共同編集環境の構築と、このやり方によるAPIドキュメント製作で発生しうる問題の調査
309 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 02:43:46 ] >>307 その入門本ってどの本のこといってる? タイトルに入門とかついている本だったら買うだけ金の無駄だと思うよ。
310 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 03:35:24 ] 公式の右下にある投票、あれなんだ?
311 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 03:55:14 ] 入門disってる奴は通ぶりたいだけだろ 言語仕様の中身まで書いてない本はクソ扱いしたいガキ
312 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 07:33:42 ] いや、Scalaはコップ本を読んで理解できないようなやつが使うべきではないということだよ ちゃんとJavaから勉強してきてねっ感じの言語 それにコップ本はそんなに難しいわけじゃない
313 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 08:11:31 ] >>309 Sの文字が2つならんでる表紙のやつ ttp://wota.jp/ac/?date=20100426#p01
314 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 10:22:13 ] >>311 チュートリアル的な面でみてもコップ本の方が優れてると思うけど。 初学者から見て入門本の方が優れてるところってどこよ?
315 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 10:44:42 ] 勝手に言語のハードル上げる奴は馬鹿
316 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:00:55 ] プログラミング言語C++みたいな レベルの本じゃないと意味がない
317 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:11:02 ] 自称玄人のお前らより、Amazonのレビューの方が参考になる。 この時点でこのスレにいる奴は初学者じゃなくて、言語マニアだから 初心者が何を読めばとりあえず使えるようになるか解らなくなっている。
318 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:14:11 ] 初心者の視点になるのって難しいよね いつも痛感してるわ
319 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:14:22 ] >>317 初心者に情報を与えるのは Java厨、Ruby厨、カスPHP野郎 みたいなのを量産するだけだからやめろ
320 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:24:35 ] >>317 上のほうでAmazonレビューで工作してた入門本の作者が晒されてたけど、 まさかお前じゃないだろうな?
321 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:27:10 ] そこまで否定するってことはむしろお前が…
322 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:46:25 ] え、現状和書で買う価値があるのはコップ本と>>313 の入門本の2つだけだよな それ以外がゴミなのはどちらも認めてるんじょないか
323 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:54:24 ] >>313 あ、これ(Scalaプログラミング入門)も入門てついてたんだっけ。 こっちは悪くないと思うよ。 コップ本と比べてどうとかはよくわからないけど。
324 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 12:25:22 ] プログラマともあろうものが前提条件を決めないで入門書はカスとぶったぎるのはゆゆしき問題だな
325 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 12:35:18 ] こっちはなんて呼べばいいんだろ? SS本?w
326 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 12:43:12 ] LiftのDavid Pollakが書いた本の訳だよね>Scalaプログラミング入門 説明にややはしょり気味なところが見受けられるけど、Scalaにおけるイディオムなど、 コップ本より実践的な内容にフォーカスしてて良い本だと思う。
327 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 12:46:01 ] David Pollakの本は文才がないっつーか ありゃダメだな あれはチラ裏の日記だな
328 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 13:37:04 ] うーん。そうか。あの大げさ極まりない書き方はあまり好みじゃないけど 実際にScalaでよく使うイディオムなんかにも触れてあって、結構良い本だと 思ったのだが。>David Pollakの本
329 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:40:20 ] これからは ・コップ本 ・入門 ・工作本 って呼べばいいだろ
330 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:48:55 ] 日本人はLispがあるから へんな関数型言語布教させるんじゃねーよ
331 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:57:11 ] へんな関数型言語… Schemeのことか?
332 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:24:11 ] David Pollakの文章は、なんかアジっぽい。
333 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:27:37 ] コップ本は、後半急激に難易度が上がるというレビューが多いね SS本は、既に他言語を学んでる(特にJava)ことが前提な内容みたいだね 関数型は始めてだけど、他の言語入門済みの場合はどっちがいいのかな〜
334 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:28:46 ] SS買って一通り覚えたらコップでよくね?
335 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:35:41 ] >>332 それは同意。ああいうアジり気味の書き方って内容に厳密さを求める向きには 受け入れられづらいと思うのだが、どうなんだろうねえ。
336 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:35:45 ] David Pollakの本は、リファレンス本的には全然使えないけど、 通しで読んで、Scalaのノリをつかむにはいい本だと思うよ。 敢えて言えば、コップ本こそ、公式サイトの情報とネットの情報でまかなえるから 買わなくていいと言える。
337 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:48:24 ] Rubyのどの本よりもアジってないから問題ないよ
338 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 16:11:46 ] >>334 アジるって煽るって意味なのか
339 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:22:51 ] プログラミング初心者じゃないけど Scala は少しハードルが高く感じる 関数型言語は Lisp とか Scheme とか使ってたんで抵抗は無いけど、 それでも記法がちょっと独特で迷う
340 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 20:06:48 ] はっきりいって文法がきもい
341 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 21:44:17 ] まぁ素のJavaよりはマシだけどそれだけなんだよな
342 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 21:49:41 ] 文法のキモくないプログラミング言語とは何だったのか。
343 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:40:13 ] ここら辺に日本語記事一覧がある ttp://sites.google.com/site/scalatohoku/%E5%8B%89%E5%BC%B7%E4%BC%9A%E8%B3%87%E6%96%99 ttp://diaspar.jp/-/scala 英語なら、何冊かネットで読める草稿があるぞ ttp://programming-scala.labs.oreilly.com/ ttp://groups.google.com/group/the-lift-book Programming in Scala(Scalaスケーラブルプログラミング)の元になった感じの内容のもある。 Scala By Example ttp://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaByExample.pdf 対応バージョンが2.7より古いかもしれないけど、一番上の中に和訳もある ・Scala By Example 和訳 ・チュートリアル A Scala Tutorial for Java Programer 和訳
344 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:59:08 ] >>340 とりあえず、>>340 は文法がきもくないと思う言語を挙げてみてくれ 主観できもいとだけ言われても、どういう美的感覚持ってるのかがわからんと ピンと来ない
345 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:12:59 ] そういうのはかまうなよ ログ見りゃわかるが、粘着してるやつがいるんだよ
346 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 06:13:41 ] LLVM向けJVMとCLIのVMの実装をするそうな。 vmkit.llvm.org/
347 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 15:00:21 ] >>344 340ではないが、型を名前の後に置くこと(i:int, s:String) に馴染めない。 これを int i, String s と書けるようにするだけで、だいぶ違うだろ。
348 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 15:33:34 ] IDE使うの大前提だと後置式のがいい。
349 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 18:29:03 ] >>347 それは、そうした方がJavaから移行したユーザが馴染みやすいって意味だよね それはその通りだと思う。 ただ、Scalaの場合変数の型を省略できる、というか省略するのが普通なのでその点は 考えなければいけないと思う。もし、Java式の型宣言にするなら、型を省略したときは、 別途val x = 3とかvar x = 3みたいにしなければいけなくなって、構文的な整合性の観点 からはあまり良くない。C#は型宣言を省略する場合はvarと書くという方式だけど、あれは 後付けだから仕方ないのであって、新しく言語作るときにああするのはどうかねえ…
350 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 18:39:09 ] 構文的には後置のほうが混乱が少ないと思う それに関数型言語は後置にするのが多いからね まあ、慣れの問題だね
351 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 20:21:44 ] 慣れの問題と思うけど、単純に Scala のコードは読みにくい
352 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 20:30:16 ] 型が前置じゃなきゃ嫌だってのは、 つまりC系統の言語しか触ってないってことだからね もっといろんな言語に触れたほうがいいと思うよ
353 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 20:40:33 ] 型情報を明示しないって思想だから後ろに来るのは当然だと思うけどな。 つか、そうしないと文法的整合性が取りにくい
354 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 21:20:47 ] C++も設計でscalaと同じ書き方を検討してたんだよ Cとの整合性をとって採用されなかったけど
355 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 21:56:16 ] そしてObjectiv-Cみたいな意味不明なのができる
356 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 22:51:07 ] 前置にするとvarとvalの区別が面倒になる。Javaみたくfinalだらけになるのはイヤだ。
357 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 23:18:53 ] Groovyがそんな感じだね。
358 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 23:42:15 ] 後ろ置きは、慣れの問題でなんとかなりそうな気がする。ていうか、慣れれば、結構好きかも。 でも、アンダースコア _ は、どうかなあ。。。 ( _ > _) とか書いていると、顔文字に見えてくるんだよね。
359 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 00:23:16 ] ScalaにはRubyのERBみたいな機能がないから ゴミだな
360 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 00:38:54 ] 釣られない…釣られないぞ…!
361 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 01:41:26 ] 最近のはやりは後置だな golangもやはり後
362 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 01:59:45 ] 上の方で書かれている理由に加えて、後置(+キーワードを先置く形式)にするとちょっと 構文解析が楽になるというのもあるかも(これはそれほど重要じゃないだろうけど)。
363 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 02:33:06 ] pascal出身としては安心するなぁ
364 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 03:20:38 ] 1ヶ月もすれば、どうでも良くなってくるよ。 くだらない。
365 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 07:59:34 ] 最近の若い子はPascalなんて知らないんだろうな
366 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 08:56:55 ] ScalaDays2010の全講演のビデオ来てますよー days2010.scala-lang.org/node/136 英語わかんなくても結構面白い コーラのボトル持ってしゃべる人が居たりw
367 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:36:34 ] >>366 グッジョブ
368 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:51:38 ] >>366 さっぱりわからんけど、(Scala界隈の)有名人がでてるやつとか、面白い内容のおすすめなのとかある?
369 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 12:51:54 ] >>368 とりあえず個人的なお勧めは、Oderskey先生のOpening Talkと Named And Default Arguments, それとSneaking Scala Into Your Organization 辺りかな。Odersky先生以外のScala界隈の有名人と言ったらDavid Pollakとかだけど 彼は発表してなかったなー。あと、IntelliJの人のScalaのリファクタリング機能に関する 発表とかも面白かった
370 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 12:52:54 ] しまった。Oderskey→Odersky。間違えるなんてorz
371 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 12:53:16 ] えいごが解らん なんとかしてくれ
372 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 13:28:01 ] 長すぎてワロタ
373 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:01:48 ] Microsoft が F# や Axum の他にも IronScala を作ればメジャーになれる可能性は高い
374 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:26:20 ] >>373 IronScalaというか現在のScalaの.NET版実装もMSの協力があったとかそんなのを 読んだ覚えが…。現在のScala.NET実装は.NETのジェネリクスに非対応だったりして 実用に使うのは厳しいが。
375 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:30:45 ] Scalaのジェネリクスは、Javaのerasureに合わせたヘタレ仕様のままなの? この先もずっと?
376 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 21:13:19 ] >>375 Javaのerasureに合わせるというのは崩せないだろ もしそれやったら現在のScalaユーザの大部分を失う危険性がある一方で それで取り込めるユーザがどれだけ居るか… それに、ScalaのジェネリクスはJavaのそれに比べてかなり強化されてるから erasureベースでもJavaに比べればだいぶ不満は感じにくくなってるよ
377 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 21:41:36 ] >376 Boxの中身をパターンマッチングさせようとすると、出来なくてイライラする。
378 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 21:49:32 ] 今の時代 ネイティブで動かない言語なんてゴミだろ
379 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 21:55:58 ] .netのscalaもerasureなのん?
380 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:01:46 ] 君の言うネイティブで動くって言うのはどういうことかね?
381 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 23:10:58 ] >>378 今の時代? 昔の時代だったら、確かに遅くてゴミだったけど、 今の時代だとそんなに気にならない。
382 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 23:13:07 ] 遅くてもいいってのはシステムはだいたいI/Oネックだからであって SSDとか使っちゃうと言語自体の速度が影響する割合がでかくなる
383 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 23:30:04 ] 今勉強でpredef眺めてたらこの関数 def readLine(text: String, args: Any*) = Console.readLine(text, args) def readLine(text: String, args: Any*) = Console.readLine(text, args: _*) の間違いだと思うんだだれかバグ報告しといて俺英語できない
384 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 00:13:24 ] 確かに、それなんかおかしいな まだPredefにバグ残ってんのか?
385 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 00:18:19 ] やべぇ、日本人で発表してる人がいるんじゃん > Scala Days 英語がたどたどしいけど、それにしてもすげぇな
386 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 01:30:04 ] >>385 たぶんツイッターにいてtsudaってくれてたひとじゃないかな? 自分英語わからんからああいうのはすごく助かるわ
387 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/02(日) 02:09:17 ] その張本人が書きこんでみる 正直、>>385 の書いてる通り英語はたどたどしかったし質問聴きとるのは 難しかったしでなかなか大変でした。あのときは、テンションが凄まじく高かったので 今思うと凄いペースでtsudaってましたね。あれでScala Daysに興味を持ってもらえたなら こちらとしても嬉しいですね。
388 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 02:18:14 ] >387 じゃ、せっかくなんで、何か面白いこと書いてくれ。
389 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 02:21:15 ] さっきから見る度見る度、 Scool Days に空目してしまう件
390 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 02:29:43 ] Scool DaysをSchool Daysに空目
391 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 02:32:11 ] あ、ほんとだ、タイポ。
392 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 02:32:40 ] 誠死ね
393 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 03:00:07 ] >>387 日本でも Scala を広めようず
394 名前:デフォルトの名無しさん mailto:386 [2010/05/02(日) 03:38:31 ] >>387 あ、本人が降臨しとるw 確かにすごいペースでtsudaってるなぁとは思ったけど、自分は普通に面白かったよ Scalaのロゴの元になった階段の写真とかも そういやScala作者にサイン本もらってたな、うらやま まぁ日本での布教活動を頑張っておくれ 個人的な希望を言えば特に日本語情報の充実を…
395 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 03:45:56 ] いまでもmsilを出力するようには出来ますね。 ilasmなんて初めて使った。
396 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:10:07 ] こういうインクリメントってなんで書けないの? i++ ++i
397 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:16:47 ] かけるように開発に参加すればいいんじゃないでしょうか
398 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 11:26:26 ] i++って、結局はforループでしか使わないからじゃないの。単行の副作用式だし。
399 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/02(日) 11:43:03 ] >>388 面白いこと…うーむ、思いつかないです。申し訳ない。Scala Daysで面白かったこと とかなら書けるかもしれないですが。 >>393 はい。もちろんそのつもりです。キラーアプリとか作れるといいんですけど、自分は 言語家というか構文解析屋?で、パーザジェネレータとかそんなんばっか作ってて、 あまり普通のアプリ作ったりしない(というか不得手)ので、その辺は他力本願に なってしまいますね。基本的にはScalaの日本語情報の充実という形での貢献 になりますかね。 >>394 ありがとうございます。面白いと言ってもらえるのは励みになりますね。Odersky先生の サイン本は大事にしたいところですw 日本での布教活動は今までも地道にやってきましたが、今年はもっと精力的に 行っていきたいと思います。日本語情報の充実、というのは正直なんとかしないとなーと 思っていて、特に、経験上よくハマるポイントとかまとめたいところですねー。あと、まともな (翻訳でない)日本語版Scala本とか。 それと、Scalaでなんかわからんことがあったらここで聞け!みたいな定番の場所が一つあればなあ 、などと思っています。scala-beとかscala--tohokuとかもありますが、それほど質問は多く無いん ですよね。結局、皆、疑問をブログとかTwitterでつぶやかれるので、その辺を見て、答えられそうな 疑問だったらできるだけレスするように心がけてますが、あちこち分散してるとフォローするのも 大変&質問への解答などが集積されないので、もうちょいなんとかしたいですね。
400 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 11:45:31 ] lift使った面白いWebコンテンツ出てくればScalaの名前は広がるんじゃないかなぁ?
401 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 11:52:29 ] いちおうTwitterで名前は広まってきてるし、その辺でもう一押しあるとよさそうだよね。
402 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 12:18:06 ] TwitterはRailsで作ったものをリライトしたんだよね やっぱりスクラッチからの強さを見せたいよね
403 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 13:24:53 ] フロントエンドはRailsのままだと思ってたんだけど、違うのかな バックエンドをRubyからScalaにしたんじゃなかったっけ
404 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 14:06:28 ] >>403 なにそれこわい。 Srails? SRuby??
405 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 15:02:06 ] >>382 ディスクのI/Oよりネットワークだろ…
406 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 15:27:39 ] >>405 お前開発したこと無いだろ
407 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 15:49:15 ] C FAQみたいに、Scala FAQが有るといいな。 「.NET プログラミング Tips」ってサイトも人気みたいだし、需要有ると思う。
408 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 17:02:45 ] >>403 Gizzardだっけ。 どっかでCassandraを使うって話も見たんだけど、どっちなんだろ。
409 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:41:11 ] Scala難しい Railsの代わりにはなりそうもない
410 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:53:32 ] >>409 お前の頭が悪いだけ。
411 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:58:31 ] リーマンプログラマの9割以上は頭悪いからなぁ
412 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:12:12 ] まぁ頭が良かったら プログラミングなんて他の奴にやらせるからな
413 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:43:43 ] ScalaとRailsは両立させるものじゃないのか 変わるのはRubyの部分だろ
414 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:49:38 ] >>410 タメかよwwww 呪われしエヴァ世代(初期放送時中2世代wwww)だよね^^ つーか 体育館のマットに詰めてイジメて殺したってのもあったじゃん 二つ上で・・・
415 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:47:58 ] Railsに比べてLiftも難しいの? RailsはRubyとは別の言語を新たに習得するようなものだ、みたいなことをよく言われるけど,Liftもそうなん?
416 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:52:40 ] >>409 いやだからRailsの代わりにしたいんだったらGrailsだってば。
417 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:00:24 ] いやだからRailsの仕組みで言語がScalaでいいだろ
418 名前:デフォルトの名無しさん [2010/05/02(日) 22:11:21 ] >>417 作ってから言えよ。 twitterの件は確かメッセージングの部分を置き換えただけじゃなかったか? 俺的には java.util.concurrent を使えばいいだけの部分を scala 使ってみたいから使ってみた。って印象なんだが。
419 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/02(日) 23:03:57 ] >>418 The Why and How of Scala at Twitter www.slideshare.net/al3x/the-how-and-why-of-scala-at-twitter とか、Twitterがオープンソースで公開している、自社で使っているらしいソフトウェア 群を見る限りでは、バックエンドはおおむねScalaで置き換えたみたい あと、メッセージキューについてだけど、 JavaとScalaではソースの書きやすさが(少なくともある程度慣れれば)段違いなので、 Scala使ってみたいから使ってみたという印象は受けなかったかな。Twitterの人たちは 書きやすい言語を好んで使っている印象がある。あとは、java.util.concurrent使えば 済む程度の話ならさすがに新しくライブラリ作ったりはしないと思う。
420 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/02(日) 23:11:20 ] 一応、Kestrel(メッセージキュー)のソース github.com/robey/kestrel/tree/master/src/main/scala/net/lag/kestrel/ や説明 robey.lag.net/2008/05/07/scarling.html (Scarlingってのは、Kestrelの元になったRubyで書かれてるメッセージキューの ことね)を読み直してみたが、やっぱり java.util.concurrentが提供しているくらいのプリミティブだと全然足りないと思う。
421 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 23:28:58 ] >>420 リンク先を読まずに背景も全く知らずに言うが、javaa.util.concurrentは 「プリミティブが足りない」じゃなくて「プリミティブ過ぎる」じゃないのか?
422 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/02(日) 23:49:02 ] >>421 java.util.concurrentの機能があれば事足りる、という意図なのかなと思ったので 足りてないんじゃない?というニュアンスで「プリミティブが足りない」と書いたのだけど 確かに「プリミティブ過ぎる」という方が実情をよく表してる。
423 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 09:08:42 ] 俄かに活気付いて来たな。いいことだ
424 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 09:50:09 ] 今年でブームは終わるよ。
425 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 10:41:10 ] もうブームは終わってF#の一人勝ちだって いった。日本は独自のLispで頑張るらしいけどw
426 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 12:16:39 ] そっかそっか!それでF# Expressはいつでんだよ
427 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 12:16:45 ] 誰が言ったんだよw
428 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 21:29:17 ] >>376 2.8ならManifest.typeArgumentsで型パラメータとれる >>377 Optionだけならコレで。 def foo[A](a:Option[A])(implicit m:Manifest[A]) = a match { case None => "none" case Some(_) => val sm = manifest[String] m match { case reflect.ClassManifest.Int => "int" case `sm` => "string" case _ => "other" } }
429 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 21:45:13 ] Liftって初心者(Scala初心者、Webプログラム初心者)に優しくない気がする webアプリに詳しくないからちゃんとした比較してるわけじゃないが、ちょっと触ったかんじ。 ScalaならLift、てなってるから選択してしまいがちだけど。 Javaからの移行組ならPlayのほうがいいんでないかね。日本語ページあるし。 開発の人もPlayでScalaをだんだんと学んでいくことを意識してるみたいだし。 LiftはScalaのテクニックを学ぶにはいいんだろうけど、 設計があまり綺麗じゃないという話もあるのでそっちの参考にはならないのかも
430 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 21:53:00 ] >428 何その汚いコード。そんなの有りかよ。
431 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 21:59:15 ] >>430 あー?貴様が美しく書けよ
432 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 22:32:51 ] >>399 > わからんことがあったらここで聞け!みたいな定番の場所が一つあればなあ 2chじゃダメなん? というレスを書いてる最中に >430-431が書き込まれてたw 2chじゃダメかもw
433 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 22:36:21 ] 酷いオチだなw Stack Overflowの日本語版みたいなとことかあると良さそうだけどな。
434 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 22:53:48 ] これから徹夜でBeginningScalaの写経します。 困ったら助けてね
435 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 22:55:59 ] >>429 lift以外にもWebフレームワークあるけども
436 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 23:13:14 ] 戻り値がない可能性がある場合はnullじゃなくOptionを返すってのはわかったが 引数で省略可能な場合はデフォルト引数と組み合わせてこんな感じにすりゃいいの? def func(i: Int, s: Option[String] = None) = { ... }
437 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 23:23:55 ] >432 いや、erasureじゃなきゃ、そんな珍妙な解決法取らなくてもいいのに って話だろ。
438 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 23:34:33 ] >>434 お、自分もSS本買ってきてこれからやるところ よろしくおねがいしまふ
439 名前:デフォルトの名無しさん [2010/05/04(火) 00:39:59 ] 2chはネガティブな要素をたっぷり含有してるから プログラミング言語のハブサイトとしてふさわしくないよ >>431 みたいなレスは茶目っ気たっぷりで俺は好きだけど 言葉のまんま受け取る頭固い奴も多いしな 回答のお礼を強要してくる2chリテラシーの低いアホもでてくるだろうし
440 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:57:25 ] とはいえ、実際2chがプログラミング系コミュニティのハブとして存在感が大きいのは事実。 マイナーな技術でも何かしらスレがあるのは大きい。代わりがあればいいんだけどな。
441 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:22:00 ] マイナーな技術だとノイズが少ないから2chでもおk メジャーになってくるとたちまちノイズが増えてダメになる
442 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 03:23:01 ] Facebookにコミュニティ(?)作るとかじゃダメなのかな Facebook使った事ないから、適当に言ってるけど それとも匿名で気軽に書き込みできる方が、日本人には合ってるのかね
443 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 09:47:09 ] それならふつうにGoogle Groupsとかのほうが良いんでない?
444 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 10:02:35 ] mixiでいいよ
445 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 10:36:46 ] 黙ってgithubにコードだけコミットしていくのどーよ?
446 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 11:16:35 ] SS本2章まで読んだけど、レベル高杉ワロタ こりゃ他の言語でガシガシコード書いた経験のある人が第二言語としてScalaを入門してみよう、という意味での「入門」だなw
447 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 13:34:51 ] foldLeftで大混乱してきた
448 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 15:02:56 ] >こりゃ他の言語でガシガシコード書いた経験のある人 javaしか経験がない程度じゃ歯が立たないだろうな
449 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 15:05:35 ] SS本難しくないだろ 8章ぐらいまでは、余裕だろ
450 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 15:16:00 ] ああ、9章むずいね
451 名前:446 mailto:sage [2010/05/04(火) 15:52:19 ] >>448 やっぱそうだよなぁ Scalaやってるひとらすげーよ、上級プログラマだな >>449-450 ほーどれくらいまで簡単なのかな、って見たらほぼ全部じゃねーかw この本で難しかったら、次読もうとしてたコップ本なんて買う前から難攻不落決定だなw Rubyあたりに行ってみるかなぁ
452 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:18:00 ] Scalaやってる人の中にも初級と中級がいて VBやってる人の中にも初級と中級がいるのでは アセンブラみたいに特に言語としてScalaが難しい訳じゃないし
453 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:18:58 ] 中級じゃないや上級
454 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:21:36 ] >Scalaやってるひとらすげーよ、上級プログラマだな 上級って言うか 少なくともjava(かC#かC++)とruby(かpython)の経験があることを前提にしているよね。 関数型言語の経験は前提とはしていないが javaに○○の機能が無くてイライラとかしたことのあるレベルは必要って感じかな
455 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:25:04 ] Rubyは分からないけど、コップ本はJavaを触ったことのない初学者に勧めるのは厳しいなぁと思った。
456 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:25:21 ] 一回Haskellやって関数型勉強してこいって 他の言語学習するの楽になるぞ
457 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:34:00 ] 本がJavaの説明してないだけであって言語的に難しい訳じゃないよ
458 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:34:37 ] C#だけでも何でもかんでもLINQで書きたくなる病に発病した人なら Scalaでサポートしてる関数指向の部分は簡単に理解出来そう そしてプレースホルダ構文に感動する
459 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:35:31 ] オブジェクト指向理解してない人がC++難しいって言ってたのと同じような話で 知らないから難しく見えるだけだよね
460 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:45:50 ] >>457 説明の仕方次第ではあるね。 Java経験者としては、コップ本は細かい疑問に随時答えてくれるので助かる。
461 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:48:02 ] 入門(SSの方)とコップ見て理解できないならそもそも情報処理解ってない可能性が
462 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:03:54 ] F#なら理解できると思うよ Scala意味もなく難読な文法と説明で悦に入ってるだけだし
463 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:07:47 ] そっかそっか!それでF# Expressはいつでんだよ
464 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:15:01 ] またその流れかよw まぁScalaが日本で流行るかどうかは日本語情報がどれだけ整備されるか、じゃないかなぁ PHPが流行った要因の一つに、あの素晴らしい日本語ドキュメント群が挙げられると思う ただでさえ難解と言われてるから、その上英語ドキュメントしかないとなれば、日本では流行らなさそう
465 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:17:05 ] 関数言語として突き詰めれば難解だけどJavaの拡張として考えれば難解でも何でもないと思うけどなぁ ドキュメント云々より今Java使ってる会社がどんだけ興味示すかだと思う
466 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:21:09 ] 関数型言語として突き詰める要素なんて ないだろw
467 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:21:12 ] >>465 うん、そういうレベルで使われるために母国語ドキュメントは必要じゃない? トップクラスの人たちだけが使うものなら要らないけど、オダースキー先生が目標としてる学術・研究用言語に留まらず、現場レベルで使われる言語になるには、そういうところがポイントになったりするもんだよ
468 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:26:38 ] できる!Scalaを出して貰おう
469 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:29:22 ] まずは短く書けるJavaとしてアピールして、その後で、 あーそういえば、関数型言語っていう側面もあってですねーと繋げるべき。
470 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:34:26 ] これは選ばれし玄人向けの言語でニワカは入れないようにしようみたいな 変な方向に行かなければいいと思う
471 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:40:54 ] いい意味でPHPみたいになるといいな 素人でも作れるとかdisってる奴多いけど素人でも作れるって実は凄いことだろ
472 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:51:32 ] PHP=ブラック言語 Scala = PHP つまりブラック言語ってことだな
473 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:52:04 ] better PerlとしてのRubyみたいに、better JavaとしてPRすると分かりやすいと思う。
474 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:53:51 ] PHPに負い目あるのかやたら叩く奴多いよな
475 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:56:41 ] >>471 これは同感 流行ってしまったのが言語仕様がちょっとルーズなPHPだからアレなわけで、その他のPHPの豊富なドキュメントや入門のしやすさ、良いものを節操なく取り込む姿勢、とかは評価されてもいい Scalaは言語仕様もしっかりしていて、ベースは申し分ないから、後はその外堀をどう形成していくかでだいぶ変わると思う 誤解を恐れずに言えば、良いものが必ずしも普及するわけではないことは、RubyやPythonが証明してくれているので、Scalaにはうまく立ち回って欲しいと本気で願う 繰り返すが他の言語を批判する気はまったくない
476 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:56:48 ] 技術力ならうちの方が上なのに簡単に作ったPHPのサイトが大儲けしやがって! みたいなことじゃね セキュリティホールならPerlやJavaのサイトも同じように出るわけだし
477 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:04:03 ] >>473 んだね。 C++にしたって、文法が拡張されたCとして使い始めた御仁も多かろう。俺とか。
478 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:04:48 ] どうせお前らみたいにコミュニティに 貢献しないで2chで愚痴るだけだろw 実際ここに今いるやつでまともなScalaのコード 書ける人間いないだろ? まぁそうゆうことだ
479 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:25:04 ] え?
480 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:40:14 ] >>478 × お前らみたいに ○ 俺みたいに
481 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:43:17 ] ちんこさん鼻息荒いですねw
482 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:42:09 ] ドキュメントをどんどん日本語に訳して wiki にまとめサイト作ろうず
483 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:44:06 ] >>482 どうぞどうぞ
484 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:52:02 ] つうか、scala-lang.orgにWikiなかったっけ。
485 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:56:35 ] scala-lang.org自体はBlogか。 こういうのはあった。 scala.sygneca.com/
486 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 20:01:44 ] なんか凄いところに嫌がらせのように縦線があるんだが
487 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 20:03:41 ] >>486 見る資格が無いのだろw
488 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 20:16:19 ] ggl-gにscala--2ch 作ろうとしたんだけど既にあるみたいなんだが
489 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 21:19:31 ] >>485 IE以外のブラウザだとgdgdだな
490 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 21:28:20 ] yieldってどうゆうふうに使うの? List作るだけ?
491 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 21:39:32 ] >良いものが必ずしも普及するわけではないことは、RubyやPythonが証明してくれているので えっ?
492 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 21:46:43 ] >>490 map、flatMap、filterをもっているものならなんでも使えるよ Scalaの標準ライブラリならIteratorのサブクラスはみんな使える
493 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 21:51:03 ] >>492 そうなのですか。yieldが何をしているのか よくわからないのですが
494 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 22:05:17 ] >>493 for構文で結果を返したいときに使うというのはわかるよね? それでなにに対してforを使うかによって結果が変わる どんな結果になるかは上記の関数の実装によるんだけど、2.8になってだいぶ同じものが返るようになった Listに対してfor、yieldを使えばListが返るし、Mapに対してはMap、Optionに対してもOptionが返る でも必ずしもそうではないから注意
495 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 22:35:38 ] >>494 それは理解しているのですが どうゆう仕組みなのかよく解りません。 applyとかupdateのような何か別の 関数の糖衣構文なのでしょうか
496 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 22:50:27 ] 確かにforは構文糖衣で、上に書いたようにmap、flatMap、filterに変換される でも、そんなにちゃんと仕組みを知る必要はないと思う どうしても知りたければコップ本に書いてあるけど Haskellでモナドを勉強して、Scalaのforも似たようなもんだと思うのが一番正しい理解になると思うが 別にそこまでやる必要はない
497 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 23:00:25 ] println("iterator") val iterator = Iterator(1,2,3) for(i <- iterator) yield {println(i)} println("iterable") val iterable = Iterable(1,2,3) for(i <- iterable) yield {println(i)}
498 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 23:03:01 ] >>496 後でちょっとコップ本見てきます。 yieldだけみるとモナドの規則1に従うように見えますが 結局Haskellのdo記法と同じ事が可能との認識でいいのですかね?
499 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 23:10:14 ] 大体そう というか、このスレの>>92 で既にそういう話があるね
500 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 23:37:07 ] >>470 同意 Scalaは複雑な言語だが(学ぶにも)スケーラブルな言語だ という話もあるんで分かるところから徐々にやってけばいいと思う。
501 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 23:50:15 ] 入門書とかJavaを知ってる人向けの説明が多いけど、 Rubyなど他の言語から入った人はどう学べばいいのかな ジェネリクス知ってることが前提になってる、とかあるみたいだし
502 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 00:14:22 ] Programming in Scalaは、Javaがわかればより良いって感じだと思うけどね 静的型付け言語触った事ないってんじゃなければ、Genericsもなんとなく想像できると思うし
503 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 02:59:55 ] 2.8.0のAPIリファレンスが、むちゃくちゃ使いにくいんだけど、これってRCだからだよね!? 正式版では2.7.7みたいに普通に戻るよね?! このままだったらクソ過ぎる…
504 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 03:22:50 ] そう思うなら力をお貸し下さい
505 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 03:30:47 ] 日本語の公式ページが無いのもダメだな PHPなんて、 php.net/関数名 ってブラウザのアドレス欄に打ち込むだけで日本語リファレンス見れるんだぜ 関数名が一致しなければそのまま検索になる優れもの こういうところは見習わないとな!
506 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 07:40:54 ] >>433 meta stackoverflowってのを見つけた。 meta.stackoverflow.com/ 2chの運営板みたいなものみたい。 バグ報告や機能要望意外に、よりよくするためにはどうするか、という 議論なんかもされてるんで もしコミュニティサイト作る場合はなにか参考になるかも。
507 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 08:33:14 ] >>505 言い出しっぺの法則
508 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:18:28 ] 「->」がよくわからない 「=>」は「x => y」なら、xを引き数でyを戻り値とする関数、みたいな意味だと理解したけど 「->」について誰か詳しく教えてください 「<:」とかも確かあるよね ここらへんの記号の意味って検索で調べにくいんだけど、一覧になってるページとかないかなあ
509 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:25:53 ] ->って他の言語でも良くあるんじゃないの
510 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/05(水) 14:29:54 ] >>508 ->は2要素のタプルを作る演算子。"A" -> "B"で、("A", "B")というタプルが出来る <:は、ジェネリクスで使われる記号で、def foo[A <: B](...)とかあったら、型パラメータAは Bのサブタイプである(継承している)ことを意味する
511 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:35:44 ] ->はArrowAssocというclassに定義されてるメソッド Predefにany2ArrowAssocていうimplicit defが定義されてるのでどのオブジェクトからも呼び出せる なにげに->じゃなくて→でもいける a->bが嫌なら(a,b)でもPair(a,b)でも
512 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:37:15 ] <-の方がよく解らないw
513 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:40:27 ] レンタルサーバで使えるように普及させるためにはどうすればいいだろう Javaが入ってるサーバは多少あるから(DreamHostとか)、Servletコンテナに依存ぜずに CGI的につかえるようになればいいんだろうか
514 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:44:10 ] >511 →でもいいのか。Smalltalkみたいだな。
515 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:48:29 ] >>510-511 わかりやすい説明ありがとうございます 連想配列のペアを作るようなものか PHPやってるから違和感ありまくり こういう記号類(糖衣構文?)って、どこかにまとまってたりします?webでも紙媒体でも
516 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 14:50:03 ] >>513 重量湖底のクラウド型のレン鯖借りれば自由に使えるから それでいいんじゃない?
517 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/05(水) 14:55:34 ] >>514 ちなみに、=>の代わりに⇒、<-の代わりに←を使うこともできる。 val mult = (x: Int, y: Int) ⇒ x * y とか for(x ← List(1, 2, 3, 4)) yield x * 2 とか。普通のScalaプログラムで使ってるのを見た覚えが無いがw 一応言語仕様で規定されている
518 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 15:03:52 ] => <- <: >: <% はScala本体の機能で -> は単なる関数だね Scala本体の機能の方はコップ本でも見ればだいたい分かる 関数の方は自分がimportするライブラリのドキュメントを見ればよろし まあPredefは特殊だけど => <- <: >: <%みたいな名前の関数は自分じゃ定義できないみたいだ
519 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 15:05:40 ] >>518 ありがとうございます コップ本買ってみます
520 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 15:16:26 ] 変則的に出てくる ; って普通の命令型の言語のセミコロンと同義ですかね?
521 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/05(水) 15:20:42 ] >>520 ほぼ同じ。Scalaでも同じ行に二つ以上の式を並べたいときとかに使う あと、Scalaに慣れてない人は普通に行末に;付けてる人が多いかも
522 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 17:10:29 ] Scalaの現時点での欠点ってなんだろう? 日本語周りの処理に弱いとか聞かないし、遅いとも言われないし、難読的とも聞かないし、言語仕様がクソとか言われてないし、記述が冗長とも見かけない気がする
523 名前:デフォルトの名無しさん [2010/05/05(水) 17:29:50 ] コンパイルが遅い
524 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 17:33:15 ] Liftとかコンパイルするのに5時間ぐらい かかるしやってられん
525 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 17:36:36 ] あーコンパイル速度かぁ それはおっきなデメリットだw
526 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 17:37:08 ] >>522 それらは相対的・主観的な評価じゃないか? 現時点での欠点としては、Javaと比べてIDEの出来が悪いことかな。
527 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 17:43:52 ] やることないしみんなでRubyスレに突撃しようぜ
528 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 17:49:29 ] 本当はやることあるんじゃないか?
529 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:09:02 ] アレが足りないこれが足りない騒いでたのにお前がやれよってなった瞬間やることないわーって
530 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:40:33 ] 現状、ScalaのWebフレームワークってLiftとWebFlavorぐらいなんだろうか 上の方でちらっと話が出てるけど、JavaのPlayってのも使えるの?
531 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:43:39 ] C++程ではないが、時々、コンパイルエラーのメッセージが問題解決の 役に立たないことがある。
532 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/05(水) 18:57:14 ] >>530 Playも結構良さげ。あと、Java用だけどWicketとScalaは結構相性が良いらしい という話をときどき聞くがどうなんだろう…
533 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:01:49 ] Playは商用PHPフレームワークより 品質悪いから使い物にならないよ
534 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:03:03 ] 商用PHPフレームワークっていうと例えば?
535 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:17:37 ] Monadic Design Patterns for the Web ってどうなの? DSLはおもしろいらしいけど
536 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:54:41 ] IDEは将来的には動的言語より便利に補完してくれるようになりそうだよね 静的言語の補完機能に慣れ切ってると動的言語使いづらい
537 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 21:27:54 ] そもそもPHPのフレームワークは品質悪いって前提が意味解らん
538 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 21:28:49 ] PHPのフレームワークっていうとZendとか?
539 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 21:30:01 ] >>521 最初にScalaのパターンマッチ関係の処理を 実装よりの部分から理解するにはどこから 始めればいいのでしょうか?
540 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:10:29 ] >>522 俺もScalaの良い点だけでなく欠点も把握しておきたいな。 利点も欠点も状況しだいなとこあるので、できれば このようなプロジェクトだとこういう問題があるよ、とか。 携帯機器向けとかだとランタイムが大きくなっちゃうから proguardなどを使う必要がある。 スクリプトとして使うには起動が重い ものによってはREPLたちあげっぱにしといて、ロードして使う 上でerasureの話がでてるけど、Javaとの互換性やJVMで動くことは 利点にも欠点にもなる 検査例外が無い 検査例外の必要性は人によって分かれそう ここではバージョニングとスケーラビリティが問題視されてる pub.ne.jp/1691/?entry_id=1129006 高階関数使う言語だとうまく働かない、という話も ライブラリが中途半端 ファイル入出力とか、基本的なものがまだ整備されてなくて Javaのものを使用する必要がある 現状日本語情報がまだ少ないのも欠点か
541 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:29:11 ] >>540 >>携帯機器向けとかだとランタイムが大きくなっちゃうから >>proguardなどを使う必要がある。 互換性の検証必要だけど、Android用のScala.jarって2MB切ってるし 実質64MBあれば動くし、今後ハードがJVMの性能上がれば誤差みたいな 問題になるよ。家電にOSGi入れるとかアホなことやってる連中からすると よっぽど現実的だと思うよ
542 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:39:56 ] >>541 Android用のScala.jarってあるのか! サイズが問題になりそうな場面では使えそう。 アプレットとか
543 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:40:08 ] Androidにとって、2MBって死活問題では・・・?
544 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:43:48 ] >>543 OpenWnnとか4M越えてるし 許容範囲でしょ。 現状、性能度外視状態だけど ARM 600Mhz メモリ256MBの環境で 動くことは動くよ
545 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:51:05 ] トータルちゃうでしょ。 Androidの仕様上は、アプリ毎にJVM起動していくわけだから、Scala使うアプリ毎に2MBずつ という計算になるんじゃね? あと、1個のアプリが使える空間も少ないとかなんとか。
546 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:58:21 ] 2MBってjarのアーカイブの大きさで食うメモリの話じゃないんじゃないのか
547 名前:デフォルトの名無しさん [2010/05/06(木) 00:32:11 ] Twitterって今はScalaで実装されてるんだっけ?
548 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 00:38:01 ] バックエンドはね
549 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 01:17:21 ] Androidアプリの話は興味あるな 処理速度や機能的にはJavaと全く同等で、ファイルサイズだけが問題なのかな?現状
550 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 05:29:24 ] stackoverflow.com/questions/1383320/poll-what-is-stopping-you-from-switching-from-java-to-scala groovy.dzone.com/articles/why-scala-actors-15-20-times 何度も通ってきた道だけど クライアントにはあんま向かないとは思う
551 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 14:44:17 ] >>546 jarだから実際のクラスファイルはメモリ上で増えるんじゃね? もちろん、全てのScalaクラスをロードする訳じゃないとは思うけど。
552 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 20:11:26 ] Scalaやってる人ってなんていうの? Scaler?Scalist?
553 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 20:21:47 ] スカルマン
554 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 20:42:32 ] スカトロジー
555 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 22:14:31 ] >>550 上のほうのリンクの「なぜScalaを使わないのか」は IDEが未成熟だからって意見がつよいのか Javaのやつが便利すぎるからなぁ あとエコシステムがもっと回らないと、とか レビュワやメンテナに読みづらいコードが量産されそう、とか そもそもJavaでうまくいってるのに移行する理由がない、とかおもしろい。
556 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 22:19:35 ] Scalaはもっと馬鹿に迎合しないと普及しない
557 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 22:22:48 ] >>550 下のリンクのやつはよくわからんな。 ActorとFiberを比べてる?別物な気がするんだが。 Fiber欲しい、というならわかるが。 パフォーマンス求めるならAkka使うといいかも。 情報古いが、Erlangと比べるとさすがに差がある。 ErlangはVMからチューニングしてそうだし。 rainyday.blog.so-net.ne.jp/2007-05-20
558 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 22:25:02 ] >>541 ちょうどアンドロイドのコードサイズの話が article.gmane.org/gmane.comp.lang.scala.internals/3408 * Large code size increase? - we have received a report on increase in code size in an Android application, processed using ProGuard - It is possible that annotations (pickled Scala type signatures that are available using reflection) are explaining some of the increases from 2.8.0.Beta1 to 2.8.0.RC1 - maybe proguard can be configured to discard them? - New collections library may be the cause for the general 2.8 increase - This needs to be further examined. Gilles will follow up.
559 名前:デフォルトの名無しさん [2010/05/06(木) 23:40:48 ] >>553 かっこいいwwww
560 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:12:24 ] >>550 Scalaよりgrovyがもの凄く優れているんですね
561 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:36:44 ] >>550 そもそもactorのサンプル2.8じゃ 動かないから計測不能だしFUDだろ?
562 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:02:30 ] >>550 上のほう、マイナーバージョンが変わるとバイナリの 互換性が無くなるのも理由に挙がってるね 2.8だとコードの互換性もない、と
563 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 08:04:52 ] >>550 > stackoverflow.com/questions/1383320/poll-what-is-stopping-you-from-switching-from-java-to-scala 2chと同じレベルのレスが並んでいるな。
564 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 16:16:09 ] コップ本で勉強中です。 p.69のサンプルをScala2.8RC1で動かそうとしているのですが、エラーが出て進むことができません。 単純化すると以下のようなコードになります。 import scala.io.Source Source.fromFile(args(0)).getLines ここで、fromFileの引数の型が違うと怒られます。 error: type mismatch; found : String required: java.io.File Source.fromFileにはStringを引数にとるものもあるようです www.scala-lang.org/docu/files/api/scala/io/Source$object.html#fromFile%28String%29 が、こちらのメソッドを使用するにはどうすれば良いでしょうか。 あと、本の通りでは動かないというのは、2.7の頃から仕様が変更されているのでしょうか。
565 名前:564 mailto:sage [2010/05/07(金) 16:40:05 ] 自己解決。2.8では Source.fromPath(args(0)).getLines() なんですね。 行末の改行の扱いが変わってるっぽいですけど。
566 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/07(金) 20:04:19 ] >>565 2.8では、getLinesが行セパレータseparatorを引数として取るようになっているから、そのせいだね separatorのデフォルト値はそのプラットフォームのデフォルトの改行コードになってるみたい
567 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 20:06:27 ] 今から初心者がSS本やコップ本でやり始める場合、2.7.7と2.8RCのどっちが使った方がいい? Rubyでいうところの1.8.7と1.9系みたいな
568 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/07(金) 20:08:58 ] >>567 2.7.7使うのが無難。SS本もコップ本も2.8を前提にしないので、サンプルコードがそのままでは コンパイルを通らない可能性がある。一度2.7で学んだ後、2.8に移行すること自体はそれほど 難しく無いので、安心して良いと思う
569 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 20:21:21 ] >>568 そかーサンクス REPLの補完にちょっと惹かれたけど、とりあえずは2.7.7で頑張ってみる
570 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 23:18:13 ] >>568 2.8でも大半動くし、動かないのを調べるだけ、本以上の 学習が身につくのに何故に、楽な方、楽な方、安全な方という 導き方をするんだろうなぁ 意味がわからん
571 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 23:21:41 ] >>570 そんなの後からでも良いのでは。
572 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 23:56:06 ] >>570 先ず入りやすい方法を示すのは良いやり方だと思うが。 それで「もっとやれる」と思うような人は更に別の方法を自分で採れるはずだし。 ただ今後はwebで見かけるサンプルコードなどは2.8のものが 多くなると思うのでそこらは注意が必要かも。 本のサンプルにそんなにこだわらないのなら2.8からやるのもありだと思う。
573 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 00:00:49 ] >>570 うーん。しょっぱなからくだらない点でつまづくと、それが原因で学習する意欲自体が 削がれるということがしばしばあるので、そのリスクは少ない方がいいだろうと思う。 それに、2.8はまだ安定版が出ておらず、仕様面でもまだ変更される可能性のある部分が 残っているので、(RC1ではspecialize絡みでLiftなどで不具合が発生してて、それをfixした RC2が近いうちに出る予定)、正直言って、既に2.7を十分知っていて、2.8で導入された 機能に魅力を感じているユーザ以外にはまだあまりお勧めしたくない。 2.7→2.8の移行自体はそれほど難しくないから、後でも構わないと思う。
574 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:05:18 ] >>573 >うーん。しょっぱなからくだらない点でつまづくと、それが原因で学習する意欲自体が >削がれるということがしばしばあるので、そのリスクは少ない方がいいだろうと思う。 こうゆうのは排除でいいだろw モンキーコード書くような連中増やすのが目的なの?
575 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:11:35 ] >>574 モンキーだろうがなんだろうが、ある程度ユーザが増えないことには頭の固い上司を説得できないじゃん。 趣味でしか使わないのならそれでもいいのだろうけど。
576 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:16:06 ] >>575 SS本の9章読め アホで無知なユーザを増やすんじゃなくて 正しく利点と欠点を説明可能な技術者を着実に 増加させるのがあるべき方向だろ。 クソアプリ量産されて、クソ言語って評判が広まる方がいいの?
577 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:20:39 ] www.scala-ide.org/ これって前からある?
578 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:24:05 ] >>576 >>470
579 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:25:06 ] 間口が広いに越したことはないな。
580 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 00:26:01 ] >>574 そこそこの技術者であっても、Scalaに対する学習意欲がそれほど高く無い(= 当初はそれほど時間を割くつもりが無い)場合、学習の初期段階でつまづいたら、 それがきっかけでポイされるかもしれないわけで、リスクは少ないに越したことは無いと考えてる。 >>576 アホで無知であってもとにかくユーザ増やしたい、と思ってるわけじゃないけど、 新規ユーザ向けに現時点で2.8を積極的に勧める理由が無いというのが正直なところ。 さっきの書き込みでは書き忘れたけど、2.7と2.8の間にはバイナリ互換性が無いから 2.7向けにビルドされたScala用ライブラリがそのままでは動かないのも痛いところだし。
581 名前:デフォルトの名無しさん [2010/05/08(土) 00:30:02 ] SmallBasicみたいなコード補完&日本語API説明ついたIDEがでたら 一気に普及すると思うよ あぁいうのはバツグンに使いやすいもん
582 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:30:53 ] 現時点ではまだだけど将来的にscalaの場合、静的だからIDEの高度なインテリジェンスな補完を期待できるの?(Javaみたいな) それともコンパイルするまで型推論されないからIDE上では動的と大差なくてあんまり期待できない?
583 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 00:32:50 ] >>577 いや、そのサイトに移行したのはかなり最近、というかScala Daysでちょうど Scala Eclipse Plugin開発者のMiles Sabinが移行の話をしてたと思う。
584 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:35:37 ] >>583 なるほど。サンクスです
585 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:41:13 ] >>582 Javaでも構文解析とかはしてるし、ScalaのIDEが型推論機構を持てばできるんじゃない? というかコンパイラが持ってるのを使えばいいのか。
586 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:48:36 ] >585 そのへん、2.8からちゃんとやるから、Eclipseの腐れプラグインも2.8から まともになるよーとかいう記事があった気がする。
587 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:49:24 ] >>580 一時の安全、安定が本当に学習意欲に繋がるとは 考えられんし、業務でもないのにリスク回避が正しいとは とても思えん。 日本のトップScala技術者がそう言うならこれで引き下がるか。
588 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 00:52:03 ] >>582 補完機能の安定性(変なコードに対しても補完が効くか、という意味)や充実度、という意味で まだまだだけど、現時点でも補完はだいぶ賢くなってきてる。たとえば、 class RichListDouble(list: List[Double]) { def average: Double = list.foldLeft(0.0)(_+_) } implicit def enrichList(list: List[Double]): RichListDouble = new RichListDouble(list) とか書くと、 List(1.0, 2.0, 3.0).avとすると、averageが補完候補に出てくるけど、 List("A", "B", "C").avとすると、補完候補に出てこないという具合に(Scala Eclipse Plugin 2.8の場合)。 ただ、ちょっと凝ったソースコードにすると補完機能がうまく働かなかったりするので、安定性はまだまだ。 ビルダー部分は2.7のときに比べてかなり安定して働くようになったから、本格的に使い始めてるけど。
589 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:52:05 ] 現状(2.7系)でメソッドやプロパティをまともに補完してくれるIDEってある? 2.8を待たないと無理なのかしら みなさんどんな環境でスカラってますか?
590 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 01:04:52 ] >>587 いや、日本のトップScala技術者というわけではないですし、コーディングスキル も全然高く無いです。あくまでScalaの言語仕様については(日本では)詳しいというだけです。 というのはともかくとして、リスク回避というのは、サンプルコード動かねー、とか scaladoc2のAPIリファレンスが読みづれー、とか、正直言って些細な部分でつまづかれて、 Scala使えねーという評判が広まるのは避けたいなあ、というのもあります。 2.8安定版が出て、仕様がFIXされた後なら状況はまた別ですけど。
591 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 01:06:30 ] >>588 コンパイラのAST(抽象構文木)パーサとかを流用すればすぐ実装できるんじゃ、 とか思ってしまうんだけど、技術的にどのへんがチャレンジになってるんだろ? 単に内部APIがきちんと整備されてないだけ?
592 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 01:07:18 ] >>588 自己レス。うぎゃ。averageの定義が平均じゃなくて合計値になってるorz summationとかに適当に読み換えてください。
593 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 01:11:49 ] >>591 implicit conversionを考慮に入れた補完はかなりチャレンジングだと思う。 implicit conversionに関する規則って結構複雑で、パーサ持ってればすぐ実装 できる、という程簡単ではない。その辺を一発で処理してくれるAPIをコンパイラが 持ってなければ自前で実装しなけりゃいけない…(ひょっとしたら持ってるかも)。 C#のExtension Methodなんかも結構補完大変だと思うんだけど、Visual Studioは よく補完実装してるなーとか思ったことがある。
594 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 01:26:57 ] >>593 なるほど。 その辺が完璧に処理できるようになると強力なウリになるんだけどなぁ。 職場がテストコードにGroovyを導入してるんだけど、便利は便利なんだが、一方でIDEの強力さを思い知ったりしている。 Groovyは別に用途があると思うけど、従来のJavaの位置のリプレースとして有望なのは、やはりScalaじゃないかな、と。
595 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 01:39:12 ] >>589 NetBeansを使うばあいは、2.7のプラグインはNetBeans6.7までにしか 対応して無いはずなので注意ね。 NetBeans6.8以降は2.8のプラグインしか対応して無い。 個人的にNetBeansが好きなのだが、将来性の問題からオススメしづらい・・・ IntelliJはかなり本気でScalaに取り組んでるみたいだし Eclipsはコミュも大きく、Scala開発元も押してる(?)っぽいし、 プラグイン自体にスポンサーも付いてるみたい NetBeansは個人がClojureやErlangプラグインと一緒に開発してるもので 仕事忙しくてあまり手が回せないみたいだし なによりOracleがSun買収後もEclipsを押していくと明言してるから NetBeans自体がそもそもやばい気が
596 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 01:51:00 ] NetBeans売却されるからなぁ
597 名前:デフォルトの名無しさん [2010/05/08(土) 01:52:14 ] Eclipseはエディタのカラー替えるプラグインみたいなのなんでないの糞すぎ
598 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 01:55:42 ] >>596 ほんとに?そんな話初めて聞いたけど…
599 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 02:05:04 ] >>597 とりあえずMoeclipseでググるといいと思うよ。
600 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 06:58:23 ] やっぱEclipseが本命か
601 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 08:56:10 ] Java, JavaVM, EclipseもMSに潰されるから無問題
602 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 11:06:54 ] Summer of CodeにEmacsの開発環境のプロジェクトがあったから期待している
603 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 11:38:37 ] traitがclassに対してextendsする場合はそのクラスもしくはサブクラスに対してのみmixinできるという制約で traitに対してextendsする場合はそのtraitを継承するっていう理解でいいですか
604 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 13:08:17 ] ◆ueEP8Ean2lqc氏とmatzがやりあってるぞ! と野次馬的に。
605 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 13:55:12 ] >>604 まあ別に見られても構わないんですけど、自分的には別に喧嘩してるつもりはなくて 普通に論争してるだけのつもりなんで。念のため。 # 正直、今回の自分の論については、ショボい例以外で良いのを # 思いつかないのは事実なので、主張としては弱いよなーとか思ってたり。
606 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 13:57:47 ] RubyダサいはJavaプログラマの総意だから問題ないよ
607 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:11:01 ] センス論争は難しいなぁ。 生産性、と言い換えてもいいんだが、これも恣意的に使える言葉だし。
608 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:20:47 ] JavaからRubyへって本読んだけど過去最高のトンデモ本だったわ
609 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:28:30 ] Rubyダサいってどんなところ? Scalaと比較して? あのmatzと論争してんのか、すげーなw
610 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:34:47 ] PerlやPHPやJavaをdisることでしか存在意義を見いだせない言語だから仕方ない
611 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:36:00 ] あのクソ宗教本のせいでRuby使わされてウンザリしたよ
612 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:38:21 ] Pythonへの不満はインデントのセンスがないことくらいだけど Rubyはありすぎて書ききれない
613 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:56:56 ] とりあえずコップ本の次はRuby勉強してみるか。 dev.ariel-networks.com/articles/workshop/ruby/
614 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:58:35 ] 2002年くらいにJavaやPerlの代替探しててRuby勉強しててこりゃ駄目だと思ったけど まさかRoRが出てきてあの言語が流行るとは思わなかったわ
615 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:04:05 ] DSLが作りやすいあたりとかは共通点なんじゃないかね、よく知らんけど。
616 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:08:37 ] Railsやらされてすげー苦痛だった。Rubyしかできない連中とは仕事したくない。 型チェックがないととんでもないアホな単純ミスを見逃したりする。しかもテストは 数が多いがコンパイルチェック以下みたいなレベルのばっかりだったりとか。 Scalaには本当にがんばってほしい。流行すれば同じような境遇の人には福音となるはず。
617 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:12:01 ] バグが出来るのは作る奴の問題で言語のせいではないと思うぜ
618 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:14:15 ] タイプミスしても実行するまで検出できないとかは言語のせいだと思うね。
619 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:15:20 ] >>617 もちろんその通りだが、うみやすい言語とそうじゃない言語はあると思う って昔matzがPHPをdisってる時に言ってました
620 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:19:04 ] >>618 CでもJavaでも意識してタイプセーフにしないとどっちにしろ意味ないけど もちろんScalaも
621 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:20:10 ] PHPとRubyは同じようなもんだと思うんだが というかむしろRubyの方が生みやすい気もする
622 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:24:43 ] >>621 あ、一応補足しとくと>>619 でmatzが言った時は「PHPはセキュリティ的に問題のあるコードを生みやすい」って意味で使ってたから、バグとは厳密には違う まぁ「書く人次第」という主張に対する反論としては大差ないけどね
623 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:27:22 ] セキュリティ的に問題のあるコードを生みやすいってのがまず意味が解らんけどな PHPで問題出す奴はJSPで書いてもeRubyで書いても同じ事するだろ
624 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:29:48 ] プログラマの間口が広いか狭いかだけの問題だと思うな Rubyは今まで初心者がいきなり使うことがなかったからセキュリティ問題が発生しづらかっただけで 初心者をガンガン受け入れてきたPHPとはプログラマの質が違うんだから 言語仕様よりコミュニティの方針で絞っただけに過ぎないと思う
625 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 17:34:01 ] 自治体なんかでRubyに補助金とか出しているところがあるけどなんの意味があるんだろう Scalaの方が遥かに優れているし、競争力もあがるのに
626 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 17:39:29 ] とりあえず他言語disってるだけのやつは全員消えてくれ。
627 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 17:40:18 ] >>625 某自治体の職員曰く、国産言語だから 金出すって言ってたなぁ。それ以上よくわからないし 聞かれても、書類のとおりとしか言えないってさ そんなんだから何時までたっても バカITが続くのだろうなぁ
628 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 17:52:44 ] クズどもはこっちでやれ pc12.2ch.net/test/read.cgi/tech/1249737531/l50
629 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:37:07 ] なでしこひまわりの方がマシだな
630 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:07:32 ] SS本の冒頭にちょうど JavaからRubyへ...そしてScalaへ... っていう節があるね。
631 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:12:28 ] 適用領域が違うだけだと思うなぁ。 Scalaの立ち位置は「ライトウェイトJava」でしょ。
632 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:12:45 ] Liftの作者は、そういうノリでしょ? 長いことrails使ってたけど、ありゃやっぱ言語が駄目だわって動機でLift開発に至ると。
633 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:13:42 ] twitterがscalaに移行しているみたいなこと言ってたけど どの程度移行したんだろう
634 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:21:44 ] >>632 そういうことってどこに書いてあるさ? >>633 バックエンドを全部。フロントエンドは今もRails
635 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:21:58 ] >>633 100%書き直し
636 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:33:58 ] 煽りたいだけの奴がいるな。。
637 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:37:09 ] >634 本人のblogやインタビュー記事。 本(Beginning Scala)にも書いてたかな。
638 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:37:59 ] ム板はしょうもないやつが多すぎるからな
639 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 21:11:57 ] Scalaスケーラブルプログラミングって本ってどうなの?
640 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 21:16:15 ] >>639 上のほうのコップ本でしょ?
641 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 21:19:10 ] コップ本は大体理解したんだけど、その後でSS本って読む意味ある?
642 名前:デフォルトの名無しさん [2010/05/08(土) 21:40:12 ] rails経験者でscala/liftに興味持ってるんですが、 liftってubuntuの上にインストールすることってできないんでしょうか?? 色々調べてもWindowsにインストールしてる記事しか見つけられませんでした。 もしかしてLiftってEclipseと一緒に使うものなんでしょうか? 教えていただけると幸いです。
643 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 21:43:22 ] 特にないんじゃないかな。 コップ本が難しかったら、SS本に手を出す価値はあると思う。 SS本は名前の通り入門本なので、入門レベルを乗り越えたら不要になるタイプの本。
644 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 21:45:20 ] >>642 liftはmavenから使うのが普通だと思うけど
645 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 21:46:42 ] >>643 なるほど、ありがとう
646 名前:642 [2010/05/08(土) 22:01:28 ] >>644 レスありがとうございます。 すいません、自分JavaやったことなくてMavenもよくわかってないのですが、gitみたいなもんですかね? ずっとLAMP環境でやってきましたので、ターミナルでvimとか使ってプログラミングするのに慣れてるんですが、 scala/liftではあまりそういうことができない感じなのでしょうか?Windowsで開発している情報ばかり見るもので・・ ちなみにEclipseはC++の開発で使ったことがあるぐらいです。
647 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:02:29 ] 下手な煽りがまざってるな、だから2chはだめなんだよ
648 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:10:21 ] >>646 gitはバージョン管理。 Mavenはごちゃ混ぜになっちゃったけど元はライブラリ管理のものだったはず
649 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:15:46 ] >>646 Railsやってたのなら、Mavenは rake + rubygems みたいなものと思えばいいんじゃないかと。
650 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:54:42 ] >>646 むしろ Ubuntu/Linux のほうが Windows より簡単にできるよ ターミナルでやるのに慣れてるならなおさら
651 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:09:13 ] matzと論争してる人、まだ続いてるのか?w 誰かログ残ってる人トゥギャっておいてくれよ
652 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:29:10 ] 読んでみようと思ったけど、長すぎて断念w IDEも含めれば静的型付けの恩恵はわかりやすいんだけどね パターンマッチを別の問題にしてるのは紳士的だねw 俺なら真っ先に言いたくなるけど
653 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:50:49 ] 動的型は二酸化炭素をより多く排出するから滅ぶべき
654 名前:デフォルトの名無しさん [2010/05/08(土) 23:52:57 ] IDEを使いこなした経験が無いと静的型言語の恩恵ってあんまりないからなぁ。
655 名前:デフォルトの名無しさん [2010/05/08(土) 23:53:26 ] 動的言語と静的言語のメリットデメリットについてハイレベルな擬論を展開しているようだが、難易度高すぎてサッパリついていけないwww まとめた上で誰か解説たのむw 最近Scalaの注目度高いからやればホットエントリー入り間違いないぞ!!
656 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:56:40 ] 静的型言語で一般的なレンタル鯖でCGI作れて開発環境や汎用ライブラリも揃ってるとなるとやっぱCしかない?
657 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:59:34 ] なぜここでその質問w ここのスレ的にはGAE/JをScalaでやるにきまってる
658 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:01:41 ] いやその分野に食い込めたらRubyやPythonの上行けるよなーって思ったんで
659 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:37:00 ] たしかに言語がいかによくても気軽に使える環境がないと厳しいな そういう意味じゃPHP/Perlにはもちろん、まだまだRuby, Pythonにも遠く及ばないか
660 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:40:08 ] Javaなんてかなり古参なのにデフォで使えるようになってないレン鯖が多いのはなんで?
661 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:42:48 ] >>660 鯖屋のスキル不足
662 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:03:51 ] 結局Servletありきだからリソース的にもVPSクラスじゃないとまともに使えない (というかVPSでも512MBくらいないとまともに使えない)からじゃないかなぁ CGI的に使うならもっとメモリ少なくても余裕なんだけどねぇ mod_javaの開発が止まったのが悔やまれる 非ServletだとJDK入ってるのは海外のレン鯖でもDreamHostとか一部だけだな
663 名前:デフォルトの名無しさん [2010/05/09(日) 01:16:05 ] Rails3への移行に疲れた・・・ どうせ作り直しならScalaに乗り換えようかな
664 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:20:44 ] 仕様が固まらんとD言語やPython3みたいな悲劇起きそうだからまだ流石にScalaに移行はできんな メジャーバージョンアップがあってもPHP4→5くらいの修正で済むようにならんと厳しいなやっぱ
665 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:21:31 ] Parrotっていつ完成するんだろうね。 あれが出来てれば、Scalaもそっちで作られてたかもしれんし。
666 名前:デフォルトの名無しさん [2010/05/09(日) 01:27:14 ] >>664 でも割としっかりしてるからtwitterとかforsquareみたいな大きいとこが採用したんじゃないの?
667 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:29:09 ] しっかりしてなかったRuby採用したのがtwitterだからな…
668 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:29:49 ] 大きいところは自分でメンテやるんじゃね? Yahoo!JapanなんてFreeBSDやMySQLですら独自に作り替えちゃってるし
669 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:50:48 ] Scalaのクラスライブラリは、IO系が手抜きなのが意外。 普通、新しい言語のライブラリって、IO系から固めないか?
670 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:57:48 ] 関数型言語はそうじゃないよ
671 名前:642 [2010/05/09(日) 02:03:55 ] レスありがとうございます。 とりあえずubuntuにscala/maven入れてhelloWorldのところまではいけました。 これから色々いじってこうと思ってるんですが、ちなみにliftはRailsみたいにRestを意識した感じではないのですかね? 「lift restful」な感じでググってもあまり出てこなかったので。
672 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 02:13:29 ] >>669 Javaのライブラリで事足りたからじゃね?
673 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 03:06:27 ] scala.io.Sourceとかってコンパイラ用だからあんま使わないでくれ って話無かったっけ?もうOKなのかな?
674 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/09(日) 03:19:59 ] >>669 コレクションライブラリを一番優先してる、という印象を受けるね。Scalaの場合。 2.8のコレクションライブラリなんか、良くも悪くも特異な設計になってるし。
675 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 05:02:59 ] scala-mode.elつかってみたんやけど、 def hoge { val foo = if (boolValue) (x, y) else (x, y) ここ と、末尾が)で終わる式(?)の次行が強制でインデント(「ここ」の位置にくる) されてまう気がするけど、なんとかならないもんかな?
676 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 09:04:01 ] 自分で直せば?
677 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 09:07:32 ] ScalaのIOは腐ってるから 使えない。だから流行らないんだよ
678 名前:デフォルトの名無しさん [2010/05/09(日) 13:49:16 ] >>とりあえずubuntuにscala/maven入れてhelloWorldのところまではいけました。 教えてくだしあ>< そこまでいけない・・
679 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:58:59 ] にょろ演算子って タプル作る演算子なんですか?
680 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/09(日) 20:15:47 ] >>679 たぶんパーザコンビネータの~演算子のことだと思うけど、ちょっと違う ~演算子は、「パーズ結果として~[T, U]を返すパーザ」であるParser[~[T, U]]型のオブジェクトを 返す(Tはレシーバの型で、Uが引数の型ね) ~[T, U]はタプルとは別の型だけど、意味的には(T, U)と似たようなものだと思って間違いない
681 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 20:28:36 ] >>680 Parser[~[T, U]]というのは 例えば、a ~ b ~ cって返すと入れ子 になるってことですかね?
682 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/09(日) 21:05:34 ] >>681 そういうこと。 aがParser[A],bがParser[B],cがParser[C]だったら、a ~ b ~ cの型は Parser[~[~[A, B], C]になる。パーズ結果の値を加工したいときは、 a ~ b ~ c ^^ { case va ~ vb ~ vc => .... } みたいにパターンマッチで取り出せる ちなみに、タプルでなくわざわざ~というデータ型を定義したのは、パターンマッチ でパターンがネストしたときの利便性と、~演算子と同じ記号使いたかったから じゃないかと思う。
683 名前:デフォルトの名無しさん [2010/05/09(日) 23:15:40 ] >>678 d.hatena.ne.jp/hkweb/20100508
684 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 00:14:07 ] 新しいscala本はいまいち コップ本があればいらないかな
685 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 00:35:49 ] SSいらんみたいな自称玄人の自慢話はもういいから
686 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 00:37:21 ] SSサイコー
687 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 00:43:52 ] レベルや対象が違うにせよコップ本とSS本の2つは良書で間違いなさそうだけど、他の和書は話にならないレベル? あとこれから出るので期待できそうなのとかあるのかな
688 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 00:53:37 ] SSは別に良書じゃないだろ
689 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 01:30:42 ] 工学社の方は普通の入門書
690 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 21:36:14 ] Scalaで、2つの変数に同時に代入するのってどうやるのだろう? Rubyだったら y0, y1 = x0+1 , x0*x1+2 って感じ。
691 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:12:37 ] 2つ同時に代入したいなら、こんなんでいいけど、 val (a, b) = (1, 2) これってパターンマッチと同じ仕組みなので、 val Some(a) = Some(1) とかもできる
692 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:15:47 ] >691 その書き方で正規表現やってるのを見たときは、ちょっと衝撃だった。
693 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:20:28 ] そして、Extractorを自分で定義できるからね いい言語だよねw
694 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:23:43 ] >>691 下の例がよくわからない 生成されたSomeオブジェクトにSomeオブジェクトを突っ込んでるように見えるけど… どなたか素人にもわかるように説明してもらえませんか
695 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:28:08 ] 左のSomeはコンストラクターパターンと言って、パターンマッチの一種なんだよね 詳しくはScalaのパターンマッチについて調べるといいよ
696 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:41:46 ] >>695 詳しく説明もできない 知ったかは消えろよw
697 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:47:08 ] はあ、またか 2chって頭がおかしいやつばっかだな
698 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:53:54 ] RC2が出たみたいだけど、バグフィックスだけかな?
699 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:59:33 ] >>698 本家でもバグてんこ盛りで使えないだろって 避難が凄いみたい
700 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 01:06:53 ] どこにそんな情報が?
701 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/11(火) 01:16:34 ] >>700 >>701 の言ってるのがRC2のことだとすると、確かにそんな情報は見当たらないので 変だけど(つか、RC2出たばかりだし)、たぶんRC1のことだと思う。RC1では、 specialization絡みでバグがあってLiftのテストケースが失敗するとか、specsの挙動 もなんかおかしいとかそういう話を見かけた覚えがある。RC2はその辺のバグを軒並み フィックスしたバージョンになってる(たぶん)。
702 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/11(火) 01:17:24 ] アンカーミス。>>701 じゃなくて>>699 ね。
703 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 16:43:15 ] IteratorのflatMapはIteratorを受け取るんだなTraversableOnce受け取って欲しいわ TraversableのflatMapも
704 名前:デフォルトの名無しさん [2010/05/11(火) 22:51:59 ] 知人がScala勧めてきた。理由はTwitterが使ってるから。 そんな理由で人に勧めるなんて・・・
705 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:05:03 ] twitterがscalaを使い始めたのは成功した後 それまではruby railsを使っていたんだから ruby railsを薦めるべき
706 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:17:37 ] twitterくらいでかくなるまではRubyで十分だな
707 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:18:09 ] java-jaの人らがこのスレを話題に出しててわろた
708 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:23:52 ] java-jaってなんだよ
709 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:52:13 ] SS本の帯にも書いてあるからねw 今、人に進めるのにこれ以上ない宣伝文句じゃね ところでScalaを学ぶ前に知っておくと特に役立つ言語って、Javaは確定として、残りはRubyとかHaskellあたりかな?
710 名前:704 mailto:sage [2010/05/11(火) 23:54:41 ] >>705 >>706 オレもRORについては言及したんだが、そいつもうSS本買っちゃって鼻息 荒いのなんのって・・・ んで、「オマエもやれ」って・・・ この友人には言ってないんだけど、オレプライベートではHaskellerなんだよね・・・
711 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 00:03:03 ] あの、駄目な友人の愚痴を披露する場ではないんだけど
712 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 00:06:44 ] ビルドツールってなにがお勧め?
713 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 00:22:05 ] val xml = <aa>abcd<dd>eeee</dd></aa> であるときに自分の直系のテキストのみ("abcd"だけ)を取得したいんだけど xml \\ "aa" text では abcd<dd>eeee</dd> パターンマッチで xml match { case <aa>{abc}<dd>{dd}</dd></aa> => println(abc) } とタグを全て定義してやれば、取得は出来るんだけど この方法しか無いんでしょうか
714 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 00:39:26 ] ビルドツールは、みんなsbtに移行してるのかな
715 名前:デフォルトの名無しさん [2010/05/12(水) 00:50:51 ] >>713 xml.child.filter(_.getClass == classOf[scala.xml.Text])
716 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 01:06:27 ] isInstanceOfは使わないのかい?
717 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 01:11:40 ] >< ムギュ・・その通り・・・ xml.child.filter(_.isInstanceOf[scala.xml.Text])
718 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 01:30:46 ] isInstanceOfの所の角括弧の使い方が何だか奇妙に感じる。 文法的にはどうなってんだ、これ。
719 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/12(水) 02:07:39 ] >>718 文法的にはAny型に所属している普通のメソッド(単に型パラメータを取る=ジェネリックというだけ)。 内部的にはコンパイラが特別扱いしてinstanceof命令に変換してる
720 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 02:19:12 ] あ、そうか。引数無しのメソッドなんだな。 しかし、 List(1).isInstanceOf[List[String]] が true になるのは、やはりダサいな。
721 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 02:49:17 ] >>720 ダサい Java との相互運用性を考えれば仕方あるまい
722 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 08:11:13 ] それはパターンマッチを使えというご託宣、ってコップ本がゆってた。
723 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:26:05 ] 守備力age
724 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:49:19 ] レンタルサーバーで気軽に使えるようにならないと普及はきつい。 エンタープライズはjavaのままだろうし。 schemeやgoなどがもいまいちなのは、サクラインターネット月1000円レベルでwebアプリがかけないから。 皆さんはどう思います?
725 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:59:03 ] レンタルサーバの時代は終わり GAEやEC2なんかで使えれば無問題
726 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 21:01:09 ] それレンタルサーバだから
727 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 21:24:21 ] じゃあJava/Scalaもレンタルサーバで気軽に使えるから無問題
728 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 21:29:43 ] PHPが普及した要因のひとつもそこだろうけど、GAEってタダだっけ? 値段やホスティングしてるとこの知名度は重要かもね
729 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 22:15:55 ] GAEは不安定すぎて実験にしか使えん
730 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 23:26:11 ] 月1000円鯖の代替なら十分
731 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 09:32:04 ] App EngineでScaleって動くの? App Engineって完全なJVMじゃないから、無理かとおもってた。
732 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 09:35:31 ] GAEが不安定だと思わない。 ec2は魅力的だが高くつきそうだね。
733 名前:デフォルトの名無しさん [2010/05/13(木) 09:51:54 ] キーボードからCのソース・プログラム名(fname.c)を入力し、そのプログラムの行番号付 テキスト・ファイルを、別名のファイル(fname.txt)で表示するプログラムを作成せよ。ただし、 ファイル名のfnameの部分は共通にせよ。
734 名前:デフォルトの名無しさん [2010/05/13(木) 09:52:53 ] キーボードからCのソース・プログラム名(fname.c)を入力し、そのプログラムの行番号付 テキスト・ファイルを、別名のファイル(fname.txt)で表示するプログラムを作成せよ。ただし、 ファイル名のfnameの部分は共通にせよ。 上を教えてください。 お願いします。
735 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 10:06:30 ] なにそれ宿題?
736 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 10:15:47 ] >>732 思う思わないの問題じゃないと思うけどな そこそこのサイトで実運用に耐えられなきゃ単なる技術者のオナニーだし
737 名前:デフォルトの名無しさん [2010/05/13(木) 10:37:00 ] >>735 宿題です。 まったく分からなくて困ってます。
738 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 10:39:35 ] Scalaで宿題?スレ間違ってない?
739 名前:デフォルトの名無しさん [2010/05/13(木) 11:37:55 ] >>738 どこのスレにいけば教えてもらえますか?
740 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 11:49:24 ] 本当にScalaの宿題ならこのスレでいいと思うけど そんなものを教える学校があったのかと驚いたもので 違うなら該当プログラミング言語のスレへどうぞ
741 名前:デフォルトの名無しさん [2010/05/13(木) 12:05:20 ] Cなので、そこへ行ってみます。
742 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 12:09:49 ] わろす
743 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 12:24:20 ] とくにageられてたわけでもないのに何でこのスレだったんだw
744 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 13:20:08 ] >736 釣られちゃたのだが、不安定の根拠ってある? 思う思わないの話し?
745 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 13:36:53 ] twitterで検索すると結構不安定言ってる奴いるな 全員工作員だろうけど
746 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 13:48:11 ] >>745 たかだか道具の一つにそこまで思い入れ持つってのも凄い事だよな 今、Scalaとか弄ってる人間で選択肢を増やすって考え方以外は本物だと思うんだが
747 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:28:42 ] 間違ってるかもしれないけどSS本の7章のクエリビルダのソースだけど いろんなクラスでやトレイトで[MyType <: Table[MyType]]型引数を受け取ってて 本には該当のテーブルで定義されたフィールドだけがクエリーに含まれることを保証しますって書いてあるけど ほとんどTable内で定義されててパス依存型になってるので別につけなくても保証できてない?
748 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:52:43 ] いやByとOrderByは外にあるからやっぱつけなきゃダメか
749 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 18:00:39 ] twitterでのMatzとの論争を見たけど、難しくてわからなかった。 で、古いのを見ると、kなんとかさんのこと書いてあったけど、あれまずいんじゃないかな。 あのひと、今ひがさんのツイートをさらしものにしてるでしょ。 「kなんとかさん」とか書いてるのも見つかると同じようにさらされそうだから、火種になりそうなのは消したほうがいいんじゃない?老婆心ながら。
750 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 18:28:52 ] >>746 なんか勘違いしてるだろ 不安定なのはScalaじゃなくGAEだろ 直前の流れも読もうな
751 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 19:39:13 ] >>749 言ってる意味がわからないよ婆さん
752 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 19:43:22 ] Scala on GAE/Jは、ググればやってみてる人は結構いる。 GAEが不安定の件は、どのレベルの安定性を求めているのかによる。 勘定系に使えないって話か、 データストアが時々タイムアウト例外を投げるのが許せないのか、 もっと根本的に不安定だと言ってるのか。
753 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:09:30 ] >>750 本物かw どっちが不安定とかでなんでそんなにこだわれるの?ScalaProject参加してんの? お前みたいなの以外で今Scala触ってるのは不安定かどうかなんてのは自分で検証・判断出来るレベルって事が言いたかっただけ。
754 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:39:27 ] GAEが不安定だとなんか困るのか? 巷の評判が不安定だってんなら別にそれで構わんだろ
755 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:40:29 ] そりゃ使いたいのに不安定だったら困るだろう。
756 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:41:53 ] EC2でいいよ
757 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:46:31 ] どっちが不安定でも良いけど、検証コード、結果、原因だして騒いでんの? あるなら改善要求でも出せばい良いじゃん。
758 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:58:01 ] GAE大好きスレでも立てろよ Scalaを流行らせるためには安定したクラウド必要だね でもGAEまだまだだねってだけの話なんだから
759 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:12:26 ] 758=754=750か?どっちが不安定でもいいけど必死だな
760 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:25:47 ] そうだけどだとしたらなんか問題あるのか
761 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:33:23 ] そろそろくだらない話は終わりにしろ
762 名前:デフォルトの名無しさん [2010/05/13(木) 22:33:24 ] せっかく下記のスレッドがあるので、そちらでできればよいのだが、 Google AppEngine 3アプ目 pc11.2ch.net/test/read.cgi/php/1267057923/l50 こっちの方がもりあがってるのでこちらに書き込み。 >>752 勘定系に使えない理由を教えていただけないでしょうか。 データストアのタイムアウトはまー色々対処方法があるのでいいが、 根本的に不安定というのがあるならば、教えてほしいです。 社内システムをscala On GAE/Jで作ろうとしてるので どのようなリスクがあるのかあらかじめ知っておきたいのです。
763 名前:デフォルトの名無しさん [2010/05/13(木) 22:34:56 ] やべ。 >>761 の仰る通り、こちらで書くのはおかしいので、 Google AppEngine 3アプ目 pc11.2ch.net/test/read.cgi/php/1267057923/l50 に書きます。
764 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:36:46 ] Scala.NETの実用度ってどんなもんなの?
765 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:41:18 ] Scalaって、Rubyみたいに完全な(純粋な?)OOPLなの? それともPHPみたいに不完全?
766 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:03:59 ] OOとか何言ってるの?
767 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:06:27 ] >>764 昔見た時(2.7.?)は、Actorなどなかった、 仕組み上JavaAPIはつかえないので、JavaAPI使ってるScalaで書いたライブラリも使えない
768 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:07:46 ] twitter.com/y_asa/status/9045917806 twitter.com/moyu_w/statuses/13250867964 ameblo.jp/rarapima/entry-10517976394.html わりと評判悪いかもしれん。 かくいう俺もSlim3試して重いなぁって思って放置したけど。
769 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:22:57 ] >>766 完全なOOPLなのにさらにFPLならすごいなと思って聞いてみた Rubyがでたころは1も+もすべてオブジェクトだよすごいだろ?って登場してきたなぁと
770 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:26:07 ] tweetが情報元とか怖い世の中になったもんだな・・・ 今日は一人変なのが紛れ込んでますね
771 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:30:22 ] >>767 ありがとう。 Javaのクラスライブラリが使えず 書き手もJavaをほとんど知らないとなるとあまりうまみがないってことなのかな。 言語が面白そうでJava版をちょっと触ってはいるけど PowerShellの代替にはならないか。
772 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:40:15 ] >>770 2chが情報源と同レベルだよな
773 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:03:34 ] >>736 >思う思わないの問題じゃないと思うけどな とか人を見下した発言しておいて、不安定の根拠がtwitter発言かよ。
774 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:10:21 ] なぜアメブロで詳しく説明してる奴の話はスルーなのか
775 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:11:20 ] 今もJavaのライブラリまともに 呼び出せないクラスが大量に量産されている 2.8RCは安定しないどころか、どんどんバグが量産されていて もう手がつけられない。 今後どうなるかは自明な状態
776 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:15:52 ] >>774 え?これの事じゃないよな? ameblo.jp/rarapima/entry-10517976394.html いくら2chでもム板での「詳しく」はさすがにtweetと同じレベルじゃないでしょw
777 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:17:17 ] amebloだろうがtwitterだろうが、詳しく知りたかったら 発言した本人に尋ねられるじゃん。
778 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:20:03 ] >>774 不安定じゃないじゃん 重いって言ってるだけじゃん 馬鹿なの?死ぬの?
779 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:21:45 ] >>774 ってPHP信者だろ? Javaクラウドをけなして普通のサーバで動くPHP最強!って結論づけるのが目的
780 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:22:50 ] このスレって田舎社会みたいだな
781 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:24:16 ] >>774 =>>780 相変わらず必死だなw PHP使ってると頭もよわくなるね?
782 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:27:17 ] Javaクラウドは失敗するよ 全然つかいものにならないし
783 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:31:13 ] おまえら荒らせればなんでもいいのかよw
784 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:33:26 ] >>782 PHPより全然マシ
785 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:34:47 ] >>784 PHPは簡単で高機能な言語だろ Scalaなんて何が出きるのw? バグだらけで何もできないし
786 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:35:41 ] >>780 むしろ都会だったら 774「GAE不安定なんです。」 上司「何が〜?」 774「まかりません」 上司「まさか調べてないの?おーい○○、GAEおかしいらしいから事象だけ確認してそのままm引き継いで」 774「あのー僕何やれば良いですか?」 上司「辞表でも書いてて」
787 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:39:30 ] 普通は安定していると言う根拠を出してから 採用を検討するのでは? 最初にGAEありきの会社なんてないよ。
788 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:39:54 ] >>787 ほら釣れたw
789 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:43:38 ] GAEが不安定というよりも Scalaが原因でGAEが不安定になることが多いね やっぱりJavaのクラウドなんて無理なんだよ
790 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:49:03 ] >>789 とうとう我慢できずに本性あらわしたか やっぱScalaアンチじか
791 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:06:13 ] 戦ってるねぇ、2chの鏡だ
792 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:08:47 ] 妄想で語ってるやつはいい加減出ていってくれないかな GAEはスレ違いだし
793 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:09:43 ] でもScalaとGAEの組み合わせは 挙動不明のバグが乱発するんだけど これはGAEの問題じゃないでしょ
794 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:11:52 ] >>793 頭おかしいのか?
795 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:13:25 ] かといってGAE以外に現実的に安くて安定して動かせるとこなんて他にあるか?
796 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:24:49 ] んでScalaとGAEの組み合わせで挙動不明のバグが乱立するtweetはどこよ
797 名前:デフォルトの名無しさん [2010/05/14(金) 01:49:09 ] んでScalaとGAEの組み合わせで挙動不明のバグってどーゆーのだ。
798 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 03:37:23 ] 型パラメータにデフォルト値指定できるようにしようぜ! って言ってる人を見かけたんだけど、そういうのってできるもんなのかな もちろん今のScalaでは無理なんだけど、そういう拡張って可能なのかな
799 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 07:20:38 ] >>673 関係でこんなん見つけた。 stackoverflow.com/questions/1762843/why-doesnt-scala-source-close-the-underlying-inputstream Scala.io._ はXMLやコンパイラの為のもので、良いデザインではない。 でも2.8では良くなってる、だそうな。
800 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:08:47 ] GAE不安定って言ってる奴は、まずBASE特性とCAP定理でググっとけ。 まぁ、GAEスレでやれって話だな。
801 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:19:20 ] 簡単に言うと、GAEみたいなクラウドは、いくつかの特性を犠牲にすることで、 強烈なスケールアウト特性を手に入れる、という選択をしている。 「不安定」なんじゃなくて、最初からアーキテクチャ的なトレードオフがあるだけ。 タダだからレン鯖の代わりに使おう、くらいの心積もりなら、素直にレン鯖を使った方がいいこともある。 この辺は解説してるページや本がいくらでもあるから、後はググれ。
802 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:30:05 ] だから、そういうトレードオフがあるから、 Scalaの普及に使いづらいよねってのが最初の話じゃね? Javaだって初期は、WebLogicが重いせいでJavaは重いって評価になって 長年不名誉な評価を受ける事になったんだしさ。 なのに、GAEのマイナス評価に過剰反応する奴がいたり、 しまいにはPHPと戦う奴が出てきたり。
803 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:32:18 ] 現状雑談スレと技術スレをわけるほどトラフィックがないのがつらいところ
804 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:46:54 ] まぁクラウドなだけに使う側にとっては なんか重いなんか不安定って感じで 終わっちゃうだろうしなぁ確かに 既存のレンタルサーバだってそのサーバが重い原因を調べて使い続けるより みんなすぐ乗り換えちゃうし
805 名前:デフォルトの名無しさん [2010/05/14(金) 09:15:52 ] まとめると「GAEは不安定で使えない」というのは妄想発言ということでいいね。 となるとGAEでScaleを使いやすくしてやれば、普及させることができそうだね。 Googleを宣伝したい訳ではなく、このご時世、無料というのはかなり利点だと思う。 豊富な、日本語の事例や技術情報が必要ですね。事例はともかく、技術情報ならこれから頑張れば俺にも出せそうだ。
806 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 09:26:15 ] なんかピントずれてるな だから荒れるのでは
807 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 09:45:39 ] だいたいあってる Scala(Java)って気軽に使えるレン鯖ないからたぶん普及しないよね ↓ GAEでいいじゃん ↓ 不安定じゃん ↓ はぁ?クラウド系はそういうもんだろ ↓ じゃやっぱGAEでいいね。で、普及させるにはScala+GAEの日本語情報が必要だね ←イマココ
808 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 10:09:27 ] GAEより、ワンコインVPSの狭小メモリでどうにかしてservlet動かすテクニックでも 開発した方がいいんじゃない?
809 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 10:44:19 ] 近道、コスト、実用性のバランスで決めればどちらでもいいがなー
810 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 10:45:59 ] >799 へー。 今後は、これを使えばいいって感じになりそうなのか。 github.com/scala-incubator/scala-io 現時点での完成度はどんなもんなんだろ?
811 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 11:30:26 ] クラウド系はそういうもんではないだろ 既存のレン鯖のように、より高い金払えばもっといいプランを選べるってのならともかく GAE用に作っちゃうと移転時には修正が必要になる 研究者やサンデープログラマ増やしたいならGAEでいいかもしれんが ビジネスユーザを意識するからVPSでTomcatの方が現実的
812 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 13:25:25 ] 最近話題のGoとどっちが強いですか?
813 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 13:39:05 ] 安いレンタルサーバーでservletコンテナが使えないよね、ってとこから話が始まってるのに。 あと、サンデープログラマーも少ないマイナーな言語をエンタープライズで採用しないよね。保守やる人が限られてくるからね。 これは主観だけど今のところエンタープライズは考えなくていいんじゃない。目標はベンチャー事例狙いへの啓蒙で。 意外とApp Engineやったほうがエンタープライズへの近道かもよ。
814 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 14:21:07 ] ぶっちゃけエンタープライズは貧乏くじ
815 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 15:23:57 ] そこまでしてGAEをプッシュする必要もない気がするんだが
816 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 15:34:34 ] Google「GAEが不安定だと思われたくないのでScalaみたいな固まってない新参言語は使わないで欲しい」
817 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 23:37:16 ] Scalaってワンライナーでのファイル操作的なことってできる?向いてる?
818 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 23:38:57 ] 本格的にスケールアウトを生かしたい用途にゃクラウドだが、 いろいろとGAE特有のノウハウが必要なのは確かなので、 言語習得用のプラットフォームとしていいかと言われると微妙だな。 無論、本格的なGAEアプリをScalaで、というのは可能性があると思うぞ。
819 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:04:51 ] >>817 起動に数秒かかるからワンライナーだとあんまり向いてない 2.8は2.7よりさらに重い 気になるなら起動済REPLに投げるなど必要
820 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:20:15 ] >>819 レスサンクス できることはできるんだね Rubyとどっち覚えようか迷ってた Winで使う場合はRubyは使いづらいってよくきくけど、Scalaはそんなことない?
821 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:43:17 ] >>815 一人こだわってるお子様がいるが、押すのも貶すのも他所でやってくださいって感じ
822 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:45:58 ] ベースがJavaだから、むしろWindowsが一番楽かも。
823 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:52:14 ] 環境についてはJavaより便利なところはないので、そのつもりで
824 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 01:24:18 ] >>823
825 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 01:52:23 ] 結局GAEをうまく使いこなせない奴が、不安定だとか根拠のない話を騒ぎ立てて、 流行らないように誘導しようとしてるんだろ。 もし流行ったらそいつは世間において行かれることになるからなw
826 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 02:40:36 ] 不安定で流行ったものはあるし(Windowsとか)安定してても流行らないものはある
827 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 04:16:19 ] とにかくGAEやるしかないだろ。 無料なんだし、やらない奴は意味がわからない。
828 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 04:41:01 ] GAEの話をこのスレでする意味が分からない
829 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 10:22:53 ] ・頭使わずに議論した気になれる、レスをもらえる
830 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 11:54:55 ] GAE/Jでしょぼいサービスを作ったことがあるが、 Googleの独自APIとか、例えばSlim3みたいなフレームワークの勉強とかも しなきゃいけないからな。タイムアウト処理とか、あまり本質的でない部分にも 気を配る必要があるし、Scala入門用にはさほどお勧めではないな。 何なら、Opera Uniteとかでもいいんじゃねぇの。やっぱりタダだし。
831 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:06:55 ] だからさ、いいかげんGAEスレ行けよ
832 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:32:52 ] >>830 GAEの最新技術について行けない奴がScalaを習得できるとは思えん。
833 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:40:43 ] 誘導 Google App Engine 3アプ目 ttp://pc11.2ch.net/test/read.cgi/php/1267094290/
834 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:43:25 ] Scalaの話からめてるだろ。 バカなのか?
835 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:51:27 ] 今までよく頑張った もう休め
836 名前:デフォルトの名無しさん [2010/05/15(土) 19:26:19 ] >819 高速Scalaコンパイル fsc を使ってみてもだめ?
837 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 22:11:36 ] ワンライナーなので、インタプリタだと思ってみた。 ワンライナーにはならないけど、コンパイルすると、 fscでソース読み込みの時点で(windows 2GHz 1coreで)1秒以上はかかるかな。 ただ、コンパイル後は、そんなに気にしないでいいから、 やっぱり、立ち上げたままのREPL環境とコンパイル組み合わせるのが、向いてると思う。 ワンライナーで使うなら、lispみたいに起動時のメモリイメージから再開とか、 REPL起動まで先読みしきったAOT環境が、あればいいんだろうな。
838 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 22:30:11 ] GAEは使えるとして、GAE以外にもっといい動作環境ないかな? 「GAEは不安定で使えない」、「GAEはお勧めしない」とかいう批判は出てくるんだけど、具体的な代案が出てこないんだよね。 Opera UniteってServletコンテナじゃないよね。 >>830 みんな何で動かしてんの?ローカルのTomcatで自己満足?
839 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 22:43:46 ] VPSでTomcatって出てきてるのはスルーなのか
840 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 23:07:57 ] Scala\(^o^)/オワタ
841 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 23:46:12 ] そもそもタダでServletを常時オンラインにしておける環境なんてものは基本的にない。 GAEは初期費用はいりませんてビジネスモデルなだけ。
842 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 23:56:58 ] www.stax.net/
843 名前:838 mailto:sage [2010/05/16(日) 00:11:09 ] >>839 VPSでTomcatって、かなり抽象的だよね? 具体的には、ググってみると www.zone-express.jp/order このへんか?(宣伝ではない。たまたま日本語で読みやすかっただけ) 月¥2,600円(3ヶ月間限定¥1,300/月) 256MだからDBとか考えるとヒープは64mぐらいか。 うーん。運用するんだったら、もう一ランク上のプランか。 月5000円ぐらい払えば自由なScala環境が手に入るということだね。 また荒れちゃうかもしれないけど、貧乏性な俺はGAEで研究して、サービスもGAEでリリースすることにしよう。
844 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 00:13:28 ] VPSなら月額1200円年額12000円とかあるしな。
845 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 00:19:19 ] いまどき450円/月だよ
846 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 00:20:39 ] 実験するだけならEC2を一時的に立ち上げるとか そもそも、自宅サーバでいいし、いろいろ分けたいなら仮想化すればいい。 ttp://www.mochahost.com/java.php なんかあるなとおもったら、たいへんだね。最近はどうなんだろう。 ttp://blogs.yahoo.co.jp/girafflex/1069442.html
847 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 00:29:50 ] dream.jp/vps/ メモリ256MB HDD10GB 490円/月 3か月無料 www.saases.jp/hosting/hos_006.html メモリ512MB HDD50GB 450円/月 初期費用3000円 ほんとだ。
848 名前:838 mailto:sage [2010/05/16(日) 00:46:39 ] GAEを使う宣言したばかりなのだが、かなり安いVPSあるんだね。これなら小遣いから出せるかも。 stax.netはどうやって使うのか、いまいち、わからなかったが、scala liftという選択肢があった。料金が従量制のようだが。
849 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 02:47:53 ] GAEは知ってるのにVPSって聞いてググらないとわからない人いるのか
850 名前:デフォルトの名無しさん [2010/05/16(日) 03:01:37 ] 可用性のことを考えるとやっぱりGAE
851 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 09:30:43 ] >>842 レジストして、新規アプリケーション作ると、「Scala and Lift」があった。 内部で、mavenリポジトリがあって、scalaとlift追加してあるのか。 developer.stax.net/profiles/blogs/new-stax-maven-archetype-for wiki.stax.net/w/index.php/Maven_Scala www.atmarkit.co.jp/fjava/rensai4/devtool05/devtool05_1.html StaxはEC2ベースなんだね。Morph AppSpaceってのは終了したのか。 VMforceは秋から開発者向け用意するけど、ミニマムの無償版はあるんかな。
852 名前:838 mailto:sage [2010/05/16(日) 10:51:10 ] >>849 >GAEは知ってるのにVPSって聞いてググらないとわからない人いるのか 俺に言ってんの?VPSの言葉の意味ぐらい俺だって知ってるよ。 VPSとGAEて言葉の抽象度のレベルが違うよね?GAEはGoogleが出しているサービス名だよね?VPSは各社が出しているサービスの総称だよね? だから具体的じゃねぇっていったんだよ。分かった? ググったのはServletが使えるVPSのサービスの価格を調べるため。 あーまた話がずれてきた。こういう発言は通常スルーすべきなの?
853 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 11:09:57 ] >>852 お前は少し落ち着いて半年ROMるべき
854 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 12:22:24 ] >>853 てかお前は何様だ
855 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 12:30:22 ] VPSの意味やっぱ解ってなかったようだな。
856 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 13:41:11 ] ここ最近スレの質が大きく下がったな 子供が触る言語じゃないだろうに・・・
857 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 13:42:45 ] Twitterに採用されたって報道されて荒らしに来た奴がいるんだろ。
858 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 16:23:20 ] > あーまた話がずれてきた。こういう発言は通常スルーすべきなの? ごめんな。俺たちがお前をスルーすべきだった
859 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 17:19:52 ] matzはオブジェクト指向とか関数型以前に動的なことを重視してるみたいだから 話すだけ無駄だと思うんだけどな 動的言語原理主義なのにちょくちょくScalaの文句を言うのはどうかと思うけど
860 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 17:33:29 ] >ググったのはServletが使えるVPSのサービスの価格を調べるため。 VPSなんだから勝手にTomcatインストールすればいいだけだな。 メモリ128Mみたいな極端に少ないサービス以外なら普通に動くし。 しかしまたマイナーなサービス引っ張り出してきたもんだな。 ZoneExpressなんて初めて見た会社だわ。
861 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 23:32:16 ] Googleまた個人情報の不始末かよ
862 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 02:12:51 ] >>859 動的な言語ってそんなにいいかねえ ちょっとスペルミスっただけでわかりにくいバグになるって印象しかないわ 今だと静的に型が決まる言語だと、IDEが発達しててスペルミスしても 赤く表示してくれるしね それになれちゃうと、動的言語はとてもじゃないけど使えない
863 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 02:27:57 ] 動的か静的かはもう宗教論じゃね 唯一神なのか多神教なのかみたいな
864 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 03:30:02 ] ちょっと前までは、言語オタク的には動的言語マンセーな流れだったけど Eclipseが登場して流れが変わったな IDEが静的言語のデメリットを覆して、強力なメリットを付加したからな
865 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:10:41 ] >862 テスト時間がコンパイル時間より長くなったりするしな
866 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 00:25:17 ] 動的言語だと、適当に始めてリファクタリングしてって進めたいのに、 リファクタリングの面倒くささが、静的言語の比ではないってのが。
867 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 01:40:57 ] 置換サイキョー
868 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 20:52:22 ] Dir.glob "*.jpg" ってScalaでどうかくの
869 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 23:02:30 ] >868 たしかにglobは欲しいな。 たとえば、こんなかなぁ def glob(pathStr:String, reStr:String) = for { file <- new File(pathStr).listFiles if (reStr.r.findFirstIn(file.getName) != None) } yield(file) 使い方はこう glob(".", ".*\\.jpg")
870 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 15:08:22 ] f.listFiles.filter(...) のほうが好き。
871 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 18:24:23 ] Optionとmatchで次のコード実行したら変な挙動するんだけど、 つまりどういう事だってばよ scala> val l = List("hoge","fuga") l: List[java.lang.String] = List(hoge, fuga) scala> Some(List("fuga","fuga")) match{ | case Some(l) => println("NG") | case _ => pritnln("OK") | } NG scala> Some(List("fuga","fuga")) match{ | case Some(List("hoge","fuga")) => println("NG") | case _ => pritnln("OK") | } OK
872 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 19:00:56 ] むしろどう変なのかわからないけど、 matchの中のlはローカル変数になってるよ 比較したいならガードを使わなきゃ駄目
873 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 19:02:58 ] >>871 case Some(l)で、Someで中身がlと同じってのを書きたかったんだろうけど、残念ながら、これだと、 任意のSomeにマッチして中身がlに束縛される、という意味になる。意図通りのことを書きたいなら scala> val l = List("hoge", "fuga") l: List[java.lang.String] = List(hoge, fuga) scala> Some(List("fuga", "fuga")) match { | case Some(`l`) => println("NG") | case _ => println("OK") | } OK みたいにする必要がある(変数名の部分を``で囲む)。
874 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 19:13:04 ] バッククオート!そんな記法があったのか
875 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 22:52:18 ] for(i <- 1 to 100) みたいな式で、INT_MAX 回よりも多くループを回したいときどうすりゃいいの? Seq の実装上の制約で 1 to 100 で作られる Seq の要素数は INT_MAX 個を超えられないっぽいのだけれど。 Stream[Long] を使うしかないの? Project Euler の Probrem 3 で早速つまってしまった。
876 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 23:34:18 ] >>875 INT_MAX回を超えるようなループ回したい場合にStream使うと ものすごい量のゴミが発生しそうな気がするので、性能考えると、 自前でIterableとかのサブクラス作った方が良いんではないかなあ。
877 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:11:07 ] RichLongにto無いのか。
878 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:25:43 ] >>876 なるほど、どうりで遅すぎるわけだ。 >>877 わかってるかもしれないけど、 RichLong に to あっても一緒のこと。 それで生成される Seq の要素数が問題で、要素の値が問題ではない。
879 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 01:45:42 ] >>878 遅すぎるって事は、やり方が間違ってると思う。 そこそこ古いマシンだが、Streamでも再帰でも20ms位で終わったよ。 そもそも、その問題の空間計算量はO(1)だから、Seqの要素数は関係ないよ。
880 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 02:23:45 ] >>875 自分ではProject Euler の Probrem 3をどうやってたかを見直してみたけど、 基本的には、 Stream.from(3,2).takeWhile(_ < limit).map(_.toLong) ってやってた。 >>876 REPLで試してみると、どんなに大きなlimitでも一瞬で返るし、 (実際に必要なものしか生成されないはずなので)無駄は無いと思う。
881 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 03:11:10 ] √600851475143 < INT_MAXだから、Stream[Int]で足りる。
882 名前:876 mailto:sage [2010/05/21(金) 09:43:36 ] >>880 Procject Eulerの問題が実際にStreamで事足りるかどうかは 実際にその問題を解いてないからわからないんだけど、原理的には Streamを使うと大量のゴミが発生する。というのは、Streamって 要は hd: A tl: => Stream[A] みたいな感じのtailの部分が遅延評価されるリストになってるわけ だけど、ここからn番目の要素を取ってこようとすると、このhdとtl を持ったセルn個分のゴミが発生する。どっかの変数がうっかり Streamの先頭を指していない限りガベージコレクタによって回収される はずなので、メモリ消費量のオーダが即座にO(n)になるわけじゃないけど、 とにかく大量のゴミが発生する事は間違いない。もちろん、tl部分が 評価されなければそのセルは生成されないわけだけど、今回の話だと ループをn回ぶん回すというのが前提だったようなので。 一方、Iteratorなら(適切にspecializedアノテーションが付いてる 事を前提にすれば)、ゴミはほとんど発生しない。ということが 言いたかった。
883 名前:876 mailto:sage [2010/05/21(金) 09:49:14 ] ちょっと追記。 >>880 の例 >Stream.from(3,2).takeWhile(_ < limit).map(_.toLong) みたいな場合で、Streamの最初の方の要素しか使わないんだったら、 もちろん無駄な要素は生成されないので、Streamで十分というか Streamの方が良いね。どういう問題だったかは見てないので、 それで良いのかは知らないのだけど。
884 名前:880 [2010/05/21(金) 11:20:56 ] >>882 なるほど、Streamの途中を欲しい場合は、 {そこまでの)不要なものがゴミとして生成されちゃうんだね。 確かに、 Stream.from(1).takeWhile(100000000).reverse.head だと、OutOfMemoryになる。 ちなみに、さっきの Stream.from(3,2).takeWhile(_ < limit) だけど、Problem 3的にはlimitは√nのつもりだから 正しくは、 Stream.from(3,2)).takeWhile(_ <= limit) です。>< あと881が行ってるように、 「√600851475143 < INT_MAXだから、Stream[Int]で足りる」ので Streamを使ってProblem 3の答えはでるんだけど、 実際のところ これって、本当にLong領域まで生成されるのか不安になってきた、 きちんと対応する場合は Stream.from(3,2).map(_.toLong).takeWhile(_ <= limit) なのかなぁ・・・? Stream.from(1).map(_.toLong).takeWhile(_<=3000000000L).foldLeft(0L)(_+_) を実験中だが、まだ処理が終わらない・・・
885 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 13:52:59 ] >>884 > Stream.from(1).map(_.toLong).takeWhile(_<=3000000000L).foldLeft(0L)(_+_) > を実験中だが、まだ処理が終わらない・・・ それは桁あふれで無限ループになるよ。 俺も、Eulerでは良くやる……
886 名前:880 [2010/05/21(金) 15:30:24 ] >>885 あぁ・・やっぱり・・・ ということは、結局LongなStreamではないってことだね、 やるには、自前で作るしかないと。 せっかくなので、初めてIteratorを作ってみた。 こんな感じでいいのだろうか・・・ class LongStream(init:Long) extends Iterator[Long] { var counter = init def hasNext = true def next = { counter += 1L counter } } scala> new LongStream(0).takeWhile(_<=3000000000L).foldLeft(0L)(_+_) res23: Long = 4500000001500000000 どうしてもStreamにしたければ、Stream.fromItaratorが使えそう。
887 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 22:31:44 ] >>886 Stream.fromの実装を見ると早いと思うけど、こんな感じになってる。 #実際はオーバーロードがあるからちょっと違うけど。 def from(n:Int) = Stream.cons(n, from(n + 1)) なんで、MAX_INTまでいったら、次のtailはfrom(MIN_INT)になっちゃう。 単純にLongのStreamが欲しいなら、次のコードで良いんじゃない? def from(n:Long) = Stream.cons(n, from(n + 1))
888 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 02:01:40 ] scalaはbreakがない糞
889 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 07:37:45 ] scalaって、なんでtraitがclassを継承できるようになってるんだ? たとえば、 class a{} trait b extends a{} みたいに。 でも以下のようになるとコンパイルエラーになるから、 もちろん間接的に多重継承をしようとしてもできないようになってるわけだが・・・ class a{} trait b extends a{} class c{} class d extends c with b{} いまいち利点というか、使う場面がわからない・・・
890 名前:880 mailto:sage [2010/05/23(日) 07:41:20 ] >>887 なるほど〜、その通りだった。 Stream深いな・・・ scala> def from(n:Long):Stream[Long] = Stream.cons(n,from(n+1)) from: (Long)Stream[Long] scala> from(1) res0: Stream[Long] = Stream(1, ?) scala> from(1).takeWhile(_<=3000000000L).foldLeft(0L)(_+_) res1: Long = 4500000001500000000
891 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:02:14 ] たまにドキュメントにでてくる トランポリンってどういうときに使うもんなの?
892 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:07:37 ] >>891 Scalaでは、たとえば相互再帰する関数をStackOverflowすること 無しに扱いたい(末尾再帰にしたい)場合とか。2.8では scala.util.control.TailCallsを使うと実現できる。
893 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 21:54:38 ] >> 892 ありがとうございます。 トランポリンは末尾最適化の名前?という理解で正しいですか? 末尾再帰で相互再帰を使っており、末尾最適化するときにトランポリンを使うということですか?
894 名前:デフォルトの名無しさん [2010/05/24(月) 00:42:11 ] scalaはインタプリタとしても使えるようですけど、 liftのプロジェクトって mvn packageとかしてコンパイルしないと実行できないんですかね?? ソース変更する毎にコンパイルせずにそのまま走らせることできたらいいなと思うんですが・・
895 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 01:40:15 ] ScalaでLift以外のWebアプリケーションフレームワークでいいのある?
896 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 01:55:47 ] サーブレットで動かすのが前提の現状だと既存のFWのロジックを勝手にScalaで書けば?みたいな感じかな Playとかそうだけど コアの部分もScalaで再発明するメリットあんまないからね ScalaがCGIで楽に動くようにでもなれば変わるだろうけど
897 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 09:23:04 ] >>893 トランポリンは末尾呼出しの実現でも使われるけど、 特定のテクニックの名前。 en.wikipedia.org/wiki/Trampoline_%28computers%29
898 名前:デフォルトの名無しさん [2010/05/25(火) 01:16:56 ] >>◆ueEP8Ean2lqc Scalaの本って厚すぎて・゚・(ノД`)・゚・。な感じに陥るんだけど。 もっとシンプルで簡潔に書いた読みやすい本だしてよ。 JavaScript: The Good Partsみたいな本。 170ページ1,800円くらいの。
899 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 01:24:55 ] あるよ あるけどこのスレでその話しちゃ駄目らしいよ
900 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 01:33:39 ] >>899 作者乙
901 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 12:17:42 ] 公式サイトのドキュメントのpdf印刷で いいじゃない 日本語が良ければ翻訳版かWeb連載記事の印刷で
902 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 12:41:21 ] >>898 このスレの 100から120くらいを読め。 内容は薄いので、1時間くらいで読めるぞ! でも、本自体は厚い。 紙質が厚いから厚い。 文庫本サイズで600円だったら、買う価値のある本。
903 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:37:37 ] 2.8.0 Finalまだ〜 待ちくたびれたぁ〜チンチン
904 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 01:16:51 ] (残念?) 2.8.0.RC3 キタ
905 名前:デフォルトの名無しさん [2010/05/28(金) 17:12:53 ] codezine.jp/article/detail/5103?p=2 ここのページの下まで行って、サーバ立ち上げてみたんですが、 トップにアクセスすると 192.168.0.4:8080/_ah/login なんたら にリダイレクトされて The requested page was not defined in your SiteMap, so access was blocked. とエラーが出てしまいます・・。 web.xmlで <filter-class>bootstrap.liftweb.LiftFilter</filter-class> みたいに設定してるんですが、これだけだと何か足りないんでしょうか。 gae混ざっててすいません。どなたか教えていただけると嬉しいです。
906 名前:デフォルトの名無しさん [2010/05/28(金) 22:51:03 ] ScalaよりもJavaScriptの方が関数脳になる近道じゃね?
907 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 22:57:26 ] ttp://www.j2js.com/scala-demo/index.html
908 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 23:31:13 ] >>906 本当に関数脳を鍛えたいなら それこそ関数型言語が本筋だろう
909 名前:デフォルトの名無しさん [2010/05/29(土) 00:25:56 ] だって敷居高いじゃん
910 名前:デフォルトの名無しさん [2010/05/29(土) 00:29:52 ] 結論:手続き型なOOで充分。
911 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 14:59:04 ] Schemeなら覚えるべき文法が少ないから、敷居も低いな。
912 名前:デフォルトの名無しさん [2010/05/29(土) 21:58:35 ] Schemaとかカッコ多すぎてゲロ吐くレベル
913 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 22:41:13 ] スキーマ?
914 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 00:25:26 ] >>912 関数型言語向いてなさ過ぎだろ Schemeやったら死ぬぞ
915 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 00:37:10 ] >>911 386アセンブラなら覚えるべき文法が少ないから、敷居も低いな。
916 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 02:59:02 ] そもそもSchemeは関数型じゃないし
917 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 15:15:16 ] 本当の関数型は、HaskellとかConcurrent Cleanとかだな。
918 名前:デフォルトの名無しさん [2010/05/30(日) 21:18:10 ] >>905 とちょっと違うけど自分もそのページの見てやってて、 4ページまで行ったんだけどコンパイルしてブラウザからアクセスしたら Message: java.lang.NullPointerException ってエラーが出ました。 コンパイルが通ってるのにエラー出るってどういうことなんでしょう? Javaやったことないのでエラー文もよくわからないのです・・
919 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:27:02 ] ぬるぽがわからんやつには早いって
920 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:28:10 ] >>919 ガッ!
921 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 23:00:06 ] > コンパイルが通ってるのにエラー出るってどういうことなんでしょう? これに少し感動。 初心者がこんな風に思う時代になったんだ
922 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 01:40:56 ] いや、Haskell使いかも知れん。
923 名前:918 [2010/05/31(月) 01:54:30 ] アドバイスいただけると嬉しいです。。
924 名前:デフォルトの名無しさん [2010/05/31(月) 06:31:55 ] エラー名でググれ
925 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 09:11:58 ] >>918 値が入っていない変数に、メソッドを発行するとよく出るよ。 変数の初期化し忘れとか確認してみな。
926 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 18:42:54 ] Scalaでnull使ったら負けでしょ。 OptionかBox型を使うべき。
927 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 22:52:07 ] >>923 > アドバイスいただけると嬉しいです。。 codezine の記事書いている作者にメール送るのも手ですよ。 読者からの反応はうれしいものなんです。
928 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:06:30 ] >>927 大事なのは私が嬉しいかどうかです。。
929 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:17:14 ] yuroyoroさん降臨か 微妙にScala界隈の著名人が集まるスレになっとるな
930 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:19:57 ] Scalaの本売れすぎだろ 八重洲ブックセンター行ったらコップも入門も売り切れだったぜ あっちの方の入門は残ってたけど
931 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:31:50 ] オアゾの丸善の方が良くない?
932 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:45:57 ] えーだって俺会社八重洲だもん
933 名前:デフォルトの名無しさん [2010/06/01(火) 01:50:28 ] 八重洲ブックセンターちょくちょく行くが売り切れとかありえんだろ なんの自演だそれは
934 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 02:53:12 ] いやコップといい方の入門は先週は平積みだったのに今日行ったら1冊も無かったんだよマジで
935 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 03:20:18 ] 売れないから返品されただけじゃないか。
936 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 08:57:30 ] 昨日日本橋の丸善でコップ買ったよ。 あと3冊ぐらいあった。 オアゾは売りきれてたよ。在庫検索では。
937 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 12:45:54 ] なんで2種類だけそんなに売り切れてんの 工学社のも買ってやれよw
938 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 20:56:26 ] >>934 ブレークするような出来事あったっけ? なんかいまいち、盛り上がりに欠けると思うのだが。
939 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 21:15:50 ] 新人にjavaで何か新しいもんさわってみろ でscalaという流れとか androidとかgae/jとかもあるけどな
940 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 23:41:27 ] まぁ八重洲あたりはIT企業が多いからそこだけの地域特需かもな オー○ックとかリク○ートあたりが採用したのかもしれんと妄想
941 名前:デフォルトの名無しさん [2010/06/02(水) 12:09:45 ] liftでプリントデバッグに使える関数ってありますか?? printlnだとサーバのログには書き出せるんですがブラウザで確認するにはどうすればいいかなと・・
942 名前:918 [2010/06/02(水) 12:53:45 ] 色々教えていただきありがとうございます。 ちょっとずつ分かってきましたがまだ疑問点があります・・ codezine.jp/article/detail/5103?p=3 ここのページの通り、 case class Event( id:Option[Long], name:String, description:String, fromDate:Date, toDate:Date, place:String, join:Long, count:Long, user:User, members:List[User] ) が定義されているのですが、 entityValueメソッド -----定義----------- def entityValue[T]( e:Entity, name:String ) = e.getProperty( name ).asInstanceOf[T] -------------------- を使って、のちに entityValue[User]( e, "user" ), entityValue[JList[User]]( e, "members" ).toList (eはgoogle app engineのEntityクラスオブジェクト) などとしているところがありまして、ここの entityValue[JList[User]]( e, "members" ).toList の部分でmembersプロパティに値がなかった場合、entityValue関数内の e.getProperty( name )で nullが返ってきて null.asInstanceOf[JList[User]] が実行され、 java.lang.NullPointerException となるようです。 (分けます・・)
943 名前:918 [2010/06/02(水) 12:55:58 ] しかしエラーが出る上の行の entityValue[User]( e, "user" ) では、たとえuserプロパティの値が空であったとしても、 entityValue関数内の e.getProperty( name ) でnullではなく空文字が返ってくるようで "".asInstanceOf[User] となり、この場合はNULLエラーにならないようです。 userプロパティ、membersプロパティ共に値が空であることには代わりが無いのに e.getProperty("user")では空文字列が返り、 e.getProperty("members")ではNullが返ってきてしまう理由がよくわからないのですが、 これはなぜなのでしょうか? [User]と[JList[User]]の違いなのか、それとももしかするとapp engine sdkの仕様なのでしょうか。 度々質問ですいません。アドバイスいただけると嬉しいです。
944 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 00:56:58 ] blogの話題解析ページ見ると、"scala"で4〜5月に大きな盛り上がりの山があったようだ。 Software Design誌の影響?
945 名前:デフォルトの名無しさん [2010/06/05(土) 09:39:31 ] はてなで話題になったからだろ
946 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 11:28:34 ] >>944-945 ブックマーク数から判断すると火元は下記記事ですね。 RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26) wota.jp/ac/?date=20100426#p01 b.hatena.ne.jp/entry/wota.jp/ac/?date=20100426%23p01 (759 users) b.hatena.ne.jp/entry/wota.jp/ac/?date=20100426 (138 users)
947 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 00:40:29 ] 想像以上にひどい提灯記事w
948 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 00:44:07 ] AKBヲタかよw 頼むから公表しないでくれマイナス要因になるから 握手が生き甲斐でプログラム組んでると思われるぞ
949 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 00:55:07 ] ベリーずからAKBに乗り替えクマー
950 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 01:03:00 ] もうGOと一緒でScalaも下火だな。 D言語まっしぐらだわ。
951 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 01:09:53 ] >>950 次スレ頼んだ。
952 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 10:14:42 ] そもそも、ScalaとRubyは比較対象になるのか。 使い道が違うと思うんだけど。
953 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:08:21 ] >952 上記エントリから関連記事を辿るとさんざん指摘されてる。 動的言語と静的言語は違うからな。 もともと静的言語が好みで、しかしJavaみたいに煩雑な記述はしたくない、という話だろう。 まあ、そういう層は潜在的に多そうに感じるけど。
954 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:36:27 ] 逆にJavaからRubyへって本だと静的言語終わったこれからは動的って書いてあるから お互い様だよそこは
955 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:51:17 ] scalaとrubyって使い途ちがうの?
956 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 13:29:18 ] 同じだよ
957 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 13:56:11 ] ていうかScalaが動的型付け言語の中ではRubyにかなり似てるからじゃね? SS本の中でもやたらRubyとの比較がでてくる じゃなければ普通PHPやPythonと比較するだろう
958 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 14:25:09 ] Twitterがらみで比較されてんじゃないの?
959 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 14:29:30 ] 全然似てないよ
960 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 15:34:43 ] ただ単にあの人がrubyの人だったってだけじゃない。 pythonと比べても大してかわらん。 scalaはユニークだ。