5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん: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冊目
http://pc12.2ch.net/test/read.cgi/tech/1246289771/


2 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/12/26(土) 08:29:35
ぬるぽ

4 :デフォルトの名無しさん:2009/12/26(土) 09:31:54
Scalaのサイト、雪降ってるw

5 :デフォルトの名無しさん:2009/12/26(土) 10:00:53
そりゃ、冬っすから

6 :デフォルトの名無しさん:2009/12/26(土) 10:43:35
もっと雪降れ♪

7 :デフォルトの名無しさん:2009/12/26(土) 10:47:01
( ^ω^)おっお

8 :934:2009/12/26(土) 18:06:26
RC1版のものだと動かない、訳ではなくて、
2.8.0を入れないと駄目なんですね。
http://d.hatena.ne.jp/lopes_nb/20091222/1261487236


9 :デフォルトの名無しさん:2009/12/26(土) 18:40:19
寒いっすね

10 :デフォルトの名無しさん:2009/12/26(土) 19:02:29
>>9
>>4

11 :デフォルトの名無しさん:2009/12/26(土) 21:03:00
NetBeans 6.8でScala2.8を使う人向けリンクです。

Nightly Builds distributions (Scala 2.8.0のリリースまではここからダウンロード)
http://www.scala-lang.org/node/212/distributions
Scala2.8.0 latest (Scala 2.8.0最新ビルド)
http://www.scala-lang.org/archives/downloads/distrib/files/nightly/distributions/scala-2.8.0.latest.zip

Scala Plugins for NetBeans
http://wiki.netbeans.org/Scala
Install with NetBeans 6.8 (Scala 2.8 + Scala plugins v1.1インストール方法)
http://wiki.netbeans.org/Scala68v1#Install_with_NetBeans_6.8

nb-scala (NetBeans用Scala plugins V1.1ダウンロード)
http://sourceforge.net/projects/erlybird/files/nb-scala/
Scala plugins 6.8v1.1.0rc1 (現時点の最新版)
http://sourceforge.net/projects/erlybird/files/nb-scala/6.8v1.1.0rc1/nb-scala-6.8v1.1.0rc1.zip/download

12 :デフォルトの名無しさん:2009/12/27(日) 15:27:01
NetBeans 6.8用のプラグインって上手く動かないんだけど・・・
Scala 2.8じゃないと駄目なの?

13 :デフォルトの名無しさん:2009/12/27(日) 16:08:04
>>12
>>11

14 :デフォルトの名無しさん:2009/12/27(日) 21:34:14
IDEどれがいいかなあ?
eclipseのやつはかなり補完してくれるけど、たまに変なエラー吐くし

15 :デフォルトの名無しさん:2009/12/27(日) 23:59:41
補完の精度で言えば、間違いなくeclipseが一番だと思う
implicit conversionとかもちゃんと見て補完候補出してくれるし
ただ、eclipseのscalaプラグインは不安定で、お勧めできないのがな…
2.8.0ではeclipseのプラグインが安定して欲しいものだが。

16 :デフォルトの名無しさん:2009/12/28(月) 01:26:43
低能乙

17 :デフォルトの名無しさん:2009/12/30(水) 00:45:40
>>15
お、まじ?
implicit conversion でも補完してくれるのは大きいなぁ。
IntelliJは悪くはないんだけど、型推論が入っている個所とかは補完効かないんだよね・・・
あと、import文の整理がいまいち。

18 :デフォルトの名無しさん:2009/12/30(水) 13:11:06
>>17
まじまじ。低能パワーをなめんなよ…

19 :デフォルトの名無しさん:2010/01/02(土) 18:05:13
scalaのページ見たけど、地球の絵が描いてあるとどうしてこうビジネス臭がするんでしょう。
ビジネス臭くて近寄りにくいんですけど。

20 :デフォルトの名無しさん:2010/01/02(土) 18:08:41
Mosaicってビジネス臭かったっけ?

21 :デフォルトの名無しさん:2010/01/02(土) 18:13:08
>>20
実際にビジネス臭いかどうかは知らないけど、
地球の絵が描いてあるWEBページはビジネス臭く感じるということが言いたかっただけ。
深い意味はない。

22 :デフォルトの名無しさん:2010/01/02(土) 21:00:33
>>21
ビジネス臭いというかなんか一気に胡散臭くなるよね
半年くらい前に今のページデザインに変わったんだけど、初めて見たとき
あまりに胡散臭くて噴いたもん

23 :デフォルトの名無しさん:2010/01/06(水) 21:05:31
なんかlift難しい・・・LiftViewってどういう時に使うのかわかんね
struts1.XのLookupDispatchActionみたいなものだと思っておけばいいのか?

24 :デフォルトの名無しさん:2010/01/07(木) 01:27:38
どこに地球の絵が描いてあるのかよく分からない・・・

25 :デフォルトの名無しさん:2010/01/07(木) 02:45:49
スクリプト切ってると出ない

26 :デフォルトの名無しさん:2010/01/08(金) 20:48:26
もうブームが去ったか・・・

27 :デフォルトの名無しさん:2010/01/08(金) 20:59:58
毎年この時期はどのスレもあんまり延びない。
2月になればまた伸びるよ。

28 :デフォルトの名無しさん:2010/01/10(日) 11:27:10
というかScalaはもう終わってるよ

29 :デフォルトの名無しさん:2010/01/10(日) 17:09:01
>>28
勝手に終わらせないでくれ。

30 :デフォルトの名無しさん:2010/01/14(木) 00:25:05
初心者だけど、XとY座標を扱うプログラムで
座標位置としてタプルを使うのは変?

31 :デフォルトの名無しさん:2010/01/14(木) 00:38:43
変ではないけど、手抜きだと思う。
手を抜いていい場面なら、タプル使ったほうが楽だね。

32 :デフォルトの名無しさん:2010/01/14(木) 01:05:16
>>31
元の質問者じゃないけど、ケースクラス使えってこと?

33 :デフォルトの名無しさん:2010/01/14(木) 03:39:58
あちこちで座標を表すデータを使いまわすなら、
case class Point(x: Int, y: Int)
とかデータ定義した方がいいだろうね。

34 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:2010/01/14(木) 09:56:16
>>34
質問する前にまず試してみたら?と言いたくなるが、
ケースクラスはequalsメソッドも自動的に書き変わるから問題ない

37 :デフォルトの名無しさん:2010/01/15(金) 19:12:07
>>36
一言余計

38 :デフォルトの名無しさん:2010/01/15(金) 22:57:50
書き込み少ないな
goに流れたの?

39 :デフォルトの名無しさん:2010/01/15(金) 23:01:03
goのほうがシンプルでいいよ。
それにネイティブだし。

40 :デフォルトの名無しさん:2010/01/16(土) 00:13:23
GoとScalaはユーザーが全くかぶってないだろう

41 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/01/17(日) 04:27:05
かぶるは、ruby?

43 :デフォルトの名無しさん:2010/01/17(日) 09:06:10
かぶるのは、JavaやHaskellあたりじゃない?

44 :デフォルトの名無しさん:2010/01/17(日) 10:13:17
Scalaはwebフレームワークが少ないからJavaの代わりにはまだならないな
Javaのフレームワーク使うって手もあるんだろうけど

45 :デフォルトの名無しさん:2010/01/17(日) 14:11:02
結局Scalaは流行らなかったな

46 :デフォルトの名無しさん:2010/01/17(日) 14:19:09
PHPもRubyもずっとそう言われ続けてきたが、
ゆっくりと浸透し続けて言ってるからなあ

47 :デフォルトの名無しさん:2010/01/17(日) 14:20:26
Objective-CがiPhoneの影響でいきなり流行りだしたり
本当に将来は何が起きるかわからんよ

48 :デフォルトの名無しさん:2010/01/17(日) 17:18:42
Obj-Cは一生流行りませんw

49 :デフォルトの名無しさん:2010/01/17(日) 17:33:54
>>48
世の中何があるか本当に分からない
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

50 :デフォルトの名無しさん:2010/01/17(日) 17:43:35
Web Flavorは生きてるのか?

51 :デフォルトの名無しさん:2010/01/17(日) 20:50:12
>>45
Googleが買収したEtherPadが実はScala(だけじゃないけど)で
書かれてたりとか、foursquare.comがScala + Liftで書かれてるとか
地味にだが採用事例は増えて来てる。爆発的に流行しなくていいけど
着実に実績積み上げて行って欲しいな

52 :デフォルトの名無しさん:2010/01/17(日) 20:51:07
>>50
一応生きてはいるみたい。ひょっとしたら、今年は何かアップデートが
あるかもね。

53 :デフォルトの名無しさん:2010/01/17(日) 23:27:55
うおおおおお
IntelliJ IDEA
Community EditionのScalaプラグインすげえええええ!!!
EclipseとかNetbeansのプラグインがウンコだったが
IDEAのプラグインはマジで普通に完成されてるじゃん!
Scalaが俺の中で株を一気に上げまくった

54 :デフォルトの名無しさん:2010/01/18(月) 16:02:18
>>53
君の言葉遣いにはウンコがついてるよ

55 :デフォルトの名無しさん:2010/01/21(木) 05:41:20
2.8のドキュメントの形式は変更されたのか。
前スレでコレクションの関数が返す型がわからんとか
心配されてたけどちゃんと考えられてるのね

56 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:2010/01/28(木) 10:50:00
ようやく2.8のベータがでたらしい

59 :デフォルトの名無しさん:2010/01/28(木) 11:50:55
Scalaの型推論って今後もっと型を明示しなくてもいい箇所が増えたりするものなの?

60 :デフォルトの名無しさん:2010/01/28(木) 11:59:09
>>59
どうだろうね。そのような予定自体は特に無いみたいだが。
一般論としては、そもそもScalaみたいな型システム上でHaskellとかML並の型推論を
やるのは原理的に難しい。ローカルなメソッドに限定すれば、呼び出し側の情報も
使って推論するとかまだやりようはあるだろうけど。

61 :デフォルトの名無しさん:2010/01/28(木) 12:37:12
>>60
どうもです。型推論は素晴らしいんだけど、推論してくれるところとしてくれないところが
はっきりしないのがどうも気持ち悪いんです。全部推論してくれる奇跡起きないかな

62 :デフォルトの名無しさん:2010/01/28(木) 13:55:03
>>61
Scalaのような型システムで完全な型推論をするのは確か決定不能だったと思うので
どうにか制限を加えないと残念ながら、無理かと。

63 :デフォルトの名無しさん:2010/01/28(木) 13:59:31
>>62
そうなんですか。おもしろいですね。>決定不能
でもScalaは好きなんで、今後も期待してます。

64 :デフォルトの名無しさん:2010/01/30(土) 02:19:53
2.8.0 beta1

65 :デフォルトの名無しさん:2010/01/30(土) 03:14:47
よーわからんが2.8はIDEが便利になりそうな悪寒

66 :デフォルトの名無しさん:2010/01/30(土) 10:55:09
>>65
え?なんでですか?

67 :デフォルトの名無しさん:2010/01/30(土) 12:30:15
お試しベータ版
http://www.scala-lang.org/scala-eclipse-plugin-beta-preview

68 :デフォルトの名無しさん: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 http://bit.ly/bJHCSe
だと

69 :デフォルトの名無しさん:2010/02/05(金) 11:15:19
Eclipseでプラグイン入れて使ってるんだが、2000行程度のファイルを開くと死ぬほど重い、というか落ちる。
絶対処理のどっかにO(N^2)以上の繰り返しが入ってる気がする。

70 :デフォルトの名無しさん:2010/02/05(金) 23:41:52
Scala 2.8 ベータ1リリース
http://www.infoq.com/jp/news/2010/02/scala-beta1

71 :デフォルトの名無しさん:2010/02/07(日) 13:42:13
話題ないのな

72 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/09(火) 00:39:25
>>68
この提案、FANTOM(Fan)の作者が指摘した内容そのままなのかw
Lex Spoonとかコメント書き込んでるんだw

