プログラミング言語 Scala 11冊目 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2015/08/28(金) 07:25:25.39ID:YozprJV9
The Scala Programming Language
ttp://www.scala-lang.org/

日本Scalaユーザーズグループ
ttp://jp.scala-users.org/

■前スレ
プログラミング言語 Scala 10冊目
http://peace.2ch.net/test/read.cgi/tech/1390629242/

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

■Scalaに関する書籍(英語)
ttp://www.scala-lang.org/node/959
リファレンスマニュアルや草稿のPDFなども充実しているのでそちらも参照してください。
日本語の資料には、チュートリアルの訳やIBM dW、IT Pro, @ITの連載記事、各々で開かれた勉強会の資料などがあります。
2016/04/23(土) 19:41:08.71ID:bA1NlRjn
>>337
パズルだと思ってるうちは仕事では使いたくないだろうな
他の言語と同じでイディオムを覚えれば普通に仕事でもいけるんだけどね
339デフォルトの名無しさん
垢版 |
2016/04/23(土) 20:37:07.98ID:PodTlhvX
scala普通にパターンマッチとコレクションとcase classが便利くらいの理解で仕事でもいけるゾ
2016/04/23(土) 20:41:06.48ID:ctMvhaeq
Programming in Scala, Third Edition
http://www.artima.com/shop/programming_in_scala_3ed
コップ本原書は、2.12対応した第3版が出たようだ。
紙の本は、5/2に出荷するとのこと。
2016/04/24(日) 00:30:54.29ID:hj7itNlG
C++と同じ撤を踏んでる気がする
2016/04/24(日) 00:41:09.24ID:WdB/+MSP
C++はハマリどころが多いだけでそれほど複雑ではない
Scalaはハマリどころが多い上に概念が本質的に非常に複雑
2016/04/24(日) 09:13:42.79ID:2eP90V9A
>>342
具体的な例を2,3あげてみて
2016/04/24(日) 10:07:20.26ID:gkZOONWv
c++はマルチパラダイムだけどそれぞれ別々だがcに引っ張られる、
scalaはpi計算で統合してるがJVMに引っ張られるってやつでは。
2016/04/24(日) 20:42:11.02ID:3BfyDmXn
Scalaが実際複雑か否かは別として
C++が複雑じゃないって言う人の主張には説得力が感じられない
2016/04/24(日) 21:14:52.37ID:57MKbvES
implicit関連は複雑だと思うけど
後はあんまり複雑だとは思わない
2016/04/24(日) 22:26:24.29ID:ueNLVhqD
lvalueとかrvalueとかcopyコンストラクタとかmoveコンストラクタとか
2016/04/24(日) 22:48:31.29ID:hj7itNlG
便利な機能を付け足して行くと複雑怪奇になるパターンか。
2016/04/24(日) 23:31:34.93ID:C5ELX8NC
>>342は、馬鹿なくせにすべての機能を使いこなさないといけないと思ってる馬鹿
お前程度の知能の奴にしたら、ほとんどすべての言語に複雑な概念が含まれてるんじゃないか?
お前に理解できる言語なんてほとんどないからもうプログラミングやめちゃいなよ?
2016/04/25(月) 23:23:51.79ID:vaAh4Uci
for文の代わりによくわからない面白関数を使うとコードが綺麗になって好き
2016/04/26(火) 00:24:42.64ID:ABWukUzm
よくわかってない関数を使ってコードが綺麗になったとか言っちゃう子怖い
2016/04/26(火) 00:41:23.59ID:X3pTsOr7
scalaだとfor式にしてもfor文にしても flatMap,map,foreachの糖衣構文だから
for {f <- fuge} みたいに一つしか呼び出してないんなら普通のメソッド呼び出しの方が綺麗になるかもね
2016/04/26(火) 23:45:28.62ID:lvEC26Db
scalaってperlと同じ匂いがするんよ
scalaしか関数型を触った事ない人がぐちゃぐちゃ書いてる感じが
2016/04/26(火) 23:52:53.14ID:/F2CknZR
>>353
そうか?
Scala使う人間はHaskellも読めるって感じの人が多い印象だな、俺は

そういう人がScalaを使う理由としては、Javaの資産が大きいようだ
2016/04/27(水) 00:01:40.06ID:IhUwYn1n
>>354
むしろHaskell使ってscalazまで使い込んでる(読み込んでる)人間は
重いし汚いって印象だとおもうんよ…
2016/04/27(水) 00:04:23.80ID:h1YZ0h5e
>>355
何を言いたいのか分からん
印象論でScalaを貶めたいだけならスレ違いだからどっか行った方がいいぞ
2016/04/27(水) 00:23:50.11ID:sEcYasS3
>>356
scalazみたいなゴミ使ってまでFPするくらいなら
素直にHaskell使った方がマシ

