[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/15 08:41 / Filesize : 218 KB / Number-of Response : 961
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 07:24:16 ]
The Scala Programming Language
ttp://www.scala-lang.org/

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

前スレ
プログラミング言語 Scala 2冊目
pc12.2ch.net/test/read.cgi/tech/1246289771/


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

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

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

580 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 00:26:01 ]
>>574
そこそこの技術者であっても、Scalaに対する学習意欲がそれほど高く無い(=
当初はそれほど時間を割くつもりが無い)場合、学習の初期段階でつまづいたら、
それがきっかけでポイされるかもしれないわけで、リスクは少ないに越したことは無いと考えてる。

>>576
アホで無知であってもとにかくユーザ増やしたい、と思ってるわけじゃないけど、
新規ユーザ向けに現時点で2.8を積極的に勧める理由が無いというのが正直なところ。
さっきの書き込みでは書き忘れたけど、2.7と2.8の間にはバイナリ互換性が無いから
2.7向けにビルドされたScala用ライブラリがそのままでは動かないのも痛いところだし。

581 名前:デフォルトの名無しさん [2010/05/08(土) 00:30:02 ]
SmallBasicみたいなコード補完&日本語API説明ついたIDEがでたら
一気に普及すると思うよ
あぁいうのはバツグンに使いやすいもん

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

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

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

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



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

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

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

588 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/08(土) 00:52:03 ]
>>582
補完機能の安定性(変なコードに対しても補完が効くか、という意味)や充実度、という意味で
まだまだだけど、現時点でも補完はだいぶ賢くなってきてる。たとえば、

class RichListDouble(list: List[Double]) {
def average: Double = list.foldLeft(0.0)(_+_)
}
implicit def enrichList(list: List[Double]): RichListDouble
= new RichListDouble(list)
とか書くと、
List(1.0, 2.0, 3.0).avとすると、averageが補完候補に出てくるけど、
List("A", "B", "C").avとすると、補完候補に出てこないという具合に(Scala Eclipse Plugin 2.8の場合)。

ただ、ちょっと凝ったソースコードにすると補完機能がうまく働かなかったりするので、安定性はまだまだ。
ビルダー部分は2.7のときに比べてかなり安定して働くようになったから、本格的に使い始めてるけど。

589 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 00:52:05 ]
現状(2.7系)でメソッドやプロパティをまともに補完してくれるIDEってある?
2.8を待たないと無理なのかしら

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

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

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

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

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

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

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

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

595 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 01:39:12 ]
>>589
NetBeansを使うばあいは、2.7のプラグインはNetBeans6.7までにしか
対応して無いはずなので注意ね。
NetBeans6.8以降は2.8のプラグインしか対応して無い。

個人的にNetBeansが好きなのだが、将来性の問題からオススメしづらい・・・
IntelliJはかなり本気でScalaに取り組んでるみたいだし
Eclipsはコミュも大きく、Scala開発元も押してる(?)っぽいし、
プラグイン自体にスポンサーも付いてるみたい

NetBeansは個人がClojureやErlangプラグインと一緒に開発してるもので
仕事忙しくてあまり手が回せないみたいだし
なによりOracleがSun買収後もEclipsを押していくと明言してるから
NetBeans自体がそもそもやばい気が



596 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 01:51:00 ]
NetBeans売却されるからなぁ

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

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


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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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


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



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

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

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

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



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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

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


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

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

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

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

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

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

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

645 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 21:46:42 ]
>>643
なるほど、ありがとう



646 名前:642 [2010/05/08(土) 22:01:28 ]
>>644
レスありがとうございます。

すいません、自分JavaやったことなくてMavenもよくわかってないのですが、gitみたいなもんですかね?
ずっとLAMP環境でやってきましたので、ターミナルでvimとか使ってプログラミングするのに慣れてるんですが、
scala/liftではあまりそういうことができない感じなのでしょうか?Windowsで開発している情報ばかり見るもので・・

ちなみにEclipseはC++の開発で使ったことがあるぐらいです。

647 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:02:29 ]
下手な煽りがまざってるな、だから2chはだめなんだよ

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

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

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

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

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

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

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

653 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:50:49 ]
動的型は二酸化炭素をより多く排出するから滅ぶべき

654 名前:デフォルトの名無しさん [2010/05/08(土) 23:52:57 ]
IDEを使いこなした経験が無いと静的型言語の恩恵ってあんまりないからなぁ。

655 名前:デフォルトの名無しさん [2010/05/08(土) 23:53:26 ]
動的言語と静的言語のメリットデメリットについてハイレベルな擬論を展開しているようだが、難易度高すぎてサッパリついていけないwww

まとめた上で誰か解説たのむw

最近Scalaの注目度高いからやればホットエントリー入り間違いないぞ!!



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

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

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

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

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

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

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

662 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:03:51 ]
結局Servletありきだからリソース的にもVPSクラスじゃないとまともに使えない
(というかVPSでも512MBくらいないとまともに使えない)からじゃないかなぁ
CGI的に使うならもっとメモリ少なくても余裕なんだけどねぇ
mod_javaの開発が止まったのが悔やまれる
非ServletだとJDK入ってるのは海外のレン鯖でもDreamHostとか一部だけだな

663 名前:デフォルトの名無しさん [2010/05/09(日) 01:16:05 ]
Rails3への移行に疲れた・・・
どうせ作り直しならScalaに乗り換えようかな

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

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




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

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

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

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

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

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

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

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

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

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

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




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

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

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

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

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



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

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

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

682 名前: ◆ueEP8Ean2lqc mailto:sage [2010/05/09(日) 21:05:34 ]
>>681
そういうこと。
aがParser[A],bがParser[B],cがParser[C]だったら、a ~ b ~ cの型は
Parser[~[~[A, B], C]になる。パーズ結果の値を加工したいときは、
a ~ b ~ c ^^ { case va ~ vb ~ vc => .... } みたいにパターンマッチで取り出せる
ちなみに、タプルでなくわざわざ~というデータ型を定義したのは、パターンマッチ
でパターンがネストしたときの利便性と、~演算子と同じ記号使いたかったから
じゃないかと思う。

683 名前:デフォルトの名無しさん [2010/05/09(日) 23:15:40 ]
>>678
d.hatena.ne.jp/hkweb/20100508

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

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



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

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

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

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

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

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

Rubyだったら

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

って感じ。

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

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


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

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

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

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



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

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

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

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

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

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

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

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

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

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



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

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

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

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

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


710 名前:704 mailto:sage [2010/05/11(火) 23:54:41 ]
>>705>>706

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

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

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

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

713 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 00:22:05 ]
val xml = <aa>abcd<dd>eeee</dd></aa>

であるときに自分の直系のテキストのみ("abcd"だけ)を取得したいんだけど

xml \\ "aa" text では abcd<dd>eeee</dd>