■Fan vs Scala: Different Trade-offs ( http://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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/11(木) 19:44:30
>>76
関数の部分適用になってるから
Scala は _ を使い回ししすぎな観もある
まあ、大体わかるんだけど

78 :デフォルトの名無しさん:2010/02/11(木) 22:01:10
人気ないね(T_T)

79 :デフォルトの名無しさん:2010/02/12(金) 03:47:39
今日使いはじめたよ。Java 使ってる身としては、夢のような言語。

80 :76:2010/02/12(金) 11:24:44
>>77
サンクスコです!


81 :デフォルトの名無しさん:2010/02/12(金) 16:02:48
すごくバランスが良い言語だな、と思いました。
ビジネス向けシステム開発とかにも多く利用されるようになりそう。

82 :デフォルトの名無しさん:2010/02/12(金) 23:23:36
現状、ScalaにしろClojureにしろ、後方互換性のないコア部分の変更もあるから、
そこは注意しないと駄目だけど

83 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/13(土) 04:16:35
AnyRefのeqが呼ばれてる
Javaでいう、参照型を==で比較してるのと同じ
つまり、指すインスタンスの同一性を比較していることになる

その例だと、同一内容のリテラルだからキャッシュされてるんだろね

85 :デフォルトの名無しさん:2010/02/13(土) 13:22:48
同一内容の文字列リテラルがinternされるのはJavaの仕様。

86 :デフォルトの名無しさん:2010/02/13(土) 19:15:08
Scala上で定義した自作アノテーションをリフレクション経由で読み取る方法ってないですか?

87 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/13(土) 21:57:16
>>87
いや、そんなややこしい話ではなくて、StringのスーパークラスであるところのAnyRef
にeqメソッドがあって、これはJavaの==と同様に参照の等価性を判定してるってだけの
ことであって、implicit conversionは関係無い。Javaで"text" == "text"と書いたのと同じ。

89 :デフォルトの名無しさん:2010/02/13(土) 23:20:13
>>87
もしかしてJavaの(プリミティブ型以外の)クラスはAnyRefのサブクラス扱い?

90 :デフォルトの名無しさん:2010/02/14(日) 01:40:04
>>89
もしかしても何も、AnyRefはObjectの別名。

91 :デフォルトの名無しさん:2010/02/14(日) 06:56:59
>>90
thx!
コンパイル後はJavaのObjectとして扱われる、とはなんとなく思ってたけど
言語的には別物だと勘違いしてたわ

92 :デフォルトの名無しさん:2010/02/15(月) 18:31:30
Scalaのfor式ってHaskellでいうdo構文に対応するって言うけど、 do { x <- m; expr } みたいなのはfor式でどうかくんだ? Scalaでは書けない?

93 :デフォルトの名無しさん:2010/02/15(月) 23:40:11
>>92
全く同じ形では書けないな。あえてやるなら、
for(x <-m; _ <- expr) ...
とかするしかない。

94 :デフォルトの名無しさん:2010/02/16(火) 10:28:46
>>93 それだとexprの結果が無視されない?
x = do { x <- m; expr }
みたいに使いたいんだ。やっぱりScalaでは実現不可能?

95 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/16(火) 12:15:10
>>95
自己レス。等価というのはforの中で副作用が無い場合の話ね。forの中で副作用があった場合、
上の書き換えは等価じゃなくなるので。

97 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/16(火) 22:07:31
>>98
科学技術計算は専門じゃないしそれほど興味も無いけど
内部実装がどんな感じなのかには興味あるな。

100 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/19(金) 23:08:05
なんか今一盛り上がりに欠ける

102 :デフォルトの名無しさん:2010/02/20(土) 01:07:05
erlang/OTPなどを実装したakkaとか
分散処理のspawnとか
Web Frameworkもろもろとか
Apache CamelとかScala自身で、DSLとか
分散オブジェクトキャッシュ?KVS?のGoat Rodeoとか
なにをどう使えばいいのかようわからん。

103 :デフォルトの名無しさん:2010/02/20(土) 01:39:54
twitterの人のはなんかないかな
ttp://github.com/robey
KVSサーバー側は、Scalaじゃなくても高スループットで可用性上がっている
国産のを使えばいいような気がするが・・・って、kestrelはqueueなのか

104 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/21(日) 11:39:43
これじゃないかな。

やさしいScala入門
http://www.cutt.co.jp/book/978-4-87783-238-4.html


107 :デフォルトの名無しさん:2010/02/21(日) 11:48:30
なにそれ、そんな本出てたんだ
Amazonにはないみたいだけど、なんかあやしい感じだな
目次がJavaの入門書と区別つかないし
どう見ても地雷本

108 :デフォルトの名無しさん:2010/02/21(日) 14:26:59
Scalaスレにもなると一発で見抜かれるんだなw

109 :デフォルトの名無しさん:2010/02/21(日) 15:07:36
想定している読者層がよく分からない本だな。

110 :デフォルトの名無しさん:2010/02/21(日) 16:43:45
お気楽極楽のカットシステムじゃあなぁ

111 :デフォルトの名無しさん:2010/02/21(日) 18:23:18
出版社名で避けるレベル。

112 :デフォルトの名無しさん:2010/02/22(月) 00:54:46
>>106
> やさしいScala入門
> http://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 :デフォルトの名無しさん:2010/02/22(月) 09:21:53
やさしい(インタープリタ|コンパイラ)の作り方入門の人かw

117 :デフォルトの名無しさん:2010/02/22(月) 09:42:26
>まとめ
>『やさしいScala入門』はひどい本である。
>関数型プログラミングについてほとんど触れられていない
>Scalaの特徴的な機能があまり紹介されていない
>基本的な事実誤認や珍妙な解説が散見される

http://d.hatena.ne.jp/kmizushima/20100222/1266771623

118 :デフォルトの名無しさん:2010/02/22(月) 11:14:37
>>115
誰かと思ったら日向俊二か…
この人と矢沢久雄は著者名だけで機械的に選択肢から外していいよ。

119 :pom:2010/02/22(月) 11:26:46
この本&日向俊二がひどいのは、言うまでもないとして、矢沢久雄って人、知らんかったけど、ダメな人なの。なんか偉そうなこと書いてるようだが。

120 :デフォルトの名無しさん:2010/02/22(月) 11:39:18
多くの本を書いているけど、一冊として役に立たないクズ本ばかりという点で矢沢と日向は似ている。

121 :pom:2010/02/22(月) 12:51:14
ふむふむ(頭にメモ)。
先程の書込み、句読点変ですまん。
(まぁ、妙な本を出版するよりは・・・)

122 :デフォルトの名無しさん:2010/02/22(月) 13:12:06
まあ、こういう粗悪安物ライターが喰い付いてくる程度にはScalaもメジャーになったと考えればいいのでは。
個人的にはOderskyの本さえあれば十分じゃないかと思うけどね。

123 :デフォルトの名無しさん:2010/02/22(月) 17:31:10
>>114
>初めてのScalaプログラミング
>DavidPollak/著
>出版社名:日経BP出版センター
>発売予定日:2010年3月19日
たぶんBeginnin Scalaの翻訳版だと思う。著者のDavid Pollakさんは
Liftの作者だから内容に関しては信頼して良いだろう(訳がよっぽどおかしくなければ)。

124 :デフォルトの名無しさん:2010/02/22(月) 18:08:40
h t t p://www.amazon.co.jp/gp/cdp/member-reviews/A1DXJM7NYG32SJ/

魚拓とっといてもいいレベル

125 :デフォルトの名無しさん:2010/02/22(月) 23:20:32
配布してるソースコードのアーカイブ形式が lha というだけで、なんか「違う」んだよな

126 :デフォルトの名無しさん:2010/02/23(火) 08:16:01
立ち読みしてきたけど、たしかにこれはひどいや。まさに上のブログの通り。
日向ってまともにプログラム書いたことなんてないんだろうな…
駄本書くために自分がわかる範囲でちょこっといじる程度なんだろうよ。

127 :デフォルトの名無しさん:2010/02/23(火) 09:40:10
文法的には、odersky本(通称、コップ本) があれば十分かなあ。

今、日本で望まれているのは、もっと応用的な本かと思われ。
Liftつかって、こういうの作れます、、みたいなの。
それとも、scala逆引き辞典みたいなのか。

scala使うことを生かせる応用分野って何かあるかなあ?


>126
日向の最近の本でいうと、
「やさしいコンパイラの作り方」
「やさしいインタプリタの作り方」
の本を買っちゃったよ。

紙面の大半が、氏のオリジナル言語を実現するコンパイラのソースで、
まあ、それを読む価値はあるといえばある(他のコンパイラ本は理論的過ぎて難しいので)けど、
説明の方はイマイチな気がする。
要するに買ったけどまだ読んでいない。w


128 :デフォルトの名無しさん:2010/02/23(火) 09:44:46
Rubyの場合だけど、アルゴリズムとかオブジェクト指向を考えるのに、Rubyで考えると分かりやすいって
最近気付いた。

でも、Scalaの場合は、どうかなあ? まだ、Scala良く分かってない。
だれか、「Scalaで学ぶアルゴリズム」みたいなの、書いてくれないかなあ。

129 :デフォルトの名無しさん:2010/02/23(火) 09:54:56
>>124
「知らないと恥をかくプログラミングの常識」の
コメントが自作自演を指摘しています。
http://www.amazon.co.jp/review/R25Y5JQNH33VC4/

130 :デフォルトの名無しさん:2010/02/23(火) 10:20:09
なるほど、これは悪質だな
Odersky本にケチをつけて自分の本に誘導してたのか
まあ、間に受けるやつなんて誰もいないだろうけど
著者もひどいが、こんなやつに書かせている出版社も問題だな

131 :デフォルトの名無しさん:2010/02/23(火) 11:04:57
scalaスケーラブルプログラミング今読んでるんだけど
コードの変数名にxsとかysとかよくでてくるけどなんの略なの?

132 :デフォルトの名無しさん:2010/02/23(火) 11:19:56
>>131
本は見てないけど複数形じゃね?

133 :デフォルトの名無しさん:2010/02/23(火) 12:10:35
わかた、sequenceの略っぽいすね
リストのリストとかにはxssとかも使われてますな

134 :デフォルトの名無しさん:2010/02/23(火) 17:28:45
関数型言語の教科書なんかだとよく xs, ys, ... という変数名が使われるね。

135 :デフォルトの名無しさん:2010/02/23(火) 17:39:53
昔からPrologだとリストの先頭要素をX、残りのリストをXsで表すことが多い
ユニフィケーションで [X|Xs] と書く
Haskellのパターンマッチングだと (x:xs)
だから複数形でよくね?

136 :デフォルトの名無しさん:2010/02/23(火) 19:15:36
var map = Map("a" -> 1)
map += (("b",2))
だといけて
map += ("b",2)
ではいけないのはなぜなの?

137 :デフォルトの名無しさん:2010/02/23(火) 19:47:28
「+=」をメソッドだと思えば、その理由がわかるのでは?
ちなみに、
map += ("b" -> 2)
だとOKなんだね
「->」と「,」って等価ではないのか

138 :デフォルトの名無しさん:2010/02/23(火) 19:58:24
class Hoge {
def +=(t:Tuple2[String,Int]) = {}
}

val hoge = new Hoge
hoge += ("b",2)

これだといけるみたいですねぇ…やっぱわかんなす

139 :デフォルトの名無しさん:2010/02/23(火) 20:31:18
>>136
map += ("b", 2)
の場合、("b", 2)という二つの引数を取るメソッド呼び出しであると
解釈されるから、だね。

>>137
基本的には同じだと考えて問題無いけど、
-> は単なる組み込みライブラリの*メソッド*に過ぎないのに対して、
(,)はタプルを作るための組み込み*構文*なせいで、上のケースのように
微妙に異なる解釈されちゃうケースが出てるってことだね。

Scalaだと、複数引数を取る関数とタプルを引数に取る関数が異なる扱いに
なってるので、その弊害とも言えるかも。

140 :デフォルトの名無しさん:2010/02/23(火) 21:02:30
>>138が気になって2.8のコレクションのソースコード眺めてみたけど、なんでなのかわからんね
なんでそれはよくて、mutableのMapだと駄目なんだろ

しかし、2.8のソースって読みづらすぎね?
関数型言語としてみると、標準ライブラリがこんなにごちゃごちゃしてるというのは問題だと思うんだけど
普通、言語を勉強するときって、標準ライブラリを読むもんでしょ
十分メジャーになって、本もたくさん出てるから、そっち読みなさいってことなのかなあ

141 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/23(火) 21:30:46
いやなんかぜんぜん違う気がしてきた

145 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/24(水) 01:53:55
俺も、タプル前後のスペースの有無で何回もハマった。
おかげで、(a -> b) か Pair(a, b) でごまかす事を覚えたが。

148 :デフォルトの名無しさん:2010/02/24(水) 02:13:50
>>143
>>145
あー。オーバーロード絡みだったわけか。完全に勘違いしてた。メソッドオーバーローディング
はScalaみたいな複雑な型システムを持った言語と組み合わさるとかなり厄介だねえ。

149 :デフォルトの名無しさん:2010/02/26(金) 22:16:50
ほっほー…すげーなScala。
なんかC++の二の舞になりそうな勢いだね。
悪い意味で(´_`)

150 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/02/27(土) 09:53:14
Scala製学習環境Kojo
http://netbeans.dzone.com/learn-scala-with-kojo
http://www.kogics.net/sf:kojo

153 :デフォルトの名無しさん:2010/02/27(土) 12:19:59
>>151
>シンプルな言語
つClojure

154 :デフォルトの名無しさん:2010/02/27(土) 18:16:55
>>152
Kojoはやけにロゴがしょぼいのがアレだけど、なかなかよくできている環境だと思う
入力補完にコマンドヒストリ、オブジェクトインスペクタ、タートルグラフィクスに関する
コマンドのUNDOなど機能は豊富だし、割と安定してる。

155 :デフォルトの名無しさん:2010/03/01(月) 04:03:36
パーサコンビネータを使った言語外DSLの例を載せたサイトとか知ってる人いる?
良くある四則演算DSLとかではなく、変数宣言部があるようなやつが知りたい。どんな感じで作れば良いのか。


156 :デフォルトの名無しさん:2010/03/01(月) 07:22:28
変数宣言まであったらDSLというより普通に言語なんじゃないの?

157 :デフォルトの名無しさん:2010/03/01(月) 11:47:22
>>155
変数宣言があっても基本は変わらないと思うよ。普通のパーザジェネレータ使って
オレオレ言語のパーザ書くのと本質的には同じ。また、変数宣言を持った言語の
パーザ書いたことが無いならパーザコンビネータかどうかというのは本質的な問題
じゃない。

158 :デフォルトの名無しさん:2010/03/03(水) 23:01:46
Option型がよくわからないOption型についておしえてくれ

159 :デフォルトの名無しさん:2010/03/03(水) 23:20:55
HaskellのMaybeみたいなもん

160 :デフォルトの名無しさん:2010/03/03(水) 23:52:17
自分はC++の関数戻り値での、参照とポインタの使い分けのようなものだと思ってる。
C++だとnullがありえる戻り値ならポインタを返すけど、それがScalaだとOptionになると。
Optionは便利な関数があるからnullのチェックのif文書くより楽チン

161 :デフォルトの名無しさん:2010/03/04(木) 02:06:53
Null オブジェクトパターン + パターンマッチ

162 :デフォルトの名無しさん:2010/03/04(木) 02:16:48
>158
nullチェックし忘れによる、ぬるぽを防ぐ
加えて、Listもどき(長さが0か1のリスト)と見なせる事により、for文やmapで便利
あと、パターンマッチ

でも、Option型使うより、その発展系のBox型の方がより便利で
いいとこが分かりやすい。
あ、Box型ってのは、Liftのライブラリね。
で、Liftの作者がBox型の布教文書を書いてたので、それを読むといい。

163 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/03/06(土) 16:26:49
日経と工学社から本が出るね。

Cloujerより需要があるのかなあ?

165 :デフォルトの名無しさん:2010/03/07(日) 03:39:54
ClojureはLispだからなぁ

166 :デフォルトの名無しさん:2010/03/08(月) 14:29:32
文法にあるTopStatとかのStatって何の略?

167 :デフォルトの名無しさん:2010/03/09(火) 01:08:55
>>163

注意書きに気にせず報告すると良いと思うよ。
がんばって。



168 :デフォルトの名無しさん:2010/03/09(火) 02:20:56
(mavenスレで聞いてもscalaのことなど知らんと言われそうなのでこちらで聞きますが)
maven-scala-pluginを使っているのですが、
これって分割コンパイルする方法はないのでしょうか。
*.scala ファイルが25個で、1400行程ですが、
40秒近くかかっています。
mavenに限らずscala一般の話でもわかる方、
いましたらよろしくお願いします。



169 :デフォルトの名無しさん:2010/03/09(火) 02:24:39
>>168
追記です。
mvn scala:cc
は、やってみました。
レスポンス自体の改善にはならなかったです。

170 :デフォルトの名無しさん:2010/03/09(火) 03:33:44
>>168
maven-scala-plugin使ったこと無いけど、普通に考えて分割コンパイルされそうなもんだけど…
Liftも以前はmaven使ってたはずだけど、修正のたびに全部再コンパイルだったら使い物に
ならんかっただろうし。まあ、確実に修正差分だけコンパイルして欲しいならsbt(Simple Build Tool)
使うのが無難かなあ。sbtはコンパイラAPI叩いてファイル間の依存性解析とかしてるから、その辺は
割と正確。

171 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/03/09(火) 05:35:56
scalaのコンパイルしてると、昔、DOSでCを一生懸命コンパイルしてた頃を思い出す。
そんな遅さ。

173 :デフォルトの名無しさん:2010/03/13(土) 04:20:23
>>156
>>157
返答が遅くてすまんが、レスありがとう。
結局やりたいことはできますた。
結局、自分がパーサコンビネータの使い方が良く分かってなかっただけだった。良く分からないんで手っ取り早く参考となるものがみたかったと、こういうすんぽうです。
適当にいじくってたらだんだん理解してきてなんとかできた。

174 :デフォルトの名無しさん:2010/03/13(土) 21:53:35
clojure陣営ですけど戦争したいです、DISりたいです

175 :デフォルトの名無しさん:2010/03/13(土) 23:26:20
ありがちな動的型付け VS. 静的型付けとかだったらどうせ泥沼になるのが
見えてるので勘弁。clojureスレでやってくれ。

176 :デフォルトの名無しさん:2010/03/13(土) 23:30:55
Clojureスレにも来ないでください

177 :デフォルトの名無しさん:2010/03/14(日) 23:20:57
それじゃあ新しく出たScala本の書評をたのむ

178 :デフォルトの名無しさん:2010/03/15(月) 02:56:34
ん?3/18発売のScala入門のこと?

179 :デフォルトの名無しさん:2010/03/16(火) 23:27:14
Java使わずにScalaでiモードのアプリ作ったり出来ないだろうか

180 :デフォルトの名無しさん:2010/03/17(水) 15:13:29
SEとCLDCの違いをかなりの手間かけて埋めたとしても
ランタイムのサイズがつらくないか?

181 :デフォルトの名無しさん:2010/03/17(水) 18:01:38
ProGuard使って要らないクラスファイルをjarから除去すれば、結構小さくなるので
ひょっとしたらそれでなんとかなるかもしれないけど、そこまでする価値があるかどうかだな。

182 :デフォルトの名無しさん:2010/03/18(木) 01:59:39
>>179
> Java使わずにScalaでiモードのアプリ作ったり出来ないだろうか

Androidは、Scalaでプログラムできるらしいぞ!

今どき、iモードなんて流行らないだろう。Androidで行こうぜ!

183 :デフォルトの名無しさん:2010/03/18(木) 02:51:37
>>182
そんなことはこのスレの住人なら誰でも知ってるわ。つか公式サイトに載ってることだろ。
大体、iアプリの質問に対してAndroidに話を換えてどうすんだよ。アホにもほどがある。



184 :デフォルトの名無しさん:2010/03/18(木) 07:54:29
マジレスわろた

185 :デフォルトの名無しさん:2010/03/19(金) 05:50:50
2.8のAPIドキュメント眺めてたらMutableListの
def union(that: Seq[A]): Seq[A]
というメソッドが3つあったんだけど、おなじのが3つってどういうことだろ。
説明文は全部違うみたいだけど英語だからよくわからん。

186 :デフォルトの名無しさん:2010/03/19(金) 18:04:19
>>185
恐らく、新しいAPIドキュメントの生成器(scaladoc2)のバグだね
説明文をよく見るとわかるけど、最初の一つがintersect,その次がdiff,最後がunion
の説明になってる。MLかTracで報告してあげると良いのではないかと。

187 :デフォルトの名無しさん:2010/03/19(金) 18:10:12
ちなみにsは現在けっこう試行錯誤中っぽくて、細かい挙動とか見栄えとかよく変わるので、
その点に注意した方がいいと思う。なんか変な挙動があったらバグの可能性が高い。

188 :デフォルトの名無しさん:2010/03/19(金) 18:12:07
ミスった。sは→scaladoc2は

189 :デフォルトの名無しさん:2010/03/20(土) 03:29:24
>>186-188
なるほど、バグか。
ScalaはJavaと比べて複雑だし、大変なんだろうな。
報告は・・・うん、ごめん、ムリぽ
英語ができるなら真っ先にあの検索の挙動について文句を(ry

190 :デフォルトの名無しさん:2010/03/21(日) 22:34:01
Netbeans 6.8で2.8が使えない
なんとかしてくれ

191 :デフォルトの名無しさん:2010/03/22(月) 02:58:23
6.8と2.8なら問題なくいけてるけどなぁ。
とりあえずNetBeansをインストールしなおしてみれば?

192 :デフォルトの名無しさん:2010/03/22(月) 06:01:16
platform-dev - NB6.8 with Scala version 2.8.0.Beta1-prerelease
http://www.listware.net/201003/netbeans-platform-dev/67512.html

193 :デフォルトの名無しさん:2010/03/22(月) 10:44:20
scalaの勉強のために、Intellij IDEA入れてみたが中々良いな。
ただ、プラグイン入れてもEmacsライクなSet Markが機能しない。。。
またEclipseに戻りそうだ。

194 :デフォルトの名無しさん:2010/03/22(月) 23:18:14
scalaすごいわ
数年内にRubyとか淘汰すると思う

195 :デフォルトの名無しさん:2010/03/22(月) 23:50:30
>>194
Scalaいいよねぇ
Rubyのアホみたいにテスト工数が
ざっくり減るし。


ただ技術者なかなかいないよねぇ


196 :デフォルトの名無しさん:2010/03/23(火) 21:22:30
おなじJVM上のclojureが攻めてくる・・・わけないなw

197 :デフォルトの名無しさん:2010/03/23(火) 21:56:00
日本語のlift本でも出ないかな・・・

198 :デフォルトの名無しさん:2010/03/24(水) 23:35:27

Scala言語を学ぶやさしいツール「Kojo」が無償公開
Publickey http://www.publickey1.jp/blog/10/scalakojo.html
 

199 :デフォルトの名無しさん:2010/03/25(木) 00:14:10
apply関数の意味がいまいちわからないのですが
なぜこの関数は存在するのですか?



200 :デフォルトの名無しさん:2010/03/25(木) 00:46:37
関数適用がapplyの呼び出しになるって点は理解している?

理解しているけど使いどころがわからないってこと?

201 :デフォルトの名無しさん:2010/03/25(木) 06:58:37
例えばmap関数を自分で実装するのに使う

202 :デフォルトの名無しさん:2010/03/27(土) 01:12:19
こんなのがあった
Specsみたいな書き方のやり方なんだろうけど、
なにをやってるのかさっぱりわからん(;´Д`)
誰か解説プリーズ。
http://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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/03/27(土) 19:08:04
>>202 >>203
あー、inがExampleを返すのはネストの判定のためなのか。
ネストならTがExampleになるのね。なるほどなぁ。

206 :204:2010/03/29(月) 21:07:44
>>204
ああ、そっか。言われて見ればその通り。全然気付かなかった。

207 :203:2010/03/29(月) 23:06:52
ごめん。名前欄、>>204じゃなくて>>203の間違いだった。

208 :デフォルトの名無しさん:2010/04/02(金) 16:30:14
AnyVal型の変数にjava.lang.Long型のインスタンスが入ってたらそれをInt型に変換するには
2回asInstanceOfやるしかないんですかね?

val a: AnyVal = 10L
a.asInstanceOf[Long].asInstanceOf[Int]

209 :デフォルトの名無しさん:2010/04/02(金) 21:01:56
言ってることおかしいな、AnyValじゃなくてAnyRefでした

val a: AnyRef = 10L.asInstanceOf[java.lang.Long]
a.asInstanceOf[Long].asInstanceOf[Int]

210 :デフォルトの名無しさん:2010/04/05(月) 18:46:05
>>209
val a: AnyRef = 10L.asInstanceOf[java.lang.Long]
a.asInstanceOf[Long].toInt
でOK

211 :デフォルトの名無しさん:2010/04/05(月) 21:25:39
最近、ImpressのScala本をほけーっと眺めてよさげだなぁとか思ってる初心者なんだけど、
処理系としてはどれくらい安定してる感じなの?

212 :デフォルトの名無しさん:2010/04/06(火) 00:15:08
>211

何も知らずに言うが、処理系はJVMだから、Javaの10年以上の実績があって超安定。
だが、コンパイルが遅いのが難点ってところ。
コンパイラのバグは、致命的なのはないんじゃないの??

213 :デフォルトの名無しさん:2010/04/06(火) 19:06:00
>>212
なるほど。それならわりと使えそうな感じだね。

214 :デフォルトの名無しさん:2010/04/06(火) 20:16:28
型パラメータの条件にこんなコンストラクタ持ってるみたいなのはどう書くんでしょうか
こんなメソッド持ってるみたいなのはこんな感じで書けるみたいですが

def func[T <: {def hoge(s: String): Unit}](value: T, str: String) = {
value.hoge(str)
}

215 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/08(木) 00:50:35
何でFile IOとか付いてるんだろう。中途半端に感じるけど、perlとか見たいなのりなのかな?

217 :デフォルトの名無しさん:2010/04/08(木) 00:50:49
誤爆スマヌ

218 :デフォルトの名無しさん:2010/04/10(土) 02:27:15
?

219 :デフォルトの名無しさん:2010/04/13(火) 19:22:38
15,16とScalaDaysなわけだが、
http://days2010.scala-lang.org/program
どれ注目すればいいん?
Running in Browser?Data Parallel Programming?CCSTM?Automatic refactoring?

220 :デフォルトの名無しさん:2010/04/15(木) 00:21:49
d(x:Int)(y:Int)(z:Int): Int = x + y + z

ってどこまでが引数でどこまでが返り値でどこまでが
関数の実体なのでしょうか

221 :136:2010/04/15(木) 13:15:05
scalaでunit testってある?

222 :デフォルトの名無しさん:2010/04/15(木) 13:15:13
Scala 2.8.0 RC1

223 :デフォルトの名無しさん:2010/04/15(木) 16:58:57
>>221
コップ本で1章使って概説してるよ

224 :デフォルトの名無しさん:2010/04/15(木) 19:27:01
便乗して、ScalaのテストはSpecsとScalaTestのどっちがおすすめ?
ちょっと見たかんじだと、なんかあまり違いがないような

225 :デフォルトの名無しさん:2010/04/17(土) 12:55:43
「Scalaのサイトに載せたいから、Scalaユーザグループは
メールでPhil Bagwellにグループの詳細を送ってくれ」
だって。

226 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/17(土) 14:49:09
>226
.NET版をまだ諦めてなかった事に驚いた。
あと、例外チェックも。

229 :デフォルトの名無しさん:2010/04/17(土) 16:13:11
>>228
.NETはMSが(VSの?)scalacモジュール出すらしい

230 :デフォルトの名無しさん:2010/04/17(土) 19:59:01
>>229
> .NETはMSが(VSの?)scalacモジュール出すらしい

Scala終了か?

MSがやると互換性の違うのがいっぱいできて、利用者側が混乱するんだよね。。
MSの作戦でやっているのだろうけど。

Java,Html, 他にも、MSが下手に乗り出すことで、進化が遅くなった言語がいろいろ。。



231 :デフォルトの名無しさん:2010/04/17(土) 20:24:04
>>230
わざと1980年代から意図的に同じ事くりかえして
自社の優位性を保とうとしているからなぁw

232 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/17(土) 21:42:14
IronRubyは対応したばっかりだからこれからおかしくなるんだろ

234 :デフォルトの名無しさん:2010/04/17(土) 21:50:47
IronRubyってMSの息がかかってるの?

235 :デフォルトの名無しさん:2010/04/17(土) 22:08:56
そもそもMSが開発してるので

236 :デフォルトの名無しさん:2010/04/17(土) 22:49:55
>>232
同意見だなぁ
.netなんだし間口広げるだけだろうにな・・・

237 :デフォルトの名無しさん:2010/04/17(土) 23:41:41
しかしJavaは改悪された

238 :デフォルトの名無しさん:2010/04/18(日) 01:14:52
今のMicrosoftのプログラミング言語とその周辺に対する取り組み方を知っていて
それでもなお独自拡張を恐れるならともかく、古い情報に基づいての偏見はなぁ…

239 :デフォルトの名無しさん:2010/04/18(日) 02:04:22
三つ子の魂百までって言うからね
悪いことはするなって事だよ

240 :デフォルトの名無しさん:2010/04/18(日) 02:09:51
>>238
結局、MS製品のある環境でしか動かないものしか作ってないからな。
建前は標準規格と言ってるが。

241 :デフォルトの名無しさん:2010/04/18(日) 02:18:33
そりゃ慈善事業じゃないんだからメリットないことはしないだろ?
標準規格にはこだわるにしても

242 :デフォルトの名無しさん:2010/04/18(日) 02:31:03
もちろんそうだ。
要は、ベンダーロックインされるリスクを負ってでも、その技術を使いたいかという話。

243 :デフォルトの名無しさん:2010/04/18(日) 03:00:51
.Net版scalacは既にあってそれに対するモジュールだろうになんでこんな流れなんだ(;´Д`)
MSの部分だけに反応するってことはscalaに興味ない人が荒らすためだけに巡回してるのかな・・

244 :242:2010/04/18(日) 03:54:57
俺は>>230とは違う人間だよ。俺はMSを過剰に非難するつもりはないが、
歪んだ形の囲い込みを全く警戒しなくてもおk、というわけではないという当たり前の話。

245 :デフォルトの名無しさん:2010/04/18(日) 03:58:32
>>241
いやメジャーOSだとそんなことやってるのWindowsだけだよ…

246 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/18(日) 10:10:09
結局違法にJAVA改悪したから
Win2000発売停止になったよな

じゃあScalaもきちんと監視しないと
改悪されるぞ

248 :デフォルトの名無しさん:2010/04/18(日) 12:51:02
MS を脅かすほど Scala に影響力はないから大丈夫だよ。

249 :デフォルトの名無しさん:2010/04/18(日) 12:53:08
>>246
> 便利な技術ならOSSでコピッて本家に取り込まれるし、

世の中には特許というものがあってだね。

250 :デフォルトの名無しさん:2010/04/18(日) 16:19:28
完全互換になんてなる訳ないじゃん
Ironなんちゃらシリーズだって.netでしか動かない仕様になるぜ

251 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/20(火) 22:25:25
ScalaとRubyだと、Scalaが秀でているところってどういうところ?

256 :デフォルトの名無しさん:2010/04/20(火) 22:30:51
速い

257 :デフォルトの名無しさん:2010/04/20(火) 22:39:05
実行速度が速い、強い型付けがあるってとこかな

258 :デフォルトの名無しさん:2010/04/20(火) 23:03:16
>>252
ScalaでFRPとかできるようにならんのかな。それとももうある?

259 :デフォルトの名無しさん:2010/04/20(火) 23:26:07
なるほど速度ですか

関数型言語=マルチコアに対応したプログラムができる
というのはScalaの場合当てはまりませんか?(もしくはRubyもそういうのを作れる?)


260 :デフォルトの名無しさん:2010/04/21(水) 00:28:41
マルチコアに対応したプログラムなんてPerlでも書けるだろ
もちろんRubyでも

261 :デフォルトの名無しさん:2010/04/21(水) 02:18:40
Rubyと比べられるべきなのはScalaよりむしろGroovyだと思う。

>>259
マルチコア対応が容易、って不変性がどうとかっていう部分じゃないんですかね。
ということは純粋関数型っぽく作れば良いと思うんですけど。

262 :デフォルトの名無しさん:2010/04/21(水) 03:10:43
>>253
JavaFXみたく宣言っぽく書ける
イベントハンドラが柔軟に書ける
ただ現状ラッパとしての完成度が低い

GUIは他の部分よりも恩恵を受けれないのはしょうがないね
特にラッパだと元ライブラリの制限を受けまくるし

ちょっとしたグラフのプロットとかをREPL上で
さくっと書けるのは楽しいよ

263 :デフォルトの名無しさん:2010/04/21(水) 08:02:54
>>225
これか
http://www.scala-tribes.org/p/tribes.html

264 :デフォルトの名無しさん:2010/04/21(水) 09:33:01
>>259
Haskellの場合純粋な部分と非純粋な部分を分けて書かざるを得ないけど、
そのお陰でコンパイラが普通のコードを自動的にマルチコア最適化するなんてこともできる(ようになる)らしい

Scalaの場合varとvalの使い分けはあるものの、Haskellよりは弱い最適化しかできないかと

265 :デフォルトの名無しさん:2010/04/21(水) 12:44:25
『Scalaプログラミング入門』って本どう?

尼で目次見た限りでは地雷くさいんだが・・・

266 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/21(水) 19:22:35
>>265
Scalaスケーラブルプログラミング
http://www.amazon.co.jp/dp/4844327453
Scalaプログラミング入門
http://www.amazon.co.jp/dp/4822284239
両方買ってどちらも最後まで読んでないですけど。

『Scalaプログラミング入門』は言語仕様の説明がほとんどなくて
初っ端からScala特有の(=Javaの概念にはない)話が進んでいくので
実行環境のそばで読まないとさっぱり理解できない。
実行してもなんでそうなるのか分からないので応用きかない。

なので初めの1冊どっちを買うかと問われれば
間違いなく『Scalaスケーラブルプログラミング』。
Scala経験者が読んだらまた異なる感想になるかもしれませんが、
「入門」を冠する書籍としては問題あるんじゃないかなあ、と。

268 :デフォルトの名無しさん:2010/04/21(水) 20:10:02
普通のプログラマに必要なレベルの話はどっちにも乗ってるだろ
それとも関数型言語と言うものを全く知らないと言うことか?

269 :デフォルトの名無しさん:2010/04/21(水) 20:51:23
>>262

> ちょっとしたグラフのプロットとかをREPL上で
> さくっと書けるのは楽しいよ


そういう用途では、Scalalab(ScalaSci ) に期待しているのだが、、、まだまだかなあ。。

270 :デフォルトの名無しさん:2010/04/22(木) 06:26:03
簡単にグラフってどうやるですか?
awtとかswingつかうの?

271 :デフォルトの名無しさん:2010/04/23(金) 05:52:53
EclipseのScalaプラグインがScalaで書かれていることにちょっとびっくりした。

272 :デフォルトの名無しさん:2010/04/23(金) 07:50:25
>>267
どうせまた、なんにでも「入門」ってつけちゃう日本語書籍の悪いところだろ…
と思って原著のタイトル調べてみたら「Beginning Scala」でしたごめんなさい

273 :デフォルトの名無しさん:2010/04/23(金) 22:25:35
ScalaってJavaで書かれてるのか?
JavaはJavaで書かれているのか?
Javaを書いてるJavaはなにで書かれているんだ?

274 :デフォルトの名無しさん:2010/04/23(金) 23:18:27
>>271
だからあんな糞の役にも立たない糞プラグインなのか
IntelliJのScalaプラグインの方が遥かにいいわ

275 :デフォルトの名無しさん:2010/04/23(金) 23:57:38
Intellijって、なんかビルドが遅い気がする。
EclipseはXMLを記述するとエラーになるんだよな。

276 :デフォルトの名無しさん:2010/04/24(土) 00:00:49
Liftっていいのつかってみたけど
難しすぎて使えない

277 :デフォルトの名無しさん:2010/04/24(土) 01:01:01
JavaVM必須とか、クソすぎる。

278 :デフォルトの名無しさん:2010/04/24(土) 01:18:01
IntelliJは重いしUIが微妙なんでやめた
やっぱEclipseかNetBeansになっちゃうな

279 :デフォルトの名無しさん:2010/04/24(土) 03:48:35
receiveとreactの使い分けが分からん…
いつもreact+loopで良いような。
receive使うのはどんな時だろう。

280 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/25(日) 11:58:25
>>281
別名importで解決できない?

283 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/25(日) 12:50:00
>>280
やっぱswingつかうんね
サンキュー

285 :デフォルトの名無しさん:2010/04/25(日) 13:33:19
swingとか遅くて使い物にならんだろw


286 :デフォルトの名無しさん:2010/04/25(日) 14:18:11
クマー

287 :デフォルトの名無しさん:2010/04/25(日) 14:23:12
専ブラとしてV2Cを愛用している俺に
swingの悪口は止めてもらおう

288 :デフォルトの名無しさん:2010/04/25(日) 14:40:04
>>287
同じくV2Cを愛用している。最近のバージョンのJavaだと
起動してからは、そんなにもたつきは感じないなーというのが正直なところ。
あと、起動速度もだいぶ早くなったし。

289 :デフォルトの名無しさん:2010/04/25(日) 14:56:13
>>288
たまに貼ってあるanimated gifとか見ると真っ黒に表示されること無い?

あれって、Javaの問題なんだろうか。元ファイルをブラウザで見ると普通なんだが。ってscalaの話じゃないか

290 :デフォルトの名無しさん:2010/04/25(日) 14:59:17
アニメGIFがおかしくなるバグは既知の問題で、未だ原因不明
まあそろそろスレチだが

291 :デフォルトの名無しさん:2010/04/25(日) 15:21:43
んじゃscalaで2chブラウザ作ってみるか

292 :デフォルトの名無しさん:2010/04/25(日) 18:48:43
>>285
我慢するのは実行時コンパイルが済むまでの間だよ。

293 :デフォルトの名無しさん:2010/04/25(日) 18:49:48
>>291
作ったとして、Java直接と比べてどんなメリットが考えられるのだろうか?

294 :デフォルトの名無しさん:2010/04/25(日) 19:22:36
作る奴が関数言語得意なら楽に作れる

295 :デフォルトの名無しさん:2010/04/25(日) 19:38:04
それは作る時の話じゃん。アウトプットに関してはどうなのよ…って変わらんか、そりゃw

296 :デフォルトの名無しさん:2010/04/25(日) 19:44:15
そんなもん、C言語とマシン語だって同じ話だろ?

297 :デフォルトの名無しさん:2010/04/25(日) 21:51:51
そりゃ違うでしょw

298 :デフォルトの名無しさん:2010/04/25(日) 21:54:06
GW中にScalaマスターしたいのですが
どこから始めればいいのですか?

299 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/25(日) 21:56:08
まちがえた。
>>299はcollection.mutable.Mpa(1->2, 3->4)

301 :デフォルトの名無しさん:2010/04/27(火) 23:21:09
>>298
> GW中にScalaマスターしたいのですが
> どこから始めればいいのですか?

ScalaWikiから。

本は、通称コップ本が良い。

302 :デフォルトの名無しさん:2010/04/28(水) 01:33:19
operaだとscaladoc2メッチャ遅くない?

303 :デフォルトの名無しさん:2010/04/28(水) 01:39:16
>266
なんかきもいな
immutable.Stackは1,2,3で初期化されたStackを生成する
mutable.Stackは空のStackを生成して1,2,3の順で追加したものを返す
ってことか
どっちかに統一すればいいのに

304 :デフォルトの名無しさん:2010/04/28(水) 02:08:17
ガチガチに縛られた言語が好きならPythonでも使えば?

305 :デフォルトの名無しさん:2010/04/28(水) 04:54:56
>>302
Opera,Chrome,IEで比べたけどOperaが特に遅いとは思わなかったな
scaladoc2がそもそも重いつくりだしなぁ

306 :デフォルトの名無しさん:2010/04/28(水) 22:40:47
>>305
どうも、うちの環境が悪いのかなーと思ってプロファイル削除してみたらだいぶましになった
>>303
たしかにどっちでもいいけどどっちかに合わせて欲しいね、mutableからimmutableにリファクタするとかなったときこの挙動知らなかったらあれ?ってなるかも

307 :デフォルトの名無しさん:2010/04/29(木) 00:43:50
初心者には入門本よりコップ本がオススメなのか

今日ホッテントリ入りしてたScala記事に影響されて入門本買うどころだったが、買う前にこのスレ見てよかった

ちなみにコップ本は2009年の本だけど、Scalaのバージョンはいくつで書かれてる?2.7.7かな

308 :デフォルトの名無しさん:2010/04/29(木) 02:43:25
Summer of Code Scala Project
http://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 :デフォルトの名無しさん:2010/04/29(木) 02:43:46
>>307

その入門本ってどの本のこといってる?

タイトルに入門とかついている本だったら買うだけ金の無駄だと思うよ。


310 :デフォルトの名無しさん:2010/04/29(木) 03:35:24
公式の右下にある投票、あれなんだ?

311 :デフォルトの名無しさん:2010/04/29(木) 03:55:14
入門disってる奴は通ぶりたいだけだろ
言語仕様の中身まで書いてない本はクソ扱いしたいガキ

312 :デフォルトの名無しさん:2010/04/29(木) 07:33:42
いや、Scalaはコップ本を読んで理解できないようなやつが使うべきではないということだよ
ちゃんとJavaから勉強してきてねっ感じの言語
それにコップ本はそんなに難しいわけじゃない

313 :デフォルトの名無しさん:2010/04/29(木) 08:11:31
>>309
Sの文字が2つならんでる表紙のやつ

ttp://wota.jp/ac/?date=20100426#p01

314 :デフォルトの名無しさん:2010/04/29(木) 10:22:13
>>311
チュートリアル的な面でみてもコップ本の方が優れてると思うけど。
初学者から見て入門本の方が優れてるところってどこよ?

315 :デフォルトの名無しさん:2010/04/29(木) 10:44:42
勝手に言語のハードル上げる奴は馬鹿


316 :デフォルトの名無しさん:2010/04/29(木) 11:00:55
プログラミング言語C++みたいな
レベルの本じゃないと意味がない

317 :デフォルトの名無しさん:2010/04/29(木) 11:11:02
自称玄人のお前らより、Amazonのレビューの方が参考になる。
この時点でこのスレにいる奴は初学者じゃなくて、言語マニアだから
初心者が何を読めばとりあえず使えるようになるか解らなくなっている。

318 :デフォルトの名無しさん:2010/04/29(木) 11:14:11
初心者の視点になるのって難しいよね
いつも痛感してるわ

319 :デフォルトの名無しさん:2010/04/29(木) 11:14:22
>>317
初心者に情報を与えるのは
Java厨、Ruby厨、カスPHP野郎
みたいなのを量産するだけだからやめろ

320 :デフォルトの名無しさん:2010/04/29(木) 11:24:35
>>317
上のほうでAmazonレビューで工作してた入門本の作者が晒されてたけど、
まさかお前じゃないだろうな?

321 :デフォルトの名無しさん:2010/04/29(木) 11:27:10
そこまで否定するってことはむしろお前が…

322 :デフォルトの名無しさん:2010/04/29(木) 11:46:25
え、現状和書で買う価値があるのはコップ本と>>313の入門本の2つだけだよな

それ以外がゴミなのはどちらも認めてるんじょないか


323 :デフォルトの名無しさん:2010/04/29(木) 11:54:24
>>313

あ、これ(Scalaプログラミング入門)も入門てついてたんだっけ。
こっちは悪くないと思うよ。

コップ本と比べてどうとかはよくわからないけど。


324 :デフォルトの名無しさん:2010/04/29(木) 12:25:22
プログラマともあろうものが前提条件を決めないで入門書はカスとぶったぎるのはゆゆしき問題だな

325 :デフォルトの名無しさん:2010/04/29(木) 12:35:18
こっちはなんて呼べばいいんだろ?
SS本?w

326 :デフォルトの名無しさん:2010/04/29(木) 12:43:12
LiftのDavid Pollakが書いた本の訳だよね>Scalaプログラミング入門
説明にややはしょり気味なところが見受けられるけど、Scalaにおけるイディオムなど、
コップ本より実践的な内容にフォーカスしてて良い本だと思う。

327 :デフォルトの名無しさん:2010/04/29(木) 12:46:01
David Pollakの本は文才がないっつーか
ありゃダメだな

あれはチラ裏の日記だな

328 :デフォルトの名無しさん:2010/04/29(木) 13:37:04
うーん。そうか。あの大げさ極まりない書き方はあまり好みじゃないけど
実際にScalaでよく使うイディオムなんかにも触れてあって、結構良い本だと
思ったのだが。>David Pollakの本

329 :デフォルトの名無しさん:2010/04/29(木) 14:40:20
これからは
・コップ本
・入門
・工作本
って呼べばいいだろ

330 :デフォルトの名無しさん:2010/04/29(木) 14:48:55
日本人はLispがあるから
へんな関数型言語布教させるんじゃねーよ



331 :デフォルトの名無しさん:2010/04/29(木) 14:57:11
へんな関数型言語…
Schemeのことか?

332 :デフォルトの名無しさん:2010/04/29(木) 15:24:11
David Pollakの文章は、なんかアジっぽい。

333 :デフォルトの名無しさん:2010/04/29(木) 15:27:37
コップ本は、後半急激に難易度が上がるというレビューが多いね
SS本は、既に他言語を学んでる(特にJava)ことが前提な内容みたいだね

関数型は始めてだけど、他の言語入門済みの場合はどっちがいいのかな〜

334 :デフォルトの名無しさん:2010/04/29(木) 15:28:46
SS買って一通り覚えたらコップでよくね?

335 :デフォルトの名無しさん:2010/04/29(木) 15:35:41
>>332
それは同意。ああいうアジり気味の書き方って内容に厳密さを求める向きには
受け入れられづらいと思うのだが、どうなんだろうねえ。

336 :デフォルトの名無しさん:2010/04/29(木) 15:35:45
David Pollakの本は、リファレンス本的には全然使えないけど、
通しで読んで、Scalaのノリをつかむにはいい本だと思うよ。

敢えて言えば、コップ本こそ、公式サイトの情報とネットの情報でまかなえるから
買わなくていいと言える。

337 :デフォルトの名無しさん:2010/04/29(木) 15:48:24
Rubyのどの本よりもアジってないから問題ないよ

338 :デフォルトの名無しさん:2010/04/29(木) 16:11:46
>>334
アジるって煽るって意味なのか

339 :デフォルトの名無しさん:2010/04/29(木) 19:22:51
プログラミング初心者じゃないけど Scala は少しハードルが高く感じる
関数型言語は Lisp とか Scheme とか使ってたんで抵抗は無いけど、
それでも記法がちょっと独特で迷う

340 :デフォルトの名無しさん:2010/04/29(木) 20:06:48
はっきりいって文法がきもい

341 :デフォルトの名無しさん:2010/04/29(木) 21:44:17
まぁ素のJavaよりはマシだけどそれだけなんだよな

342 :デフォルトの名無しさん:2010/04/29(木) 21:49:41
文法のキモくないプログラミング言語とは何だったのか。

343 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/04/29(木) 22:59:08
>>340
とりあえず、>>340は文法がきもくないと思う言語を挙げてみてくれ
主観できもいとだけ言われても、どういう美的感覚持ってるのかがわからんと
ピンと来ない

345 :デフォルトの名無しさん:2010/04/30(金) 00:12:59
そういうのはかまうなよ
ログ見りゃわかるが、粘着してるやつがいるんだよ

346 :デフォルトの名無しさん:2010/04/30(金) 06:13:41
LLVM向けJVMとCLIのVMの実装をするそうな。
http://vmkit.llvm.org/

347 :デフォルトの名無しさん:2010/04/30(金) 15:00:21
>>344
340ではないが、型を名前の後に置くこと(i:int, s:String) に馴染めない。
これを int i, String s と書けるようにするだけで、だいぶ違うだろ。


348 :デフォルトの名無しさん:2010/04/30(金) 15:33:34
IDE使うの大前提だと後置式のがいい。

349 :デフォルトの名無しさん:2010/04/30(金) 18:29:03
>>347
それは、そうした方がJavaから移行したユーザが馴染みやすいって意味だよね
それはその通りだと思う。

ただ、Scalaの場合変数の型を省略できる、というか省略するのが普通なのでその点は
考えなければいけないと思う。もし、Java式の型宣言にするなら、型を省略したときは、
別途val x = 3とかvar x = 3みたいにしなければいけなくなって、構文的な整合性の観点
からはあまり良くない。C#は型宣言を省略する場合はvarと書くという方式だけど、あれは
後付けだから仕方ないのであって、新しく言語作るときにああするのはどうかねえ…

350 :デフォルトの名無しさん:2010/04/30(金) 18:39:09
構文的には後置のほうが混乱が少ないと思う
それに関数型言語は後置にするのが多いからね
まあ、慣れの問題だね

351 :デフォルトの名無しさん:2010/04/30(金) 20:21:44
慣れの問題と思うけど、単純に Scala のコードは読みにくい

352 :デフォルトの名無しさん:2010/04/30(金) 20:30:16
型が前置じゃなきゃ嫌だってのは、
つまりC系統の言語しか触ってないってことだからね
もっといろんな言語に触れたほうがいいと思うよ

353 :デフォルトの名無しさん:2010/04/30(金) 20:40:33
型情報を明示しないって思想だから後ろに来るのは当然だと思うけどな。

つか、そうしないと文法的整合性が取りにくい

354 :デフォルトの名無しさん:2010/04/30(金) 21:20:47
C++も設計でscalaと同じ書き方を検討してたんだよ
Cとの整合性をとって採用されなかったけど

355 :デフォルトの名無しさん:2010/04/30(金) 21:56:16
そしてObjectiv-Cみたいな意味不明なのができる

356 :デフォルトの名無しさん:2010/04/30(金) 22:51:07
前置にするとvarとvalの区別が面倒になる。Javaみたくfinalだらけになるのはイヤだ。

357 :デフォルトの名無しさん:2010/04/30(金) 23:18:53
Groovyがそんな感じだね。

358 :デフォルトの名無しさん:2010/04/30(金) 23:42:15
後ろ置きは、慣れの問題でなんとかなりそうな気がする。ていうか、慣れれば、結構好きかも。

でも、アンダースコア _ は、どうかなあ。。。

( _ > _) とか書いていると、顔文字に見えてくるんだよね。

359 :デフォルトの名無しさん:2010/05/01(土) 00:23:16
ScalaにはRubyのERBみたいな機能がないから
ゴミだな

360 :デフォルトの名無しさん:2010/05/01(土) 00:38:54
釣られない…釣られないぞ…!

361 :デフォルトの名無しさん:2010/05/01(土) 01:41:26
最近のはやりは後置だな
golangもやはり後

362 :デフォルトの名無しさん:2010/05/01(土) 01:59:45
上の方で書かれている理由に加えて、後置(+キーワードを先置く形式)にするとちょっと
構文解析が楽になるというのもあるかも(これはそれほど重要じゃないだろうけど)。

363 :デフォルトの名無しさん:2010/05/01(土) 02:33:06
pascal出身としては安心するなぁ

364 :デフォルトの名無しさん:2010/05/01(土) 03:20:38
1ヶ月もすれば、どうでも良くなってくるよ。
くだらない。

365 :デフォルトの名無しさん:2010/05/01(土) 07:59:34
最近の若い子はPascalなんて知らないんだろうな

366 :デフォルトの名無しさん:2010/05/01(土) 08:56:55
ScalaDays2010の全講演のビデオ来てますよー
http://days2010.scala-lang.org/node/136

英語わかんなくても結構面白い
コーラのボトル持ってしゃべる人が居たりw

367 :デフォルトの名無しさん:2010/05/01(土) 11:36:34
>>366
グッジョブ

368 :デフォルトの名無しさん:2010/05/01(土) 11:51:38
>>366
さっぱりわからんけど、(Scala界隈の)有名人がでてるやつとか、面白い内容のおすすめなのとかある?

369 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/01(土) 12:52:54
しまった。Oderskey→Odersky。間違えるなんてorz

371 :デフォルトの名無しさん:2010/05/01(土) 12:53:16
えいごが解らん
なんとかしてくれ

372 :デフォルトの名無しさん:2010/05/01(土) 13:28:01
長すぎてワロタ

373 :デフォルトの名無しさん:2010/05/01(土) 20:01:48
Microsoft が F# や Axum の他にも IronScala を作ればメジャーになれる可能性は高い

374 :デフォルトの名無しさん:2010/05/01(土) 20:26:20
>>373
IronScalaというか現在のScalaの.NET版実装もMSの協力があったとかそんなのを
読んだ覚えが…。現在のScala.NET実装は.NETのジェネリクスに非対応だったりして
実用に使うのは厳しいが。

375 :デフォルトの名無しさん:2010/05/01(土) 20:30:45
Scalaのジェネリクスは、Javaのerasureに合わせたヘタレ仕様のままなの?
この先もずっと?

376 :デフォルトの名無しさん:2010/05/01(土) 21:13:19
>>375
Javaのerasureに合わせるというのは崩せないだろ
もしそれやったら現在のScalaユーザの大部分を失う危険性がある一方で
それで取り込めるユーザがどれだけ居るか…
それに、ScalaのジェネリクスはJavaのそれに比べてかなり強化されてるから
erasureベースでもJavaに比べればだいぶ不満は感じにくくなってるよ

377 :デフォルトの名無しさん:2010/05/01(土) 21:41:36
>376
Boxの中身をパターンマッチングさせようとすると、出来なくてイライラする。

378 :デフォルトの名無しさん:2010/05/01(土) 21:49:32
今の時代
ネイティブで動かない言語なんてゴミだろ

379 :デフォルトの名無しさん:2010/05/01(土) 21:55:58
.netのscalaもerasureなのん?

380 :デフォルトの名無しさん:2010/05/01(土) 22:01:46
君の言うネイティブで動くって言うのはどういうことかね?

381 :デフォルトの名無しさん:2010/05/01(土) 23:10:58
>>378

今の時代?

昔の時代だったら、確かに遅くてゴミだったけど、
今の時代だとそんなに気にならない。


382 :デフォルトの名無しさん:2010/05/01(土) 23:13:07
遅くてもいいってのはシステムはだいたいI/Oネックだからであって
SSDとか使っちゃうと言語自体の速度が影響する割合がでかくなる

383 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/02(日) 00:13:24
確かに、それなんかおかしいな
まだPredefにバグ残ってんのか?

385 :デフォルトの名無しさん:2010/05/02(日) 00:18:19
やべぇ、日本人で発表してる人がいるんじゃん > Scala Days
英語がたどたどしいけど、それにしてもすげぇな

386 :デフォルトの名無しさん:2010/05/02(日) 01:30:04
>>385
たぶんツイッターにいてtsudaってくれてたひとじゃないかな?
自分英語わからんからああいうのはすごく助かるわ

387 : ◆ueEP8Ean2lqc :2010/05/02(日) 02:09:17
その張本人が書きこんでみる
正直、>>385の書いてる通り英語はたどたどしかったし質問聴きとるのは
難しかったしでなかなか大変でした。あのときは、テンションが凄まじく高かったので
今思うと凄いペースでtsudaってましたね。あれでScala Daysに興味を持ってもらえたなら
こちらとしても嬉しいですね。

388 :デフォルトの名無しさん:2010/05/02(日) 02:18:14
>387
じゃ、せっかくなんで、何か面白いこと書いてくれ。

389 :デフォルトの名無しさん:2010/05/02(日) 02:21:15
さっきから見る度見る度、 Scool Days に空目してしまう件

390 :デフォルトの名無しさん:2010/05/02(日) 02:29:43
Scool DaysをSchool Daysに空目

391 :デフォルトの名無しさん:2010/05/02(日) 02:32:11
あ、ほんとだ、タイポ。

392 :デフォルトの名無しさん:2010/05/02(日) 02:32:40
誠死ね

393 :デフォルトの名無しさん:2010/05/02(日) 03:00:07
>>387
日本でも Scala を広めようず

394 :デフォルトの名無しさん:2010/05/02(日) 03:38:31
>>387
あ、本人が降臨しとるw

確かにすごいペースでtsudaってるなぁとは思ったけど、自分は普通に面白かったよ
Scalaのロゴの元になった階段の写真とかも
そういやScala作者にサイン本もらってたな、うらやま

まぁ日本での布教活動を頑張っておくれ
個人的な希望を言えば特に日本語情報の充実を…


395 :デフォルトの名無しさん:2010/05/02(日) 03:45:56
いまでもmsilを出力するようには出来ますね。
ilasmなんて初めて使った。

396 :デフォルトの名無しさん:2010/05/02(日) 10:10:07
こういうインクリメントってなんで書けないの?
i++
++i

397 :デフォルトの名無しさん:2010/05/02(日) 10:16:47
かけるように開発に参加すればいいんじゃないでしょうか

398 :デフォルトの名無しさん:2010/05/02(日) 11:26:26
i++って、結局はforループでしか使わないからじゃないの。単行の副作用式だし。

399 : ◆ueEP8Ean2lqc :2010/05/02(日) 11:43:03
>>388
面白いこと…うーむ、思いつかないです。申し訳ない。Scala Daysで面白かったこと
とかなら書けるかもしれないですが。

>>393
はい。もちろんそのつもりです。キラーアプリとか作れるといいんですけど、自分は
言語家というか構文解析屋?で、パーザジェネレータとかそんなんばっか作ってて、
あまり普通のアプリ作ったりしない(というか不得手)ので、その辺は他力本願に
なってしまいますね。基本的にはScalaの日本語情報の充実という形での貢献
になりますかね。

>>394
ありがとうございます。面白いと言ってもらえるのは励みになりますね。Odersky先生の
サイン本は大事にしたいところですw

日本での布教活動は今までも地道にやってきましたが、今年はもっと精力的に
行っていきたいと思います。日本語情報の充実、というのは正直なんとかしないとなーと
思っていて、特に、経験上よくハマるポイントとかまとめたいところですねー。あと、まともな
(翻訳でない)日本語版Scala本とか。

それと、Scalaでなんかわからんことがあったらここで聞け!みたいな定番の場所が一つあればなあ
、などと思っています。scala-beとかscala--tohokuとかもありますが、それほど質問は多く無いん
ですよね。結局、皆、疑問をブログとかTwitterでつぶやかれるので、その辺を見て、答えられそうな
疑問だったらできるだけレスするように心がけてますが、あちこち分散してるとフォローするのも
大変&質問への解答などが集積されないので、もうちょいなんとかしたいですね。

400 :デフォルトの名無しさん:2010/05/02(日) 11:45:31
lift使った面白いWebコンテンツ出てくればScalaの名前は広がるんじゃないかなぁ?

401 :デフォルトの名無しさん:2010/05/02(日) 11:52:29
いちおうTwitterで名前は広まってきてるし、その辺でもう一押しあるとよさそうだよね。

402 :デフォルトの名無しさん:2010/05/02(日) 12:18:06
TwitterはRailsで作ったものをリライトしたんだよね
やっぱりスクラッチからの強さを見せたいよね

403 :デフォルトの名無しさん:2010/05/02(日) 13:24:53
フロントエンドはRailsのままだと思ってたんだけど、違うのかな
バックエンドをRubyからScalaにしたんじゃなかったっけ

404 :デフォルトの名無しさん:2010/05/02(日) 14:06:28
>>403
なにそれこわい。
Srails? SRuby??

405 :デフォルトの名無しさん:2010/05/02(日) 15:02:06
>>382
ディスクのI/Oよりネットワークだろ…

406 :デフォルトの名無しさん:2010/05/02(日) 15:27:39
>>405
お前開発したこと無いだろ

407 :デフォルトの名無しさん:2010/05/02(日) 15:49:15
C FAQみたいに、Scala FAQが有るといいな。
「.NET プログラミング Tips」ってサイトも人気みたいだし、需要有ると思う。

408 :デフォルトの名無しさん:2010/05/02(日) 17:02:45
>>403
Gizzardだっけ。
どっかでCassandraを使うって話も見たんだけど、どっちなんだろ。

409 :デフォルトの名無しさん:2010/05/02(日) 19:41:11
Scala難しい
Railsの代わりにはなりそうもない

410 :デフォルトの名無しさん:2010/05/02(日) 19:53:32
>>409
お前の頭が悪いだけ。

411 :デフォルトの名無しさん:2010/05/02(日) 19:58:31
リーマンプログラマの9割以上は頭悪いからなぁ

412 :デフォルトの名無しさん:2010/05/02(日) 20:12:12
まぁ頭が良かったら
プログラミングなんて他の奴にやらせるからな

413 :デフォルトの名無しさん:2010/05/02(日) 20:43:43
ScalaとRailsは両立させるものじゃないのか
変わるのはRubyの部分だろ

414 :デフォルトの名無しさん:2010/05/02(日) 20:49:38
>>410
タメかよwwww
呪われしエヴァ世代(初期放送時中2世代wwww)だよね^^

つーか
体育館のマットに詰めてイジメて殺したってのもあったじゃん
二つ上で・・・

415 :デフォルトの名無しさん:2010/05/02(日) 21:47:58
Railsに比べてLiftも難しいの?
RailsはRubyとは別の言語を新たに習得するようなものだ、みたいなことをよく言われるけど,Liftもそうなん?

416 :デフォルトの名無しさん:2010/05/02(日) 21:52:40
>>409
いやだからRailsの代わりにしたいんだったらGrailsだってば。

417 :デフォルトの名無しさん:2010/05/02(日) 22:00:24
いやだからRailsの仕組みで言語がScalaでいいだろ

418 :デフォルトの名無しさん:2010/05/02(日) 22:11:21
>>417 作ってから言えよ。

twitterの件は確かメッセージングの部分を置き換えただけじゃなかったか?
俺的には java.util.concurrent を使えばいいだけの部分を scala 使ってみたいから使ってみた。って印象なんだが。

419 : ◆ueEP8Ean2lqc :2010/05/02(日) 23:03:57
>>418
The Why and How of Scala at Twitter
http://www.slideshare.net/al3x/the-how-and-why-of-scala-at-twitter
とか、Twitterがオープンソースで公開している、自社で使っているらしいソフトウェア
群を見る限りでは、バックエンドはおおむねScalaで置き換えたみたい

あと、メッセージキューについてだけど、
JavaとScalaではソースの書きやすさが(少なくともある程度慣れれば)段違いなので、
Scala使ってみたいから使ってみたという印象は受けなかったかな。Twitterの人たちは
書きやすい言語を好んで使っている印象がある。あとは、java.util.concurrent使えば
済む程度の話ならさすがに新しくライブラリ作ったりはしないと思う。

420 : ◆ueEP8Ean2lqc :2010/05/02(日) 23:11:20
一応、Kestrel(メッセージキュー)のソース
http://github.com/robey/kestrel/tree/master/src/main/scala/net/lag/kestrel/
や説明
http://robey.lag.net/2008/05/07/scarling.html
(Scarlingってのは、Kestrelの元になったRubyで書かれてるメッセージキューの
ことね)を読み直してみたが、やっぱり
java.util.concurrentが提供しているくらいのプリミティブだと全然足りないと思う。

421 :デフォルトの名無しさん:2010/05/02(日) 23:28:58
>>420
リンク先を読まずに背景も全く知らずに言うが、javaa.util.concurrentは
「プリミティブが足りない」じゃなくて「プリミティブ過ぎる」じゃないのか?

422 : ◆ueEP8Ean2lqc :2010/05/02(日) 23:49:02
>>421
java.util.concurrentの機能があれば事足りる、という意図なのかなと思ったので
足りてないんじゃない?というニュアンスで「プリミティブが足りない」と書いたのだけど
確かに「プリミティブ過ぎる」という方が実情をよく表してる。

423 :デフォルトの名無しさん:2010/05/03(月) 09:08:42
俄かに活気付いて来たな。いいことだ

424 :デフォルトの名無しさん:2010/05/03(月) 09:50:09
今年でブームは終わるよ。

425 :デフォルトの名無しさん:2010/05/03(月) 10:41:10
もうブームは終わってF#の一人勝ちだって
いった。日本は独自のLispで頑張るらしいけどw

426 :デフォルトの名無しさん:2010/05/03(月) 12:16:39
そっかそっか!それでF# Expressはいつでんだよ

427 :デフォルトの名無しさん:2010/05/03(月) 12:16:45
誰が言ったんだよw

428 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/03(月) 21:45:13
Liftって初心者(Scala初心者、Webプログラム初心者)に優しくない気がする
webアプリに詳しくないからちゃんとした比較してるわけじゃないが、ちょっと触ったかんじ。
ScalaならLift、てなってるから選択してしまいがちだけど。

Javaからの移行組ならPlayのほうがいいんでないかね。日本語ページあるし。
開発の人もPlayでScalaをだんだんと学んでいくことを意識してるみたいだし。

LiftはScalaのテクニックを学ぶにはいいんだろうけど、
設計があまり綺麗じゃないという話もあるのでそっちの参考にはならないのかも

430 :デフォルトの名無しさん:2010/05/03(月) 21:53:00
>428
何その汚いコード。そんなの有りかよ。

431 :デフォルトの名無しさん:2010/05/03(月) 21:59:15
>>430
あー?貴様が美しく書けよ

432 :デフォルトの名無しさん:2010/05/03(月) 22:32:51
>>399
> わからんことがあったらここで聞け!みたいな定番の場所が一つあればなあ
2chじゃダメなん?
というレスを書いてる最中に >430-431が書き込まれてたw 2chじゃダメかもw

433 :デフォルトの名無しさん:2010/05/03(月) 22:36:21
酷いオチだなw
Stack Overflowの日本語版みたいなとことかあると良さそうだけどな。

434 :デフォルトの名無しさん:2010/05/03(月) 22:53:48
これから徹夜でBeginningScalaの写経します。
困ったら助けてね

435 :デフォルトの名無しさん:2010/05/03(月) 22:55:59
>>429
lift以外にもWebフレームワークあるけども

436 :デフォルトの名無しさん:2010/05/03(月) 23:13:14
戻り値がない可能性がある場合はnullじゃなくOptionを返すってのはわかったが
引数で省略可能な場合はデフォルト引数と組み合わせてこんな感じにすりゃいいの?

def func(i: Int, s: Option[String] = None) = {
...
}

437 :デフォルトの名無しさん:2010/05/03(月) 23:23:55
>432
いや、erasureじゃなきゃ、そんな珍妙な解決法取らなくてもいいのに
って話だろ。

438 :デフォルトの名無しさん:2010/05/03(月) 23:34:33
>>434
お、自分もSS本買ってきてこれからやるところ
よろしくおねがいしまふ

439 :デフォルトの名無しさん:2010/05/04(火) 00:39:59
2chはネガティブな要素をたっぷり含有してるから
プログラミング言語のハブサイトとしてふさわしくないよ

>>431みたいなレスは茶目っ気たっぷりで俺は好きだけど
言葉のまんま受け取る頭固い奴も多いしな
回答のお礼を強要してくる2chリテラシーの低いアホもでてくるだろうし

440 :デフォルトの名無しさん:2010/05/04(火) 00:57:25
とはいえ、実際2chがプログラミング系コミュニティのハブとして存在感が大きいのは事実。
マイナーな技術でも何かしらスレがあるのは大きい。代わりがあればいいんだけどな。

441 :デフォルトの名無しさん:2010/05/04(火) 01:22:00
マイナーな技術だとノイズが少ないから2chでもおk
メジャーになってくるとたちまちノイズが増えてダメになる

442 :デフォルトの名無しさん:2010/05/04(火) 03:23:01
Facebookにコミュニティ(?)作るとかじゃダメなのかな
Facebook使った事ないから、適当に言ってるけど

それとも匿名で気軽に書き込みできる方が、日本人には合ってるのかね

443 :デフォルトの名無しさん:2010/05/04(火) 09:47:09
それならふつうにGoogle Groupsとかのほうが良いんでない?

444 :デフォルトの名無しさん:2010/05/04(火) 10:02:35
mixiでいいよ

445 :デフォルトの名無しさん:2010/05/04(火) 10:36:46
黙ってgithubにコードだけコミットしていくのどーよ?


446 :デフォルトの名無しさん:2010/05/04(火) 11:16:35
SS本2章まで読んだけど、レベル高杉ワロタ
こりゃ他の言語でガシガシコード書いた経験のある人が第二言語としてScalaを入門してみよう、という意味での「入門」だなw


447 :デフォルトの名無しさん:2010/05/04(火) 13:34:51
foldLeftで大混乱してきた

448 :デフォルトの名無しさん:2010/05/04(火) 15:02:56
>こりゃ他の言語でガシガシコード書いた経験のある人

javaしか経験がない程度じゃ歯が立たないだろうな

449 :デフォルトの名無しさん:2010/05/04(火) 15:05:35
SS本難しくないだろ
8章ぐらいまでは、余裕だろ


450 :デフォルトの名無しさん:2010/05/04(火) 15:16:00
ああ、9章むずいね

451 :446:2010/05/04(火) 15:52:19
>>448
やっぱそうだよなぁ
Scalaやってるひとらすげーよ、上級プログラマだな

>>449-450
ほーどれくらいまで簡単なのかな、って見たらほぼ全部じゃねーかw

この本で難しかったら、次読もうとしてたコップ本なんて買う前から難攻不落決定だなw

Rubyあたりに行ってみるかなぁ

452 :デフォルトの名無しさん:2010/05/04(火) 16:18:00
Scalaやってる人の中にも初級と中級がいて
VBやってる人の中にも初級と中級がいるのでは
アセンブラみたいに特に言語としてScalaが難しい訳じゃないし

453 :デフォルトの名無しさん:2010/05/04(火) 16:18:58
中級じゃないや上級

454 :デフォルトの名無しさん:2010/05/04(火) 16:21:36
>Scalaやってるひとらすげーよ、上級プログラマだな

上級って言うか
少なくともjava(かC#かC++)とruby(かpython)の経験があることを前提にしているよね。
関数型言語の経験は前提とはしていないが

javaに○○の機能が無くてイライラとかしたことのあるレベルは必要って感じかな

455 :デフォルトの名無しさん:2010/05/04(火) 16:25:04
Rubyは分からないけど、コップ本はJavaを触ったことのない初学者に勧めるのは厳しいなぁと思った。

456 :デフォルトの名無しさん:2010/05/04(火) 16:25:21
一回Haskellやって関数型勉強してこいって
他の言語学習するの楽になるぞ

457 :デフォルトの名無しさん:2010/05/04(火) 16:34:00
本がJavaの説明してないだけであって言語的に難しい訳じゃないよ

458 :デフォルトの名無しさん:2010/05/04(火) 16:34:37
C#だけでも何でもかんでもLINQで書きたくなる病に発病した人なら
Scalaでサポートしてる関数指向の部分は簡単に理解出来そう
そしてプレースホルダ構文に感動する

459 :デフォルトの名無しさん:2010/05/04(火) 16:35:31
オブジェクト指向理解してない人がC++難しいって言ってたのと同じような話で
知らないから難しく見えるだけだよね

460 :デフォルトの名無しさん:2010/05/04(火) 16:45:50
>>457
説明の仕方次第ではあるね。
Java経験者としては、コップ本は細かい疑問に随時答えてくれるので助かる。

461 :デフォルトの名無しさん:2010/05/04(火) 16:48:02
入門(SSの方)とコップ見て理解できないならそもそも情報処理解ってない可能性が

462 :デフォルトの名無しさん:2010/05/04(火) 17:03:54
F#なら理解できると思うよ
Scala意味もなく難読な文法と説明で悦に入ってるだけだし


463 :デフォルトの名無しさん:2010/05/04(火) 17:07:47
そっかそっか!それでF# Expressはいつでんだよ


464 :デフォルトの名無しさん:2010/05/04(火) 17:15:01
またその流れかよw

まぁScalaが日本で流行るかどうかは日本語情報がどれだけ整備されるか、じゃないかなぁ
PHPが流行った要因の一つに、あの素晴らしい日本語ドキュメント群が挙げられると思う

ただでさえ難解と言われてるから、その上英語ドキュメントしかないとなれば、日本では流行らなさそう

465 :デフォルトの名無しさん:2010/05/04(火) 17:17:05
関数言語として突き詰めれば難解だけどJavaの拡張として考えれば難解でも何でもないと思うけどなぁ
ドキュメント云々より今Java使ってる会社がどんだけ興味示すかだと思う

466 :デフォルトの名無しさん:2010/05/04(火) 17:21:09
関数型言語として突き詰める要素なんて
ないだろw


467 :デフォルトの名無しさん:2010/05/04(火) 17:21:12
>>465
うん、そういうレベルで使われるために母国語ドキュメントは必要じゃない?

トップクラスの人たちだけが使うものなら要らないけど、オダースキー先生が目標としてる学術・研究用言語に留まらず、現場レベルで使われる言語になるには、そういうところがポイントになったりするもんだよ

468 :デフォルトの名無しさん:2010/05/04(火) 17:26:38
できる!Scalaを出して貰おう

469 :デフォルトの名無しさん:2010/05/04(火) 17:29:22
まずは短く書けるJavaとしてアピールして、その後で、
あーそういえば、関数型言語っていう側面もあってですねーと繋げるべき。

470 :デフォルトの名無しさん:2010/05/04(火) 17:34:26
これは選ばれし玄人向けの言語でニワカは入れないようにしようみたいな
変な方向に行かなければいいと思う

471 :デフォルトの名無しさん:2010/05/04(火) 17:40:54
いい意味でPHPみたいになるといいな
素人でも作れるとかdisってる奴多いけど素人でも作れるって実は凄いことだろ

472 :デフォルトの名無しさん:2010/05/04(火) 17:51:32
PHP=ブラック言語
Scala = PHP

つまりブラック言語ってことだな

473 :デフォルトの名無しさん:2010/05/04(火) 17:52:04
better PerlとしてのRubyみたいに、better JavaとしてPRすると分かりやすいと思う。

474 :デフォルトの名無しさん:2010/05/04(火) 17:53:51
PHPに負い目あるのかやたら叩く奴多いよな

475 :デフォルトの名無しさん:2010/05/04(火) 17:56:41
>>471
これは同感

流行ってしまったのが言語仕様がちょっとルーズなPHPだからアレなわけで、その他のPHPの豊富なドキュメントや入門のしやすさ、良いものを節操なく取り込む姿勢、とかは評価されてもいい

Scalaは言語仕様もしっかりしていて、ベースは申し分ないから、後はその外堀をどう形成していくかでだいぶ変わると思う

誤解を恐れずに言えば、良いものが必ずしも普及するわけではないことは、RubyやPythonが証明してくれているので、Scalaにはうまく立ち回って欲しいと本気で願う

繰り返すが他の言語を批判する気はまったくない

476 :デフォルトの名無しさん:2010/05/04(火) 17:56:48
技術力ならうちの方が上なのに簡単に作ったPHPのサイトが大儲けしやがって!
みたいなことじゃね
セキュリティホールならPerlやJavaのサイトも同じように出るわけだし

477 :デフォルトの名無しさん:2010/05/04(火) 18:04:03
>>473
んだね。
C++にしたって、文法が拡張されたCとして使い始めた御仁も多かろう。俺とか。

478 :デフォルトの名無しさん:2010/05/04(火) 18:04:48
どうせお前らみたいにコミュニティに
貢献しないで2chで愚痴るだけだろw

実際ここに今いるやつでまともなScalaのコード
書ける人間いないだろ?

まぁそうゆうことだ

479 :デフォルトの名無しさん:2010/05/04(火) 18:25:04
え?

480 :デフォルトの名無しさん:2010/05/04(火) 18:40:14
>>478
× お前らみたいに
○ 俺みたいに

481 :デフォルトの名無しさん:2010/05/04(火) 18:43:17
ちんこさん鼻息荒いですねw

482 :デフォルトの名無しさん:2010/05/04(火) 19:42:09
ドキュメントをどんどん日本語に訳して wiki にまとめサイト作ろうず

483 :デフォルトの名無しさん:2010/05/04(火) 19:44:06
>>482
どうぞどうぞ

484 :デフォルトの名無しさん:2010/05/04(火) 19:52:02
つうか、scala-lang.orgにWikiなかったっけ。

485 :デフォルトの名無しさん:2010/05/04(火) 19:56:35
scala-lang.org自体はBlogか。
こういうのはあった。
http://scala.sygneca.com/

486 :デフォルトの名無しさん:2010/05/04(火) 20:01:44
なんか凄いところに嫌がらせのように縦線があるんだが

487 :デフォルトの名無しさん:2010/05/04(火) 20:03:41
>>486
見る資格が無いのだろw

488 :デフォルトの名無しさん:2010/05/04(火) 20:16:19
ggl-gにscala--2ch
作ろうとしたんだけど既にあるみたいなんだが

489 :デフォルトの名無しさん:2010/05/04(火) 21:19:31
>>485
IE以外のブラウザだとgdgdだな

490 :デフォルトの名無しさん:2010/05/04(火) 21:28:20
yieldってどうゆうふうに使うの?
List作るだけ?

491 :デフォルトの名無しさん:2010/05/04(火) 21:39:32
>良いものが必ずしも普及するわけではないことは、RubyやPythonが証明してくれているので

えっ?

492 :デフォルトの名無しさん:2010/05/04(火) 21:46:43
>>490
map、flatMap、filterをもっているものならなんでも使えるよ
Scalaの標準ライブラリならIteratorのサブクラスはみんな使える

493 :デフォルトの名無しさん:2010/05/04(火) 21:51:03
>>492
そうなのですか。yieldが何をしているのか
よくわからないのですが

494 :デフォルトの名無しさん:2010/05/04(火) 22:05:17
>>493
for構文で結果を返したいときに使うというのはわかるよね?
それでなにに対してforを使うかによって結果が変わる
どんな結果になるかは上記の関数の実装によるんだけど、2.8になってだいぶ同じものが返るようになった
Listに対してfor、yieldを使えばListが返るし、Mapに対してはMap、Optionに対してもOptionが返る
でも必ずしもそうではないから注意

495 :デフォルトの名無しさん:2010/05/04(火) 22:35:38
>>494
それは理解しているのですが
どうゆう仕組みなのかよく解りません。

applyとかupdateのような何か別の
関数の糖衣構文なのでしょうか

496 :デフォルトの名無しさん:2010/05/04(火) 22:50:27
確かにforは構文糖衣で、上に書いたようにmap、flatMap、filterに変換される
でも、そんなにちゃんと仕組みを知る必要はないと思う
どうしても知りたければコップ本に書いてあるけど
Haskellでモナドを勉強して、Scalaのforも似たようなもんだと思うのが一番正しい理解になると思うが
別にそこまでやる必要はない

497 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/04(火) 23:03:01
>>496
後でちょっとコップ本見てきます。

yieldだけみるとモナドの規則1に従うように見えますが
結局Haskellのdo記法と同じ事が可能との認識でいいのですかね?





499 :デフォルトの名無しさん:2010/05/04(火) 23:10:14
大体そう
というか、このスレの>>92で既にそういう話があるね

500 :デフォルトの名無しさん:2010/05/04(火) 23:37:07
>>470 同意
Scalaは複雑な言語だが(学ぶにも)スケーラブルな言語だ
という話もあるんで分かるところから徐々にやってけばいいと思う。

501 :デフォルトの名無しさん:2010/05/04(火) 23:50:15
入門書とかJavaを知ってる人向けの説明が多いけど、
Rubyなど他の言語から入った人はどう学べばいいのかな
ジェネリクス知ってることが前提になってる、とかあるみたいだし

502 :デフォルトの名無しさん:2010/05/05(水) 00:14:22
Programming in Scalaは、Javaがわかればより良いって感じだと思うけどね
静的型付け言語触った事ないってんじゃなければ、Genericsもなんとなく想像できると思うし

503 :デフォルトの名無しさん:2010/05/05(水) 02:59:55
2.8.0のAPIリファレンスが、むちゃくちゃ使いにくいんだけど、これってRCだからだよね!?
正式版では2.7.7みたいに普通に戻るよね?!

このままだったらクソ過ぎる…

504 :デフォルトの名無しさん:2010/05/05(水) 03:22:50
そう思うなら力をお貸し下さい

505 :デフォルトの名無しさん:2010/05/05(水) 03:30:47
日本語の公式ページが無いのもダメだな

PHPなんて、

php.net/関数名

ってブラウザのアドレス欄に打ち込むだけで日本語リファレンス見れるんだぜ
関数名が一致しなければそのまま検索になる優れもの
こういうところは見習わないとな!

506 :デフォルトの名無しさん:2010/05/05(水) 07:40:54
>>433
meta stackoverflowってのを見つけた。
http://meta.stackoverflow.com/
2chの運営板みたいなものみたい。
バグ報告や機能要望意外に、よりよくするためにはどうするか、という
議論なんかもされてるんで
もしコミュニティサイト作る場合はなにか参考になるかも。

507 :デフォルトの名無しさん:2010/05/05(水) 08:33:14
>>505 言い出しっぺの法則

508 :デフォルトの名無しさん:2010/05/05(水) 14:18:28
「->」がよくわからない
「=>」は「x => y」なら、xを引き数でyを戻り値とする関数、みたいな意味だと理解したけど
「->」について誰か詳しく教えてください

「<:」とかも確かあるよね
ここらへんの記号の意味って検索で調べにくいんだけど、一覧になってるページとかないかなあ

509 :デフォルトの名無しさん:2010/05/05(水) 14:25:53
->って他の言語でも良くあるんじゃないの

510 : ◆ueEP8Ean2lqc :2010/05/05(水) 14:29:54
>>508
->は2要素のタプルを作る演算子。"A" -> "B"で、("A", "B")というタプルが出来る

<:は、ジェネリクスで使われる記号で、def foo[A <: B](...)とかあったら、型パラメータAは
Bのサブタイプである(継承している)ことを意味する

511 :デフォルトの名無しさん:2010/05/05(水) 14:35:44
->はArrowAssocというclassに定義されてるメソッド
Predefにany2ArrowAssocていうimplicit defが定義されてるのでどのオブジェクトからも呼び出せる
なにげに->じゃなくて→でもいける
a->bが嫌なら(a,b)でもPair(a,b)でも

512 :デフォルトの名無しさん:2010/05/05(水) 14:37:15
<-の方がよく解らないw



513 :デフォルトの名無しさん:2010/05/05(水) 14:40:27
レンタルサーバで使えるように普及させるためにはどうすればいいだろう
Javaが入ってるサーバは多少あるから(DreamHostとか)、Servletコンテナに依存ぜずに
CGI的につかえるようになればいいんだろうか

514 :デフォルトの名無しさん:2010/05/05(水) 14:44:10
>511
→でもいいのか。Smalltalkみたいだな。

515 :デフォルトの名無しさん:2010/05/05(水) 14:48:29
>>510-511
わかりやすい説明ありがとうございます
連想配列のペアを作るようなものか
PHPやってるから違和感ありまくり

こういう記号類(糖衣構文?)って、どこかにまとまってたりします?webでも紙媒体でも

516 :デフォルトの名無しさん:2010/05/05(水) 14:50:03
>>513
重量湖底のクラウド型のレン鯖借りれば自由に使えるから
それでいいんじゃない?



517 : ◆ueEP8Ean2lqc :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 :デフォルトの名無しさん:2010/05/05(水) 15:03:52
=> <- <: >: <%
はScala本体の機能で
->
は単なる関数だね

Scala本体の機能の方はコップ本でも見ればだいたい分かる
関数の方は自分がimportするライブラリのドキュメントを見ればよろし
まあPredefは特殊だけど

=> <- <: >: <%みたいな名前の関数は自分じゃ定義できないみたいだ

519 :デフォルトの名無しさん:2010/05/05(水) 15:05:40
>>518
ありがとうございます
コップ本買ってみます

520 :デフォルトの名無しさん:2010/05/05(水) 15:16:26
変則的に出てくる

;

って普通の命令型の言語のセミコロンと同義ですかね?

521 : ◆ueEP8Ean2lqc :2010/05/05(水) 15:20:42
>>520
ほぼ同じ。Scalaでも同じ行に二つ以上の式を並べたいときとかに使う
あと、Scalaに慣れてない人は普通に行末に;付けてる人が多いかも

522 :デフォルトの名無しさん:2010/05/05(水) 17:10:29
Scalaの現時点での欠点ってなんだろう?

日本語周りの処理に弱いとか聞かないし、遅いとも言われないし、難読的とも聞かないし、言語仕様がクソとか言われてないし、記述が冗長とも見かけない気がする

523 :デフォルトの名無しさん:2010/05/05(水) 17:29:50
コンパイルが遅い

524 :デフォルトの名無しさん:2010/05/05(水) 17:33:15
Liftとかコンパイルするのに5時間ぐらい
かかるしやってられん

525 :デフォルトの名無しさん:2010/05/05(水) 17:36:36
あーコンパイル速度かぁ
それはおっきなデメリットだw

526 :デフォルトの名無しさん:2010/05/05(水) 17:37:08
>>522
それらは相対的・主観的な評価じゃないか?
現時点での欠点としては、Javaと比べてIDEの出来が悪いことかな。

527 :デフォルトの名無しさん:2010/05/05(水) 17:43:52
やることないしみんなでRubyスレに突撃しようぜ

528 :デフォルトの名無しさん:2010/05/05(水) 17:49:29
本当はやることあるんじゃないか?

529 :デフォルトの名無しさん:2010/05/05(水) 18:09:02
アレが足りないこれが足りない騒いでたのにお前がやれよってなった瞬間やることないわーって

530 :デフォルトの名無しさん:2010/05/05(水) 18:40:33
現状、ScalaのWebフレームワークってLiftとWebFlavorぐらいなんだろうか
上の方でちらっと話が出てるけど、JavaのPlayってのも使えるの?

531 :デフォルトの名無しさん:2010/05/05(水) 18:43:39
C++程ではないが、時々、コンパイルエラーのメッセージが問題解決の
役に立たないことがある。

532 : ◆ueEP8Ean2lqc :2010/05/05(水) 18:57:14
>>530
Playも結構良さげ。あと、Java用だけどWicketとScalaは結構相性が良いらしい
という話をときどき聞くがどうなんだろう…

533 :デフォルトの名無しさん:2010/05/05(水) 19:01:49
Playは商用PHPフレームワークより
品質悪いから使い物にならないよ



534 :デフォルトの名無しさん:2010/05/05(水) 19:03:03
商用PHPフレームワークっていうと例えば?

535 :デフォルトの名無しさん:2010/05/05(水) 19:17:37
Monadic Design Patterns for the Web
ってどうなの?

DSLはおもしろいらしいけど


536 :デフォルトの名無しさん:2010/05/05(水) 19:54:41
IDEは将来的には動的言語より便利に補完してくれるようになりそうだよね
静的言語の補完機能に慣れ切ってると動的言語使いづらい

537 :デフォルトの名無しさん:2010/05/05(水) 21:27:54
そもそもPHPのフレームワークは品質悪いって前提が意味解らん

538 :デフォルトの名無しさん:2010/05/05(水) 21:28:49
PHPのフレームワークっていうとZendとか?

539 :デフォルトの名無しさん:2010/05/05(水) 21:30:01
>>521
最初にScalaのパターンマッチ関係の処理を
実装よりの部分から理解するにはどこから
始めればいいのでしょうか?


540 :デフォルトの名無しさん:2010/05/05(水) 22:10:29
>>522
俺もScalaの良い点だけでなく欠点も把握しておきたいな。
利点も欠点も状況しだいなとこあるので、できれば
このようなプロジェクトだとこういう問題があるよ、とか。

携帯機器向けとかだとランタイムが大きくなっちゃうから
proguardなどを使う必要がある。

スクリプトとして使うには起動が重い
ものによってはREPLたちあげっぱにしといて、ロードして使う

上でerasureの話がでてるけど、Javaとの互換性やJVMで動くことは
利点にも欠点にもなる

検査例外が無い
検査例外の必要性は人によって分かれそう
ここではバージョニングとスケーラビリティが問題視されてる
http://pub.ne.jp/1691/?entry_id=1129006
高階関数使う言語だとうまく働かない、という話も

ライブラリが中途半端
ファイル入出力とか、基本的なものがまだ整備されてなくて
Javaのものを使用する必要がある

現状日本語情報がまだ少ないのも欠点か

541 :デフォルトの名無しさん:2010/05/05(水) 22:29:11
>>540

>>携帯機器向けとかだとランタイムが大きくなっちゃうから
>>proguardなどを使う必要がある。

互換性の検証必要だけど、Android用のScala.jarって2MB切ってるし
実質64MBあれば動くし、今後ハードがJVMの性能上がれば誤差みたいな
問題になるよ。家電にOSGi入れるとかアホなことやってる連中からすると
よっぽど現実的だと思うよ



542 :デフォルトの名無しさん:2010/05/05(水) 22:39:56
>>541
Android用のScala.jarってあるのか!
サイズが問題になりそうな場面では使えそう。
アプレットとか

543 :デフォルトの名無しさん:2010/05/05(水) 22:40:08
Androidにとって、2MBって死活問題では・・・?

544 :デフォルトの名無しさん:2010/05/05(水) 22:43:48
>>543
OpenWnnとか4M越えてるし
許容範囲でしょ。

現状、性能度外視状態だけど
ARM 600Mhz メモリ256MBの環境で
動くことは動くよ





545 :デフォルトの名無しさん:2010/05/05(水) 22:51:05
トータルちゃうでしょ。
Androidの仕様上は、アプリ毎にJVM起動していくわけだから、Scala使うアプリ毎に2MBずつ
という計算になるんじゃね?
あと、1個のアプリが使える空間も少ないとかなんとか。


546 :デフォルトの名無しさん:2010/05/05(水) 22:58:21
2MBってjarのアーカイブの大きさで食うメモリの話じゃないんじゃないのか

547 :デフォルトの名無しさん:2010/05/06(木) 00:32:11

Twitterって今はScalaで実装されてるんだっけ?
 


548 :デフォルトの名無しさん:2010/05/06(木) 00:38:01
バックエンドはね

549 :デフォルトの名無しさん:2010/05/06(木) 01:17:21
Androidアプリの話は興味あるな
処理速度や機能的にはJavaと全く同等で、ファイルサイズだけが問題なのかな?現状

550 :デフォルトの名無しさん:2010/05/06(木) 05:29:24
http://stackoverflow.com/questions/1383320/poll-what-is-stopping-you-from-switching-from-java-to-scala
http://groovy.dzone.com/articles/why-scala-actors-15-20-times

何度も通ってきた道だけど
クライアントにはあんま向かないとは思う

551 :デフォルトの名無しさん:2010/05/06(木) 14:44:17
>>546
jarだから実際のクラスファイルはメモリ上で増えるんじゃね?
もちろん、全てのScalaクラスをロードする訳じゃないとは思うけど。


552 :デフォルトの名無しさん:2010/05/06(木) 20:11:26
Scalaやってる人ってなんていうの?
Scaler?Scalist?

553 :デフォルトの名無しさん:2010/05/06(木) 20:21:47
スカルマン

554 :デフォルトの名無しさん:2010/05/06(木) 20:42:32
スカトロジー

555 :デフォルトの名無しさん:2010/05/06(木) 22:14:31
>>550
上のほうのリンクの「なぜScalaを使わないのか」は
IDEが未成熟だからって意見がつよいのか
Javaのやつが便利すぎるからなぁ
あとエコシステムがもっと回らないと、とか
レビュワやメンテナに読みづらいコードが量産されそう、とか
そもそもJavaでうまくいってるのに移行する理由がない、とかおもしろい。

556 :デフォルトの名無しさん:2010/05/06(木) 22:19:35
Scalaはもっと馬鹿に迎合しないと普及しない

557 :デフォルトの名無しさん:2010/05/06(木) 22:22:48
>>550
下のリンクのやつはよくわからんな。
ActorとFiberを比べてる?別物な気がするんだが。
Fiber欲しい、というならわかるが。

パフォーマンス求めるならAkka使うといいかも。

情報古いが、Erlangと比べるとさすがに差がある。
ErlangはVMからチューニングしてそうだし。
http://rainyday.blog.so-net.ne.jp/2007-05-20

558 :デフォルトの名無しさん:2010/05/06(木) 22:25:02
>>541
ちょうどアンドロイドのコードサイズの話が
http://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 :デフォルトの名無しさん:2010/05/07(金) 00:12:24
>>550
Scalaよりgrovyがもの凄く優れているんですね

561 :デフォルトの名無しさん:2010/05/07(金) 00:36:44
>>550
そもそもactorのサンプル2.8じゃ
動かないから計測不能だしFUDだろ?

562 :デフォルトの名無しさん:2010/05/07(金) 01:02:30
>>550
上のほう、マイナーバージョンが変わるとバイナリの
互換性が無くなるのも理由に挙がってるね
2.8だとコードの互換性もない、と

563 :デフォルトの名無しさん:2010/05/07(金) 08:04:52
>>550
> http://stackoverflow.com/questions/1383320/poll-what-is-stopping-you-from-switching-from-java-to-scala

2chと同じレベルのレスが並んでいるな。

564 :デフォルトの名無しさん: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を引数にとるものもあるようです
http://www.scala-lang.org/docu/files/api/scala/io/Source$object.html#fromFile%28String%29
が、こちらのメソッドを使用するにはどうすれば良いでしょうか。

あと、本の通りでは動かないというのは、2.7の頃から仕様が変更されているのでしょうか。

565 :564:2010/05/07(金) 16:40:05
自己解決。2.8では
Source.fromPath(args(0)).getLines()
なんですね。
行末の改行の扱いが変わってるっぽいですけど。

566 : ◆ueEP8Ean2lqc :2010/05/07(金) 20:04:19
>>565
2.8では、getLinesが行セパレータseparatorを引数として取るようになっているから、そのせいだね
separatorのデフォルト値はそのプラットフォームのデフォルトの改行コードになってるみたい

567 :デフォルトの名無しさん:2010/05/07(金) 20:06:27
今から初心者がSS本やコップ本でやり始める場合、2.7.7と2.8RCのどっちが使った方がいい?
Rubyでいうところの1.8.7と1.9系みたいな

568 : ◆ueEP8Ean2lqc :2010/05/07(金) 20:08:58
>>567
2.7.7使うのが無難。SS本もコップ本も2.8を前提にしないので、サンプルコードがそのままでは
コンパイルを通らない可能性がある。一度2.7で学んだ後、2.8に移行すること自体はそれほど
難しく無いので、安心して良いと思う

569 :デフォルトの名無しさん:2010/05/07(金) 20:21:21
>>568
そかーサンクス
REPLの補完にちょっと惹かれたけど、とりあえずは2.7.7で頑張ってみる

570 :デフォルトの名無しさん:2010/05/07(金) 23:18:13
>>568
2.8でも大半動くし、動かないのを調べるだけ、本以上の
学習が身につくのに何故に、楽な方、楽な方、安全な方という
導き方をするんだろうなぁ

意味がわからん

571 :デフォルトの名無しさん:2010/05/07(金) 23:21:41
>>570
そんなの後からでも良いのでは。

572 :デフォルトの名無しさん:2010/05/07(金) 23:56:06
>>570
先ず入りやすい方法を示すのは良いやり方だと思うが。
それで「もっとやれる」と思うような人は更に別の方法を自分で採れるはずだし。

ただ今後はwebで見かけるサンプルコードなどは2.8のものが
多くなると思うのでそこらは注意が必要かも。
本のサンプルにそんなにこだわらないのなら2.8からやるのもありだと思う。

573 : ◆ueEP8Ean2lqc :2010/05/08(土) 00:00:49
>>570
うーん。しょっぱなからくだらない点でつまづくと、それが原因で学習する意欲自体が
削がれるということがしばしばあるので、そのリスクは少ない方がいいだろうと思う。

それに、2.8はまだ安定版が出ておらず、仕様面でもまだ変更される可能性のある部分が
残っているので、(RC1ではspecialize絡みでLiftなどで不具合が発生してて、それをfixした
RC2が近いうちに出る予定)、正直言って、既に2.7を十分知っていて、2.8で導入された
機能に魅力を感じているユーザ以外にはまだあまりお勧めしたくない。
2.7→2.8の移行自体はそれほど難しくないから、後でも構わないと思う。

574 :デフォルトの名無しさん:2010/05/08(土) 00:05:18
>>573
>うーん。しょっぱなからくだらない点でつまづくと、それが原因で学習する意欲自体が
>削がれるということがしばしばあるので、そのリスクは少ない方がいいだろうと思う。

こうゆうのは排除でいいだろw
モンキーコード書くような連中増やすのが目的なの?




575 :デフォルトの名無しさん:2010/05/08(土) 00:11:35
>>574

モンキーだろうがなんだろうが、ある程度ユーザが増えないことには頭の固い上司を説得できないじゃん。
趣味でしか使わないのならそれでもいいのだろうけど。

576 :デフォルトの名無しさん:2010/05/08(土) 00:16:06
>>575
SS本の9章読め

アホで無知なユーザを増やすんじゃなくて
正しく利点と欠点を説明可能な技術者を着実に
増加させるのがあるべき方向だろ。

クソアプリ量産されて、クソ言語って評判が広まる方がいいの?

577 :デフォルトの名無しさん:2010/05/08(土) 00:20:39
http://www.scala-ide.org/
これって前からある?

578 :デフォルトの名無しさん:2010/05/08(土) 00:24:05
>>576
>>470

579 :デフォルトの名無しさん:2010/05/08(土) 00:25:06
間口が広いに越したことはないな。

580 : ◆ueEP8Ean2lqc :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 :デフォルトの名無しさん:2010/05/08(土) 00:30:53
現時点ではまだだけど将来的にscalaの場合、静的だからIDEの高度なインテリジェンスな補完を期待できるの?(Javaみたいな)
それともコンパイルするまで型推論されないからIDE上では動的と大差なくてあんまり期待できない?

583 : ◆ueEP8Ean2lqc :2010/05/08(土) 00:32:50
>>577
いや、そのサイトに移行したのはかなり最近、というかScala Daysでちょうど
Scala Eclipse Plugin開発者のMiles Sabinが移行の話をしてたと思う。

584 :デフォルトの名無しさん:2010/05/08(土) 00:35:37
>>583
なるほど。サンクスです

585 :デフォルトの名無しさん:2010/05/08(土) 00:41:13
>>582
Javaでも構文解析とかはしてるし、ScalaのIDEが型推論機構を持てばできるんじゃない?
というかコンパイラが持ってるのを使えばいいのか。

586 :デフォルトの名無しさん:2010/05/08(土) 00:48:36
>585
そのへん、2.8からちゃんとやるから、Eclipseの腐れプラグインも2.8から
まともになるよーとかいう記事があった気がする。

587 :デフォルトの名無しさん:2010/05/08(土) 00:49:24
>>580
一時の安全、安定が本当に学習意欲に繋がるとは
考えられんし、業務でもないのにリスク回避が正しいとは
とても思えん。

日本のトップScala技術者がそう言うならこれで引き下がるか。

588 : ◆ueEP8Ean2lqc :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 :デフォルトの名無しさん:2010/05/08(土) 00:52:05
現状(2.7系)でメソッドやプロパティをまともに補完してくれるIDEってある?
2.8を待たないと無理なのかしら

みなさんどんな環境でスカラってますか?

590 : ◆ueEP8Ean2lqc :2010/05/08(土) 01:04:52
>>587
いや、日本のトップScala技術者というわけではないですし、コーディングスキル
も全然高く無いです。あくまでScalaの言語仕様については(日本では)詳しいというだけです。

というのはともかくとして、リスク回避というのは、サンプルコード動かねー、とか
scaladoc2のAPIリファレンスが読みづれー、とか、正直言って些細な部分でつまづかれて、
Scala使えねーという評判が広まるのは避けたいなあ、というのもあります。
2.8安定版が出て、仕様がFIXされた後なら状況はまた別ですけど。

591 :デフォルトの名無しさん:2010/05/08(土) 01:06:30
>>588
コンパイラのAST(抽象構文木)パーサとかを流用すればすぐ実装できるんじゃ、
とか思ってしまうんだけど、技術的にどのへんがチャレンジになってるんだろ?
単に内部APIがきちんと整備されてないだけ?

592 : ◆ueEP8Ean2lqc :2010/05/08(土) 01:07:18
>>588
自己レス。うぎゃ。averageの定義が平均じゃなくて合計値になってるorz
summationとかに適当に読み換えてください。

593 : ◆ueEP8Ean2lqc :2010/05/08(土) 01:11:49
>>591
implicit conversionを考慮に入れた補完はかなりチャレンジングだと思う。
implicit conversionに関する規則って結構複雑で、パーサ持ってればすぐ実装
できる、という程簡単ではない。その辺を一発で処理してくれるAPIをコンパイラが
持ってなければ自前で実装しなけりゃいけない…(ひょっとしたら持ってるかも)。
C#のExtension Methodなんかも結構補完大変だと思うんだけど、Visual Studioは
よく補完実装してるなーとか思ったことがある。

594 :デフォルトの名無しさん:2010/05/08(土) 01:26:57
>>593
なるほど。
その辺が完璧に処理できるようになると強力なウリになるんだけどなぁ。

職場がテストコードにGroovyを導入してるんだけど、便利は便利なんだが、一方でIDEの強力さを思い知ったりしている。
Groovyは別に用途があると思うけど、従来のJavaの位置のリプレースとして有望なのは、やはりScalaじゃないかな、と。

595 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/08(土) 01:51:00
NetBeans売却されるからなぁ

597 :デフォルトの名無しさん:2010/05/08(土) 01:52:14
Eclipseはエディタのカラー替えるプラグインみたいなのなんでないの糞すぎ

598 :デフォルトの名無しさん:2010/05/08(土) 01:55:42
>>596
ほんとに?そんな話初めて聞いたけど…


599 :デフォルトの名無しさん:2010/05/08(土) 02:05:04
>>597
とりあえずMoeclipseでググるといいと思うよ。

600 :デフォルトの名無しさん:2010/05/08(土) 06:58:23
やっぱEclipseが本命か

601 :デフォルトの名無しさん:2010/05/08(土) 08:56:10
Java, JavaVM, EclipseもMSに潰されるから無問題

602 :デフォルトの名無しさん:2010/05/08(土) 11:06:54
Summer of CodeにEmacsの開発環境のプロジェクトがあったから期待している

603 :デフォルトの名無しさん:2010/05/08(土) 11:38:37
traitがclassに対してextendsする場合はそのクラスもしくはサブクラスに対してのみmixinできるという制約で
traitに対してextendsする場合はそのtraitを継承するっていう理解でいいですか

604 :デフォルトの名無しさん:2010/05/08(土) 13:08:17
◆ueEP8Ean2lqc氏とmatzがやりあってるぞ! と野次馬的に。

605 : ◆ueEP8Ean2lqc :2010/05/08(土) 13:55:12
>>604
まあ別に見られても構わないんですけど、自分的には別に喧嘩してるつもりはなくて
普通に論争してるだけのつもりなんで。念のため。
# 正直、今回の自分の論については、ショボい例以外で良いのを
# 思いつかないのは事実なので、主張としては弱いよなーとか思ってたり。

606 :デフォルトの名無しさん:2010/05/08(土) 13:57:47
RubyダサいはJavaプログラマの総意だから問題ないよ

607 :デフォルトの名無しさん:2010/05/08(土) 15:11:01
センス論争は難しいなぁ。
生産性、と言い換えてもいいんだが、これも恣意的に使える言葉だし。

608 :デフォルトの名無しさん:2010/05/08(土) 15:20:47
JavaからRubyへって本読んだけど過去最高のトンデモ本だったわ

609 :デフォルトの名無しさん:2010/05/08(土) 15:28:30
Rubyダサいってどんなところ?
Scalaと比較して?

あのmatzと論争してんのか、すげーなw

610 :デフォルトの名無しさん:2010/05/08(土) 15:34:47
PerlやPHPやJavaをdisることでしか存在意義を見いだせない言語だから仕方ない

611 :デフォルトの名無しさん:2010/05/08(土) 15:36:00
あのクソ宗教本のせいでRuby使わされてウンザリしたよ

612 :デフォルトの名無しさん:2010/05/08(土) 15:38:21
Pythonへの不満はインデントのセンスがないことくらいだけど
Rubyはありすぎて書ききれない

613 :デフォルトの名無しさん:2010/05/08(土) 15:56:56
とりあえずコップ本の次はRuby勉強してみるか。
http://dev.ariel-networks.com/articles/workshop/ruby/

614 :デフォルトの名無しさん:2010/05/08(土) 15:58:35
2002年くらいにJavaやPerlの代替探しててRuby勉強しててこりゃ駄目だと思ったけど
まさかRoRが出てきてあの言語が流行るとは思わなかったわ


615 :デフォルトの名無しさん:2010/05/08(土) 16:04:05
DSLが作りやすいあたりとかは共通点なんじゃないかね、よく知らんけど。

616 :デフォルトの名無しさん:2010/05/08(土) 16:08:37
Railsやらされてすげー苦痛だった。Rubyしかできない連中とは仕事したくない。
型チェックがないととんでもないアホな単純ミスを見逃したりする。しかもテストは
数が多いがコンパイルチェック以下みたいなレベルのばっかりだったりとか。
Scalaには本当にがんばってほしい。流行すれば同じような境遇の人には福音となるはず。

617 :デフォルトの名無しさん:2010/05/08(土) 16:12:01
バグが出来るのは作る奴の問題で言語のせいではないと思うぜ

618 :デフォルトの名無しさん:2010/05/08(土) 16:14:15
タイプミスしても実行するまで検出できないとかは言語のせいだと思うね。

619 :デフォルトの名無しさん:2010/05/08(土) 16:15:20
>>617
もちろんその通りだが、うみやすい言語とそうじゃない言語はあると思う



って昔matzがPHPをdisってる時に言ってました

620 :デフォルトの名無しさん:2010/05/08(土) 16:19:04
>>618
CでもJavaでも意識してタイプセーフにしないとどっちにしろ意味ないけど
もちろんScalaも

621 :デフォルトの名無しさん:2010/05/08(土) 16:20:10
PHPとRubyは同じようなもんだと思うんだが
というかむしろRubyの方が生みやすい気もする

622 :デフォルトの名無しさん:2010/05/08(土) 16:24:43
>>621
あ、一応補足しとくと>>619でmatzが言った時は「PHPはセキュリティ的に問題のあるコードを生みやすい」って意味で使ってたから、バグとは厳密には違う

まぁ「書く人次第」という主張に対する反論としては大差ないけどね

623 :デフォルトの名無しさん:2010/05/08(土) 16:27:22
セキュリティ的に問題のあるコードを生みやすいってのがまず意味が解らんけどな
PHPで問題出す奴はJSPで書いてもeRubyで書いても同じ事するだろ

624 :デフォルトの名無しさん:2010/05/08(土) 16:29:48
プログラマの間口が広いか狭いかだけの問題だと思うな
Rubyは今まで初心者がいきなり使うことがなかったからセキュリティ問題が発生しづらかっただけで
初心者をガンガン受け入れてきたPHPとはプログラマの質が違うんだから
言語仕様よりコミュニティの方針で絞っただけに過ぎないと思う

625 :デフォルトの名無しさん:2010/05/08(土) 17:34:01
自治体なんかでRubyに補助金とか出しているところがあるけどなんの意味があるんだろう
Scalaの方が遥かに優れているし、競争力もあがるのに

626 :デフォルトの名無しさん:2010/05/08(土) 17:39:29
とりあえず他言語disってるだけのやつは全員消えてくれ。

627 :デフォルトの名無しさん:2010/05/08(土) 17:40:18
>>625
某自治体の職員曰く、国産言語だから
金出すって言ってたなぁ。それ以上よくわからないし
聞かれても、書類のとおりとしか言えないってさ

そんなんだから何時までたっても
バカITが続くのだろうなぁ

628 :デフォルトの名無しさん:2010/05/08(土) 17:52:44
クズどもはこっちでやれ
http://pc12.2ch.net/test/read.cgi/tech/1249737531/l50

629 :デフォルトの名無しさん:2010/05/08(土) 18:37:07
なでしこひまわりの方がマシだな

630 :デフォルトの名無しさん:2010/05/08(土) 19:07:32
SS本の冒頭にちょうど
JavaからRubyへ...そしてScalaへ...
っていう節があるね。

631 :デフォルトの名無しさん:2010/05/08(土) 19:12:28
適用領域が違うだけだと思うなぁ。
Scalaの立ち位置は「ライトウェイトJava」でしょ。

632 :デフォルトの名無しさん:2010/05/08(土) 19:12:45
Liftの作者は、そういうノリでしょ? 長いことrails使ってたけど、ありゃやっぱ言語が駄目だわって動機でLift開発に至ると。

633 :デフォルトの名無しさん:2010/05/08(土) 19:13:42
twitterがscalaに移行しているみたいなこと言ってたけど
どの程度移行したんだろう

634 :デフォルトの名無しさん:2010/05/08(土) 19:21:44
>>632
そういうことってどこに書いてあるさ?

>>633
バックエンドを全部。フロントエンドは今もRails

635 :デフォルトの名無しさん:2010/05/08(土) 19:21:58
>>633
100%書き直し

636 :デフォルトの名無しさん:2010/05/08(土) 19:33:58
煽りたいだけの奴がいるな。。

637 :デフォルトの名無しさん:2010/05/08(土) 19:37:09
>634
本人のblogやインタビュー記事。
本(Beginning Scala)にも書いてたかな。


638 :デフォルトの名無しさん:2010/05/08(土) 19:37:59
ム板はしょうもないやつが多すぎるからな

639 :デフォルトの名無しさん:2010/05/08(土) 21:11:57
Scalaスケーラブルプログラミングって本ってどうなの?

640 :デフォルトの名無しさん:2010/05/08(土) 21:16:15
>>639
上のほうのコップ本でしょ?

641 :デフォルトの名無しさん:2010/05/08(土) 21:19:10
コップ本は大体理解したんだけど、その後でSS本って読む意味ある?

642 :デフォルトの名無しさん:2010/05/08(土) 21:40:12
rails経験者でscala/liftに興味持ってるんですが、
liftってubuntuの上にインストールすることってできないんでしょうか??
色々調べてもWindowsにインストールしてる記事しか見つけられませんでした。
もしかしてLiftってEclipseと一緒に使うものなんでしょうか?
教えていただけると幸いです。

643 :デフォルトの名無しさん:2010/05/08(土) 21:43:22
特にないんじゃないかな。
コップ本が難しかったら、SS本に手を出す価値はあると思う。
SS本は名前の通り入門本なので、入門レベルを乗り越えたら不要になるタイプの本。

644 :デフォルトの名無しさん:2010/05/08(土) 21:45:20
>>642
liftはmavenから使うのが普通だと思うけど

645 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/08(土) 22:02:29
下手な煽りがまざってるな、だから2chはだめなんだよ

648 :デフォルトの名無しさん:2010/05/08(土) 22:10:21
>>646
gitはバージョン管理。
Mavenはごちゃ混ぜになっちゃったけど元はライブラリ管理のものだったはず

649 :デフォルトの名無しさん:2010/05/08(土) 22:15:46
>>646
Railsやってたのなら、Mavenは rake + rubygems みたいなものと思えばいいんじゃないかと。

650 :デフォルトの名無しさん:2010/05/08(土) 22:54:42
>>646

むしろ Ubuntu/Linux のほうが Windows より簡単にできるよ
ターミナルでやるのに慣れてるならなおさら

651 :デフォルトの名無しさん:2010/05/08(土) 23:09:13
matzと論争してる人、まだ続いてるのか?w

誰かログ残ってる人トゥギャっておいてくれよ

652 :デフォルトの名無しさん:2010/05/08(土) 23:29:10
読んでみようと思ったけど、長すぎて断念w
IDEも含めれば静的型付けの恩恵はわかりやすいんだけどね
パターンマッチを別の問題にしてるのは紳士的だねw
俺なら真っ先に言いたくなるけど

653 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/08(土) 23:56:40
静的型言語で一般的なレンタル鯖でCGI作れて開発環境や汎用ライブラリも揃ってるとなるとやっぱCしかない?

657 :デフォルトの名無しさん:2010/05/08(土) 23:59:34
なぜここでその質問w
ここのスレ的にはGAE/JをScalaでやるにきまってる

658 :デフォルトの名無しさん:2010/05/09(日) 00:01:41
いやその分野に食い込めたらRubyやPythonの上行けるよなーって思ったんで

659 :デフォルトの名無しさん:2010/05/09(日) 00:37:00
たしかに言語がいかによくても気軽に使える環境がないと厳しいな

そういう意味じゃPHP/Perlにはもちろん、まだまだRuby, Pythonにも遠く及ばないか

660 :デフォルトの名無しさん:2010/05/09(日) 00:40:08
Javaなんてかなり古参なのにデフォで使えるようになってないレン鯖が多いのはなんで?

661 :デフォルトの名無しさん:2010/05/09(日) 00:42:48
>>660
鯖屋のスキル不足

662 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/09(日) 01:20:44
仕様が固まらんとD言語やPython3みたいな悲劇起きそうだからまだ流石にScalaに移行はできんな
メジャーバージョンアップがあってもPHP4→5くらいの修正で済むようにならんと厳しいなやっぱ

665 :デフォルトの名無しさん:2010/05/09(日) 01:21:31
Parrotっていつ完成するんだろうね。
あれが出来てれば、Scalaもそっちで作られてたかもしれんし。


666 :デフォルトの名無しさん:2010/05/09(日) 01:27:14
>>664
でも割としっかりしてるからtwitterとかforsquareみたいな大きいとこが採用したんじゃないの?

667 :デフォルトの名無しさん:2010/05/09(日) 01:29:09
しっかりしてなかったRuby採用したのがtwitterだからな…

668 :デフォルトの名無しさん:2010/05/09(日) 01:29:49
大きいところは自分でメンテやるんじゃね?
Yahoo!JapanなんてFreeBSDやMySQLですら独自に作り替えちゃってるし

669 :デフォルトの名無しさん:2010/05/09(日) 01:50:48
Scalaのクラスライブラリは、IO系が手抜きなのが意外。
普通、新しい言語のライブラリって、IO系から固めないか?

670 :デフォルトの名無しさん:2010/05/09(日) 01:57:48
関数型言語はそうじゃないよ

671 :642:2010/05/09(日) 02:03:55
レスありがとうございます。
とりあえずubuntuにscala/maven入れてhelloWorldのところまではいけました。

これから色々いじってこうと思ってるんですが、ちなみにliftはRailsみたいにRestを意識した感じではないのですかね?
「lift restful」な感じでググってもあまり出てこなかったので。

672 :デフォルトの名無しさん:2010/05/09(日) 02:13:29
>>669
Javaのライブラリで事足りたからじゃね?

673 :デフォルトの名無しさん:2010/05/09(日) 03:06:27
scala.io.Sourceとかってコンパイラ用だからあんま使わないでくれ
って話無かったっけ?もうOKなのかな?

674 : ◆ueEP8Ean2lqc :2010/05/09(日) 03:19:59
>>669
コレクションライブラリを一番優先してる、という印象を受けるね。Scalaの場合。
2.8のコレクションライブラリなんか、良くも悪くも特異な設計になってるし。

675 :デフォルトの名無しさん:2010/05/09(日) 05:02:59
scala-mode.elつかってみたんやけど、
def hoge {
 val foo = if (boolValue) (x, y) else (x, y)
  ここ
と、末尾が)で終わる式(?)の次行が強制でインデント(「ここ」の位置にくる)
されてまう気がするけど、なんとかならないもんかな?


676 :デフォルトの名無しさん:2010/05/09(日) 09:04:01
自分で直せば?

677 :デフォルトの名無しさん:2010/05/09(日) 09:07:32
ScalaのIOは腐ってるから
使えない。だから流行らないんだよ

678 :デフォルトの名無しさん:2010/05/09(日) 13:49:16
>>とりあえずubuntuにscala/maven入れてhelloWorldのところまではいけました。

教えてくだしあ><
そこまでいけない・・

679 :デフォルトの名無しさん:2010/05/09(日) 19:58:59
にょろ演算子って
タプル作る演算子なんですか?



680 : ◆ueEP8Ean2lqc :2010/05/09(日) 20:15:47
>>679
たぶんパーザコンビネータの~演算子のことだと思うけど、ちょっと違う
~演算子は、「パーズ結果として~[T, U]を返すパーザ」であるParser[~[T, U]]型のオブジェクトを
返す(Tはレシーバの型で、Uが引数の型ね)
~[T, U]はタプルとは別の型だけど、意味的には(T, U)と似たようなものだと思って間違いない

681 :デフォルトの名無しさん:2010/05/09(日) 20:28:36
>>680
Parser[~[T, U]]というのは

例えば、a ~ b ~ cって返すと入れ子
になるってことですかね?

682 : ◆ueEP8Ean2lqc :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
http://d.hatena.ne.jp/hkweb/20100508

684 :デフォルトの名無しさん:2010/05/10(月) 00:14:07
新しいscala本はいまいち
コップ本があればいらないかな

685 :デフォルトの名無しさん:2010/05/10(月) 00:35:49
SSいらんみたいな自称玄人の自慢話はもういいから

686 :デフォルトの名無しさん:2010/05/10(月) 00:37:21
SSサイコー

687 :デフォルトの名無しさん:2010/05/10(月) 00:43:52
レベルや対象が違うにせよコップ本とSS本の2つは良書で間違いなさそうだけど、他の和書は話にならないレベル?

あとこれから出るので期待できそうなのとかあるのかな

688 :デフォルトの名無しさん:2010/05/10(月) 00:53:37
SSは別に良書じゃないだろ

689 :デフォルトの名無しさん:2010/05/10(月) 01:30:42
工学社の方は普通の入門書

690 :デフォルトの名無しさん:2010/05/10(月) 21:36:14
Scalaで、2つの変数に同時に代入するのってどうやるのだろう?

Rubyだったら

y0, y1 = x0+1 , x0*x1+2

って感じ。

691 :デフォルトの名無しさん:2010/05/10(月) 22:12:37
2つ同時に代入したいなら、こんなんでいいけど、
val (a, b) = (1, 2)
これってパターンマッチと同じ仕組みなので、
val Some(a) = Some(1)
とかもできる

692 :デフォルトの名無しさん:2010/05/10(月) 22:15:47
>691
その書き方で正規表現やってるのを見たときは、ちょっと衝撃だった。


693 :デフォルトの名無しさん:2010/05/10(月) 22:20:28
そして、Extractorを自分で定義できるからね
いい言語だよねw

694 :デフォルトの名無しさん:2010/05/10(月) 22:23:43
>>691
下の例がよくわからない
生成されたSomeオブジェクトにSomeオブジェクトを突っ込んでるように見えるけど…

どなたか素人にもわかるように説明してもらえませんか

695 :デフォルトの名無しさん:2010/05/10(月) 22:28:08
左のSomeはコンストラクターパターンと言って、パターンマッチの一種なんだよね
詳しくはScalaのパターンマッチについて調べるといいよ

696 :デフォルトの名無しさん:2010/05/10(月) 22:41:46
>>695
詳しく説明もできない
知ったかは消えろよw

697 :デフォルトの名無しさん:2010/05/10(月) 22:47:08
はあ、またか
2chって頭がおかしいやつばっかだな

698 :デフォルトの名無しさん:2010/05/10(月) 22:53:54
RC2が出たみたいだけど、バグフィックスだけかな?

699 :デフォルトの名無しさん:2010/05/10(月) 22:59:33
>>698
本家でもバグてんこ盛りで使えないだろって
避難が凄いみたい

700 :デフォルトの名無しさん:2010/05/11(火) 01:06:53
どこにそんな情報が?

701 : ◆ueEP8Ean2lqc :2010/05/11(火) 01:16:34
>>700
>>701の言ってるのがRC2のことだとすると、確かにそんな情報は見当たらないので
変だけど(つか、RC2出たばかりだし)、たぶんRC1のことだと思う。RC1では、
specialization絡みでバグがあってLiftのテストケースが失敗するとか、specsの挙動
もなんかおかしいとかそういう話を見かけた覚えがある。RC2はその辺のバグを軒並み
フィックスしたバージョンになってる(たぶん)。

702 : ◆ueEP8Ean2lqc :2010/05/11(火) 01:17:24
アンカーミス。>>701じゃなくて>>699ね。

703 :デフォルトの名無しさん:2010/05/11(火) 16:43:15
IteratorのflatMapはIteratorを受け取るんだなTraversableOnce受け取って欲しいわ
TraversableのflatMapも

704 :デフォルトの名無しさん:2010/05/11(火) 22:51:59
知人がScala勧めてきた。理由はTwitterが使ってるから。
そんな理由で人に勧めるなんて・・・

705 :デフォルトの名無しさん:2010/05/11(火) 23:05:03
twitterがscalaを使い始めたのは成功した後
それまではruby railsを使っていたんだから
ruby railsを薦めるべき

706 :デフォルトの名無しさん:2010/05/11(火) 23:17:37
twitterくらいでかくなるまではRubyで十分だな

707 :デフォルトの名無しさん:2010/05/11(火) 23:18:09
java-jaの人らがこのスレを話題に出しててわろた

708 :デフォルトの名無しさん:2010/05/11(火) 23:23:52
java-jaってなんだよ

709 :デフォルトの名無しさん:2010/05/11(火) 23:52:13
SS本の帯にも書いてあるからねw
今、人に進めるのにこれ以上ない宣伝文句じゃね

ところでScalaを学ぶ前に知っておくと特に役立つ言語って、Javaは確定として、残りはRubyとかHaskellあたりかな?


710 :704:2010/05/11(火) 23:54:41
>>705>>706

オレもRORについては言及したんだが、そいつもうSS本買っちゃって鼻息
荒いのなんのって・・・ んで、「オマエもやれ」って・・・

この友人には言ってないんだけど、オレプライベートではHaskellerなんだよね・・・

711 :デフォルトの名無しさん:2010/05/12(水) 00:03:03
あの、駄目な友人の愚痴を披露する場ではないんだけど

712 :デフォルトの名無しさん:2010/05/12(水) 00:06:44
ビルドツールってなにがお勧め?

713 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/12(水) 00:39:26
ビルドツールは、みんなsbtに移行してるのかな

715 :デフォルトの名無しさん:2010/05/12(水) 00:50:51
>>713
xml.child.filter(_.getClass == classOf[scala.xml.Text])

716 :デフォルトの名無しさん:2010/05/12(水) 01:06:27
isInstanceOfは使わないのかい?

717 :デフォルトの名無しさん:2010/05/12(水) 01:11:40
><
ムギュ・・その通り・・・

xml.child.filter(_.isInstanceOf[scala.xml.Text])

718 :デフォルトの名無しさん:2010/05/12(水) 01:30:46
isInstanceOfの所の角括弧の使い方が何だか奇妙に感じる。
文法的にはどうなってんだ、これ。

719 : ◆ueEP8Ean2lqc :2010/05/12(水) 02:07:39
>>718
文法的にはAny型に所属している普通のメソッド(単に型パラメータを取る=ジェネリックというだけ)。
内部的にはコンパイラが特別扱いしてinstanceof命令に変換してる

720 :デフォルトの名無しさん:2010/05/12(水) 02:19:12
あ、そうか。引数無しのメソッドなんだな。

しかし、
List(1).isInstanceOf[List[String]]
が true になるのは、やはりダサいな。

721 :デフォルトの名無しさん:2010/05/12(水) 02:49:17
>>720
ダサい Java との相互運用性を考えれば仕方あるまい

722 :デフォルトの名無しさん:2010/05/12(水) 08:11:13
それはパターンマッチを使えというご託宣、ってコップ本がゆってた。

723 :デフォルトの名無しさん:2010/05/12(水) 18:26:05
守備力age

724 :デフォルトの名無しさん:2010/05/12(水) 20:49:19
レンタルサーバーで気軽に使えるようにならないと普及はきつい。
エンタープライズはjavaのままだろうし。
schemeやgoなどがもいまいちなのは、サクラインターネット月1000円レベルでwebアプリがかけないから。

皆さんはどう思います?

725 :デフォルトの名無しさん:2010/05/12(水) 20:59:03
レンタルサーバの時代は終わり
GAEやEC2なんかで使えれば無問題

726 :デフォルトの名無しさん:2010/05/12(水) 21:01:09
それレンタルサーバだから

727 :デフォルトの名無しさん:2010/05/12(水) 21:24:21
じゃあJava/Scalaもレンタルサーバで気軽に使えるから無問題

728 :デフォルトの名無しさん:2010/05/12(水) 21:29:43
PHPが普及した要因のひとつもそこだろうけど、GAEってタダだっけ?
値段やホスティングしてるとこの知名度は重要かもね

729 :デフォルトの名無しさん:2010/05/12(水) 22:15:55
GAEは不安定すぎて実験にしか使えん

730 :デフォルトの名無しさん:2010/05/12(水) 23:26:11
月1000円鯖の代替なら十分

731 :デフォルトの名無しさん:2010/05/13(木) 09:32:04
App EngineでScaleって動くの?
App Engineって完全なJVMじゃないから、無理かとおもってた。


732 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/13(木) 10:06:30
なにそれ宿題?

736 :デフォルトの名無しさん:2010/05/13(木) 10:15:47
>>732
思う思わないの問題じゃないと思うけどな
そこそこのサイトで実運用に耐えられなきゃ単なる技術者のオナニーだし

737 :デフォルトの名無しさん:2010/05/13(木) 10:37:00
>>735
宿題です。
まったく分からなくて困ってます。

738 :デフォルトの名無しさん:2010/05/13(木) 10:39:35
Scalaで宿題?スレ間違ってない?

739 :デフォルトの名無しさん:2010/05/13(木) 11:37:55
>>738
どこのスレにいけば教えてもらえますか?

740 :デフォルトの名無しさん:2010/05/13(木) 11:49:24
本当にScalaの宿題ならこのスレでいいと思うけど
そんなものを教える学校があったのかと驚いたもので
違うなら該当プログラミング言語のスレへどうぞ

741 :デフォルトの名無しさん:2010/05/13(木) 12:05:20
Cなので、そこへ行ってみます。

742 :デフォルトの名無しさん:2010/05/13(木) 12:09:49
わろす

743 :デフォルトの名無しさん:2010/05/13(木) 12:24:20
とくにageられてたわけでもないのに何でこのスレだったんだw

744 :デフォルトの名無しさん:2010/05/13(木) 13:20:08
>736
釣られちゃたのだが、不安定の根拠ってある?
思う思わないの話し?

745 :デフォルトの名無しさん:2010/05/13(木) 13:36:53
twitterで検索すると結構不安定言ってる奴いるな
全員工作員だろうけど

746 :デフォルトの名無しさん:2010/05/13(木) 13:48:11
>>745
たかだか道具の一つにそこまで思い入れ持つってのも凄い事だよな
今、Scalaとか弄ってる人間で選択肢を増やすって考え方以外は本物だと思うんだが

747 :デフォルトの名無しさん:2010/05/13(木) 16:28:42
間違ってるかもしれないけどSS本の7章のクエリビルダのソースだけど
いろんなクラスでやトレイトで[MyType <: Table[MyType]]型引数を受け取ってて
本には該当のテーブルで定義されたフィールドだけがクエリーに含まれることを保証しますって書いてあるけど
ほとんどTable内で定義されててパス依存型になってるので別につけなくても保証できてない?

748 :デフォルトの名無しさん:2010/05/13(木) 16:52:43
いやByとOrderByは外にあるからやっぱつけなきゃダメか

749 :デフォルトの名無しさん:2010/05/13(木) 18:00:39
twitterでのMatzとの論争を見たけど、難しくてわからなかった。
で、古いのを見ると、kなんとかさんのこと書いてあったけど、あれまずいんじゃないかな。
あのひと、今ひがさんのツイートをさらしものにしてるでしょ。
「kなんとかさん」とか書いてるのも見つかると同じようにさらされそうだから、火種になりそうなのは消したほうがいいんじゃない?老婆心ながら。


750 :デフォルトの名無しさん:2010/05/13(木) 18:28:52
>>746
なんか勘違いしてるだろ
不安定なのはScalaじゃなくGAEだろ
直前の流れも読もうな

751 :デフォルトの名無しさん:2010/05/13(木) 19:39:13
>>749
言ってる意味がわからないよ婆さん

752 :デフォルトの名無しさん:2010/05/13(木) 19:43:22
Scala on GAE/Jは、ググればやってみてる人は結構いる。

GAEが不安定の件は、どのレベルの安定性を求めているのかによる。
勘定系に使えないって話か、
データストアが時々タイムアウト例外を投げるのが許せないのか、
もっと根本的に不安定だと言ってるのか。

753 :デフォルトの名無しさん:2010/05/13(木) 21:09:30
>>750
本物かw
どっちが不安定とかでなんでそんなにこだわれるの?ScalaProject参加してんの?
お前みたいなの以外で今Scala触ってるのは不安定かどうかなんてのは自分で検証・判断出来るレベルって事が言いたかっただけ。

754 :デフォルトの名無しさん:2010/05/13(木) 21:39:27
GAEが不安定だとなんか困るのか?
巷の評判が不安定だってんなら別にそれで構わんだろ

755 :デフォルトの名無しさん:2010/05/13(木) 21:40:29
そりゃ使いたいのに不安定だったら困るだろう。

756 :デフォルトの名無しさん:2010/05/13(木) 21:41:53
EC2でいいよ

757 :デフォルトの名無しさん:2010/05/13(木) 21:46:31
どっちが不安定でも良いけど、検証コード、結果、原因だして騒いでんの?
あるなら改善要求でも出せばい良いじゃん。

758 :デフォルトの名無しさん:2010/05/13(木) 21:58:01
GAE大好きスレでも立てろよ
Scalaを流行らせるためには安定したクラウド必要だね
でもGAEまだまだだねってだけの話なんだから

759 :デフォルトの名無しさん:2010/05/13(木) 22:12:26
758=754=750か?どっちが不安定でもいいけど必死だな

760 :デフォルトの名無しさん:2010/05/13(木) 22:25:47
そうだけどだとしたらなんか問題あるのか

761 :デフォルトの名無しさん:2010/05/13(木) 22:33:23
そろそろくだらない話は終わりにしろ

762 :デフォルトの名無しさん:2010/05/13(木) 22:33:24
せっかく下記のスレッドがあるので、そちらでできればよいのだが、
Google AppEngine 3アプ目
http://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アプ目
http://pc11.2ch.net/test/read.cgi/php/1267057923/l50
に書きます。

764 :デフォルトの名無しさん:2010/05/13(木) 22:36:46
Scala.NETの実用度ってどんなもんなの?

765 :デフォルトの名無しさん:2010/05/13(木) 22:41:18
Scalaって、Rubyみたいに完全な(純粋な?)OOPLなの?
それともPHPみたいに不完全?

766 :デフォルトの名無しさん:2010/05/13(木) 23:03:59
OOとか何言ってるの?

767 :デフォルトの名無しさん:2010/05/13(木) 23:06:27
>>764
昔見た時(2.7.?)は、Actorなどなかった、
仕組み上JavaAPIはつかえないので、JavaAPI使ってるScalaで書いたライブラリも使えない

768 :デフォルトの名無しさん:2010/05/13(木) 23:07:46
http://twitter.com/y_asa/status/9045917806
http://twitter.com/moyu_w/statuses/13250867964
http://ameblo.jp/rarapima/entry-10517976394.html
わりと評判悪いかもしれん。
かくいう俺もSlim3試して重いなぁって思って放置したけど。

769 :デフォルトの名無しさん:2010/05/13(木) 23:22:57
>>766
完全なOOPLなのにさらにFPLならすごいなと思って聞いてみた

Rubyがでたころは1も+もすべてオブジェクトだよすごいだろ?って登場してきたなぁと

770 :デフォルトの名無しさん:2010/05/13(木) 23:26:07
tweetが情報元とか怖い世の中になったもんだな・・・
今日は一人変なのが紛れ込んでますね

771 :デフォルトの名無しさん:2010/05/13(木) 23:30:22
>>767
ありがとう。
Javaのクラスライブラリが使えず
書き手もJavaをほとんど知らないとなるとあまりうまみがないってことなのかな。

言語が面白そうでJava版をちょっと触ってはいるけど
PowerShellの代替にはならないか。

772 :デフォルトの名無しさん:2010/05/13(木) 23:40:15
>>770
2chが情報源と同レベルだよな

773 :デフォルトの名無しさん:2010/05/14(金) 00:03:34
>>736
>思う思わないの問題じゃないと思うけどな
とか人を見下した発言しておいて、不安定の根拠がtwitter発言かよ。

774 :デフォルトの名無しさん:2010/05/14(金) 00:10:21
なぜアメブロで詳しく説明してる奴の話はスルーなのか

775 :デフォルトの名無しさん:2010/05/14(金) 00:11:20
今もJavaのライブラリまともに
呼び出せないクラスが大量に量産されている

2.8RCは安定しないどころか、どんどんバグが量産されていて
もう手がつけられない。

今後どうなるかは自明な状態

776 :デフォルトの名無しさん:2010/05/14(金) 00:15:52
>>774
え?これの事じゃないよな?
http://ameblo.jp/rarapima/entry-10517976394.html
いくら2chでもム板での「詳しく」はさすがにtweetと同じレベルじゃないでしょw

777 :デフォルトの名無しさん:2010/05/14(金) 00:17:17
amebloだろうがtwitterだろうが、詳しく知りたかったら
発言した本人に尋ねられるじゃん。

778 :デフォルトの名無しさん:2010/05/14(金) 00:20:03
>>774
不安定じゃないじゃん
重いって言ってるだけじゃん
馬鹿なの?死ぬの?

779 :デフォルトの名無しさん:2010/05/14(金) 00:21:45
>>774ってPHP信者だろ?
Javaクラウドをけなして普通のサーバで動くPHP最強!って結論づけるのが目的

780 :デフォルトの名無しさん:2010/05/14(金) 00:22:50
このスレって田舎社会みたいだな

781 :デフォルトの名無しさん:2010/05/14(金) 00:24:16
>>774>>780
相変わらず必死だなw
PHP使ってると頭もよわくなるね?

782 :デフォルトの名無しさん:2010/05/14(金) 00:27:17
Javaクラウドは失敗するよ
全然つかいものにならないし

783 :デフォルトの名無しさん:2010/05/14(金) 00:31:13
おまえら荒らせればなんでもいいのかよw

784 :デフォルトの名無しさん:2010/05/14(金) 00:33:26
>>782
PHPより全然マシ

785 :デフォルトの名無しさん:2010/05/14(金) 00:34:47
>>784
PHPは簡単で高機能な言語だろ
Scalaなんて何が出きるのw?

バグだらけで何もできないし

786 :デフォルトの名無しさん:2010/05/14(金) 00:35:41
>>780
むしろ都会だったら
774「GAE不安定なんです。」
上司「何が〜?」
774「まかりません」
上司「まさか調べてないの?おーい○○、GAEおかしいらしいから事象だけ確認してそのままm引き継いで」
774「あのー僕何やれば良いですか?」
上司「辞表でも書いてて」

787 :デフォルトの名無しさん:2010/05/14(金) 00:39:30
普通は安定していると言う根拠を出してから
採用を検討するのでは?
最初にGAEありきの会社なんてないよ。

788 :デフォルトの名無しさん:2010/05/14(金) 00:39:54
>>787
ほら釣れたw

789 :デフォルトの名無しさん:2010/05/14(金) 00:43:38
GAEが不安定というよりも
Scalaが原因でGAEが不安定になることが多いね

やっぱりJavaのクラウドなんて無理なんだよ

790 :デフォルトの名無しさん:2010/05/14(金) 00:49:03
>>789
とうとう我慢できずに本性あらわしたか
やっぱScalaアンチじか

791 :デフォルトの名無しさん:2010/05/14(金) 01:06:13
戦ってるねぇ、2chの鏡だ

792 :デフォルトの名無しさん:2010/05/14(金) 01:08:47
妄想で語ってるやつはいい加減出ていってくれないかな
GAEはスレ違いだし

793 :デフォルトの名無しさん:2010/05/14(金) 01:09:43
でもScalaとGAEの組み合わせは
挙動不明のバグが乱発するんだけど
これはGAEの問題じゃないでしょ

794 :デフォルトの名無しさん:2010/05/14(金) 01:11:52
>>793
頭おかしいのか?

795 :デフォルトの名無しさん:2010/05/14(金) 01:13:25
かといってGAE以外に現実的に安くて安定して動かせるとこなんて他にあるか?


796 :デフォルトの名無しさん:2010/05/14(金) 01:24:49
んでScalaとGAEの組み合わせで挙動不明のバグが乱立するtweetはどこよ

797 :デフォルトの名無しさん:2010/05/14(金) 01:49:09
んでScalaとGAEの組み合わせで挙動不明のバグってどーゆーのだ。

798 :デフォルトの名無しさん:2010/05/14(金) 03:37:23
型パラメータにデフォルト値指定できるようにしようぜ!
って言ってる人を見かけたんだけど、そういうのってできるもんなのかな
もちろん今のScalaでは無理なんだけど、そういう拡張って可能なのかな

799 :デフォルトの名無しさん:2010/05/14(金) 07:20:38
>>673 関係でこんなん見つけた。
http://stackoverflow.com/questions/1762843/why-doesnt-scala-source-close-the-underlying-inputstream
Scala.io._ はXMLやコンパイラの為のもので、良いデザインではない。
でも2.8では良くなってる、だそうな。

800 :デフォルトの名無しさん:2010/05/14(金) 08:08:47
GAE不安定って言ってる奴は、まずBASE特性とCAP定理でググっとけ。
まぁ、GAEスレでやれって話だな。

801 :デフォルトの名無しさん:2010/05/14(金) 08:19:20
簡単に言うと、GAEみたいなクラウドは、いくつかの特性を犠牲にすることで、
強烈なスケールアウト特性を手に入れる、という選択をしている。
「不安定」なんじゃなくて、最初からアーキテクチャ的なトレードオフがあるだけ。
タダだからレン鯖の代わりに使おう、くらいの心積もりなら、素直にレン鯖を使った方がいいこともある。

この辺は解説してるページや本がいくらでもあるから、後はググれ。

802 :デフォルトの名無しさん:2010/05/14(金) 08:30:05
だから、そういうトレードオフがあるから、
Scalaの普及に使いづらいよねってのが最初の話じゃね?
Javaだって初期は、WebLogicが重いせいでJavaは重いって評価になって
長年不名誉な評価を受ける事になったんだしさ。
なのに、GAEのマイナス評価に過剰反応する奴がいたり、
しまいにはPHPと戦う奴が出てきたり。

803 :デフォルトの名無しさん:2010/05/14(金) 08:32:18
現状雑談スレと技術スレをわけるほどトラフィックがないのがつらいところ

804 :デフォルトの名無しさん:2010/05/14(金) 08:46:54
まぁクラウドなだけに使う側にとっては
なんか重いなんか不安定って感じで
終わっちゃうだろうしなぁ確かに
既存のレンタルサーバだってそのサーバが重い原因を調べて使い続けるより
みんなすぐ乗り換えちゃうし

805 :デフォルトの名無しさん:2010/05/14(金) 09:15:52
まとめると「GAEは不安定で使えない」というのは妄想発言ということでいいね。

となるとGAEでScaleを使いやすくしてやれば、普及させることができそうだね。
Googleを宣伝したい訳ではなく、このご時世、無料というのはかなり利点だと思う。
豊富な、日本語の事例や技術情報が必要ですね。事例はともかく、技術情報ならこれから頑張れば俺にも出せそうだ。

806 :デフォルトの名無しさん:2010/05/14(金) 09:26:15
なんかピントずれてるな
だから荒れるのでは

807 :デフォルトの名無しさん:2010/05/14(金) 09:45:39
だいたいあってる

Scala(Java)って気軽に使えるレン鯖ないからたぶん普及しないよね

GAEでいいじゃん

不安定じゃん

はぁ?クラウド系はそういうもんだろ

じゃやっぱGAEでいいね。で、普及させるにはScala+GAEの日本語情報が必要だね ←イマココ

808 :デフォルトの名無しさん:2010/05/14(金) 10:09:27
GAEより、ワンコインVPSの狭小メモリでどうにかしてservlet動かすテクニックでも
開発した方がいいんじゃない?

809 :デフォルトの名無しさん:2010/05/14(金) 10:44:19
近道、コスト、実用性のバランスで決めればどちらでもいいがなー

810 :デフォルトの名無しさん:2010/05/14(金) 10:45:59
>799
へー。
今後は、これを使えばいいって感じになりそうなのか。
http://github.com/scala-incubator/scala-io
現時点での完成度はどんなもんなんだろ?

811 :デフォルトの名無しさん:2010/05/14(金) 11:30:26
クラウド系はそういうもんではないだろ
既存のレン鯖のように、より高い金払えばもっといいプランを選べるってのならともかく
GAE用に作っちゃうと移転時には修正が必要になる
研究者やサンデープログラマ増やしたいならGAEでいいかもしれんが
ビジネスユーザを意識するからVPSでTomcatの方が現実的

812 :デフォルトの名無しさん:2010/05/14(金) 13:25:25
最近話題のGoとどっちが強いですか?

813 :デフォルトの名無しさん:2010/05/14(金) 13:39:05
安いレンタルサーバーでservletコンテナが使えないよね、ってとこから話が始まってるのに。
あと、サンデープログラマーも少ないマイナーな言語をエンタープライズで採用しないよね。保守やる人が限られてくるからね。
これは主観だけど今のところエンタープライズは考えなくていいんじゃない。目標はベンチャー事例狙いへの啓蒙で。
意外とApp Engineやったほうがエンタープライズへの近道かもよ。

814 :デフォルトの名無しさん:2010/05/14(金) 14:21:07
ぶっちゃけエンタープライズは貧乏くじ

815 :デフォルトの名無しさん:2010/05/14(金) 15:23:57
そこまでしてGAEをプッシュする必要もない気がするんだが

816 :デフォルトの名無しさん:2010/05/14(金) 15:34:34
Google「GAEが不安定だと思われたくないのでScalaみたいな固まってない新参言語は使わないで欲しい」

817 :デフォルトの名無しさん:2010/05/14(金) 23:37:16
Scalaってワンライナーでのファイル操作的なことってできる?向いてる?

818 :デフォルトの名無しさん:2010/05/14(金) 23:38:57
本格的にスケールアウトを生かしたい用途にゃクラウドだが、
いろいろとGAE特有のノウハウが必要なのは確かなので、
言語習得用のプラットフォームとしていいかと言われると微妙だな。

無論、本格的なGAEアプリをScalaで、というのは可能性があると思うぞ。

819 :デフォルトの名無しさん:2010/05/15(土) 00:04:51
>>817
起動に数秒かかるからワンライナーだとあんまり向いてない
2.8は2.7よりさらに重い

気になるなら起動済REPLに投げるなど必要

820 :デフォルトの名無しさん:2010/05/15(土) 00:20:15
>>819
レスサンクス
できることはできるんだね
Rubyとどっち覚えようか迷ってた

Winで使う場合はRubyは使いづらいってよくきくけど、Scalaはそんなことない?


821 :デフォルトの名無しさん:2010/05/15(土) 00:43:17
>>815
一人こだわってるお子様がいるが、押すのも貶すのも他所でやってくださいって感じ

822 :デフォルトの名無しさん:2010/05/15(土) 00:45:58
ベースがJavaだから、むしろWindowsが一番楽かも。

823 :デフォルトの名無しさん:2010/05/15(土) 00:52:14
環境についてはJavaより便利なところはないので、そのつもりで

824 :デフォルトの名無しさん:2010/05/15(土) 01:24:18
>>823

825 :デフォルトの名無しさん:2010/05/15(土) 01:52:23
結局GAEをうまく使いこなせない奴が、不安定だとか根拠のない話を騒ぎ立てて、
流行らないように誘導しようとしてるんだろ。
もし流行ったらそいつは世間において行かれることになるからなw

826 :デフォルトの名無しさん:2010/05/15(土) 02:40:36
不安定で流行ったものはあるし(Windowsとか)安定してても流行らないものはある

827 :デフォルトの名無しさん:2010/05/15(土) 04:16:19
とにかくGAEやるしかないだろ。
無料なんだし、やらない奴は意味がわからない。

828 :デフォルトの名無しさん:2010/05/15(土) 04:41:01
GAEの話をこのスレでする意味が分からない

829 :デフォルトの名無しさん:2010/05/15(土) 10:22:53
・頭使わずに議論した気になれる、レスをもらえる

830 :デフォルトの名無しさん:2010/05/15(土) 11:54:55
GAE/Jでしょぼいサービスを作ったことがあるが、
Googleの独自APIとか、例えばSlim3みたいなフレームワークの勉強とかも
しなきゃいけないからな。タイムアウト処理とか、あまり本質的でない部分にも
気を配る必要があるし、Scala入門用にはさほどお勧めではないな。
何なら、Opera Uniteとかでもいいんじゃねぇの。やっぱりタダだし。

831 :デフォルトの名無しさん:2010/05/15(土) 12:06:55
だからさ、いいかげんGAEスレ行けよ

832 :デフォルトの名無しさん:2010/05/15(土) 12:32:52
>>830
GAEの最新技術について行けない奴がScalaを習得できるとは思えん。

833 :デフォルトの名無しさん:2010/05/15(土) 12:40:43
誘導

Google App Engine 3アプ目
ttp://pc11.2ch.net/test/read.cgi/php/1267094290/

834 :デフォルトの名無しさん:2010/05/15(土) 12:43:25
Scalaの話からめてるだろ。
バカなのか?

835 :デフォルトの名無しさん:2010/05/15(土) 12:51:27
今までよく頑張った
もう休め

836 :デフォルトの名無しさん:2010/05/15(土) 19:26:19
>819

高速Scalaコンパイル fsc を使ってみてもだめ?

837 :デフォルトの名無しさん:2010/05/15(土) 22:11:36
ワンライナーなので、インタプリタだと思ってみた。

ワンライナーにはならないけど、コンパイルすると、
fscでソース読み込みの時点で(windows 2GHz 1coreで)1秒以上はかかるかな。

ただ、コンパイル後は、そんなに気にしないでいいから、
やっぱり、立ち上げたままのREPL環境とコンパイル組み合わせるのが、向いてると思う。

ワンライナーで使うなら、lispみたいに起動時のメモリイメージから再開とか、
REPL起動まで先読みしきったAOT環境が、あればいいんだろうな。

838 :デフォルトの名無しさん:2010/05/15(土) 22:30:11
GAEは使えるとして、GAE以外にもっといい動作環境ないかな?
「GAEは不安定で使えない」、「GAEはお勧めしない」とかいう批判は出てくるんだけど、具体的な代案が出てこないんだよね。
Opera UniteってServletコンテナじゃないよね。 >>830
みんな何で動かしてんの?ローカルのTomcatで自己満足?

839 :デフォルトの名無しさん:2010/05/15(土) 22:43:46
VPSでTomcatって出てきてるのはスルーなのか

840 :デフォルトの名無しさん:2010/05/15(土) 23:07:57
Scala\(^o^)/オワタ

841 :デフォルトの名無しさん:2010/05/15(土) 23:46:12
そもそもタダでServletを常時オンラインにしておける環境なんてものは基本的にない。
GAEは初期費用はいりませんてビジネスモデルなだけ。

842 :デフォルトの名無しさん:2010/05/15(土) 23:56:58
http://www.stax.net/

843 :838:2010/05/16(日) 00:11:09
>>839
VPSでTomcatって、かなり抽象的だよね?

具体的には、ググってみると
http://www.zone-express.jp/order
このへんか?(宣伝ではない。たまたま日本語で読みやすかっただけ)
月¥2,600円(3ヶ月間限定¥1,300/月)
256MだからDBとか考えるとヒープは64mぐらいか。
うーん。運用するんだったら、もう一ランク上のプランか。
月5000円ぐらい払えば自由なScala環境が手に入るということだね。

また荒れちゃうかもしれないけど、貧乏性な俺はGAEで研究して、サービスもGAEでリリースすることにしよう。

844 :デフォルトの名無しさん:2010/05/16(日) 00:13:28
VPSなら月額1200円年額12000円とかあるしな。

845 :デフォルトの名無しさん:2010/05/16(日) 00:19:19
いまどき450円/月だよ

846 :デフォルトの名無しさん:2010/05/16(日) 00:20:39
実験するだけならEC2を一時的に立ち上げるとか
そもそも、自宅サーバでいいし、いろいろ分けたいなら仮想化すればいい。

ttp://www.mochahost.com/java.php
なんかあるなとおもったら、たいへんだね。最近はどうなんだろう。
ttp://blogs.yahoo.co.jp/girafflex/1069442.html

847 :デフォルトの名無しさん:2010/05/16(日) 00:29:50
http://dream.jp/vps/
メモリ256MB HDD10GB 490円/月 3か月無料
http://www.saases.jp/hosting/hos_006.html
メモリ512MB HDD50GB 450円/月 初期費用3000円

ほんとだ。

848 :838:2010/05/16(日) 00:46:39
GAEを使う宣言したばかりなのだが、かなり安いVPSあるんだね。これなら小遣いから出せるかも。
stax.netはどうやって使うのか、いまいち、わからなかったが、scala liftという選択肢があった。料金が従量制のようだが。

849 :デフォルトの名無しさん:2010/05/16(日) 02:47:53
GAEは知ってるのにVPSって聞いてググらないとわからない人いるのか

850 :デフォルトの名無しさん:2010/05/16(日) 03:01:37
可用性のことを考えるとやっぱりGAE

851 :デフォルトの名無しさん:2010/05/16(日) 09:30:43
>>842

レジストして、新規アプリケーション作ると、「Scala and Lift」があった。

内部で、mavenリポジトリがあって、scalaとlift追加してあるのか。
http://developer.stax.net/profiles/blogs/new-stax-maven-archetype-for
http://wiki.stax.net/w/index.php/Maven_Scala

http://www.atmarkit.co.jp/fjava/rensai4/devtool05/devtool05_1.html

StaxはEC2ベースなんだね。Morph AppSpaceってのは終了したのか。
VMforceは秋から開発者向け用意するけど、ミニマムの無償版はあるんかな。

852 :838:2010/05/16(日) 10:51:10
>>849
>GAEは知ってるのにVPSって聞いてググらないとわからない人いるのか
俺に言ってんの?VPSの言葉の意味ぐらい俺だって知ってるよ。
VPSとGAEて言葉の抽象度のレベルが違うよね?GAEはGoogleが出しているサービス名だよね?VPSは各社が出しているサービスの総称だよね?
だから具体的じゃねぇっていったんだよ。分かった?
ググったのはServletが使えるVPSのサービスの価格を調べるため。

あーまた話がずれてきた。こういう発言は通常スルーすべきなの?

853 :デフォルトの名無しさん:2010/05/16(日) 11:09:57
>>852
お前は少し落ち着いて半年ROMるべき

854 :デフォルトの名無しさん:2010/05/16(日) 12:22:24
>>853
てかお前は何様だ

855 :デフォルトの名無しさん:2010/05/16(日) 12:30:22
VPSの意味やっぱ解ってなかったようだな。

856 :デフォルトの名無しさん:2010/05/16(日) 13:41:11
ここ最近スレの質が大きく下がったな
子供が触る言語じゃないだろうに・・・

857 :デフォルトの名無しさん:2010/05/16(日) 13:42:45
Twitterに採用されたって報道されて荒らしに来た奴がいるんだろ。

858 :デフォルトの名無しさん:2010/05/16(日) 16:23:20
> あーまた話がずれてきた。こういう発言は通常スルーすべきなの?

ごめんな。俺たちがお前をスルーすべきだった

859 :デフォルトの名無しさん:2010/05/16(日) 17:19:52
matzはオブジェクト指向とか関数型以前に動的なことを重視してるみたいだから
話すだけ無駄だと思うんだけどな
動的言語原理主義なのにちょくちょくScalaの文句を言うのはどうかと思うけど

860 :デフォルトの名無しさん:2010/05/16(日) 17:33:29
>ググったのはServletが使えるVPSのサービスの価格を調べるため。

VPSなんだから勝手にTomcatインストールすればいいだけだな。
メモリ128Mみたいな極端に少ないサービス以外なら普通に動くし。
しかしまたマイナーなサービス引っ張り出してきたもんだな。
ZoneExpressなんて初めて見た会社だわ。

861 :デフォルトの名無しさん:2010/05/16(日) 23:32:16
Googleまた個人情報の不始末かよ

862 :デフォルトの名無しさん:2010/05/17(月) 02:12:51
>>859
動的な言語ってそんなにいいかねえ
ちょっとスペルミスっただけでわかりにくいバグになるって印象しかないわ
今だと静的に型が決まる言語だと、IDEが発達しててスペルミスしても
赤く表示してくれるしね
それになれちゃうと、動的言語はとてもじゃないけど使えない

863 :デフォルトの名無しさん:2010/05/17(月) 02:27:57
動的か静的かはもう宗教論じゃね
唯一神なのか多神教なのかみたいな

864 :デフォルトの名無しさん:2010/05/17(月) 03:30:02
ちょっと前までは、言語オタク的には動的言語マンセーな流れだったけど
Eclipseが登場して流れが変わったな
IDEが静的言語のデメリットを覆して、強力なメリットを付加したからな

865 :デフォルトの名無しさん:2010/05/18(火) 21:10:41
>862
テスト時間がコンパイル時間より長くなったりするしな

866 :デフォルトの名無しさん:2010/05/19(水) 00:25:17
動的言語だと、適当に始めてリファクタリングしてって進めたいのに、
リファクタリングの面倒くささが、静的言語の比ではないってのが。

867 :デフォルトの名無しさん:2010/05/19(水) 01:40:57
置換サイキョー

868 :デフォルトの名無しさん:2010/05/19(水) 20:52:22
Dir.glob "*.jpg"

ってScalaでどうかくの

869 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/20(木) 15:08:22
f.listFiles.filter(...) のほうが好き。

871 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/20(木) 19:00:56
むしろどう変なのかわからないけど、
matchの中のlはローカル変数になってるよ
比較したいならガードを使わなきゃ駄目

873 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/20(木) 19:13:04
バッククオート!そんな記法があったのか

875 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/20(木) 23:34:18
>>875
INT_MAX回を超えるようなループ回したい場合にStream使うと
ものすごい量のゴミが発生しそうな気がするので、性能考えると、
自前でIterableとかのサブクラス作った方が良いんではないかなあ。

877 :デフォルトの名無しさん:2010/05/21(金) 00:11:07
RichLongにto無いのか。

878 :デフォルトの名無しさん:2010/05/21(金) 00:25:43
>>876
なるほど、どうりで遅すぎるわけだ。

>>877
わかってるかもしれないけど、 RichLong に to あっても一緒のこと。
それで生成される Seq の要素数が問題で、要素の値が問題ではない。

879 :デフォルトの名無しさん:2010/05/21(金) 01:45:42
>>878
遅すぎるって事は、やり方が間違ってると思う。
そこそこ古いマシンだが、Streamでも再帰でも20ms位で終わったよ。

そもそも、その問題の空間計算量はO(1)だから、Seqの要素数は関係ないよ。

880 :デフォルトの名無しさん:2010/05/21(金) 02:23:45
>>875
自分ではProject Euler の Probrem 3をどうやってたかを見直してみたけど、
基本的には、
 Stream.from(3,2).takeWhile(_ < limit).map(_.toLong)
ってやってた。

>>876
REPLで試してみると、どんなに大きなlimitでも一瞬で返るし、
(実際に必要なものしか生成されないはずなので)無駄は無いと思う。

881 :デフォルトの名無しさん:2010/05/21(金) 03:11:10
√600851475143 < INT_MAXだから、Stream[Int]で足りる。

882 :876: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: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2010/05/23(日) 02:01:40
scalaはbreakがない糞

889 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:2010/05/23(日) 19:02:14
たまにドキュメントにでてくる
トランポリンってどういうときに使うもんなの?

892 :デフォルトの名無しさん:2010/05/23(日) 19:07:37
>>891
Scalaでは、たとえば相互再帰する関数をStackOverflowすること
無しに扱いたい(末尾再帰にしたい)場合とか。2.8では
scala.util.control.TailCallsを使うと実現できる。

893 :デフォルトの名無しさん:2010/05/23(日) 21:54:38
>> 892
ありがとうございます。
トランポリンは末尾最適化の名前?という理解で正しいですか?
末尾再帰で相互再帰を使っており、末尾最適化するときにトランポリンを使うということですか?


894 :デフォルトの名無しさん:2010/05/24(月) 00:42:11
scalaはインタプリタとしても使えるようですけど、
liftのプロジェクトって mvn packageとかしてコンパイルしないと実行できないんですかね??
ソース変更する毎にコンパイルせずにそのまま走らせることできたらいいなと思うんですが・・

895 :デフォルトの名無しさん:2010/05/24(月) 01:40:15
ScalaでLift以外のWebアプリケーションフレームワークでいいのある?

896 :デフォルトの名無しさん:2010/05/24(月) 01:55:47
サーブレットで動かすのが前提の現状だと既存のFWのロジックを勝手にScalaで書けば?みたいな感じかな
Playとかそうだけど
コアの部分もScalaで再発明するメリットあんまないからね
ScalaがCGIで楽に動くようにでもなれば変わるだろうけど

897 :デフォルトの名無しさん:2010/05/24(月) 09:23:04
>>893 トランポリンは末尾呼出しの実現でも使われるけど、
特定のテクニックの名前。
http://en.wikipedia.org/wiki/Trampoline_%28computers%29

898 :デフォルトの名無しさん:2010/05/25(火) 01:16:56
>>◆ueEP8Ean2lqc
Scalaの本って厚すぎて・゚・(ノД`)・゚・。な感じに陥るんだけど。
もっとシンプルで簡潔に書いた読みやすい本だしてよ。

JavaScript: The Good Partsみたいな本。
170ページ1,800円くらいの。


899 :デフォルトの名無しさん:2010/05/25(火) 01:24:55
あるよ
あるけどこのスレでその話しちゃ駄目らしいよ

900 :デフォルトの名無しさん:2010/05/25(火) 01:33:39
>>899
作者乙

901 :デフォルトの名無しさん:2010/05/25(火) 12:17:42
公式サイトのドキュメントのpdf印刷で
いいじゃない

日本語が良ければ翻訳版かWeb連載記事の印刷で

902 :デフォルトの名無しさん:2010/05/25(火) 12:41:21
>>898

このスレの 100から120くらいを読め。

内容は薄いので、1時間くらいで読めるぞ!

でも、本自体は厚い。
紙質が厚いから厚い。
文庫本サイズで600円だったら、買う価値のある本。

903 :デフォルトの名無しさん:2010/05/26(水) 20:37:37
2.8.0 Finalまだ〜 待ちくたびれたぁ〜チンチン

904 :デフォルトの名無しさん:2010/05/28(金) 01:16:51
(残念?) 2.8.0.RC3 キタ

905 :デフォルトの名無しさん:2010/05/28(金) 17:12:53
http://codezine.jp/article/detail/5103?p=2
ここのページの下まで行って、サーバ立ち上げてみたんですが、
トップにアクセスすると
http://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 :デフォルトの名無しさん:2010/05/28(金) 22:57:26
ttp://www.j2js.com/scala-demo/index.html

908 :デフォルトの名無しさん:2010/05/28(金) 23:31:13
>>906
本当に関数脳を鍛えたいなら
それこそ関数型言語が本筋だろう

909 :デフォルトの名無しさん:2010/05/29(土) 00:25:56
だって敷居高いじゃん

910 :デフォルトの名無しさん:2010/05/29(土) 00:29:52
結論:手続き型なOOで充分。

911 :デフォルトの名無しさん:2010/05/29(土) 14:59:04
Schemeなら覚えるべき文法が少ないから、敷居も低いな。

912 :デフォルトの名無しさん:2010/05/29(土) 21:58:35
Schemaとかカッコ多すぎてゲロ吐くレベル

913 :デフォルトの名無しさん:2010/05/29(土) 22:41:13
スキーマ?

914 :デフォルトの名無しさん:2010/05/30(日) 00:25:26
>>912
関数型言語向いてなさ過ぎだろ
Schemeやったら死ぬぞ

915 :デフォルトの名無しさん:2010/05/30(日) 00:37:10
>>911
386アセンブラなら覚えるべき文法が少ないから、敷居も低いな。

916 :デフォルトの名無しさん:2010/05/30(日) 02:59:02
そもそもSchemeは関数型じゃないし

917 :デフォルトの名無しさん:2010/05/30(日) 15:15:16
本当の関数型は、HaskellとかConcurrent Cleanとかだな。

918 :デフォルトの名無しさん:2010/05/30(日) 21:18:10
>>905
とちょっと違うけど自分もそのページの見てやってて、
4ページまで行ったんだけどコンパイルしてブラウザからアクセスしたら
Message: java.lang.NullPointerException
ってエラーが出ました。
コンパイルが通ってるのにエラー出るってどういうことなんでしょう?
Javaやったことないのでエラー文もよくわからないのです・・

919 :デフォルトの名無しさん:2010/05/30(日) 21:27:02
ぬるぽがわからんやつには早いって

920 :デフォルトの名無しさん:2010/05/30(日) 21:28:10
>>919
ガッ!

921 :デフォルトの名無しさん:2010/05/30(日) 23:00:06
> コンパイルが通ってるのにエラー出るってどういうことなんでしょう?

これに少し感動。
初心者がこんな風に思う時代になったんだ

922 :デフォルトの名無しさん:2010/05/31(月) 01:40:56
いや、Haskell使いかも知れん。

923 :918:2010/05/31(月) 01:54:30
アドバイスいただけると嬉しいです。。

924 :デフォルトの名無しさん:2010/05/31(月) 06:31:55
エラー名でググれ

925 :デフォルトの名無しさん:2010/05/31(月) 09:11:58
>>918
値が入っていない変数に、メソッドを発行するとよく出るよ。
変数の初期化し忘れとか確認してみな。

926 :デフォルトの名無しさん:2010/05/31(月) 18:42:54
Scalaでnull使ったら負けでしょ。
OptionかBox型を使うべき。


927 :デフォルトの名無しさん:2010/05/31(月) 22:52:07
>>923
> アドバイスいただけると嬉しいです。。

codezine の記事書いている作者にメール送るのも手ですよ。

読者からの反応はうれしいものなんです。


928 :デフォルトの名無しさん:2010/05/31(月) 23:06:30
>>927
大事なのは私が嬉しいかどうかです。。

929 :デフォルトの名無しさん:2010/05/31(月) 23:17:14
yuroyoroさん降臨か
微妙にScala界隈の著名人が集まるスレになっとるな

930 :デフォルトの名無しさん:2010/05/31(月) 23:19:57
Scalaの本売れすぎだろ
八重洲ブックセンター行ったらコップも入門も売り切れだったぜ

あっちの方の入門は残ってたけど

931 :デフォルトの名無しさん:2010/05/31(月) 23:31:50
オアゾの丸善の方が良くない?

932 :デフォルトの名無しさん:2010/05/31(月) 23:45:57
えーだって俺会社八重洲だもん

933 :デフォルトの名無しさん:2010/06/01(火) 01:50:28
八重洲ブックセンターちょくちょく行くが売り切れとかありえんだろ
なんの自演だそれは

934 :デフォルトの名無しさん:2010/06/01(火) 02:53:12
いやコップといい方の入門は先週は平積みだったのに今日行ったら1冊も無かったんだよマジで

935 :デフォルトの名無しさん:2010/06/01(火) 03:20:18
売れないから返品されただけじゃないか。

936 :デフォルトの名無しさん:2010/06/01(火) 08:57:30
昨日日本橋の丸善でコップ買ったよ。
あと3冊ぐらいあった。
オアゾは売りきれてたよ。在庫検索では。

937 :デフォルトの名無しさん:2010/06/01(火) 12:45:54
なんで2種類だけそんなに売り切れてんの
工学社のも買ってやれよw

938 :デフォルトの名無しさん:2010/06/01(火) 20:56:26
>>934

ブレークするような出来事あったっけ?

なんかいまいち、盛り上がりに欠けると思うのだが。


939 :デフォルトの名無しさん:2010/06/01(火) 21:15:50
新人にjavaで何か新しいもんさわってみろ
でscalaという流れとか

androidとかgae/jとかもあるけどな

940 :デフォルトの名無しさん:2010/06/01(火) 23:41:27
まぁ八重洲あたりはIT企業が多いからそこだけの地域特需かもな
オー○ックとかリク○ートあたりが採用したのかもしれんと妄想

941 :デフォルトの名無しさん:2010/06/02(水) 12:09:45
liftでプリントデバッグに使える関数ってありますか??
printlnだとサーバのログには書き出せるんですがブラウザで確認するにはどうすればいいかなと・・

942 :918:2010/06/02(水) 12:53:45
色々教えていただきありがとうございます。
ちょっとずつ分かってきましたがまだ疑問点があります・・

http://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 :デフォルトの名無しさん:2010/06/05(土) 00:56:58
blogの話題解析ページ見ると、"scala"で4〜5月に大きな盛り上がりの山があったようだ。
Software Design誌の影響?

945 :デフォルトの名無しさん:2010/06/05(土) 09:39:31
はてなで話題になったからだろ

946 :デフォルトの名無しさん:2010/06/05(土) 11:28:34
>>944-945
ブックマーク数から判断すると火元は下記記事ですね。

RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)
http://wota.jp/ac/?date=20100426#p01
http://b.hatena.ne.jp/entry/wota.jp/ac/?date=20100426%23p01 (759 users)
http://b.hatena.ne.jp/entry/wota.jp/ac/?date=20100426      (138 users)