って主張が読み取れたよ
2016/04/27(水) 00:26:37.93ID:h1YZ0h5e
>>357
Haskellだけで閉じた世界で片付くならそれでいいけどね
Javaの資産は大きいのさ
2016/04/27(水) 02:45:32.97ID:IhUwYn1n
>>358
お前がHaskellerじゃないのに意見してる事は分かった
2016/04/28(木) 10:51:07.65ID:0HE3kGMy
プログラマには清濁併せ呑む寛容さが必要

言語設計や記述が如何に綺麗だろうが
どうせ実装しているロジックは泥臭いんだろ?
2016/04/28(木) 13:30:19.73ID:InvdWqa8
そんなこと言い出したらScalaなんて使わずJava8で良いって話になっちゃう
プログラマ集めるのもScalaよりよっぽど簡単だぞ
2016/04/28(木) 15:27:26.18ID:0HE3kGMy
実際Java8で良いって話でしょ
Scalaじゃないとダメだって理由でScalaを使っている人なんているの?
無論Java8で良いとJava8が良いは同じじゃない
2016/04/28(木) 16:59:43.97ID:InvdWqa8
じゃあ資産とか引き継ぎとか諸々考えたらJava8の方がいいし、
しがらみが無いならHaskellの方が優れてるので
Scalaはウンコってことじゃん
2016/04/28(木) 17:33:53.16ID:0HE3kGMy
中庸の徳というものさ
365デフォルトの名無しさん
垢版 |
2016/04/28(木) 18:51:49.60ID:RsqQkTqZ
Scalaは関数型言語の要素を持ったオブジェクト指向で副作用もバンバンする
Haskellと比べるのはおかしいせめてocamlとかだろ
Java8でいいじゃんって言われてもパターンマッチもないし全然比べられないよ
2016/04/28(木) 20:06:45.78ID:1XJkZzuy
仕事ならScalaなんか使って他の誰にもメンテできないもの作って自分のケツをいつまでも拭き続けるくらいなら
Javaでもいいから新しいものを作って後は丸投げの方が楽しい
367デフォルトの名無しさん
垢版 |
2016/04/28(木) 21:03:10.86ID:RsqQkTqZ
仕事でscala使ってる所なら周りがメンテできるよ
2016/04/28(木) 23:18:17.83ID:j1V3BI1k
日本語版WikipediaのScalaのページのノートの部分にはScalaが関数型言語扱いに疑問を抱いてるコメントがあるね
2016/04/28(木) 23:57:22.60ID:hgtGgNRu
・手続きが透けて見えるRuby系の構文のため、見た目があまり宣言的じゃない
・インフラ周りやWebでBetterJava的に使われることが多く、
 いかにも関数型らしい使い方(業務モデルの記述みたいなの)は少ない