パターンマッチで
xml match { case <aa>{abc}<dd>{dd}</dd></aa> => println(abc) }

とタグを全て定義してやれば、取得は出来るんだけど
この方法しか無いんでしょうか

714 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 00:39:26 ]
ビルドツールは、みんなsbtに移行してるのかな

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



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

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

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

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

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

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

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

721 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 02:49:17 ]
>>720
ダサい Java との相互運用性を考えれば仕方あるまい

722 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 08:11:13 ]
それはパターンマッチを使えというご託宣、ってコップ本がゆってた。

723 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:26:05 ]
守備力age

724 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:49:19 ]
レンタルサーバーで気軽に使えるようにならないと普及はきつい。
エンタープライズはjavaのままだろうし。
schemeやgoなどがもいまいちなのは、サクラインターネット月1000円レベルでwebアプリがかけないから。

皆さんはどう思います?

725 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:59:03 ]
レンタルサーバの時代は終わり
GAEやEC2なんかで使えれば無問題



726 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 21:01:09 ]
それレンタルサーバだから

727 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 21:24:21 ]
じゃあJava/Scalaもレンタルサーバで気軽に使えるから無問題

728 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 21:29:43 ]
PHPが普及した要因のひとつもそこだろうけど、GAEってタダだっけ?
値段やホスティングしてるとこの知名度は重要かもね

729 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 22:15:55 ]
GAEは不安定すぎて実験にしか使えん

730 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 23:26:11 ]
月1000円鯖の代替なら十分

731 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 09:32:04 ]
App EngineでScaleって動くの?
App Engineって完全なJVMじゃないから、無理かとおもってた。


732 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 09:35:31 ]
GAEが不安定だと思わない。
ec2は魅力的だが高くつきそうだね。

733 名前:デフォルトの名無しさん [2010/05/13(木) 09:51:54 ]
キーボードからCのソース・プログラム名(fname.c)を入力し、そのプログラムの行番号付
テキスト・ファイルを、別名のファイル(fname.txt)で表示するプログラムを作成せよ。ただし、
ファイル名のfnameの部分は共通にせよ。

734 名前:デフォルトの名無しさん [2010/05/13(木) 09:52:53 ]
キーボードからCのソース・プログラム名(fname.c)を入力し、そのプログラムの行番号付
テキスト・ファイルを、別名のファイル(fname.txt)で表示するプログラムを作成せよ。ただし、
ファイル名のfnameの部分は共通にせよ。
上を教えてください。
お願いします。

735 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 10:06:30 ]
なにそれ宿題?



736 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 10:15:47 ]
>>732
思う思わないの問題じゃないと思うけどな
そこそこのサイトで実運用に耐えられなきゃ単なる技術者のオナニーだし

737 名前:デフォルトの名無しさん [2010/05/13(木) 10:37:00 ]
>>735
宿題です。
まったく分からなくて困ってます。

738 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 10:39:35 ]
Scalaで宿題?スレ間違ってない?

739 名前:デフォルトの名無しさん [2010/05/13(木) 11:37:55 ]
>>738
どこのスレにいけば教えてもらえますか?

740 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 11:49:24 ]
本当にScalaの宿題ならこのスレでいいと思うけど
そんなものを教える学校があったのかと驚いたもので
違うなら該当プログラミング言語のスレへどうぞ

741 名前:デフォルトの名無しさん [2010/05/13(木) 12:05:20 ]
Cなので、そこへ行ってみます。

742 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 12:09:49 ]
わろす

743 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 12:24:20 ]
とくにageられてたわけでもないのに何でこのスレだったんだw

744 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 13:20:08 ]
>736
釣られちゃたのだが、不安定の根拠ってある?
思う思わないの話し?

745 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 13:36:53 ]
twitterで検索すると結構不安定言ってる奴いるな
全員工作員だろうけど



746 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 13:48:11 ]
>>745
たかだか道具の一つにそこまで思い入れ持つってのも凄い事だよな
今、Scalaとか弄ってる人間で選択肢を増やすって考え方以外は本物だと思うんだが

747 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:28:42 ]
間違ってるかもしれないけどSS本の7章のクエリビルダのソースだけど
いろんなクラスでやトレイトで[MyType <: Table[MyType]]型引数を受け取ってて
本には該当のテーブルで定義されたフィールドだけがクエリーに含まれることを保証しますって書いてあるけど
ほとんどTable内で定義されててパス依存型になってるので別につけなくても保証できてない?

748 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:52:43 ]
いやByとOrderByは外にあるからやっぱつけなきゃダメか

749 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 18:00:39 ]
twitterでのMatzとの論争を見たけど、難しくてわからなかった。
で、古いのを見ると、kなんとかさんのこと書いてあったけど、あれまずいんじゃないかな。
あのひと、今ひがさんのツイートをさらしものにしてるでしょ。
「kなんとかさん」とか書いてるのも見つかると同じようにさらされそうだから、火種になりそうなのは消したほうがいいんじゃない?老婆心ながら。


750 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 18:28:52 ]
>>746
なんか勘違いしてるだろ
不安定なのはScalaじゃなくGAEだろ
直前の流れも読もうな

751 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 19:39:13 ]
>>749
言ってる意味がわからないよ婆さん

752 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 19:43:22 ]
Scala on GAE/Jは、ググればやってみてる人は結構いる。

GAEが不安定の件は、どのレベルの安定性を求めているのかによる。
勘定系に使えないって話か、
データストアが時々タイムアウト例外を投げるのが許せないのか、
もっと根本的に不安定だと言ってるのか。

753 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:09:30 ]
>>750
本物かw
どっちが不安定とかでなんでそんなにこだわれるの?ScalaProject参加してんの?
お前みたいなの以外で今Scala触ってるのは不安定かどうかなんてのは自分で検証・判断出来るレベルって事が言いたかっただけ。

754 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:39:27 ]
GAEが不安定だとなんか困るのか?
巷の評判が不安定だってんなら別にそれで構わんだろ

755 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:40:29 ]
そりゃ使いたいのに不安定だったら困るだろう。



756 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:41:53 ]
EC2でいいよ

757 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:46:31 ]
どっちが不安定でも良いけど、検証コード、結果、原因だして騒いでんの?
あるなら改善要求でも出せばい良いじゃん。

758 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:58:01 ]
GAE大好きスレでも立てろよ
Scalaを流行らせるためには安定したクラウド必要だね
でもGAEまだまだだねってだけの話なんだから

759 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:12:26 ]
758=754=750か?どっちが不安定でもいいけど必死だな

760 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:25:47 ]
そうだけどだとしたらなんか問題あるのか

761 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:33:23 ]
そろそろくだらない話は終わりにしろ

762 名前:デフォルトの名無しさん [2010/05/13(木) 22:33:24 ]
せっかく下記のスレッドがあるので、そちらでできればよいのだが、
Google AppEngine 3アプ目
pc11.2ch.net/test/read.cgi/php/1267057923/l50
こっちの方がもりあがってるのでこちらに書き込み。