947 :デフォルトの名無しさん:2010/06/06(日) 00:40:29
想像以上にひどい提灯記事w

948 :デフォルトの名無しさん:2010/06/06(日) 00:44:07
AKBヲタかよw
頼むから公表しないでくれマイナス要因になるから
握手が生き甲斐でプログラム組んでると思われるぞ

949 :デフォルトの名無しさん:2010/06/06(日) 00:55:07
ベリーずからAKBに乗り替えクマー

950 :デフォルトの名無しさん:2010/06/06(日) 01:03:00
もうGOと一緒でScalaも下火だな。
D言語まっしぐらだわ。

951 :デフォルトの名無しさん:2010/06/06(日) 01:09:53
>>950
次スレ頼んだ。

952 :デフォルトの名無しさん:2010/06/06(日) 10:14:42
そもそも、ScalaとRubyは比較対象になるのか。
使い道が違うと思うんだけど。

953 :デフォルトの名無しさん:2010/06/06(日) 12:08:21
>952
上記エントリから関連記事を辿るとさんざん指摘されてる。
動的言語と静的言語は違うからな。
もともと静的言語が好みで、しかしJavaみたいに煩雑な記述はしたくない、という話だろう。
まあ、そういう層は潜在的に多そうに感じるけど。

954 :デフォルトの名無しさん:2010/06/06(日) 12:36:27
逆にJavaからRubyへって本だと静的言語終わったこれからは動的って書いてあるから
お互い様だよそこは