・オブジェクト指向言語として高機能すぎて、設計がOOに引っ張られやすい
・結局Javaのライブラリに頼るのでイミュータブル何それ状態
こんなところかな
2016/04/29(金) 17:49:08.38ID:6d5pj9gK
>結局Javaのライブラリに頼るのでイミュータブル何それ状態
これはあまりないな〜
大抵の事はscalaのライブラリでできるし
javaのライブラリを使う時もscalaでラップしてimmutableっぽく使うのはそんなに大変じゃない
2016/04/30(土) 01:07:35.03ID:f7aH8+B9
>>369
> ・手続きが透けて見えるRuby系の構文のため、見た目があまり宣言的じゃない
Ruby系ってなんじゃらほい?ブロック構文のことかい?
だとしても、それと手続きが透けて見えるとはまったく関係のない話だと思うが
372デフォルトの名無しさん
垢版 |
2016/05/01(日) 10:44:32.89ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
2016/05/01(日) 10:55:51.44ID:26Cdb2A4
>>372
こいつなんなの?怖いんだけど
2016/05/24(火) 04:21:25.02ID:4IQ3Vsxy
Playでブラウザ閉じたらログアウトされるの何とかならないの?
いくらRESTって言っても限度があろう
2016/05/25(水) 20:10:07.44ID:Qb+e0Ge6
>>374
Cookieいじればいいじゃん
2016/05/26(木) 01:02:42.93ID:MTYdBGiL
うわできた
だめだな俺・・・意識高い系失格だ
377デフォルトの名無しさん
垢版 |
2016/05/27(金) 00:50:36.98ID:miERtZSj
>>376
というかセッション情報をメモリに入れたりredisとかに入れる事は普通に出来るよ
378デフォルトの名無しさん
垢版 |
2016/05/27(金) 00:51:54.36ID:miERtZSj
github.com/t2v/play2-auth
2016/05/27(金) 09:08:25.74ID:uvF2afjX
それはcache使ってるから避けたい
いつ何が消えるかわからないし、そもそも容量の少ないメモリに情報を入れるのが気持ち悪い
380デフォルトの名無しさん
垢版 |
2016/05/27(金) 20:54:43.80ID:X8GqPxic
いやこれ使えるキャッシュは選べるよ
Redisを使ってもおけ
2016/05/28(土) 19:28:13.32ID:nSLp5ykv
redisってなんだと思って調べたらばっちりの仕様だった
こんなのあったのか
2016/05/29(日) 03:41:03.36ID:WWg1tus5
redisも知らずに生きてたの・・・
2016/05/29(日) 04:34:10.50ID:eBkUepIJ
言動が子供だし頑張ってる高校生とかじゃないのかな
2016/05/29(日) 09:20:24.38ID:mBl9+EY0
Scalaに興味を持つような奴らやその周囲ではRedisなんて常識の一つだが、
その辺のSES企業にいるエンジニアもどきは技術について驚くほど疎いよ
2016/05/29(日) 10:53:22.36ID:tvzCZHQV
Web系じゃなければ普通に知らないでしょ
お前らSparkとか分かるのか?
2016/05/29(日) 11:47:54.33ID:e9TmQK+a
Webは技術としてはわりと狭い分野だけど、
情報のネタと媒体が同一というアドバンテージのせいで自分達がITの全てであり最先端であるかのように錯覚しやすい
2016/05/29(日) 14:44:52.37ID:hqWpcQ8C
380だけどweb業界に入る前はAWSって何状態だったし
立ち位置によって常識が違うのはしょうがないと思う
388デフォルトの名無しさん
垢版 |
2016/05/29(日) 16:24:05.45ID:TDjQUTWm
Scalaを使うプロジェクトがかなり増えてきたな
C#を追い越しそうな勢いだ
2016/05/30(月) 21:36:18.71ID:yJLsSQVz
【悲報】俺氏、Scalaの提案を上司に断られる
理由「Scalaは難しすぎる。出来ない人でもわかる言語じゃないと仕事では使えない」
390デフォルトの名無しさん
垢版 |
2016/05/30(月) 22:43:01.29ID:LoFHK3wY
まあ人を集めようと思うとそうなるわな
2016/05/31(火) 00:54:45.22ID:b9Lz3OKM
転職して馬鹿の掃き溜めにしてやるのが正解
2016/05/31(火) 03:51:09.56ID:9wsPGZ+1
太平洋戦争の敗因の一つ

日本のゼロ戦は、米国の戦闘機3機分に匹敵したが、
運転するのに要する学習時間が、500:50時間だった

だから、パイロット500人が死んだときに、運転できる人がいなくなった
2016/05/31(火) 07:20:29.40ID:kZBDyKkq
Haskelみたいにそもそも概念が高度なのとは違って、本質的でない難しさだからね
過去の設計ミスの歴史でゴミだらけになってカオスになってるだけだから正当化のしようがないんだよな
2016/05/31(火) 07:55:04.02ID:BZMj6i6W
使っちゃいけないゴミが大量に散らかってるから、
単純に「分からない?だったら勉強しろ!」では済まないのがScalaの難しいところ
チームで適切にGoodPartsを共有できてさえいればそれほど難しい言語ではないが、そこへ至るまでのコストは相当に大きい
GoodPartsだけを抜粋したサブセットを定義してドキュメントとして公開してくれたら業務でも導入しやすくなると思う
2016/05/31(火) 13:50:08.66ID:g6f6NTXk
君はじつに馬鹿だな
上司でもわかる言語を選択しなかったのが失敗だ
2016/06/02(木) 13:21:34.59ID:i0DqHzro
使っちゃいけないゴミを具体的に教えてください
2016/06/02(木) 14:03:33.76ID:/EGCDApP
>>396
Actor APIとかいう壮大な廃墟
2016/06/02(木) 16:14:52.00ID:n2zNmuVe
>>396
Swing APIとかいうdeprecated入り確実の糞の山
399デフォルトの名無しさん
垢版 |
2016/06/03(金) 19:31:33.15ID:eHY6P3Rv
どうでもいいが出来ない人でも分かる言語なんかないと思う
2016/06/03(金) 20:10:43.93ID:7+Hx+Zkt
どうでも良いならチラシの裏へ
2016/06/03(金) 23:24:27.52ID:7emugrZg
どうでも良くないが出来ない人でも分かる言語なんかない(確信)
2016/06/04(土) 11:33:13.97ID:x2lid9NV
>>397,398
そんなライブラリ部分なんてどうとでもなるだろ
切り替え手順なんていくらでも転がってんのに