>>752
勘定系に使えない理由を教えていただけないでしょうか。
データストアのタイムアウトはまー色々対処方法があるのでいいが、
根本的に不安定というのがあるならば、教えてほしいです。

社内システムをscala On GAE/Jで作ろうとしてるので
どのようなリスクがあるのかあらかじめ知っておきたいのです。

763 名前:デフォルトの名無しさん [2010/05/13(木) 22:34:56 ]
やべ。
>>761の仰る通り、こちらで書くのはおかしいので、
Google AppEngine 3アプ目
pc11.2ch.net/test/read.cgi/php/1267057923/l50
に書きます。

764 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:36:46 ]
Scala.NETの実用度ってどんなもんなの?

765 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 22:41:18 ]
Scalaって、Rubyみたいに完全な(純粋な?)OOPLなの?
それともPHPみたいに不完全?



766 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:03:59 ]
OOとか何言ってるの?

767 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:06:27 ]
>>764
昔見た時(2.7.?)は、Actorなどなかった、
仕組み上JavaAPIはつかえないので、JavaAPI使ってるScalaで書いたライブラリも使えない

768 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:07:46 ]
twitter.com/y_asa/status/9045917806
twitter.com/moyu_w/statuses/13250867964
ameblo.jp/rarapima/entry-10517976394.html
わりと評判悪いかもしれん。
かくいう俺もSlim3試して重いなぁって思って放置したけど。

769 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:22:57 ]
>>766
完全なOOPLなのにさらにFPLならすごいなと思って聞いてみた

Rubyがでたころは1も+もすべてオブジェクトだよすごいだろ?って登場してきたなぁと

770 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:26:07 ]
tweetが情報元とか怖い世の中になったもんだな・・・
今日は一人変なのが紛れ込んでますね

771 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:30:22 ]
>>767
ありがとう。
Javaのクラスライブラリが使えず
書き手もJavaをほとんど知らないとなるとあまりうまみがないってことなのかな。

言語が面白そうでJava版をちょっと触ってはいるけど
PowerShellの代替にはならないか。

772 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:40:15 ]
>>770
2chが情報源と同レベルだよな

773 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:03:34 ]
>>736
>思う思わないの問題じゃないと思うけどな
とか人を見下した発言しておいて、不安定の根拠がtwitter発言かよ。

774 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:10:21 ]
なぜアメブロで詳しく説明してる奴の話はスルーなのか

775 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:11:20 ]
今もJavaのライブラリまともに
呼び出せないクラスが大量に量産されている

2.8RCは安定しないどころか、どんどんバグが量産されていて
もう手がつけられない。

今後どうなるかは自明な状態



776 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:15:52 ]
>>774
え?これの事じゃないよな?
ameblo.jp/rarapima/entry-10517976394.html
いくら2chでもム板での「詳しく」はさすがにtweetと同じレベルじゃないでしょw

777 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:17:17 ]
amebloだろうがtwitterだろうが、詳しく知りたかったら
発言した本人に尋ねられるじゃん。

778 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:20:03 ]
>>774
不安定じゃないじゃん
重いって言ってるだけじゃん
馬鹿なの?死ぬの?

779 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:21:45 ]
>>774ってPHP信者だろ?
Javaクラウドをけなして普通のサーバで動くPHP最強!って結論づけるのが目的

780 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:22:50 ]
このスレって田舎社会みたいだな

781 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:24:16 ]
>>774>>780
相変わらず必死だなw
PHP使ってると頭もよわくなるね?

782 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:27:17 ]
Javaクラウドは失敗するよ
全然つかいものにならないし

783 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:31:13 ]
おまえら荒らせればなんでもいいのかよw

784 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:33:26 ]
>>782
PHPより全然マシ

785 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:34:47 ]
>>784
PHPは簡単で高機能な言語だろ
Scalaなんて何が出きるのw?

バグだらけで何もできないし



786 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:35:41 ]
>>780
むしろ都会だったら
774「GAE不安定なんです。」
上司「何が〜?」
774「まかりません」
上司「まさか調べてないの?おーい○○、GAEおかしいらしいから事象だけ確認してそのままm引き継いで」
774「あのー僕何やれば良いですか?」
上司「辞表でも書いてて」

787 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:39:30 ]
普通は安定していると言う根拠を出してから
採用を検討するのでは?
最初にGAEありきの会社なんてないよ。

788 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:39:54 ]
>>787
ほら釣れたw

789 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:43:38 ]
GAEが不安定というよりも
Scalaが原因でGAEが不安定になることが多いね

やっぱりJavaのクラウドなんて無理なんだよ

790 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:49:03 ]
>>789
とうとう我慢できずに本性あらわしたか
やっぱScalaアンチじか

791 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:06:13 ]
戦ってるねぇ、2chの鏡だ

792 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:08:47 ]
妄想で語ってるやつはいい加減出ていってくれないかな
GAEはスレ違いだし

793 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:09:43 ]
でもScalaとGAEの組み合わせは
挙動不明のバグが乱発するんだけど
これはGAEの問題じゃないでしょ

794 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:11:52 ]
>>793
頭おかしいのか?

795 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:13:25 ]
かといってGAE以外に現実的に安くて安定して動かせるとこなんて他にあるか?




796 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:24:49 ]
んでScalaとGAEの組み合わせで挙動不明のバグが乱立するtweetはどこよ

797 名前:デフォルトの名無しさん [2010/05/14(金) 01:49:09 ]
んでScalaとGAEの組み合わせで挙動不明のバグってどーゆーのだ。

798 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 03:37:23 ]
型パラメータにデフォルト値指定できるようにしようぜ!
って言ってる人を見かけたんだけど、そういうのってできるもんなのかな
もちろん今のScalaでは無理なんだけど、そういう拡張って可能なのかな

799 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 07:20:38 ]
>>673 関係でこんなん見つけた。
stackoverflow.com/questions/1762843/why-doesnt-scala-source-close-the-underlying-inputstream
Scala.io._ はXMLやコンパイラの為のもので、良いデザインではない。
でも2.8では良くなってる、だそうな。

800 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:08:47 ]
GAE不安定って言ってる奴は、まずBASE特性とCAP定理でググっとけ。
まぁ、GAEスレでやれって話だな。

801 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:19:20 ]
簡単に言うと、GAEみたいなクラウドは、いくつかの特性を犠牲にすることで、
強烈なスケールアウト特性を手に入れる、という選択をしている。
「不安定」なんじゃなくて、最初からアーキテクチャ的なトレードオフがあるだけ。
タダだからレン鯖の代わりに使おう、くらいの心積もりなら、素直にレン鯖を使った方がいいこともある。

この辺は解説してるページや本がいくらでもあるから、後はググれ。