955 :デフォルトの名無しさん:2010/06/06(日) 12:51:17
scalaとrubyって使い途ちがうの?

956 :デフォルトの名無しさん:2010/06/06(日) 13:29:18
同じだよ

957 :デフォルトの名無しさん:2010/06/06(日) 13:56:11
ていうかScalaが動的型付け言語の中ではRubyにかなり似てるからじゃね?
SS本の中でもやたらRubyとの比較がでてくる

じゃなければ普通PHPやPythonと比較するだろう

958 :デフォルトの名無しさん:2010/06/06(日) 14:25:09
Twitterがらみで比較されてんじゃないの?

959 :デフォルトの名無しさん:2010/06/06(日) 14:29:30
全然似てないよ

960 :デフォルトの名無しさん:2010/06/06(日) 15:34:43
ただ単にあの人がrubyの人だったってだけじゃない。
pythonと比べても大してかわらん。
scalaはユニークだ。

961 :デフォルトの名無しさん:2010/06/06(日) 23:24:00
はじめてのプログラミングじゃなくて、cかjavaあたりの既習者向けかな

http://www.pragprog.com/titles/btlang/seven-languages-in-seven-weeks

Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate

962 :デフォルトの名無しさん:2010/06/06(日) 23:41:15
ちなみに>961の著者は>954の著者だとおもう。