もっと言語として使っちゃいけないゴミを挙げてほしいわ
2016/06/04(土) 13:32:16.60ID:8iP9+l2z
XMLリテラル…ゴミというか、普通にみんな避けてるか
2016/06/04(土) 18:31:09.27ID:D9CDDk1T
xmlリテラルは俺も浮かんだがそもそも誰も使っていないという
昔のscalaの紹介記事だと宣伝されてたけど
2016/06/09(木) 03:05:15.46ID:rVZX7CxP
Scalaって短いコードが正義だとばかりめちゃくちゃやってない?
短いのは良いけどそれが他人に読めないようではゴミだと現場でもリーダブル・コードでも教わったけど、
それの真逆を行ってる気がする
2016/06/09(木) 05:31:52.10ID:fwgjgofC
そもそも実用言語じゃないからねこれ
研究用の実験言語
2016/06/09(木) 10:46:22.60ID:mypD/X+t
実装を読み解かないと挙動が分からない時点で
読みやすさを論じる価値がない

「読み解くくらいなら自分で実装したほうが早い」
って思えるくらいの粒度ならシンプルな方がいいんでは?

別にゴルフやってる訳じゃないんだから
短く書くのは分かりきっている部分で
そこを冗長に書いたところで読みやすくはならない
2016/06/09(木) 14:12:37.84ID:ifPE+NTk
記述の抽象度が高いのと暗黙的なのとははっきり区別して考えるべき
Scalaは関数型としてはそれほど抽象度は高くないかわりに後者による省略が目立つ
409デフォルトの名無しさん
垢版 |
2016/06/09(木) 19:20:06.80ID:SBNt8N/h
具体例を上げてもらわんとなんとも
暗黙の型変換の多用はうんちだけど
2016/06/11(土) 23:16:17.51ID:F/F4wJ23
単純にカッコやドットの省略とかも利点ない気がする
2016/06/11(土) 23:19:44.60ID:tJYHO1Ae
カッコの省略は超大事
Rubyのブロックのような書き方はある意味衝撃だったからねー
あれを捨てるのはさすがにできない
Swiftもそうだしね
2016/06/12(日) 23:57:27.55ID:LInyuzht
文法については、コンパイル時間が伸びなければ簡略化取り入れてもいいけど、
セーブするときはフォーマッターで;付きに整形したい派
2016/06/13(月) 03:40:36.02ID:936E8706
>>410
fuge.method(hoge)を fuge method hoge みたいに書ける奴?
あれないと演算子を定義する時に演算子オーバーロード用の構文が必要になるよ
2016/06/13(月) 09:27:49.08ID:R0RMs4bq
>>413
騙されるな
結局、単項演算子や結合順序の問題があるから演算子オーバーロードには特殊なルールがある
それを「命名規約」と呼ぶことであたかも特別扱いではないかのように見せ、ブロガーを欺いている
2016/06/13(月) 09:39:31.25ID:QPr6F1yt
演算子については、メソッドと演算子を統一的に扱うというアイデアに固執した結果、かえって複雑になっている感がある
あの「命名規約」が美しいとはあまり思わないな
2016/06/13(月) 15:05:47.35ID:936E8706
>単項演算子
単項演算子はユーザーがあんまり定義しないし
結合順序は末尾=がつくの以外はそんなに気にしないっしょ
2016/06/20(月) 21:15:43.22ID:e35Nkr0d
2.12リリースまだぁー
2016/06/21(火) 02:09:43.80ID:bdFMFD8l
scalaって借金管理(こっちが貸してる方)のシステムを書くのとか得意ですかね?
数十件の利息、延滞金をミスなく計算したいので、型がしっかり(?)してて、
ライブラリ豊富そうだなと思い、聞いてみました。
2016/06/21(火) 07:29:48.84ID:qU7L11UT
そういうのはテストをどれだけちゃんと書くかが全てだから正直あんまり関係無い
Scalaはある程度バグの許容されるWeb系の連中が多いので、関数型最強ウェーイみたいなのをあまり真に受けない方がいい
2016/06/22(水) 12:32:22.07ID:75XiCOP3
むー。
非プログラマな職場で
自分しかテストやらチェックできないので、
普段使ってるrubyよりかは
型チェックされるし、自前のguiがあるという点でいいのかなーと、思ってました。