802 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:30:05 ]
だから、そういうトレードオフがあるから、
Scalaの普及に使いづらいよねってのが最初の話じゃね?
Javaだって初期は、WebLogicが重いせいでJavaは重いって評価になって
長年不名誉な評価を受ける事になったんだしさ。
なのに、GAEのマイナス評価に過剰反応する奴がいたり、
しまいにはPHPと戦う奴が出てきたり。

803 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:32:18 ]
現状雑談スレと技術スレをわけるほどトラフィックがないのがつらいところ

804 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:46:54 ]
まぁクラウドなだけに使う側にとっては
なんか重いなんか不安定って感じで
終わっちゃうだろうしなぁ確かに
既存のレンタルサーバだってそのサーバが重い原因を調べて使い続けるより
みんなすぐ乗り換えちゃうし

805 名前:デフォルトの名無しさん [2010/05/14(金) 09:15:52 ]
まとめると「GAEは不安定で使えない」というのは妄想発言ということでいいね。

となるとGAEでScaleを使いやすくしてやれば、普及させることができそうだね。
Googleを宣伝したい訳ではなく、このご時世、無料というのはかなり利点だと思う。
豊富な、日本語の事例や技術情報が必要ですね。事例はともかく、技術情報ならこれから頑張れば俺にも出せそうだ。



806 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 09:26:15 ]
なんかピントずれてるな
だから荒れるのでは

807 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 09:45:39 ]
だいたいあってる

Scala(Java)って気軽に使えるレン鯖ないからたぶん普及しないよね

GAEでいいじゃん

不安定じゃん

はぁ?クラウド系はそういうもんだろ

じゃやっぱGAEでいいね。で、普及させるにはScala+GAEの日本語情報が必要だね ←イマココ

808 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 10:09:27 ]
GAEより、ワンコインVPSの狭小メモリでどうにかしてservlet動かすテクニックでも
開発した方がいいんじゃない?

809 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 10:44:19 ]
近道、コスト、実用性のバランスで決めればどちらでもいいがなー

810 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 10:45:59 ]
>799
へー。
今後は、これを使えばいいって感じになりそうなのか。
github.com/scala-incubator/scala-io
現時点での完成度はどんなもんなんだろ?

811 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 11:30:26 ]
クラウド系はそういうもんではないだろ
既存のレン鯖のように、より高い金払えばもっといいプランを選べるってのならともかく
GAE用に作っちゃうと移転時には修正が必要になる
研究者やサンデープログラマ増やしたいならGAEでいいかもしれんが
ビジネスユーザを意識するからVPSでTomcatの方が現実的

812 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 13:25:25 ]
最近話題のGoとどっちが強いですか?

813 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 13:39:05 ]
安いレンタルサーバーでservletコンテナが使えないよね、ってとこから話が始まってるのに。
あと、サンデープログラマーも少ないマイナーな言語をエンタープライズで採用しないよね。保守やる人が限られてくるからね。
これは主観だけど今のところエンタープライズは考えなくていいんじゃない。目標はベンチャー事例狙いへの啓蒙で。
意外とApp Engineやったほうがエンタープライズへの近道かもよ。

814 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 14:21:07 ]
ぶっちゃけエンタープライズは貧乏くじ

815 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 15:23:57 ]
そこまでしてGAEをプッシュする必要もない気がするんだが



816 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 15:34:34 ]
Google「GAEが不安定だと思われたくないのでScalaみたいな固まってない新参言語は使わないで欲しい」

817 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 23:37:16 ]
Scalaってワンライナーでのファイル操作的なことってできる?向いてる?

818 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 23:38:57 ]
本格的にスケールアウトを生かしたい用途にゃクラウドだが、
いろいろとGAE特有のノウハウが必要なのは確かなので、
言語習得用のプラットフォームとしていいかと言われると微妙だな。

無論、本格的なGAEアプリをScalaで、というのは可能性があると思うぞ。

819 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:04:51 ]
>>817
起動に数秒かかるからワンライナーだとあんまり向いてない
2.8は2.7よりさらに重い

気になるなら起動済REPLに投げるなど必要

820 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:20:15 ]
>>819
レスサンクス
できることはできるんだね
Rubyとどっち覚えようか迷ってた

Winで使う場合はRubyは使いづらいってよくきくけど、Scalaはそんなことない?


821 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:43:17 ]
>>815
一人こだわってるお子様がいるが、押すのも貶すのも他所でやってくださいって感じ

822 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:45:58 ]
ベースがJavaだから、むしろWindowsが一番楽かも。

823 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 00:52:14 ]
環境についてはJavaより便利なところはないので、そのつもりで

824 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 01:24:18 ]
>>823

825 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 01:52:23 ]
結局GAEをうまく使いこなせない奴が、不安定だとか根拠のない話を騒ぎ立てて、
流行らないように誘導しようとしてるんだろ。
もし流行ったらそいつは世間において行かれることになるからなw



826 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 02:40:36 ]
不安定で流行ったものはあるし(Windowsとか)安定してても流行らないものはある

827 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 04:16:19 ]
とにかくGAEやるしかないだろ。
無料なんだし、やらない奴は意味がわからない。

828 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 04:41:01 ]
GAEの話をこのスレでする意味が分からない

829 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 10:22:53 ]
・頭使わずに議論した気になれる、レスをもらえる

830 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 11:54:55 ]
GAE/Jでしょぼいサービスを作ったことがあるが、
Googleの独自APIとか、例えばSlim3みたいなフレームワークの勉強とかも
しなきゃいけないからな。タイムアウト処理とか、あまり本質的でない部分にも
気を配る必要があるし、Scala入門用にはさほどお勧めではないな。
何なら、Opera Uniteとかでもいいんじゃねぇの。やっぱりタダだし。

831 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:06:55 ]
だからさ、いいかげんGAEスレ行けよ

832 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:32:52 ]
>>830
GAEの最新技術について行けない奴がScalaを習得できるとは思えん。

833 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:40:43 ]
誘導

Google App Engine 3アプ目
ttp://pc11.2ch.net/test/read.cgi/php/1267094290/

834 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:43:25 ]
Scalaの話からめてるだろ。
バカなのか?

835 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:51:27 ]
今までよく頑張った
もう休め



836 名前:デフォルトの名無しさん [2010/05/15(土) 19:26:19 ]
>819

高速Scalaコンパイル fsc を使ってみてもだめ?

837 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 22:11:36 ]
ワンライナーなので、インタプリタだと思ってみた。

ワンライナーにはならないけど、コンパイルすると、
fscでソース読み込みの時点で(windows 2GHz 1coreで)1秒以上はかかるかな。

ただ、コンパイル後は、そんなに気にしないでいいから、
やっぱり、立ち上げたままのREPL環境とコンパイル組み合わせるのが、向いてると思う。

ワンライナーで使うなら、lispみたいに起動時のメモリイメージから再開とか、
REPL起動まで先読みしきったAOT環境が、あればいいんだろうな。

838 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 22:30:11 ]
GAEは使えるとして、GAE以外にもっといい動作環境ないかな?
「GAEは不安定で使えない」、「GAEはお勧めしない」とかいう批判は出てくるんだけど、具体的な代案が出てこないんだよね。
Opera UniteってServletコンテナじゃないよね。 >>830
みんな何で動かしてんの?ローカルのTomcatで自己満足?

839 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 22:43:46 ]
VPSでTomcatって出てきてるのはスルーなのか

840 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 23:07:57 ]
Scala\(^o^)/オワタ

841 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 23:46:12 ]
そもそもタダでServletを常時オンラインにしておける環境なんてものは基本的にない。
GAEは初期費用はいりませんてビジネスモデルなだけ。

842 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 23:56:58 ]
www.stax.net/

843 名前:838 mailto:sage [2010/05/16(日) 00:11:09 ]
>>839
VPSでTomcatって、かなり抽象的だよね?

具体的には、ググってみると
www.zone-express.jp/order
このへんか?(宣伝ではない。たまたま日本語で読みやすかっただけ)
月¥2,600円(3ヶ月間限定¥1,300/月)
256MだからDBとか考えるとヒープは64mぐらいか。
うーん。運用するんだったら、もう一ランク上のプランか。
月5000円ぐらい払えば自由なScala環境が手に入るということだね。

また荒れちゃうかもしれないけど、貧乏性な俺はGAEで研究して、サービスもGAEでリリースすることにしよう。

844 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 00:13:28 ]
VPSなら月額1200円年額12000円とかあるしな。

845 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 00:19:19 ]
いまどき450円/月だよ



846 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 00:20:39 ]
実験するだけならEC2を一時的に立ち上げるとか
そもそも、自宅サーバでいいし、いろいろ分けたいなら仮想化すればいい。

ttp://www.mochahost.com/java.php
なんかあるなとおもったら、たいへんだね。最近はどうなんだろう。
ttp://blogs.yahoo.co.jp/girafflex/1069442.html

847 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 00:29:50 ]
dream.jp/vps/
メモリ256MB HDD10GB 490円/月 3か月無料
www.saases.jp/hosting/hos_006.html
メモリ512MB HDD50GB 450円/月 初期費用3000円

ほんとだ。

848 名前:838 mailto:sage [2010/05/16(日) 00:46:39 ]
GAEを使う宣言したばかりなのだが、かなり安いVPSあるんだね。これなら小遣いから出せるかも。
stax.netはどうやって使うのか、いまいち、わからなかったが、scala liftという選択肢があった。料金が従量制のようだが。

849 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 02:47:53 ]
GAEは知ってるのにVPSって聞いてググらないとわからない人いるのか

850 名前:デフォルトの名無しさん [2010/05/16(日) 03:01:37 ]
可用性のことを考えるとやっぱりGAE

851 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 09:30:43 ]
>>842

レジストして、新規アプリケーション作ると、「Scala and Lift」があった。

内部で、mavenリポジトリがあって、scalaとlift追加してあるのか。
developer.stax.net/profiles/blogs/new-stax-maven-archetype-for
wiki.stax.net/w/index.php/Maven_Scala

www.atmarkit.co.jp/fjava/rensai4/devtool05/devtool05_1.html

StaxはEC2ベースなんだね。Morph AppSpaceってのは終了したのか。
VMforceは秋から開発者向け用意するけど、ミニマムの無償版はあるんかな。

852 名前:838 mailto:sage [2010/05/16(日) 10:51:10 ]
>>849
>GAEは知ってるのにVPSって聞いてググらないとわからない人いるのか
俺に言ってんの?VPSの言葉の意味ぐらい俺だって知ってるよ。
VPSとGAEて言葉の抽象度のレベルが違うよね?GAEはGoogleが出しているサービス名だよね?VPSは各社が出しているサービスの総称だよね?
だから具体的じゃねぇっていったんだよ。分かった?
ググったのはServletが使えるVPSのサービスの価格を調べるため。

あーまた話がずれてきた。こういう発言は通常スルーすべきなの?

853 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 11:09:57 ]
>>852
お前は少し落ち着いて半年ROMるべき

854 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 12:22:24 ]
>>853
てかお前は何様だ

855 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 12:30:22 ]
VPSの意味やっぱ解ってなかったようだな。



856 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 13:41:11 ]
ここ最近スレの質が大きく下がったな
子供が触る言語じゃないだろうに・・・

857 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 13:42:45 ]
Twitterに採用されたって報道されて荒らしに来た奴がいるんだろ。

858 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 16:23:20 ]
> あーまた話がずれてきた。こういう発言は通常スルーすべきなの?

ごめんな。俺たちがお前をスルーすべきだった

859 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 17:19:52 ]
matzはオブジェクト指向とか関数型以前に動的なことを重視してるみたいだから
話すだけ無駄だと思うんだけどな
動的言語原理主義なのにちょくちょくScalaの文句を言うのはどうかと思うけど

860 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 17:33:29 ]
>ググったのはServletが使えるVPSのサービスの価格を調べるため。

VPSなんだから勝手にTomcatインストールすればいいだけだな。
メモリ128Mみたいな極端に少ないサービス以外なら普通に動くし。
しかしまたマイナーなサービス引っ張り出してきたもんだな。
ZoneExpressなんて初めて見た会社だわ。

861 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 23:32:16 ]
Googleまた個人情報の不始末かよ

862 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 02:12:51 ]
>>859
動的な言語ってそんなにいいかねえ
ちょっとスペルミスっただけでわかりにくいバグになるって印象しかないわ
今だと静的に型が決まる言語だと、IDEが発達しててスペルミスしても
赤く表示してくれるしね
それになれちゃうと、動的言語はとてもじゃないけど使えない

863 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 02:27:57 ]
動的か静的かはもう宗教論じゃね
唯一神なのか多神教なのかみたいな

864 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 03:30:02 ]
ちょっと前までは、言語オタク的には動的言語マンセーな流れだったけど
Eclipseが登場して流れが変わったな
IDEが静的言語のデメリットを覆して、強力なメリットを付加したからな

865 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 21:10:41 ]
>862
テスト時間がコンパイル時間より長くなったりするしな



866 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 00:25:17 ]
動的言語だと、適当に始めてリファクタリングしてって進めたいのに、
リファクタリングの面倒くささが、静的言語の比ではないってのが。

867 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 01:40:57 ]
置換サイキョー

868 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 20:52:22 ]
Dir.glob "*.jpg"

ってScalaでどうかくの

869 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 23:02:30 ]
>868

たしかにglobは欲しいな。

たとえば、こんなかなぁ

def glob(pathStr:String, reStr:String) =
for {
file <- new File(pathStr).listFiles
if (reStr.r.findFirstIn(file.getName) != None)
} yield(file)

使い方はこう
glob(".", ".*\\.jpg")