963 :デフォルトの名無しさん:2010/06/07(月) 15:24:20
ちょっと次スレ立ててくる

964 :963:2010/06/07(月) 15:27:28
プログラミング言語 Scala 4冊目
http://pc12.2ch.net/test/read.cgi/tech/1275891974/

965 :デフォルトの名無しさん:2010/06/09(水) 23:39:19
rubyでいうところのDatetime型ってScala/liftではないんですかね?
Dateならあるみたいなんですが・・

966 :デフォルトの名無しさん:2010/06/09(水) 23:45:26
えっ

967 :デフォルトの名無しさん:2010/06/10(木) 01:17:39
みんなJoda Timeとか使ってんの?
俺もJavaのライブラリあんまよく知らないんだけど
こうやっていちいち調べなきゃいけないのが面倒くさいよね

968 :デフォルトの名無しさん:2010/06/10(木) 01:30:24
ふつー、Joda Timeじゃないの?

969 :デフォルトの名無しさん:2010/06/10(木) 01:34:11
java.sql.Timestampでも使ってろよw

970 :デフォルトの名無しさん:2010/06/10(木) 22:54:14
スレ違いだろうが他に聞けそうなところも無いので聞かせてくれ。

Scala 向けのテンプレートエンジン Scalate を
http://github.com/scalate/scalate/tree/scala_next
から DL してきてsbt か mvn でビルドしようとしている。
どうやら CLASSPATH に jar が追加されていないようで、
コンパイルに失敗する。

どうしたらコンパイルド通るの?

ってか、Scalate のソースから一発でまともにコンパイルできた
覚えがないのだけど、そういうもんなの?
Scalate の公式に載っている通りだと思うのだが、俺の手順がいけないの?

971 :デフォルトの名無しさん:2010/06/11(金) 00:34:39
全然スレ違いじゃないけど多分答えられる人もいない気がする

972 :デフォルトの名無しさん:2010/06/11(金) 02:54:06
>>970
よくわからんが
mvn -Dtest=false install -Pdownload
でいけた

973 :デフォルトの名無しさん:2010/06/11(金) 22:52:40
>>972

やってみたら、だいぶエラーが減った。次の 1 つだけになった。

(略) scalate-core/src/main/scala/org/fusesource/scalate/filter/MarkdownFilter.scala:19: error: value petebevin is not a member of package com
[INFO] import com.petebevin.markdown.MarkdownProcessor
[INFO] ^
[ERROR] one error found
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR

だけどやっぱり CLASSPATH に追加されてない気がする。

974 :965:2010/06/12(土) 13:14:03
ありがとうございます!

975 :デフォルトの名無しさん:2010/06/12(土) 14:01:24
liftのShtmlとStatefulSnippet ってどう違うんですかね?

976 :デフォルトの名無しさん:2010/06/12(土) 14:27:29
>>973
ウチじゃコンパイルエラーは出ないな。テスト通らないけどな!