というか、本音はコップ本を前に買ったままだったのでscala使いたかっただけなのかもしれない…と気が付きました
2016/06/22(水) 20:48:36.24ID:+togyD5I
自前のgui…
2016/06/22(水) 21:23:55.40ID:ShWHWHC0
ScalaでGUI作ってる奴なんて日本で100人もいなさそう
2016/06/23(木) 08:00:34.64ID:b238+E4M
あ、間違いです!
javaのguiでした!
2016/06/23(木) 21:50:39.00ID:T6UvsyMz
誠に遺憾ながらそれもそれで100人が200人にはなるかなという代物
425418
垢版 |
2016/06/29(水) 23:50:04.15ID:gdvQHAi2
まさか、このスレで、オススメされないとは思わなんだ。
日頃scalaと向き合ってる人からの忠告なのでありがたく参考にさせてもらいます。
一番得意なruby(jruby)で、テストをしっかり作ってやってみます。
2016/06/30(木) 00:04:15.36ID:iTuzTFvO
GUIやる時点で選択肢は相当に狭められるからね
Web系ならまだしも
2016/06/30(木) 00:23:09.72ID:L1psIJpl
Scalaはあんまり宣言的じゃないから、関数型らしいロジックの見通しの良さがあんまり感じられないんだよな
良くも悪くもRuby系
2016/07/03(日) 11:06:08.21ID:ZEr6aDFZ
オブジェクト指向と関数型の良いとこ取りした、銀の弾丸に今最も近い言語でしょ?
Rubyみたいなハチャメチャ言語と比較されてしまう程度の言語なの?

IDEはeclipseしかないの?
2016/07/03(日) 11:43:48.73ID:dqZh4yhX
オブジェクト指向と関数型のいいとこ取りとしては今はF#がそれに近いかなあ
Scalaは無計画に便利そうなもの全部ブチ込んで混ぜただけのカオス
2016/07/03(日) 11:53:28.68ID:OKnEuR5T
ブーム一瞬で終わったな
2016/07/03(日) 13:03:17.56ID:ZEr6aDFZ
DDD界隈だと人気らしいじゃん?
もしかして、Javaが中途半端なラムダ式導入しただけでScalaは洋梨オワコンなの??
2016/07/03(日) 13:19:14.42ID:T6bq1Tjn
>>428
Ruby と書き方は似てるからねー
メソッド引数のカッコ省略とか return 省略とか、Ruby のブロック構文とそっくりな書き方を
できるところとか
だから Scala は Java より Ruby から入る人の方が多いんじゃね?と言われるぐらい

Ruby から入る人の方が多いからかどうか知らないけど、eclipse はあまり使われてない感じ
IntelliJ の方がどちらかというと有名かな
あとは Emacs(やVim、Sublime)+ensime とかね(これも Java から入る人が少ないことと
関係してそう)
2016/07/03(日) 13:23:38.14ID:ZEr6aDFZ
括弧省略あるんですね 幻滅しました
誰が書いても似たようなコードになるPythonが至高だと思ってます
でもPythonのOOPってちょっと変なのが残念
実行速度遅いのも残念だし、型なし君なのも残念
Scalaこそが人類を救済の地に誘う神の導き手だと信じていたのに、幻滅しましたよ
2016/07/03(日) 13:38:56.80ID:T6bq1Tjn
>>433
そういうカッチリ書く系の人は Java と親和性が高いんだろうね
Scala は Ruby との親和性が高いから Ruby と比べられるんだろうね
2016/07/03(日) 13:47:02.08ID:ZEr6aDFZ
javaのOptionalが、Kotlinくらいにもっと手軽に使えたらよかったのに

英語ってさ、記号が少ないからどこに何があるか瞬時に判別しづらいんだよ
だから象形文字としての記号は、コードリーディングに置いて非常に重要だと思う

大して違いもない一時の書きやすさ(幻想)のために
おかしな省略記法があるのは本当によくないとおもう
Scalalintとか、標準コーディングスタイルとかで禁止にして然るべきだわ
2016/07/03(日) 13:48:37.64ID:jvF65JbL
Pythonの思想に共感する人はF#の方が合ってるよ
C#の実用性とML系の宣言性の高さを継承しつつ、
OCamlの使いづらさをPython風のシンタックスを取り入れることで改善した理想的な言語
2016/07/03(日) 13:53:59.17ID:T6bq1Tjn
>>435
そこはバランスだよねー
ひどすぎると APL になっちゃうし
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況