870 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 15:08:22 ]
f.listFiles.filter(...) のほうが好き。

871 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 18:24:23 ]
Optionとmatchで次のコード実行したら変な挙動するんだけど、
つまりどういう事だってばよ

scala> val l = List("hoge","fuga")
l: List[java.lang.String] = List(hoge, fuga)

scala> Some(List("fuga","fuga")) match{
| case Some(l) => println("NG")
| case _ => pritnln("OK")
| }
NG

scala> Some(List("fuga","fuga")) match{
| case Some(List("hoge","fuga")) => println("NG")
| case _ => pritnln("OK")
| }
OK

872 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 19:00:56 ]
むしろどう変なのかわからないけど、
matchの中のlはローカル変数になってるよ
比較したいならガードを使わなきゃ駄目

873 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 19:02:58 ]
>>871
case Some(l)で、Someで中身がlと同じってのを書きたかったんだろうけど、残念ながら、これだと、
任意のSomeにマッチして中身がlに束縛される、という意味になる。意図通りのことを書きたいなら
scala> val l = List("hoge", "fuga")
l: List[java.lang.String] = List(hoge, fuga)

scala> Some(List("fuga", "fuga")) match {
| case Some(`l`) => println("NG")
| case _ => println("OK")
| }
OK
みたいにする必要がある(変数名の部分を``で囲む)。

874 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 19:13:04 ]
バッククオート!そんな記法があったのか

875 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 22:52:18 ]
for(i <- 1 to 100)

みたいな式で、INT_MAX 回よりも多くループを回したいときどうすりゃいいの?
Seq の実装上の制約で 1 to 100 で作られる Seq の要素数は INT_MAX 個を超えられないっぽいのだけれど。
Stream[Long] を使うしかないの? Project Euler の Probrem 3 で早速つまってしまった。



876 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 23:34:18 ]
>>875
INT_MAX回を超えるようなループ回したい場合にStream使うと
ものすごい量のゴミが発生しそうな気がするので、性能考えると、
自前でIterableとかのサブクラス作った方が良いんではないかなあ。

877 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:11:07 ]
RichLongにto無いのか。

878 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:25:43 ]
>>876
なるほど、どうりで遅すぎるわけだ。

>>877
わかってるかもしれないけど、 RichLong に to あっても一緒のこと。
それで生成される Seq の要素数が問題で、要素の値が問題ではない。

879 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 01:45:42 ]
>>878
遅すぎるって事は、やり方が間違ってると思う。
そこそこ古いマシンだが、Streamでも再帰でも20ms位で終わったよ。

そもそも、その問題の空間計算量はO(1)だから、Seqの要素数は関係ないよ。

880 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 02:23:45 ]
>>875
自分ではProject Euler の Probrem 3をどうやってたかを見直してみたけど、
基本的には、
 Stream.from(3,2).takeWhile(_ < limit).map(_.toLong)
ってやってた。

>>876
REPLで試してみると、どんなに大きなlimitでも一瞬で返るし、
(実際に必要なものしか生成されないはずなので)無駄は無いと思う。

881 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 03:11:10 ]
√600851475143 < INT_MAXだから、Stream[Int]で足りる。

882 名前:876 mailto:sage [2010/05/21(金) 09:43:36 ]
>>880
Procject Eulerの問題が実際にStreamで事足りるかどうかは
実際にその問題を解いてないからわからないんだけど、原理的には
Streamを使うと大量のゴミが発生する。というのは、Streamって
要は

hd: A
tl: => Stream[A]

みたいな感じのtailの部分が遅延評価されるリストになってるわけ
だけど、ここからn番目の要素を取ってこようとすると、このhdとtl
を持ったセルn個分のゴミが発生する。どっかの変数がうっかり
Streamの先頭を指していない限りガベージコレクタによって回収される
はずなので、メモリ消費量のオーダが即座にO(n)になるわけじゃないけど、
とにかく大量のゴミが発生する事は間違いない。もちろん、tl部分が
評価されなければそのセルは生成されないわけだけど、今回の話だと
ループをn回ぶん回すというのが前提だったようなので。
一方、Iteratorなら(適切にspecializedアノテーションが付いてる
事を前提にすれば)、ゴミはほとんど発生しない。ということが
言いたかった。

883 名前:876 mailto:sage [2010/05/21(金) 09:49:14 ]
ちょっと追記。
>>880
の例
>Stream.from(3,2).takeWhile(_ < limit).map(_.toLong)
みたいな場合で、Streamの最初の方の要素しか使わないんだったら、
もちろん無駄な要素は生成されないので、Streamで十分というか
Streamの方が良いね。どういう問題だったかは見てないので、
それで良いのかは知らないのだけど。

884 名前:880 [2010/05/21(金) 11:20:56 ]
>>882

なるほど、Streamの途中を欲しい場合は、
{そこまでの)不要なものがゴミとして生成されちゃうんだね。
確かに、
 Stream.from(1).takeWhile(100000000).reverse.head
だと、OutOfMemoryになる。

ちなみに、さっきの
Stream.from(3,2).takeWhile(_ < limit)
だけど、Problem 3的にはlimitは√nのつもりだから
正しくは、
Stream.from(3,2)).takeWhile(_ <= limit)
です。><

あと881が行ってるように、
「√600851475143 < INT_MAXだから、Stream[Int]で足りる」ので
Streamを使ってProblem 3の答えはでるんだけど、

実際のところ
これって、本当にLong領域まで生成されるのか不安になってきた、
きちんと対応する場合は
Stream.from(3,2).map(_.toLong).takeWhile(_ <= limit)
なのかなぁ・・・?

Stream.from(1).map(_.toLong).takeWhile(_<=3000000000L).foldLeft(0L)(_+_)
を実験中だが、まだ処理が終わらない・・・

885 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 13:52:59 ]
>>884
> Stream.from(1).map(_.toLong).takeWhile(_<=3000000000L).foldLeft(0L)(_+_)
> を実験中だが、まだ処理が終わらない・・・

それは桁あふれで無限ループになるよ。
俺も、Eulerでは良くやる……




886 名前:880 [2010/05/21(金) 15:30:24 ]
>>885

あぁ・・やっぱり・・・
ということは、結局LongなStreamではないってことだね、
やるには、自前で作るしかないと。

せっかくなので、初めてIteratorを作ってみた。
こんな感じでいいのだろうか・・・

class LongStream(init:Long) extends Iterator[Long] {
var counter = init
def hasNext = true
def next = {
counter += 1L
counter
}
}

scala> new LongStream(0).takeWhile(_<=3000000000L).foldLeft(0L)(_+_)
res23: Long = 4500000001500000000

どうしてもStreamにしたければ、Stream.fromItaratorが使えそう。

887 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 22:31:44 ]
>>886
Stream.fromの実装を見ると早いと思うけど、こんな感じになってる。
#実際はオーバーロードがあるからちょっと違うけど。

