並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 306件

新着順 人気順

scalaの検索結果1 - 40 件 / 306件

  • ScalaにGoroutineがやってくる!非同期処理ライブラリOxで遊んだ - Lambdaカクテル

    Channelスタイルの並行処理の記述を(もちろん型安全に)可能にするライブラリOxについて調べて試してみた。結論から言うと書き味がめちゃくちゃ良くて面白い。 ソースコードも置いておく。 github.com Ox Oxとは、sttpなどの開発でお馴染のSoftwareMillによって開発されているScala用の非同期ライブラリである。まだ非常に若く、活発に開発されている。 github.com Oxの特徴は、というか目的といっても差し支えないのだが、それはChannel指向の非同期処理、つまりGoroutineをScalaの上で実現している点だ。Goユーザならすぐに理解できるだろう。 百聞は一見に如かず。こんな感じのコードを書くことができる(v0.0.25時点)。 import ox.* import ox.channels.* import scala.concurrent.durat

      ScalaにGoroutineがやってくる!非同期処理ライブラリOxで遊んだ - Lambdaカクテル
    • GitHub - gvcgo/version-manager: 🔥🔥🔥 A general version manager for multiple sdks, such as Java, Go, Node.js, Deno, Bun, .Net, Python, PyPy, PHP, Rust, Kotlin, Scala, Groovy, Flutter, Julia, Zig, V, Typst, Android SDKs. A much better choice than vfox, fn

      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

        GitHub - gvcgo/version-manager: 🔥🔥🔥 A general version manager for multiple sdks, such as Java, Go, Node.js, Deno, Bun, .Net, Python, PyPy, PHP, Rust, Kotlin, Scala, Groovy, Flutter, Julia, Zig, V, Typst, Android SDKs. A much better choice than vfox, fn
      • ちっちゃなScalaコンテナを作つコツ(6 MiBだぞ) - Lambdaカクテル

        おなじみの画像 JavaやScalaといったJVM言語のDockerイメージは、JVMを同梱しなければならない都合で肥大化しがちである。特に何もしなくても、例えば一般的なamazoncorretto:21のイメージサイズは217.7 MBもある。 hub.docker.com これにさらにビルド済みのJARファイルが載ってくるので、結構大きくなってしまうのだ。 そこで、Scalaのコンテナイメージのサイズをなんとか小さくできないかと、考えた。すると、JVMを使ったまま70 MiBくらいに縮めることができた。 github.com コンテナイメージのサイズを小さくするために、何をしたかを書いていく。ちなみに題材としたアプリケーションはちょっとしたHello, Worldをするだけのもので、ライブラリはCatsに依存させた。 JVM使う編 マルチステージビルドを行う Alpineなどの軽量ラン

          ちっちゃなScalaコンテナを作つコツ(6 MiBだぞ) - Lambdaカクテル
        • Lensを始めとするOpticsがプログラミングをどう変えるか / 複雑なデータのモデリングをサボるには - Lambdaカクテル

          仕事でLensを使う機会があった。Lensは複雑で入り組んだデータ構造の読み書きに非常に効果的な手法であるにもかかわらず、関数型プログラマ以外にはあまり知られていないように思える。 そこでこの記事では、Lensとは何なのか、なにが良いのか、具体的にどのようなケースでLensが役立ったか、そしてLensの亜種について紹介する。業務でも使ってます! AIくんが考えるLens 前提条件 Lensとは Lensの使いどころ データをモデリングする場合 (とても つらい) Lensを使う場合: Lensはアクセスパスである Lensと愉快な仲間たち Lensの合成 -- andThenでひっつけよう Lens Law Monocleの便利機能 Lensの自動生成でサボる Focusでもっとサボる Lensがもたらしたもの まとめ あわせて読みたい 前提条件 この記事ではLensを紹介する言語としてS

            Lensを始めとするOpticsがプログラミングをどう変えるか / 複雑なデータのモデリングをサボるには - Lambdaカクテル
          • 株式会社ドワンゴ会場提供でScalaわいわい勉強会 #2を開催しました #scala_waiwai - Scalaわいわいブログ

            Scalaわいわいランドは2024年2月27日にScalaわいわい勉強会2を開催しました。 scala-tokyo.connpass.com ハッシュタグは前回に引き続いて #scala_waiwai となっております。現場の様子はTwitter(X)でご確認いただけます。 発表資料紹介 今回は発表3本、LT3本の構成となりました。発表順に紹介します。 @nomadblacky: ReckonerのScalaプロジェクトにおけるオブザーバビリティの取り組み speakerdeck.com 一番最初の発表はオブザーバビリティの話。最近は OpenTelemetry が広がりを見せており、Scalaでもotel4sといったライブラリが出ていたり、そもそもOpenTelemetryのリファレンス実装がJavaで書かれていたりと、結構Scalaユーザにとっては嬉しい環境が整っているんですよね。Op

              株式会社ドワンゴ会場提供でScalaわいわい勉強会 #2を開催しました #scala_waiwai - Scalaわいわいブログ
            • 本当の初心者が「Scalaわいわい勉強会」に参加するまで - PCで苔を育てる人

              大学でC言語の授業を終えた私の耳に、どこからともなく聞こえてくる。 「どうやら、関数型言語というのがすごいらしい」 同様の現象は世界各地で確認されている。 「オブジェクト指向の次は関数型だ」 「なんでも、デバッグと並列化がしやすいらしい」 そんな又聞きに又聞きを重ねた霞の正体を確かめるべく、人々はその魅惑のパラダイムシフトの門を叩いた。 かく言う私もその1人であり、大学の図書館にある関数型言語のエリアを目指して階段を上がった。 当時の私は自信に満ちていた。授業でC言語を学んだ後は、C++はもちろん、C#やJavaScript、Pythonなどのプログラミング言語を試し、時にはFortranなどという古代語にも手を染めた。「完全に理解した」などと思い上がることはなかったが、どの言語も触り始めてからまとまったプログラムを作成するまでにそれほど時間はかからなかった。結局のところ、それらは最初に学

                本当の初心者が「Scalaわいわい勉強会」に参加するまで - PCで苔を育てる人
              • JSONの差分を取ってJSON Patchを得るにはdiffsonがおすすめ - Lambdaカクテル

                こういうツイートを見た。 Scala (or Java) で、jsonのdiffをpatchファイルみたいな感じでわかりやすいテキストで出力してくれるライブラリないかなあ。そしてjacksonに依存してないといいな— Arthur (@Arthur1__) 2024年1月13日 現代のプログラミングではJSONの差分を取ったり、逆にパッチを当てるということがよくある。可能ならそれがPretty Printできると良い。 JSONの差分をScalaで取る方法についていくつか調べてみたのでメモ。 JSONの差分をどう表現する? JSON Patch diffson diffsonでJSON Patchを生成する diffsonでJSON Patchを適用する diffsonでJSON Merge Patchを生成する diffsonでJSON Merge Patchを適用する JSON Pat

                  JSONの差分を取ってJSON Patchを得るにはdiffsonがおすすめ - Lambdaカクテル
                • 2023年買ったもの(技術書とか) - Magnolia Tech

                  2023年のお買い物、技術書編です。 技術書以外はこちら blog.magnolia.tech とりあえずノータイムで買っちゃえ!損は無いよ!という3冊 他に、類似の本がないか、有ってもこっち買っておけばよくね?という3冊 なっとく!関数型プログラミング なっとく!関数型プログラミング 作者:Michał Płachta翔泳社Amazon Scalaをベースとした関数型プログラミングの学習本。オブジェクト指向言語であり、関数型プログラミング言語であるScalaの特性を生かして、命令型から宣言型のコードの書き方への変え方を学んでいくスタイル。 前半の凄まじい丁寧な学習のステップと、後半の「ここまで一気にやらなくても良くない?」の落差もすごいけど、ページ数の厚さに躊躇せず、前半1/3くらいを時間をかけて丁寧に学習するくらいが良いと思います。 周りに良い先生が居れば別ですが、そうでなければこの本

                    2023年買ったもの(技術書とか) - Magnolia Tech
                  • Playframework 3.0.0にアップデートしてみた - Assured Tech Blog

                    こんにちは、エンジニアの岩松です。 この記事はScala Advent Calendar 2023 20日目の記事となります。つまり今日は12月20日です。 AssuredではバックエンドアプリケーションにScalaおよびPlayframeworkを採用しており、直近メジャーアップデートとなる3.0.0が公開されたため、2.8.x→3.0.0のアップデート対応をしていました。作業メモとして公開しますのでご参考になれば幸いです。 何が変わったのか? ハマったこと Pekko関連ライブラリがバージョン解決できずDI(Dependency Injection)が失敗する 設定ファイル経由でのExecutionContext生成ができない Dockerコンテナが動かない おわりに 何が変わったのか? Playframeworkのメジャーアップデートは久しぶりで、今回2.9.0と3.0.0が同時期に

                      Playframework 3.0.0にアップデートしてみた - Assured Tech Blog
                    • 関数型プログラミング: map結果を引数とのペアにしたいときはStateが便利だったりする(StateTもあるよ) - Lambdaカクテル

                      この記事では、Scala 3と関数型ライブラリであるCatsを時折使いつつ、Stateモナドを利用することでmap結果にうるおいを与えられるという話題を紹介します。 よくある処理: mapしてからペアにする まあまあよくある: メソッドはたまに値返さないことがある まあまあよくある: メソッドが非同期の場合もある Stateモナド 通常の関数をStateに持ち上げる Stateでmapする StateT登場!! 一般化する まとめ プログラミング言語で最も頻繁に使われるデータ構造といえば、タプル、とりわけ2つの要素を持つタプルであるペアかもしれない。 【タプルとは?】 タプルとは、いくつかの型を並べて組にし、1つの型として扱えるようにしたものです。例えば、StringとIntをくっつけた(String, Int)というタプルを考えることができます。 タプルを構成する型の数によって、3-タプ

                        関数型プログラミング: map結果を引数とのペアにしたいときはStateが便利だったりする(StateTもあるよ) - Lambdaカクテル
                      • Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌

                        Scala 3におけるデータ指向プログラミング(以下DOP)について深掘りする。久々にScalaの話題を取り上げるが、これはScala Advent Calendar 2023の14日目の内容でもある。 早速だけど、DOPの基本原則は意外とシンプルだ。 コード(動作)をデータから切り離す データを汎用的なデータ構造で表現する データをイミュータブル(不変)として扱う データスキーマをデータ表現から切り離す イミュータブルなデータは採用することは多いと思うが、これをそのまま実践している人はどのくらいいるだろうか。Scalaではクラス中心の関数型プログラミングが主流だと思うし、私もそうしている。 DOPの詳細は下記の本(以下DOP本)を参照してほしい。 データ指向プログラミング 作者:Yehonathan Sharvit翔泳社Amazon ちなみに留意すべき点がある。DOP本とJavaのPro

                          Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌
                        • Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記

                          この記事はScala Advent Calendar 2023の12日目だ! Scala 3のマクロを書く上で役に立つ, メタれたTipsたちを紹介するぜ! 勢いに任せて書いていくからサンプルコードがちゃんと動かなかったらごめんな. 一応, Scala 3.3.1を想定しているぞ. マクロ 1. メソッドをマクロとして定義する 2. マクロの本体を実装する 3. マクロ実装の記法の意味を知る 4. マクロで生成されるコードの内容を確認する 5. 引数の式を評価せずに使う 6. 返り値の型をマクロの実行結果によって決める 7. マクロの返り値の型を制限する 8. マクロの返り値の型を書かない 9. マクロで計算された型をテストする 10. マクロで計算された型をScalaTestでテストする 式 11. 定数式の値を得る 12. 定数式でなければコンパイルエラーにする 13. 定数値の式を作

                            Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記
                          • あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記

                            この記事はScala Advent Calendar 2023の11日目です. 最近, 趣味でScala 3のコードをだいぶ書いていて, マクロの使い心地のよさに感心しました. 理論的な背景も含めて, 産業界で多く使われているプログラミング言語の中では筆者の知る限りぶっちぎりに優れたマクロを備えています. 他の言語にも見習ってほしいですね. たぶん見習おうとすると処理系を作り直す羽目になりますが. この記事ではScala 3のマクロのすごいところを例を使って紹介します. マクロの実践的な例 準備 実践的な例: NamedArray – 名前でアクセスできる配列 NamedArrayのマクロ実装 記述が明瞭 メタレベルのプログラムの扱い クォートとスプライスがある パターンマッチもある 生成コードに型がつく 多段階計算に基づいている クォートとスプライスの本当の意味 ネストしたスプライス ネ

                              あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記
                            • AWS Lambda FunctionをScala.jsで書いて爆速Scalaを満喫しよう - Lambdaカクテル

                              この記事は、Scala Advent Calendar 2023の5日目の記事です。 qiita.com 大遅刻してしまいましたが、Scalaは遅延評価できるのでモーマンタイですね。 この記事では、Scalaをクラウドネイティブな環境で使う例の紹介として、ScalaをJavaScriptコードにトランスパイルしてAWS Lambdaで動作させる方法を紹介します。 愉快な遠足の始まりだ!!! Scalaプラットフォームの発展 Scalaはクラウドネイティブ時代に乗り遅れている?(いえいえ) 想定環境 Scala.jsで快適にLambda関数を書いてみよう 最低限のScala.jsを実装する 設定 トランスパイル Scala.jsコードをLambda関数の呼び出し規約に合わせる 規約を実装する Lambda関数を作成する イベントなどの入力 ここまでのまとめ Scala.jsでライブラリを利用

                                AWS Lambda FunctionをScala.jsで書いて爆速Scalaを満喫しよう - Lambdaカクテル
                              • Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani

                                AndroidのためのJava/Kotlinはスコープ外とします まず断っておくと、俺はScalaが好きだ。 自分が作ったScalaプロダクトは二個現存している。うち一つはまだまだ自分が開発している。というか今は会社を作って1人でプロダクトを作っている身なのだが、それもScala3+ZIO2でゴリゴリ書いている。 でも残念、もうScalaというかJVM言語がオススメできません。TypeScriptかGoかRustをオススメします。 どういうこと?まずこの記事を見ていただくのが一番分かりやすい。 https://aws.amazon.com/jp/builders-flash/202310/java-serverless-saas-backend/?awsf.filter-name=*all 素晴らしいエントリーだ。読みに行かないせっかちな方のために概要を紹介する JavaプロダクトをAWS

                                  Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani
                                • 『データ指向プログラミング』読んだ / OOP以前とDOPとの対比と差分などについて - Lambdaカクテル

                                  先々月あたりに邦訳が出た『データ指向プログラミング』を読んだ。めちゃくちゃざっくり言うとオブジェクト指向における「データと振舞いの一体化」というドグマを手放させるもので、めちゃくちゃざっくり見るとC言語的な構造化プログラミングの世界に回帰するようにも見えることから、世間的には色々な評価があるらしい。 イミュータビリティが良い、みたいな話は重々承知なので適宜飛ばしながら読んだ。また、lodashまわりの話は単なるライブラリ紹介であり、特筆することがないので飛ばした。 こういう感じで言及されている zenn.dev slides.com 自分なりに読んで思ったことをまとめる。面白い本だったし、自分の思想にも近しいものがある。僕は普段ScalaやTSを書いているので、その観点からの感想が多いです。OOPの歴史に詳しいわけではないので、不足があったらすみません。 OOP以前の世界との差異 イミュー

                                    『データ指向プログラミング』読んだ / OOP以前とDOPとの対比と差分などについて - Lambdaカクテル
                                  • Java/Scalaの最新版Webアプリケーションフレームワーク「Play Framework 3.0」正式リリース。Akkaに代わりApache Pekkoを採用

                                    Java/Scalaの最新版Webアプリケーションフレームワーク「Play Framework 3.0」正式リリース。Akkaに代わりApache Pekkoを採用 Play Framework開発チームは、JavaとScalaに対応したWebアプリケーションフレームワークの最新版となる「Play Framework 3.0」の正式リリースを発表しました。 Houston, Play developers here. The eagle has landed! Play 2.9 (https://t.co/ars6Le2VUw) and 3.0 (https://t.co/Eus82EOS9c) are available now! To everyone out there helping and sponsoring: You are the best! THANK YOU SO MU

                                      Java/Scalaの最新版Webアプリケーションフレームワーク「Play Framework 3.0」正式リリース。Akkaに代わりApache Pekkoを採用
                                    • OpenAIのAudio Transcription APIで遊んだ - Lambdaカクテル

                                      最近OpenAIがオーディオ系のAPIをいくつか出していた。といってもけっこう前の話だ。 そんな中、最近OpenAIが色々なサービスを展開している。自分も触って習熟しておいたほうが、面白いアイデアを思い付いたときにすぐにプロダクトを作れて役に立つはずだ。そういうわけで色々APIを見ていたところ、その中でも面白そうだった書き起こしAPIを使うことにした。自分が喋った内容を書き起こしてもらいたい。上手くいくだろうか?ボソボソ喋るオタクボイスでも? openai.itshinan.jp このAPIを使うと、オーディオ音声(wavとかflacとか色々な入力形式を使える)から各言語の書き起こしをやってくれる。イクゾー 素材音声 小銭を払う Scalaから呼び出す 所見 まとめ 素材音声 今回用意した自分の音声はこれ。過去の自分の記事の内容の一部をボソボソ読み上げている。お世辞にも上手ではないし、AP

                                        OpenAIのAudio Transcription APIで遊んだ - Lambdaカクテル
                                      • Release 📣 Play 3.0.0 · playframework/playframework

                                        The Play Team is thrilled to announce the release of Play 3.0.0! 🎉 This release brings highly anticipated new features, including support for the latest Java LTS versions and Scala 3. It continues our commitment to making Play more modular, flexible, and secure. Play 3.0, together with Play 2.9, represents a significant milestone as they are the first major releases in almost four years and the f

                                          Release 📣 Play 3.0.0 · playframework/playframework
                                        • 株式会社はてな後援、Scalaわいわい勉強会を開催しました! #scala_waiwai - Scalaわいわいブログ

                                          さる2023年10月13日にプログラミング言語Scalaの勉強会『Scalaわいわい勉強会』を開催しました。この記事では会場の様子や勉強会の理念、その他もろもろを紹介します(この記事はid:Windymeltとid:tanishiking24による共同執筆です)! わいわいしている様子(活況でした) Scala Tokyo meetup is back! 🤩 26 engineers gathered for 2 presentations and 4 LTs. The meetup was friendly and lively, and everyone looked forward to the next one! Thanks to @hatenatech for providing the nice venue and food🍣🍱 #Scala #scala_waiwai

                                            株式会社はてな後援、Scalaわいわい勉強会を開催しました! #scala_waiwai - Scalaわいわいブログ
                                          • ペーパーバック版の『Functional Programming in Scala, Second Edition』を買った - Magnolia Tech

                                            既にセールの時に電子書籍版で買っていた『Functional Programming in Scala, Second Edition』、ペーパーバック版の方も追加で買った。 Functional Programming in Scala, Second Edition (English Edition) 作者:Pilquist, Michael,Chiusano , Paul,Bjarnasson, RúnarManningAmazon ソフトウェア関係の技術書がこの先、どのくらい需要があるのか、タイムリーに改版されるのか、更には日本で翻訳版が出版されるのか......市場のことはよく分からないけど、「この本はずっと手元に置いておく価値が有る」と思ったものはなるべく紙の書籍で手元に置くようにしている。 電子書籍だと、すっかりその存在を忘れてしまって、最後まで読まなくなってしまうのと、情報

                                              ペーパーバック版の『Functional Programming in Scala, Second Edition』を買った - Magnolia Tech
                                            • Scalaわいわい勉強会 参加した - ふんわり放牧

                                              scala-tokyo.connpass.com 株式会社はてな 東京オフィスで開催されたScalaわいわい勉強会に参加した。 発表内容の感想ではなく、参加して漠然と思ったことについて書く。個人の日記です。 Scala、10年前に本当に少しだけ触った程度で何も覚えていない(github.comに辛うじてコードが残っている)のだけれど、 この1年はJVM言語で仕事をしているのもあり、勉強会の運営をしている id:Windymelt にも紹介いただいたのもあって、ふらっと参加してきた。 Scalaのコミュニティというか関数型プログラミング言語のコミュニティ、ふらっと参加するには恐れ多い印象があったのだけれども*1、 これくらいのノリであれば全然次回も参加したいな〜となるくらいの感じであったな。 参加前に これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル を読んでて、手

                                                Scalaわいわい勉強会 参加した - ふんわり放牧
                                              • Scalaわいわい勉強会へ参加した - Magnolia Tech

                                                scala-tokyo.connpass.com 最近、圧倒的なScala情報の発信でおなじみの id:Windymelt さんによる主催の「Scalaわいわい勉強会」に参加した。 場所は、「はてな東京オフィス」……1年に1回くらいビルの前を通ることは有っても、コロナ禍が始まってから中に入ることの無かった場所に久しぶりに入ることができた。 久しぶりの、はてな東京オフィスに来た https://t.co/KLKKrO9TCy— magnoliak🍧 (@magnolia_k_) 2023年10月13日 ちょっと遅れて会場に到着、その時点ですでに id:tanishiking24 さんの「Scala Days Madrid レポート」が始まっていた。発表の後も含めて海外のScalaの動向が聞けたのと、ScalaDaysの様子のオシャレ映像が良かった。 tanishiking24.hatena

                                                  Scalaわいわい勉強会へ参加した - Magnolia Tech
                                                • 4年ぶりのScala国際カンファレンス、Scala Days Madrid 2023 に参加しました! - たにしきんぐダム

                                                  画像元: https://twitter.com/scaladays/status/1701616520546206039 Scala の世界最大のオフラインカンファレンス、Scala Days Madrid 2023 に参加してきました。Scala Days は例年に2回、アメリカとヨーロッパで開催されており、今年は Madrid での開催でした。 scaladays.org コロナ期間中 Scala Days は開催されておらず、2019年以来4年ぶりの開催!(前回はLausanne開催でした) developer.hatenastaff.com 会場は世界中から集ったたくさんの人で賑わい、参加者の熱意の高さから感じられるとても良いイベントでした。その中で印象に残ったセッションの紹介を交えつつ、会場の様子をレポートしたいと思います。 カンファレンス本体の話に移る前に、周辺イベントを紹介

                                                    4年ぶりのScala国際カンファレンス、Scala Days Madrid 2023 に参加しました! - たにしきんぐダム
                                                  • Cloudflare functions with Scala.js

                                                    Indoor VivantsAnton Sviridov. I love reinventing the wheel and I usually use Scala for that. TL;DR We are deploying an app to Cloudflare using Scala.js We are using ScalablyTyped We are using Scala 3 heavily Code on Github Deployed app Cloudflare API bindings Welcome to the "Put ma Scala on yo cloud" series I want to say that I'm kicking off a blog series, but even I don't believe that. If I did,

                                                    • JavaScriptでScalaのFutureを表現する

                                                      はじめに Scala.jsというプロジェクトがあります。 Scalaで書いたプログラムをJavaScriptに変換する、とてもクールなツールです。 ただ、もちろん言語自体が違うため、完全なマッピングが可能な訳ではありません。ベストエフォートでセマンティクスを維持したままJavaScriptに変換しますが、いくつか対応付けが困難なケースがあります。 その中でも特にScalaの Future をJavaScript上でどのように表現するか? という点に関しては、JavaScriptの深みを知れるとても良い題材だと思ったので、まとめてみようと思います。 ※ 一応Scala.jsをネタに出してますが、Scalaを知らなくても理解できるように書いたつもりです。 ScalaのFuture Scalaには並列処理を行うためのデータ型として Future があります。 Future は、ある時点において利

                                                        JavaScriptでScalaのFutureを表現する
                                                      • 2023年10月時点のplayframeworkの今後の予定 - xuwei-k's blog

                                                        すごく重要な予定が色々と決まりつつあるので、独断で勝手に?雑に?選んで紹介しておきます。 単なる翻訳というよりは、自分の感想や主観みたいなものが入ってます。 詳細な原文を知りたい人は、以下のあたりを読んでください https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/General.md https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/releases/release29/migration29/Migration29.md https://

                                                          2023年10月時点のplayframeworkの今後の予定 - xuwei-k's blog
                                                        • 刮目せよ!! 2023年秋、TS連携もファイルサイズもUIもイケるようになった最近のScala.js事情の紹介 - Lambdaカクテル

                                                          最近Scala.jsの話をすると結構な人がRTしてくれる。TypeScriptの他にAltJSには今どんなのがあるのかな、という話に引用RTでScala.js今アツいですよという話をしたら結構ウケた。世間的にはTypeScript alternativeに興味がある人も多いようだ。一方、ネットに残っているScala.js情報は数年前のものが多いようで、あまり積極的に日本語での情報発信がなされていない様子。そこで、ここ最近Scala.jsはどういう感じなのか、そしてどうすれば始められるのかという情報をまとめると需要があるかもしれないと思い、書くことにした。 Scala.jsは数年前まではオモチャみたいな感じだったんですが最近はTSのライブラリから自動で型が生える仕組みがあったりめちゃバンドル小さくなったりとめちゃくちゃ進化してます!! https://t.co/c06IZGWhYF— Win

                                                            刮目せよ!! 2023年秋、TS連携もファイルサイズもUIもイケるようになった最近のScala.js事情の紹介 - Lambdaカクテル
                                                          • JDK 21のswitch式でpattern match書いたら10倍以上遅い件 - xuwei-k's blog

                                                            switch式の結果javapしたらhttps://t.co/xMc0YEYsrg java.lang.runtime.SwitchBootstraps と tableswitch が使われることに気がついたが、これ巨大なswitch式をJDK 21以降で書いた場合、同等の巨大なmatch式をScalaで書くよりも速度が速い可能性があるのでは??? これScalaで活用できるか?というと— Kenji Yoshida (@xuwei_k) September 25, 2023 switch式の結果javapしたら https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/runtime/SwitchBootstraps.html java.lang.runtime.SwitchBootstraps と ta

                                                              JDK 21のswitch式でpattern match書いたら10倍以上遅い件 - xuwei-k's blog
                                                            • JDK 21 の開発者向けの新機能 - 赤帽エンジニアブログ

                                                              Red Hat のソリューションアーキテクトの瀬戸です。 この記事はRed Hat Developerのブログ記事、What's new for developers in JDK 21 | Red Hat Developer を、許可をうけて翻訳したものです。 Java開発者にとってエキサイティングな情報として、今年 9 月 19 日に JDK 21 がリリースされました。 このリリースには、仮想スレッド(Virtual Thread)、レコードパターン(Record Patterns)、順序付コレクション(Sequenced Collections)など、Javaのエコシステムに利益をもたらす多くの新機能が含まれています。JDK 21 のプレビューには、文字列テンプレート(String Templates)、スコープ付値(Scoped Values)、構造化並列処理(Structure

                                                                JDK 21 の開発者向けの新機能 - 赤帽エンジニアブログ
                                                              • Scalaの難しさをインターネットから集めてみる - Lambdaカクテル

                                                                Scalaは難しいと思われたり敬遠されがちである。Scalaの難しさについてTwitterなどでアンケートをとったり、ネットでググって意見を吸い上げてみた。議論の叩き台にするみたいな用途を意図しています。 ご意見や記事募集中です。できればTwitterじゃなくて記事だと嬉しいです。流れていってしまうので・・・ また、私見は私見です。 追記(2024-03-08)ちなみに、色々書いていますが僕はScalaが大好きです(このブログでものすごい数の初心者~中級者向けの記事を書いています)し、ネットで言われているような終わった言語ではまったくないです。初心者をサポートして、難しいと感じている部分をほぐして、みんながScalaでワイワイやれるようにコミュニティを立ち上げ、継続的に活動しています。おかげさまで日本の公式Scalaコミュニティとして認めてもらっています。ブログのバナー下のリンクからDis

                                                                  Scalaの難しさをインターネットから集めてみる - Lambdaカクテル
                                                                • So, What's So Special About The Mill Scala Build Tool?

                                                                  So, What's So Special About The Mill Scala Build Tool? Mill is a Scala build tool that offers an alternative to the venerable SBT toolchain. Mill aims for simplicity by reusing concepts you are already familiar with, borrowing ideas from Functional Programming and modern tools like Bazel. Feedback from users of Mill is often surprisingly positive, with people saying it is "intuitive" or feels "jus

                                                                  • 0からScalaを本番導入して感じたこと・考えたこと - k.dev

                                                                    はじめに 弊社ではScalaを本番環境に導入して大体1年になる。 導入以前に社内的にScalaに関する知識はゼロだった。 Scalaという言語は巷では色々言われているが愛好者とそれ以外の壁が非常に大きな言語のように思える。 ここはコミュニティの努力によって埋められようとしているが、他の言語に比べてまだまだなのが現状である。 弊社でのScala導入経験に関する情報がその壁を取り払う一助になることを祈る。 導入経緯 Railsの運用コスト もともとはプロダクトのバックエンドはRailsで書いていた。 Railsは非常に高速にプロダクトを開発できるのだが、長期的に見るとその高速性よりも運用困難性、堅牢性の欠如が目立つようになってきた。 MVCアーキテクチャは複雑なプロダクトを構成するのにはシンプルすぎた。 特にRailsの中核をなすアクティブレコードモデルのせいで問題の分割が難しかった。 じゃあ

                                                                      0からScalaを本番導入して感じたこと・考えたこと - k.dev
                                                                    • これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル

                                                                      自分は、仕事でScalaを数年間・プライベートな経験を含めると10年弱のScalaの経験がある、そこそこの熟練Scalaエンジニアだ。チームにメンバーが入ってきたり他人に勧めるたびにScalaの環境構築を教えている一方、最新の知見を反映した記事が無くて他人に勧めづらかったので、自分が書くことにした。 現在ある記事 けっこう古びている 覚えながら書かれていることが多いのでやや曖昧な箇所がある(でもありがとう!) 最新のツールが利用できておらず無駄が多い 網羅的でない 今回目指す内容 最新の知見を活用して最短距離を目指す 何もない状況から一通りのツールが揃う所を目指す Scalaの環境構築は年を追うごとに簡単になってきているので、大多数の読者は引っかからずに進めるようになっているはず。 Scalaは基本的にJVMで動作する言語だ。このため環境構築にはJVMのセットアップも含まれるのだが、それに

                                                                        これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル
                                                                      • Scalaでoverrideした際の共変戻り値型と型推論 - xuwei-k's blog

                                                                        ScalaでもJavaでも、overrideする際に、sub typeでoverrideすることが可能です。 (すごく古い1.4以前のJavaでは不可能だったはずだが) Javaの仕様書で英語だと covariant return type というはず?の機能です。 https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#d5e14373 $ jshell | Welcome to JShell -- Version 17.0.6 | For an introduction type: /help intro jshell> interface A { Object a(); } | created interface A jshell> class B implements A { @Override public St

                                                                          Scalaでoverrideした際の共変戻り値型と型推論 - xuwei-k's blog
                                                                        • ScalaプロジェクトをMaven Centralにpublishするメモ - Lambdaカクテル

                                                                          この記事はScalaプロジェクトをMaven Central Repositoryにリリースして全世界から使えるようにする手順をまとめたものである。作業は大別してSonatype側とビルドツール側とに分かれる。今回はビルドツールとしてMillを利用したが、作業の過半は同じである。数時間でこの作業は終わるし、Sonatype側の作業は一度だけやればよい。 用語 方針と前提 Sonatype側の作業(Group IDを作るときに1回だけ必要) Sonatype JIRAへの登録 Issue作成 ダミーリポジトリ作成 認証完了 PGP鍵の準備(こちらも1回だけ作成すればよい) Millの場合 (sbtの場合) Nexus Repository Managerで様子を見る Nexus Repository Managerで様子を見る代わりに・・・ 使う 参考文献 ScalaはJVM言語だから、もち

                                                                            ScalaプロジェクトをMaven Centralにpublishするメモ - Lambdaカクテル
                                                                          • ScalaのビルドツールMillが生成するUberjarはZIPファイルの面白仕様を使ってシェルから直接実行できるようになっている - Lambdaカクテル

                                                                            プログラミング言語Scalaで最もよく使われているビルドツールといえばsbtだ。起動しっぱなしのインタラクティブ仕様なsbtがやや鈍重なきらいがある一方、もう1つのビルドツールであるMillが開発されており、こちらではnpmのようなシェル単位の操作体系を指向している。 mill-build.com 単にコマンド体系のみならず、Millには他にも色々と面白い機能がある。例えばsbtと違って標準でassembly、すなわちUberjarへのパッケージング機能が搭載されているという点がありがたい。このUberjarを作る機能に面白い仕組みが盛り込まれていたので紹介するというエントリ。 謎の実行権限 中身を覗く ZIPは任意の場所に任意のデータを封入できる 追記 さて、JVM言語にあまり縁がない読者のために説明しておくと、Uberjarとは、依存する関連モジュールが1つのパッケージにまとめられ、J

                                                                              ScalaのビルドツールMillが生成するUberjarはZIPファイルの面白仕様を使ってシェルから直接実行できるようになっている - Lambdaカクテル
                                                                            • sbtの依存性定義でたまに見るtestやprovidedとは何か--コンフィギュレーションについて学ぼう - Lambdaカクテル

                                                                              sbtはかつてsimple build toolと呼ばれていた(今は酢豚の略とされている)。しかしビルドツールというのは本質的に難しい。複数の依存性を解決し、コンパイラ達が吐き出す成果物を統合し、1つあるいは2つ以上の最終成果物にしなければならないのだから、複雑性は必然だ。そして、複雑性があるところ常に難しさがひそんでいる。 www.scala-sbt.org そしてlibraryDependenciesの難しさは初心者が最も先にハマるものの一つだ。うち、コンフィギュレーションconfigurationはその難しさの一角を占めている。コンフィギュレーションについて知識をつけることで、実行時に発生するよくある間違い(例えば、実行時にクラスが存在しないというエラーでJVMが起動しないなど)を回避できるようになる。 この記事ではsbtにおけるlibraryDependenciesのコンフィギュレ

                                                                                sbtの依存性定義でたまに見るtestやprovidedとは何か--コンフィギュレーションについて学ぼう - Lambdaカクテル
                                                                              • Javaの記法を初心者向けに大幅改良、「魅力を高めて若い世代の心をつかむ」

                                                                                Javaは、企業のITシステムの開発になくてはならないプログラミング言語としての地位を確立している。一方で、PythonやJavaScriptといった若い世代に人気がある言語と比較すると、煩雑な記法が多く堅苦しいイメージは否めない。 こうしたイメージを一新してJavaの生産性を高める試みが「Project Amber(プロジェクト・アンバー)」だ。同プロジェクトではこれまで、Javaプログラムの可読性を高めるために数々の記法の改良を行ってきた。 その成果の1つとして、2023年秋に公開予定の「JDK(Java Development Kit) 21」に導入されるのが、Javaプログラムの実行の起点である「mainメソッド」の大幅な簡略化だ。Javaの新機能は「JEP(JDK拡張提案)」として管理されており、mainメソッドの簡略化は「JEP 445」で規定されている。 Javaの開発にかか

                                                                                  Javaの記法を初心者向けに大幅改良、「魅力を高めて若い世代の心をつかむ」
                                                                                • 『なっとく!関数型プログラミング』は読者の理解度の進捗を先読みして作り込まれた”プログラミング入門”の良書 - Magnolia Tech

                                                                                  なっとく!関数型プログラミング 作者:Michał Płachta翔泳社Amazon 良い、買おう、読もう、(コードを)書こう、以上! めっちゃ良いですよ、この本 中盤のプリミティブじゃやりづらい→直積→直和→二つ合わせてADT→値を取り出すためのパターンマッチの解説の流れの疾走感がいいですね— magnoliak🍧 (@magnolia_k_) 2023年8月6日 『なっとく!関数型プログラミング』は、2022年に出版された『Grokking Functional Programming』の邦訳版で、主にScalaを題材として関数型プログラミングを学んでいくための入門書("Grokking"は、完全に理解する、という意味)。あくまで関数型プログラミングの考え方、コードの書き方、良い設計の指針の解説が主眼に置かれているので、Scalaの言語機能の入門書ではない。Scalaの言語仕様を網羅

                                                                                    『なっとく!関数型プログラミング』は読者の理解度の進捗を先読みして作り込まれた”プログラミング入門”の良書 - Magnolia Tech