プログラミング言語 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/03/02(水) 12:31:30.62ID:k2OdG5YD
>>313
Option(Maybe)はnullのハンドルを強要するだけの型だってことくらい誰でも知ってるし、
モナドを扱う=高度な技術とはだれも言ってない

イマイチどの発言に対しての反論なのか分からん。null 推論してくれる言語ってのも具体的に何か書いてくれ
316デフォルトの名無しさん
垢版 |
2016/03/02(水) 12:59:30.16ID:dbGrHudI
>>310
なんか勘違いしてね
その下の例ならflatMap使わないというかむしろ使えない
mapのパターンじゃね?
2016/03/02(水) 20:22:11.09ID:Yn+utV3g
ceylonの事ならnull自体は存在しちゃう
そうじゃなくてScalaのNothingみたいにAnyRef型のサブクラスでinstanceがない
Null型があればいいんだけどjavaとの互換性考えるとインスタンスのnullは必要になっちゃわね?
2016/03/02(水) 20:23:21.06ID:Yn+utV3g
あとflatMapって名前が嫌なら>>=って記号もscalaZとかにはあるべ
2016/03/02(水) 20:27:17.77ID:EJ892bH/
>>318
>>= は演算子の優先順位の関係でやや使いにくいんだよなぁ
2016/03/02(水) 20:47:00.56ID:Yn+utV3g
まあ確かに。。
2016/03/04(金) 02:46:02.58ID:K+allXqd
>>317
nullを想定しない前提のjvm上の言語ならあるよ
もちろんffi部分でOptionなどを使わないと大変な事になるけど
322デフォルトの名無しさん
垢版 |
2016/03/16(水) 15:01:17.61ID:Rs+zYYzY
なにそれ
323デフォルトの名無しさん
垢版 |
2016/04/09(土) 09:04:30.19ID:czVLbMzO
Scalaを使うプロジェクトがあまり増えてないからScalaの技術者が増えない
Scalaの技術者がいないからScalaを使うプロジェクトも増えない
2016/04/09(土) 19:15:39.65ID:ll8dAOeX
意識高い系のおもちゃで終わった感がある
日本に登場するのは早すぎたかもな
2016/04/09(土) 20:09:12.66ID:VUvkdYpi
Sparkも一時期祭り上げられたけど結局みんなPythonっていうね
326デフォルトの名無しさん
垢版 |
2016/04/11(月) 22:12:53.86ID:+sfyV9Ns
Scalaって技術書ほとんどないよな
洋書は結構あるけど
和書がこれだけ少ないと流行らない
2016/04/11(月) 22:30:53.29ID:vTN0MM0L
Scalaパズル読んだけどこの先Scalaを使うことを考え直したくなる本だった
完全に破綻してるんだなこの言語
2016/04/11(月) 22:45:19.72ID:x+9F4sOV
海外は新しい言語にすぐに飛びついて試したりするから早い段階からScalaを検討し始めた
GoogleやFacebookがオープンソース化したSwiftに関心を持ってるらしいし

日本は前例主義でどこか実績のある言語にしか興味がない
新しい言語について説明する書籍も早い段階で出てきたりしないし
海外で普及し始めたころに海外で出回ってる書籍の日本語翻訳本を出したり
遅すぎるんだよ
2016/04/11(月) 22:47:53.41ID:ORuOCkHy
IT後進国wwww国民はスマホでソシャゲとLINEwwwww
没落不可避ですわ
330デフォルトの名無しさん
垢版 |
2016/04/12(火) 21:44:47.10ID:ZWvwh7J9
>>327
ScalaやっててがScalaパズルの例とかが問題になる所は殆どないから安心しろ
scalaで困るのはsbtがとっつきにくいとかコンパイル糞遅いとかそういう所
>>326
書籍ならコップ本とscala逆引きがれば十分じゃないか
ネット上で情報はいくらでも転がってるし、なかったらtwitterなりgitterなりで聞けば大抵答えてくれるぞ
なんかたまに流行らない言うてるのはなんなんだ
毎週勉強会が開催されてたまに大きなイベントも開催されてて大企業も使ってるんだから十分流行ってるだろ
2016/04/13(水) 00:41:09.31ID:RbfuBc9o
そんな言語いくらでもあるよね
332デフォルトの名無しさん
垢版 |
2016/04/13(水) 08:19:45.47ID:xv2sZ79V
そういう言語も人気のある言語なのでで
333デフォルトの名無しさん
垢版 |
2016/04/13(水) 21:30:31.34ID:xH/eS7KF
2016年4月プログラミング言語人気ランキング
ttp://pypl.github.io/PYPL.html
2016/04/13(水) 21:54:54.17ID:E2Yhqe8e
>>333
Swiftの1/3もあるってすごいやん!
2016/04/15(金) 21:32:48.67ID:W/ZkMe0K
M4がやっと出ましたね。
いつ頃2.12リリースされるんでしょうか?
2016/04/15(金) 23:20:10.21ID:LeB+ir84
夏頃だろうね

ってか2.12ってなんか目玉機能あったっけ?
Java8対応なんてJava->Scalaの呼び出しが便利になるぐらいしか意味ないと思うんだけど
2016/04/23(土) 08:47:25.77ID:XSEAVTk4
言語としては面白いよねscala
コードを読むのがパズルみたいで頭の体操になる

実際仕事では絶対使いたくないけどね
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
騙されるな
結局、単項演算子や結合順序の問題があるから演算子オーバーロードには特殊なルールがある
それを「命名規約」と呼ぶことであたかも特別扱いではないかのように見せ、ブロガーを欺いている
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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