977 :デフォルトの名無しさん:2010/06/12(土) 15:38:12
>975
むしろ、何が同じなの?

978 :デフォルトの名無しさん:2010/06/13(日) 02:37:10
RC4 キタ! http://www.scala-lang.org/node/6668

979 :デフォルトの名無しさん:2010/06/13(日) 02:45:35
2.8は、何でこんな難航してるの?

980 :デフォルトの名無しさん:2010/06/13(日) 19:53:41
大幅修正があったものをイベントあわせで、リリース候補にしたように見えたから、
RC3が本来のRC1ぐらいなんじゃね?

We are now getting really close to the final release! って、大きなバグ無ければ最終候補かな?

981 :デフォルトの名無しさん:2010/06/13(日) 23:45:54
>>980
たぶんそうだろうねえ。Scala DaysでRC1出すために
スケジュールが前倒しされてるのだと思う
本来よりも差し引いて考えるべきだろね

982 :デフォルトの名無しさん:2010/06/14(月) 07:43:33
RC4キタと思ったら、即座にRC5がきた。


983 :デフォルトの名無しさん:2010/06/14(月) 12:13:33
tag一覧を見ると2.7.2や2.8.0Beta1も2ヶ月ぐらいRCが続いているので
それがScalaプロジェクトのいつものやり方なのではないでしょうか。

root/scala/tags
http://lampsvn.epfl.ch/trac/scala/browser/scala/tags
Scala 2.8.0 RC5
http://www.scala-lang.org/node/6684

223 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)