def from(n:Int) = Stream.cons(n, from(n + 1))

なんで、MAX_INTまでいったら、次のtailはfrom(MIN_INT)になっちゃう。

単純にLongのStreamが欲しいなら、次のコードで良いんじゃない?

def from(n:Long) = Stream.cons(n, from(n + 1))


888 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 02:01:40 ]
scalaはbreakがない糞

889 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 07:37:45 ]
scalaって、なんでtraitがclassを継承できるようになってるんだ?
たとえば、

class a{}
trait b extends a{}

みたいに。

でも以下のようになるとコンパイルエラーになるから、
もちろん間接的に多重継承をしようとしてもできないようになってるわけだが・・・

class a{}
trait b extends a{}
class c{}
class d extends c with b{}

いまいち利点というか、使う場面がわからない・・・




890 名前:880 mailto:sage [2010/05/23(日) 07:41:20 ]
>>887

なるほど〜、その通りだった。
Stream深いな・・・

scala> def from(n:Long):Stream[Long] = Stream.cons(n,from(n+1))
from: (Long)Stream[Long]

scala> from(1)
res0: Stream[Long] = Stream(1, ?)

scala> from(1).takeWhile(_<=3000000000L).foldLeft(0L)(_+_)
res1: Long = 4500000001500000000

891 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:02:14 ]
たまにドキュメントにでてくる
トランポリンってどういうときに使うもんなの?

892 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:07:37 ]
>>891
Scalaでは、たとえば相互再帰する関数をStackOverflowすること
無しに扱いたい(末尾再帰にしたい)場合とか。2.8では
scala.util.control.TailCallsを使うと実現できる。

893 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 21:54:38 ]
>> 892
ありがとうございます。
トランポリンは末尾最適化の名前?という理解で正しいですか?
末尾再帰で相互再帰を使っており、末尾最適化するときにトランポリンを使うということですか?


894 名前:デフォルトの名無しさん [2010/05/24(月) 00:42:11 ]
scalaはインタプリタとしても使えるようですけど、
liftのプロジェクトって mvn packageとかしてコンパイルしないと実行できないんですかね??
ソース変更する毎にコンパイルせずにそのまま走らせることできたらいいなと思うんですが・・

895 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 01:40:15 ]
ScalaでLift以外のWebアプリケーションフレームワークでいいのある?



896 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 01:55:47 ]
サーブレットで動かすのが前提の現状だと既存のFWのロジックを勝手にScalaで書けば?みたいな感じかな
Playとかそうだけど
コアの部分もScalaで再発明するメリットあんまないからね
ScalaがCGIで楽に動くようにでもなれば変わるだろうけど

897 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 09:23:04 ]
>>893 トランポリンは末尾呼出しの実現でも使われるけど、
特定のテクニックの名前。
en.wikipedia.org/wiki/Trampoline_%28computers%29

898 名前:デフォルトの名無しさん [2010/05/25(火) 01:16:56 ]
>>◆ueEP8Ean2lqc
Scalaの本って厚すぎて・゚・(ノД`)・゚・。な感じに陥るんだけど。
もっとシンプルで簡潔に書いた読みやすい本だしてよ。

JavaScript: The Good Partsみたいな本。
170ページ1,800円くらいの。


899 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 01:24:55 ]
あるよ
あるけどこのスレでその話しちゃ駄目らしいよ

900 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 01:33:39 ]
>>899
作者乙

901 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 12:17:42 ]
公式サイトのドキュメントのpdf印刷で
いいじゃない

日本語が良ければ翻訳版かWeb連載記事の印刷で

902 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 12:41:21 ]
>>898

このスレの 100から120くらいを読め。

内容は薄いので、1時間くらいで読めるぞ!

でも、本自体は厚い。
紙質が厚いから厚い。
文庫本サイズで600円だったら、買う価値のある本。

903 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:37:37 ]
2.8.0 Finalまだ〜 待ちくたびれたぁ〜チンチン

904 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 01:16:51 ]
(残念?) 2.8.0.RC3 キタ

905 名前:デフォルトの名無しさん [2010/05/28(金) 17:12:53 ]
codezine.jp/article/detail/5103?p=2
ここのページの下まで行って、サーバ立ち上げてみたんですが、
トップにアクセスすると
192.168.0.4:8080/_ah/login なんたら
にリダイレクトされて

The requested page was not defined in your SiteMap, so access was blocked.

とエラーが出てしまいます・・。

web.xmlで
<filter-class>bootstrap.liftweb.LiftFilter</filter-class>
みたいに設定してるんですが、これだけだと何か足りないんでしょうか。

gae混ざっててすいません。どなたか教えていただけると嬉しいです。



906 名前:デフォルトの名無しさん [2010/05/28(金) 22:51:03 ]
ScalaよりもJavaScriptの方が関数脳になる近道じゃね?

907 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 22:57:26 ]
ttp://www.j2js.com/scala-demo/index.html

908 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 23:31:13 ]
>>906
本当に関数脳を鍛えたいなら
それこそ関数型言語が本筋だろう

909 名前:デフォルトの名無しさん [2010/05/29(土) 00:25:56 ]
だって敷居高いじゃん

910 名前:デフォルトの名無しさん [2010/05/29(土) 00:29:52 ]
結論:手続き型なOOで充分。

911 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 14:59:04 ]
Schemeなら覚えるべき文法が少ないから、敷居も低いな。

912 名前:デフォルトの名無しさん [2010/05/29(土) 21:58:35 ]
Schemaとかカッコ多すぎてゲロ吐くレベル

913 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 22:41:13 ]
スキーマ?

914 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 00:25:26 ]
>>912
関数型言語向いてなさ過ぎだろ
Schemeやったら死ぬぞ

915 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 00:37:10 ]
>>911
386アセンブラなら覚えるべき文法が少ないから、敷居も低いな。



916 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 02:59:02 ]
そもそもSchemeは関数型じゃないし

917 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 15:15:16 ]
本当の関数型は、HaskellとかConcurrent Cleanとかだな。

918 名前:デフォルトの名無しさん [2010/05/30(日) 21:18:10 ]
>>905
とちょっと違うけど自分もそのページの見てやってて、
4ページまで行ったんだけどコンパイルしてブラウザからアクセスしたら
Message: java.lang.NullPointerException
ってエラーが出ました。
コンパイルが通ってるのにエラー出るってどういうことなんでしょう?
Javaやったことないのでエラー文もよくわからないのです・・

919 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:27:02 ]
ぬるぽがわからんやつには早いって

920 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:28:10 ]
>>919
ガッ!

921 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 23:00:06 ]
> コンパイルが通ってるのにエラー出るってどういうことなんでしょう?

これに少し感動。
初心者がこんな風に思う時代になったんだ

922 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 01:40:56 ]
いや、Haskell使いかも知れん。

923 名前:918 [2010/05/31(月) 01:54:30 ]
アドバイスいただけると嬉しいです。。

924 名前:デフォルトの名無しさん [2010/05/31(月) 06:31:55 ]
エラー名でググれ

925 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 09:11:58 ]
>>918
値が入っていない変数に、メソッドを発行するとよく出るよ。
変数の初期化し忘れとか確認してみな。



926 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 18:42:54 ]
Scalaでnull使ったら負けでしょ。
OptionかBox型を使うべき。


927 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 22:52:07 ]
>>923
> アドバイスいただけると嬉しいです。。

codezine の記事書いている作者にメール送るのも手ですよ。

読者からの反応はうれしいものなんです。


928 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:06:30 ]
>>927
大事なのは私が嬉しいかどうかです。。

929 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:17:14 ]
yuroyoroさん降臨か
微妙にScala界隈の著名人が集まるスレになっとるな

930 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:19:57 ]
Scalaの本売れすぎだろ
八重洲ブックセンター行ったらコップも入門も売り切れだったぜ

あっちの方の入門は残ってたけど

931 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:31:50 ]
オアゾの丸善の方が良くない?

932 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:45:57 ]
えーだって俺会社八重洲だもん

933 名前:デフォルトの名無しさん [2010/06/01(火) 01:50:28 ]
八重洲ブックセンターちょくちょく行くが売り切れとかありえんだろ
なんの自演だそれは

934 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 02:53:12 ]
いやコップといい方の入門は先週は平積みだったのに今日行ったら1冊も無かったんだよマジで

935 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 03:20:18 ]
売れないから返品されただけじゃないか。



936 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 08:57:30 ]
昨日日本橋の丸善でコップ買ったよ。
あと3冊ぐらいあった。
オアゾは売りきれてたよ。在庫検索では。

937 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 12:45:54 ]
なんで2種類だけそんなに売り切れてんの
工学社のも買ってやれよw

938 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 20:56:26 ]
>>934

ブレークするような出来事あったっけ?

なんかいまいち、盛り上がりに欠けると思うのだが。


939 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 21:15:50 ]
新人にjavaで何か新しいもんさわってみろ
でscalaという流れとか

androidとかgae/jとかもあるけどな

940 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 23:41:27 ]
まぁ八重洲あたりはIT企業が多いからそこだけの地域特需かもな
オー○ックとかリク○ートあたりが採用したのかもしれんと妄想

941 名前:デフォルトの名無しさん [2010/06/02(水) 12:09:45 ]
liftでプリントデバッグに使える関数ってありますか??
printlnだとサーバのログには書き出せるんですがブラウザで確認するにはどうすればいいかなと・・

942 名前:918 [2010/06/02(水) 12:53:45 ]
色々教えていただきありがとうございます。
ちょっとずつ分かってきましたがまだ疑問点があります・・

codezine.jp/article/detail/5103?p=3
ここのページの通り、
case class Event(
id:Option[Long],
name:String, description:String,
fromDate:Date, toDate:Date, place:String,
join:Long, count:Long, user:User, members:List[User] )
が定義されているのですが、

entityValueメソッド
-----定義-----------
def entityValue[T]( e:Entity, name:String ) =
e.getProperty( name ).asInstanceOf[T]
--------------------
を使って、のちに

entityValue[User]( e, "user" ),
entityValue[JList[User]]( e, "members" ).toList
(eはgoogle app engineのEntityクラスオブジェクト)

などとしているところがありまして、ここの
entityValue[JList[User]]( e, "members" ).toList
の部分でmembersプロパティに値がなかった場合、entityValue関数内の e.getProperty( name )で nullが返ってきて
null.asInstanceOf[JList[User]]
が実行され、
java.lang.NullPointerException
となるようです。
(分けます・・)


943 名前:918 [2010/06/02(水) 12:55:58 ]
しかしエラーが出る上の行の
entityValue[User]( e, "user" )
では、たとえuserプロパティの値が空であったとしても、
entityValue関数内の e.getProperty( name ) でnullではなく空文字が返ってくるようで
"".asInstanceOf[User] となり、この場合はNULLエラーにならないようです。

userプロパティ、membersプロパティ共に値が空であることには代わりが無いのに
e.getProperty("user")では空文字列が返り、
e.getProperty("members")ではNullが返ってきてしまう理由がよくわからないのですが、
これはなぜなのでしょうか?
[User]と[JList[User]]の違いなのか、それとももしかするとapp engine sdkの仕様なのでしょうか。
度々質問ですいません。アドバイスいただけると嬉しいです。

944 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 00:56:58 ]
blogの話題解析ページ見ると、"scala"で4〜5月に大きな盛り上がりの山があったようだ。
Software Design誌の影響?

945 名前:デフォルトの名無しさん [2010/06/05(土) 09:39:31 ]
はてなで話題になったからだろ



946 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 11:28:34 ]
>>944-945
ブックマーク数から判断すると火元は下記記事ですね。

RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)
wota.jp/ac/?date=20100426#p01
b.hatena.ne.jp/entry/wota.jp/ac/?date=20100426%23p01 (759 users)
b.hatena.ne.jp/entry/wota.jp/ac/?date=20100426      (138 users)

947 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 00:40:29 ]
想像以上にひどい提灯記事w

948 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 00:44:07 ]
AKBヲタかよw
頼むから公表しないでくれマイナス要因になるから
握手が生き甲斐でプログラム組んでると思われるぞ

949 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 00:55:07 ]
ベリーずからAKBに乗り替えクマー

950 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 01:03:00 ]
もうGOと一緒でScalaも下火だな。
D言語まっしぐらだわ。

951 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 01:09:53 ]
>>950
次スレ頼んだ。

952 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 10:14:42 ]
そもそも、ScalaとRubyは比較対象になるのか。
使い道が違うと思うんだけど。

953 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:08:21 ]
>952
上記エントリから関連記事を辿るとさんざん指摘されてる。
動的言語と静的言語は違うからな。
もともと静的言語が好みで、しかしJavaみたいに煩雑な記述はしたくない、という話だろう。
まあ、そういう層は潜在的に多そうに感じるけど。

954 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:36:27 ]
逆にJavaからRubyへって本だと静的言語終わったこれからは動的って書いてあるから
お互い様だよそこは

955 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:51:17 ]
scalaとrubyって使い途ちがうの?



956 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 13:29:18 ]
同じだよ

957 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 13:56:11 ]
ていうかScalaが動的型付け言語の中ではRubyにかなり似てるからじゃね?
SS本の中でもやたらRubyとの比較がでてくる

じゃなければ普通PHPやPythonと比較するだろう

958 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 14:25:09 ]
Twitterがらみで比較されてんじゃないの?

959 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 14:29:30 ]
全然似てないよ

960 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 15:34:43 ]
ただ単にあの人がrubyの人だったってだけじゃない。
pythonと比べても大してかわらん。
scalaはユニークだ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<218KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef