20210302_rpscala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
清水翔太20:59 | |
一見でーす>< | |
Ryuto Ishikawa20:59 | |
こんばんは、初参加です。よろしくおねがいします。 | |
あなた21:00 | |
はじめまして~!よろしくお願いします ✋ | |
Naoki Aoyama21:01 | |
こんばんは〜〜〜 | |
Nakamura Manabu21:01 | |
よろしくおねがいします~ | |
あなた21:01 | |
わいわい | |
Tae Matsumoto21:01 | |
歴史凄い! | |
安達聡司21:01 | |
こんばんはー | |
あなた21:01 | |
gitter channelも、あり〼 | |
https://gitter.im/rpscala/rpscala | |
Shunsuke Otani21:01 | |
こんばんは〜 | |
Taketo Ikeda21:01 | |
こんばんわ! | |
近藤豊峰21:01 | |
こんばんは〜! | |
Tae Matsumoto21:02 | |
地味に初参加です!よろしくおねがいしますー | |
Taketo Ikeda21:06 | |
遅れて来られた向けに | |
rpscalaのonlineの資料です | |
https://docs.google.com/presentation/d/1Qhl4LiIgUTxUE1VaWbFwCk7qUK7ZbReXJwxkyp9RSS8/edit#slide=id.p | |
かとうじゅんいち21:09 | |
おっさんが多いですからねー。僕もおっさんですが…。 | |
omi end21:10 | |
こんばんはー! | |
Naoki Aoyama21:10 | |
こんばんはー! | |
Sekkei Unou21:10 | |
私も初参加です、よろしくお願いいたします。 | |
Kenji Yoshida21:11 | |
https://togetter.com/li/316892 | |
吉村優21:12 | |
Setって共変だとマズいんでしたっけ? | |
taber cedre21:13 | |
Set が Function1 を継承している……なるほど。 | |
Kugiya Jiro21:13 | |
Seq(1).toSet[Int].map(_ => + 1)// これはOK | |
吉村優21:13 | |
あー、 Set[A] extends A => Boolean | |
:point_up: になってる感じなのかなw | |
Toshiyuki Takahashi21:13 | |
yatta- | |
Toshiyuki Takahashi21:15 | |
お悩み解決じゃん | |
清水翔太21:15 | |
toSet と to(Set) って何がどう違うんですか? | |
あなた21:16 | |
https://www.scala-lang.org/api/current/scala/collection/Seq.html#to[C1](factory:scala.collection.Factory[A,C1]):C1 | |
Toshiyuki Takahashi21:17 | |
fromもありますよね | |
Kugiya Jiro21:19 | |
to(Seet)した後、mapした場合ってループ1回なんですかね?ループ2回? | |
あなた21:19 | |
https://github.com/scala/scala/blob/v2.13.5/src/library/scala/collection/Set.scala#L221 | |
https://github.com/scala/scala/blob/v2.13.5/src/library/scala/collection/Factory.scala#L260 | |
Kenji Yoshida21:20 | |
scala -Xprint:typer -e "Seq(1).to(Set)" | |
Kenji Yoshida21:22 | |
https://github.com/scala/scala/blob/v2.13.5/src/library/scala/collection/Factory.scala#L270 | |
清水翔太21:26 | |
なんかすみません(?) | |
kiris21:27 | |
Scala上級者も理解できてい良い質問だったということで | |
Kugiya Jiro21:27 | |
breakOutと同じことした場合はviewですね。 | |
taber cedre21:29 | |
リモートでもいつもの rpscala だった。 | |
Toshiyuki Takahashi21:29 | |
2.13移行でbreakOutが使われてるコードをtoに書き換えまくった記憶 | |
Taketo Ikeda21:29 | |
https://www.lihaoyi.com/post/BenchmarkingScalaCollections.html | |
Kugiya Jiro21:31 | |
メモリ効率と計算量は別かと | |
計算量が高い = CPU負荷が高い | |
omi end21:32 | |
もうちょっと下の方にメモリについて書かれてます? | |
scala -Xprint:typer -e "Seq(1).to(Set)" | |
taber cedre21:32 | |
時間計算量と空間計算量の話。 | |
omi end21:32 | |
https://www.lihaoyi.com/post/BenchmarkingScalaCollections.html#memory-use-of-immutable-collections | |
あImmutableの話だった↑ | |
Naoki Aoyama21:34 | |
Vector のパフォーマンス改善は 2.13.2 から | |
https://github.com/scala/scala/releases/tag/v2.13.2 | |
Kugiya Jiro21:35 | |
大体、1リクエスト終わったらGCされる | |
Taketo Ikeda21:36 | |
ありがとうございます! | |
Nakamura Manabu21:36 | |
http://dotty.epfl.ch/docs/reference/other-new-features/explicit-nulls.html | |
Toshiyuki Takahashi21:37 | |
Nullの人だ! | |
kiris21:38 | |
人(猫) | |
めっちゃScalaの求人でてる | |
omi end21:39 | |
Some(null) | |
かにかま21:39 | |
Javaの関数からNullが返ってきたらどうなりますか? | |
吉村優21:40 | |
Javaのやつは全部 A | Nullのユニオンにするのかな? | |
taber cedre21:41 | |
TypeScript じみてきた。 | |
Toshiyuki Takahashi21:42 | |
Scala3のインデントのシンタックスまだ頭にスッと入ってこない | |
かにかま21:42 | |
A | NullをOption(x)に適用したらOption[A]になるんですかね? | |
Naoki Aoyama21:43 | |
おこられた | |
scala> val a: Option[Int] = Some(null) | |
1 |val a: Option[Int] = Some(null) | |
| ^^^^ | |
| Found: Null | |
| Required: Int | |
Kenji Yoshida21:43 | |
https://github.com/search?q=%22-Yexplicit-nulls%22&type=code | |
Toshiyuki Takahashi21:43 | |
typescriptじゃん | |
taber cedre21:43 | |
TSだ。 | |
かにかま21:43 | |
C#だ | |
近藤豊峰21:43 | |
typescript思いましたw | |
吉村優21:43 | |
パターンマッチじゃだめなのかな。 | |
Shinichi Harada21:44 | |
kotlinのsmart castみたい | |
Naoki Aoyama21:45 | |
思いのほか -Yexplicit-nulls 使われてるんですねぇ | |
8888888888888 | |
taber cedre21:45 | |
一番上が ExplicitNullsDemo.scala なの味がある。 | |
小西俊司21:46 | |
これbytecode変わるんですか? | |
Shinichi Harada21:46 | |
そういえば、Scala3のインデントベースが3 spacesになってるのが気になってます | |
Yuichi Maekawa21:47 | |
explicit-null使うとsbt compile時にnullな場合のcase matchにwarnでまくるんだろうか | |
Shinichi Harada21:52 | |
Scala3とScala2.13.4の依存関係はこのへんに書いてありますね https://scalacenter.github.io/scala-3-migration-guide/docs/compatibility.html#examples | |
Kenji Yoshida21:54 | |
インデント、ドキュメントは3の場合あるけど、公式ライブラリ2だったりするし謎… | |
taber cedre21:55 | |
Rubyが3桁インデントというのは大昔のネタ……。 | |
かとうじゅんいち21:56 | |
Scala3 の end markerも書いてみたけど、難しかったなぁー | |
小西俊司21:56 | |
ほぼ2しか見たことないです > Ruby | |
Toshiyuki Takahashi21:56 | |
scalafmtでなんとか | |
Yuusuke Kounoike21:56 | |
rubyリポジトリの.editorconfigでは2ですね | |
https://github.com/ruby/ruby/blob/33dc0a070a515811e71fccbdc8cf0cd5a5dd784c/.editorconfig#L18 | |
taber cedre21:56 | |
Scala3の新しい文法が目に馴染まなすぎて今は辛いけど、そのうち慣れるかな……。 | |
かとうじゅんいち21:56 | |
https://dotty.epfl.ch/docs/reference/other-new-features/indentation.html#the-end-marker | |
かにかま21:56 | |
Scala3以降はインデントベースが主流になるんですかね? | |
かとうじゅんいち21:56 | |
Scala でも end 書けるぞー | |
taber cedre21:57 | |
オフサイドルールは好き嫌い分かれる印象がある。 | |
Shinichi Harada21:57 | |
これのvalのendは驚きでしたね | |
https://dotty.epfl.ch/docs/reference/other-new-features/indentation.html#the-end-marker | |
ポンコツ戦艦21:57 | |
元Pythonista的には好き | |
omi end21:58 | |
end marker なんかつらそう | |
taber cedre21:58 | |
Python は4桁インデントなのでオフサイドルールでも良いのだけど、2桁インデントの言語でやると見辛いと思う(個人の感想)。 | |
Toshiyuki Takahashi21:59 | |
すでにインデント戦争の香りが | |
Tae Matsumoto21:59 | |
戦争を招くルールいやなんですけどね、個人的には。 | |
omi end21:59 | |
エディターの力でなんとか、 | |
Shinichi Harada22:00 | |
インデントの他にも if ... then ... になったりとか | |
https://dotty.epfl.ch/docs/reference/other-new-features/control-syntax.html | |
taber cedre22:00 | |
if then は小田好先生の趣味なんですかねやっぱり……? | |
Takashi Kawachi22:01 | |
https://github.com/t2v/holidays | |
Tae Matsumoto22:02 | |
おしました! | |
Nakamura Manabu22:02 | |
ありがとうございます!!!!! | |
かとうじゅんいち22:03 | |
https://users.scala-lang.org/t/scala-3-indentation-2-3-4-or-tabs-lets-fix-this/7140 | |
「私は今まで2スペースインデントを受け入れてきましたが、3スペースインデントは実は構造的な読みやすさと行の折り返しの間の良い妥協点なのです。」 | |
Nakamura Manabu22:03 | |
なんと | |
かとうじゅんいち22:03 | |
w | |
T. Tamaki22:04 | |
ほお | |
Shinichi Harada22:04 | |
戦争がw | |
taber cedre22:04 | |
これすき "Now we know why it is called Scala 3." | |
omi end22:04 | |
w | |
Shinichi Harada22:05 | |
公式ドキュメントは全部3spacesなんですよねー | |
かとうじゅんいち22:05 | |
Russさん | |
かとうじゅんいち22:06 | |
https://scalacenter.github.io/scala-3-migration-guide/docs/scala-3-syntax-rewriting.html | |
中括弧スタイルをインデントスタイルに書き換えるコンパイラオプションあって、これを試したけど、普通に動いた。 | |
Tae Matsumoto22:07 | |
初めて知りました。心配です>3Space | |
taber cedre22:07 | |
中括弧で書いても scalafmt さんが全部直してくれる。 | |
Shinichi Harada22:08 | |
公式のgitter8のテンプレートがScalaTestじゃないのは、マクロでまだ使えないからってことなんですかね | |
https://github.com/scala/scala3.g8/blob/master/src/main/g8/build.sbt#L11 | |
Yuusuke Kounoike22:08 | |
ASTで保存するIDE欲しい | |
Yuichi Maekawa22:09 | |
主観によってしまうので言語のフォーマッターが頑張るのではなくIDEがよしなに表示するときに頑張って欲しい...GitHubもか... | |
taber cedre22:09 | |
全然違う2種類の文法が採用されてるの、ちょっと F# みある。https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/verbose-syntax | |
あなた22:10 | |
-Xignore-scala2-macros | |
Yuichi Maekawa22:11 | |
上にコメントしたことがそのまま起きた | |
Tae Matsumoto22:13 | |
ちょっとした感動味がある | |
Yuichi Maekawa22:13 | |
:clap: | |
taber cedre22:14 | |
マクロ関わらなければほとんどそのまま使えるのか。 | |
通ったw | |
Ryuto Ishikawa22:15 | |
おー | |
omi end22:15 | |
きれいな緑色だ | |
Shinichi Harada22:18 | |
謎ですね... | |
あ、ミスった | |
Yuichi Maekawa22:21 | |
ifのところをcase matchで書くのじゃだめなのかな | |
taber cedre22:23 | |
match で良さそう。 | |
taber cedre22:25 | |
if (祝日法施行 == null) return | |
小西俊司22:26 | |
val a = { | |
a = LocalDate.of(...) | |
assert(a != null) | |
a | |
} | |
taber cedre22:27 | |
null の時は例外投げるしか無いのでは? | |
Yuichi Maekawa22:28 | |
case _: LocalDate => _ | |
を上にすればよさそう | |
+1 | |
omi end22:29 | |
8888888 | |
case date: LocalDate | Null => が通るか観てみたい | |
omi end22:30 | |
Null をケアはしないけど、コンパイルとおりますか?Scala2で Union Type 使いたいケースがあったので | |
taber cedre22:31 | |
網羅性チェック捨てるなら case null は不要そう。 | |
omi end22:31 | |
888888888 | |
Yuusuke Kounoike22:31 | |
888888 | |
Ryuto Ishikawa22:31 | |
88 | |
かとうじゅんいち22:31 | |
888888 | |
Shinichi Harada22:31 | |
88888888 | |
taber cedre22:32 | |
8888888 | |
Yuichi Maekawa22:32 | |
888 | |
Kugiya Jiro22:32 | |
888888 | |
Naoki Aoyama22:32 | |
おつかれさまでした!! | |
Kugiya Jiro22:32 | |
お疲れさまでした。 | |
Taketo Ikeda22:32 | |
お疲れ様でした! | |
かにかま22:33 | |
お疲れさまでした。 | |
あなた22:33 | |
お疲れさまでした~~~ | |
Takahiro Sugiura22:33 | |
お疲れ様でした。 | |
安達聡司22:33 | |
お疲れ様でした | |
Naoki Aoyama22:33 | |
また隔週火曜日もよろしくおねがいします!!!! | |
Taketo Ikeda22:33 | |
https://docs.google.com/presentation/d/1Qhl4LiIgUTxUE1VaWbFwCk7qUK7ZbReXJwxkyp9RSS8/edit#slide=id.p | |
Takashi Kawachi22:33 | |
https://docs.google.com/presentation/d/1Qhl4LiIgUTxUE1VaWbFwCk7qUK7ZbReXJwxkyp9RSS8/edit | |
Takashi Kawachi22:37 | |
ちょい離席しますー | |
Kenji Yoshida22:38 | |
gitter全く使われてないけどどうなったんだろう… | |
別途Youtubeか何かでpublicにライブ配信するとか(?) | |
omi end22:39 | |
rpscala 開催中はTwitterハッシュタグがいいですね。ここのチャットも終わったら読み返せなくなるかもです? | |
かとうじゅんいち22:40 | |
youtube liveは一見さん参加しやすいですね。 | |
Sekkei Unou22:40 | |
アーカイブが残っていると、初めてでも雰囲気がつかめて参加しやすいかもしれません。 | |
Tae Matsumoto22:41 | |
> youtube liveは一見さん参加しやすいですね。 | |
+1ですねー。外から雰囲気気軽にわかると良いなと思います | |
omi end22:41 | |
今日はこいつを、コンパイルしていくっ!ででん | |
Nakamura Manabu22:42 | |
いったい何クッキングなんだ…… | |
かとうじゅんいち22:42 | |
youtube liveのコメントで質問投げて、わいわいやれますね。 | |
omi end22:43 | |
YouTubeならそのうち投げ銭もできるのでは!! | |
Yuichi Maekawa22:43 | |
今回初参加なので何も理解せずに書いてしまうかもしれないですが、感想です。 | |
勉強会で何をどう話したかをブログなどで発信されていると嬉しいなと思いました! | |
- 実際にどんな雰囲気の勉強会なのか知れる | |
- 内容をみてnot for meか判断しやすい | |
- 忙しい人にはハイライトなどが伝わりやすい | |
また、文章にしておくとチャットツールなどにコンテンツとしてシェアされやすいなと思いました | |
Nakamura Manabu22:44 | |
:+1: | |
Yuichi Maekawa22:48 | |
上記に付随して、コンテンツ作成は運営が大変みたいな問題があると思います。 | |
僕がこれまで参加した勉強会では「ブログ枠」という枠を用意して、有志でブログを書いてもらっているものもありました。 | |
Naoki Aoyama22:49 | |
🙏 | |
Nakamura Manabu22:50 | |
https://nagise.hatenablog.jp/entry/2021/01/06/215537 | |
Tae Matsumoto22:50 | |
オンラインならありなのでは | |
泥酔しなければ | |
かとうじゅんいち22:50 | |
毎月ぐらい トーク配信番組→懇親会(配信なし) をやってるのですが、懇親会のが盛り上げるねぇ。 | |
omi end22:51 | |
飲み会というか、結構ベテランScalaエンジニアさんが話し合ってるのを聴いているだけでも楽しいです。Scala3のDoc観ながらとかでも楽しそう。 | |
taber cedre22:51 | |
rpscala の本体は懇親会的なところはあった(それがまた内輪感を醸し出していたのだけど)。 | |
Yuichi Maekawa22:53 | |
毎度違うゲストを招待して話すとかは内輪感減らせるかもしれない | |
omi end22:53 | |
回数を重ねていくと、喋り枠が固定されていきそうな気はしますね。 | |
Sekkei Unou22:53 | |
rpscala関西支部はありますか・・・? | |
Tae Matsumoto22:54 | |
全国から参加できるのは素敵 | |
かとうじゅんいち22:55 | |
あー、ちょっとしゃべれないですが、書いておきますー | |
かとうじゅんいち22:56 | |
トークテーマが決まっていると盛り上がりますね。前々回はRustとScalaの似ているところ似てないところ、みたいな感じで。 | |
Tae Matsumoto22:57 | |
個人的には最適タイムです | |
Yuichi Maekawa22:57 | |
意見言いっぱなしになりますが、今日はここで落ちます!楽しめました! | |
次回も楽しみにしております! | |
Takashi Kawachi22:57 | |
ありがとうございました | |
Nakamura Manabu22:57 | |
おつかれさまでしたー! | |
omi end22:58 | |
おつかれさまでした! | |
Tae Matsumoto22:58 | |
おつかれさまでした! | |
あなた22:58 | |
お疲れさまでした~ | |
omi end22:59 | |
運営やります | |
かとうじゅんいち23:01 | |
Discordが音声や画面共有も楽ですね。 | |
Tae Matsumoto23:01 | |
+1 | |
omi end23:04 | |
8888888888 | |
foo bar23:04 | |
おつかれさまでした | |
Ryuto Ishikawa23:04 | |
おつかれさまでしたU^ェ^U | |
清水翔太23:04 | |
お疲れ様でしたー | |
勉強になりました | |
かとうじゅんいち23:04 | |
お疲れ様でしたー | |
Taketo Ikeda23:04 | |
888888 | |
omi end23:04 | |
お疲れさまでしたー!88888888 | |
Yuusuke Kounoike23:04 | |
88888888888888 | |
吉村優23:04 | |
おつかれさまでした。 | |
Shinichi Harada23:04 | |
お疲れさまでしたー | |
taber cedre23:04 | |
お疲れさまでした。 | |
Takahiro23:04 | |
お疲れさまでしたー | |
かにかま23:05 | |
お疲れさまでした。 | |
Sekkei Unou23:05 | |
お疲れ様でした〜 | |
小西俊司23:05 | |
お疲れさまでした | |
Yoshiteru Takeshita23:05 | |
Discord作った | |
https://discord.gg/sEwcERCAm8 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment