並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 33 件 / 33件

新着順 人気順

scalaの検索結果1 - 33 件 / 33件

  • 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
    • じゃあ何すか、COBOL以外では4.8 - 4.7 - 0.1できないってことっすか / ScalaとSpireで安心安全な計算ライフを実現しよう - Lambdaカクテル

      先日こういうツイートが流れてきた。 Q:なぜ金融系では未だにCOBOLが使われるんですか? A:お手元にExcelがありましたら任意のセルに「=4.8-4.7-0.1」って入れてみてください。— 遊撃部長F/S&RWAs (@fstora) 2024年6月6日 Q:なぜ金融系では未だにCOBOLが使われるんですか? A:お手元にExcelがありましたら任意のセルに「=4.8-4.7-0.1」って入れてみてください。 普段我々がゴリゴリ馬車馬のように使っているソフトウェアでよく利用されている浮動小数点型、すなわちfloatやdoubleなどは特定の算術に弱いことが知られている。というかもうこの手の話題はあまりに拡散されてしまったので、なぜかネット民はみんな知っている基礎教養、三毛別羆事件とかデーモンコアみたいな感じになっている。 ちなみにこれはCOBOLかそうではないか、という軸が問題になっ

        じゃあ何すか、COBOL以外では4.8 - 4.7 - 0.1できないってことっすか / ScalaとSpireで安心安全な計算ライフを実現しよう - Lambdaカクテル
      • ちっちゃな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カクテル
        • あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記

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

            あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記
          • 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を採用
            • 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のmatch typeで数独チェッカーを作った - xuwei-k's blog

                なんかtweet流れてきたので TypeScriptの型がどれほど強力かというと、コードエディタ上で直接数独ができるほどの複雑な型を作成した方がいるほどです。このSudoku型を使用すると、TypeScriptの型チェッカーが間違いを正確に指摘してくれます。 pic.twitter.com/mCXXjGqK9D— Jeffry Alvarado (@jalva_dev) September 7, 2024 github.com Scala 3のmatch type自体の詳細な説明は省略しますが、compile時計算的なことができて、チューリング完全です https://tarao.hatenablog.com/entry/lambda-scala3 あくまで答えがvalidか?のcheckerだけで、プレースホルダー部分実装してない それも実装しました。下記に貼った 少なくともIntell

                  Scala 3のmatch typeで数独チェッカーを作った - xuwei-k's blog
                • Scala3の開発体験がScala2時代に比べてめちゃくちゃ良くなっていた話 - Qiita

                  ドワンゴのN予備校という教育サービスでプログラミング講師をしている @sifue といいます。N高等学校/S高等学校のプログラミング講師もしており、学内のツール開発や運用などもしたりしています。 最近は生成AIが流行ったこともあって、Pythonだったり、UIが必要なものはどうしてもTypeScriptとReactで実装することも多いのですが、久しぶりにScalaを使っての開発をしてみました。 自身は、Scalaでの開発はニコニコ生放送のサービスを開発するときに使っていた他、N予備校内で提供している大規模Webアプリの教材やドワンゴが当初作成していたScalaテキストの作成などにも関わらせてもらいました。 その当時のScalaは2.12であったわけなのですが、その後2.13が出て、さらに今はScala3系になって3.3.1までバージョンが進み、開発環境が変わってすごく使い勝手がよくなったと

                    Scala3の開発体験がScala2時代に比べてめちゃくちゃ良くなっていた話 - Qiita
                  • Scala の Wasm バックエンドを実装した

                    Scala.js 1.17.0 で実験的な Wasm backend がサポートされました! リリースノートに書いてあるとおり、以下のような設定をすることでScala.jsがJSの代わりにWasmモジュール(とモジュールに渡すJS object)を生成することができます。 @JSExport によるモジュールのexportがサポートされていませんが、それ以外のsemanticsはサポートされており、既存のScala.jsアプリケーションを変更なしにWasmにビルドすることが可能なはずです。(もし何か問題があれば教えて下さい!) // Emit ES modules with the Wasm backend scalaJSLinkerConfig := { scalaJSLinkerConfig.value .withExperimentalUseWebAssembly(true) //

                      Scala の Wasm バックエンドを実装した
                    • 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 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌

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

                          Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌
                        • ハマったポイントたくさんあったけどPlay3.0/Scala3.3へバージョンアップできたよ - エムスリーテックブログ

                          こんにちは。エムスリーエンジニアリンググループでScalaとマミさんが好きな安江です。今回は私が所属している製薬企業向けプラットフォームチームのPlay製プロダクトのPlay/Scalaバージョンアップのお話です。当初Play2.8にバージョンアップしていたのですが、その最中にPlay2.9/Play3.0やScala LTSが出たりもしました。最終的にPlay3.0/Scala3.3にバージョンアップできて本番稼働できたサービスもあるので、そのバージョンアップの経緯をご紹介します。 Play2.8への道のり Play3.0へのバージョンアップ ハマり1:依存ライブラリがPlay2系に依存している ハマり2:ScalikeJDBCの依存関係 ハマり3:サーバーバックエンドの変更 ハマり4:sttpのバックエンドの変更 ハマり5:if式が値を返さない まとめ We are hiring !!

                            ハマったポイントたくさんあったけどPlay3.0/Scala3.3へバージョンアップできたよ - エムスリーテックブログ
                          • map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう | ドクセル

                            「楽しく楽にcoolにsmartに」を理想とするprogrammer/philosopher/liberalist/realist。 好きな言語はClojure, Haskell, Python, English, français, русский。 読書、プログラミング、語学、法学、数学が大好き! イルカと海も大好き🐬

                              map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう | ドクセル
                            • 株式会社ドワンゴ会場提供で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わいわいブログ
                              • ZIO Lambdaを用いてScalaネイティブバイナリをAWS Lambdaで動かしてみた - エムスリーテックブログ

                                こんにちは。エムスリーエンジニアリンググループでScalaとマミさんが好きな安江です。今回は私が所属しているデジカルチームのお話です。ZIO Lambdaを使ってScalaネイティブバイナリをAWS Lambdaで動かしてみました。こちらの技術スタックの紹介をします。 ZIO Lambda 背景 技術スタック Scala ZIO ZIO Lambda GraalVM Native Image 実装 プロジェクトの作成 ライブラリの追加 ハンドラーの作成 ネイティブバイナリのビルド AWS Lambdaへのデプロイ まとめ We are hiring !! 背景 特定の処理で、外部から提供されたJARライブラリを使う必要がありました。弊社電子カルテはRails製なのですが、別のバックエンドにSkinny(Scala)製のサーバーを使っていたため、そのサーバーに処理を相乗りさせました。しかし、

                                  ZIO Lambdaを用いてScalaネイティブバイナリをAWS Lambdaで動かしてみた - エムスリーテックブログ
                                • Tagged Type(Branded Type)を使って飛行機の不時着や人工衛星紛失を防ごう / Scala 3ではTagged Typeを簡単に作れる - Lambdaカクテル

                                  Tagged Type というテクニックがある(TypeScript界隈などではBranded Typeと呼ばれているようだ)。実行時の型としては同じだが、型システム上はこれを区別して別物として扱い、混同できなくする仕組みを作るためのものだ。 AIくん!サムネイラスト作って!と頼んで作ってもらった画像 Tagged Type 単位の取り違えによる事故は後を絶たない。世の中には、キログラムとポンドを混同して飛行機があわや墜落しかけたり、メートルとヤードを混同して人工衛星がどっかに行ったりしている。尊い人命や国民の血税と比べるといささか霞むかもしれないが、ユーザIDとペイロードを間違えて送信したり、金額と口座番号を取り違えて送金したり、秘密鍵と公開鍵を間違えて表示したりしてしまえば、プログラマが大変な苦労をするか、会社そのものが傾くだろう。 しかしながら、データとしてはどちらも同じDouble

                                    Tagged Type(Branded Type)を使って飛行機の不時着や人工衛星紛失を防ごう / Scala 3ではTagged Typeを簡単に作れる - Lambdaカクテル
                                  • Scalaわいわい勉強会 #3【東京】へ参加してきた、楽しかった、最高だった - Magnolia Tech

                                    scala-tokyo.connpass.com 久しぶりのScalaのイベント「Scalaわいわい勉強会 #3【東京】」に参加してきました いやーディープなScalaの話が聞ける場所は貴重なので、最高でした 会場は乃木坂のWeWork! 開始時間を完全に間違えて18:30スタートだったのに、19:00に会場到着 (しかも、参加者に送られてはずのWeWork入館メールを紛失してしまい、運営の方に開けてもらって入場...ありがとうございました) 残念ながらちょうど一つ目の発表が終わったところで完全に聞き逃してしまいました さいわい、スライドが公開されていました speakerdeck.com コード同士の合成がシステマチックにできるところがScalaの最大のメリットだと思っていて、ただそれがちょっと複雑な構造になってくると逆に読み解くのが難しくなったり、ネストしたデータ構造を分解して詰め直す

                                      Scalaわいわい勉強会 #3【東京】へ参加してきた、楽しかった、最高だった - Magnolia Tech
                                    • record4s --- Extensible Records for Scala 3, and Domain Modeling with Structural Types

                                      In this talk, we learn about the basics of my library called "record4s", which provides type-safe extensible records for Scala 3. It runs on JVM, JS, an…

                                        record4s --- Extensible Records for Scala 3, and Domain Modeling with Structural Types
                                      • 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カクテル
                                        • PythonとScalaの連携: 高度なプログラミングの融合 - Python転職初心者向けエンジニアリングブログ

                                          こんにちは、皆さん。今回はPythonとScalaを連携させ、両言語の強みを活かしたプログラミングについて詳しくご紹介します。PythonとScalaは、異なるプログラミングパラダイムを採用していますが、その組み合わせにより柔軟で効率的な開発が可能です。 1. Scala関数をPythonから呼び出す まずは、PythonからScalaの関数を呼び出す例を見てみましょう。Scalaの関数をJavaの形式でコンパイルし、それをPythonから呼び出します。 // Scalaのコード(Add.scala) object Add { def add(a: Int, b: Int): Int = { a + b } } このScalaのコードをscalacを使ってコンパイルします。 $ scalac Add.scala そして、PythonからこのScalaの関数を呼び出します。 # Python

                                            PythonとScalaの連携: 高度なプログラミングの融合 - Python転職初心者向けエンジニアリングブログ
                                          • ScalaだけではなくGo/Rustもやっていくぞというお話|かとじゅん(j5ik2o)

                                            こういうつぶやきをした。書いたまんま。ScalaというよりJVMがしんどいって話。Scala Nativeに希望を見出せるだろうか… あ、誤解がないように書いておくと、Scalaを辞めるという話ではない。仕事は普通にあるのでScalaは使っていく(Scala3もやると思う) Scalaについては、2019年ぐらいが潮目だったのかもしれないなと。 グーグル・トレンドをみると、2014年ぐらいからGoの検索ボリュームが伸びていてScalaより増えている。Goの勢いがすごい。KotlinがAndroid公式言語に採用されたのは2017年。2019年ぐらいからKotilnとScalaの検索ボリュームが反転して、ScalaよりKotlinのほうが多くなっている。まぁ比較すると相関があるとミスリードしがちなんで要注意だけど、なんにしも2019年ぐらいからScalaの検索ボリュームがだいぶ減ってきている

                                              ScalaだけではなくGo/Rustもやっていくぞというお話|かとじゅん(j5ik2o)
                                            • Scalaの勝手マスコット Scala-kun を作りました - Lambdaカクテル

                                              作った Scalaの非公式なキャラを作った。 GitHubにSVGがあります。CC BY-SA 4.0でライセンスしているので、それに基いて勝手に使ってください。例えば、スライドに挿入したり(スライド末尾や適当な場所にクレジットしてください)、ライセンスを継承することを条件に改変したりできます。 github.com Scalaキャラ不在の歴史 プログラミング言語Scalaには公式的なキャラクターがいません。そんな中、他の言語では個性的なキャラクターがいて様々な場所にモチーフとして登場しています。 Gopherくん https://go.dev/blog/gopher The Go Gopher - The Go Programming Language D言語くん https://dlang.org/overview.html Overview - D Programming Langu

                                                Scalaの勝手マスコット Scala-kun を作りました - Lambdaカクテル
                                              • JetBrains、Scalaで関数型プログラミングを学べるコースを無料公開

                                                統合開発環境(IDE)「IntelliJ IDEA」やプログラミング言語「Kotlin」の開発元であるJetBrainsは2024年2月29日(チェコ時間)、同社が提供する学習コミュニティー「JetBrains Academy」において、Scalaで関数型プログラミングの概念を学べるコースを無料公開した。 JetBrains教育研究チームが1年かけて開発に取り組んできたこのコースは、Scalaの基本知識を備えていることを前提としたものだ。Scalaの特性や構文よりも、関数型プログラミングの概念を理解することに焦点を当てている。 関連記事 プログラミング言語「Rust」用の統合開発環境「RustRover」発表 JetBrains JetBrainsはRust用スタンドアロン型IDE「RustRover」を発表した。早期アクセスプログラムを開始しており、2024年9月までにリリースする計画だ

                                                  JetBrains、Scalaで関数型プログラミングを学べるコースを無料公開
                                                • 本当の初心者が「Scalaわいわい勉強会」に参加するまで - PCで苔を育てる人

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

                                                    本当の初心者が「Scalaわいわい勉強会」に参加するまで - PCで苔を育てる人
                                                  • ScalaでWebアプリを爆速開発するための技術スタック 2024 - Lambdaカクテル

                                                    去年はこれです。ちらほらスターがもらえていたりするので、今年も更新するかという気になった。 blog.3qe.us 以下の項目について技術スタックを考えていく。太字は今年になって追加したもの。 言語 エディタ ビルドツール スクリプティング ロギング テスト 依存性注入(DI) アーキテクチャ Webフレームワーク/サーバ GraphQL フロントエンド RPC テンプレートエンジン JSONまわり RDBMSまわり キューイング Auth 便利なツール/ライブラリ ローカル開発テク デプロイとか 言語 エディタ ビルドツール スクリプティング ロギング テスト アーキテクチャ / 依存性注入(DI) Webフレームワーク/サーバ GraphQL フロントエンド RPC テンプレートエンジン JSONまわり RDBMSまわり キューイング Auth 便利なツール/ライブラリ コンフィグ コ

                                                      ScalaでWebアプリを爆速開発するための技術スタック 2024 - Lambdaカクテル
                                                    • 値の検証もコンパイラにやらせよう: Scala 3でRefinement TypesやるにはIronっていうライブラリが良さそう - Lambdaカクテル

                                                      Scala 3でRefinement Types(篩型)を実現するライブラリIronに入門したので紹介します。最初はRefinedに入門しようとしてたら、Scala 3ではあまり動かなかったのでそのままIronに入門しました。 tl;dr Refinement Typesっていうのを使うと、普段動的にチェックしてる値の性質が型に反映されるのでコンパイラが助けてくれる ScalaでRefinement TypesをやるライブラリとしてRefinedがある Scala 3ではパワーを発揮できないので、Scala 3ではIronというライブラリをおすすめしたい Refinedよりもシンプルでめちゃ良い感じです! tl;dr Refinement Types (篩型) Refinement Types以前 通常の型 値クラス スマートコンストラクタ Refinement Types with Re

                                                        値の検証もコンパイラにやらせよう: Scala 3でRefinement TypesやるにはIronっていうライブラリが良さそう - Lambdaカクテル
                                                      • Scala アプリケーションのビルドを改善してデプロイ時間を 1/4 にした話 | How I improved the build of my Scala application and reduced deployment time by 4x

                                                        2024/09/06 Scalaわいわい勉強会 #3 https://scala-tokyo.connpass.com/event/325327/

                                                          Scala アプリケーションのビルドを改善してデプロイ時間を 1/4 にした話 | How I improved the build of my Scala application and reduced deployment time by 4x
                                                        • Brainf*ckを直接実行できるCPUを作った (その1)【いろいろなコンピューター Advent Calendar 2023 9日目】【Scala Advent Calendar 2023 9日目】 - prime's diary

                                                          この記事はいろいろなコンピューター Advent Calendar 2023の9日目の記事です。 adventar.org Brainf*ckとは Brainf*ck(この記事では一部伏字にして表記しています)は難解プログラミング言語のひとつです。 コンパイラがなるべく単純になるように設計されており、わずか8種の命令+ - > < [ ] . ,のみが存在する手続き型プログラミング言語です*1。 詳しい言語仕様等はEsolang wikiの記事 brainfuck - Esolang 等を参考にしてください。 仕様は単純ですが、チューリング完全なので、理論上はどんな計算でもすることができます。 Brainf*ck CPUを作る 今回は、Brainf*ckのコンパイラでもインタプリタでもなく、ソースコードを直接実行できるCPUを作りました。 できたものがこちらになります。 github.co

                                                            Brainf*ckを直接実行できるCPUを作った (その1)【いろいろなコンピューター Advent Calendar 2023 9日目】【Scala Advent Calendar 2023 9日目】 - prime's diary
                                                          • 平均年収の高い「プログラミング言語」 3位「Scala」、2位「TypeScript」、1位は?

                                                            2位以下は「TypeScript」が690.4万円、「Scala」が667.9万円、「Kotlin」が664.9万円、「Ruby」が663.5万円と続いた。2022年の平均年収と比較し、大幅な上昇がみられたのが「Go言語」(51.5万円増)、「Sass」(54.8万円増)、「Perl」(91.5万円増)だった。 一方、「Scala」「C++」は22年と比較して、それぞれ平均年収が15.0万円、10.3万円減少。「C++」においては、20年から比較すると54.8万円も減少した。同社によると「C++の場合、基礎知識を持つ社会人の数が比較的少なく採用が難しいものの、学習経験者は多いため、経験が浅い若手人材の採用が進んだ結果ではないか」と分析している。 転職で企業からニーズが高い言語ランキングでは1位が「JavaScript」。2位以降は「Java」「PHP」「Python」「TypeScript

                                                              平均年収の高い「プログラミング言語」 3位「Scala」、2位「TypeScript」、1位は?
                                                            • Scala 3のmatch typeで数独solverを作った - xuwei-k's blog

                                                              昨日の続き xuwei-k.hatenablog.com 昨日のcheckするだけのものは数秒で終わるのですが、これは手元で compileに2分くらい かかります。 速度に関して改善の余地があるのかどうか?はわかりません。 改善したら、問題が簡単なら数秒で終わるようになりました。 いくつかtweetしましたが、compilerの限界なのでは?と思ったけれど、頑張った結果、いくつかは自分のミスでした。例えば 割り算するべき箇所で余りを取っていた scala.compiletime.ops.any.== は、singleton同士ではないと比較不可能。例えば (1, 2) と (3, 4) といったTupleのまま比較不可能なので、自前でsingletonになるまで必要に応じて再帰的に分解しつつdeepなequalsを実装する必要がある(つらい) 複雑になり過ぎると、上記のようなミスをした場

                                                                Scala 3のmatch typeで数独solverを作った - xuwei-k's blog
                                                              • ScalaMatsuri 2024 で Scala の WebAssembly 対応について話しました / スタッフとして参加しました - たにしきんぐダム

                                                                2024年6月に開催された ScalaMatsuri 2024 に参加しました! Scala to WebAssembly: How and Why 今回は久々の大規模オフライン開催で、会場は久しぶりにお台場のプラザ平成でした。この会場でのScalaMatsuriに参加したのは5年前の2019年(と2018年に初参加)だったので、とてもエモい気持ちで会場に向かいました。 今年はスピーカー兼スタッフとしての参加で、スピーカーとしては最近開発しているScalaのWebAssembly対応について話し speakerdeck.com スタッフとしては、プログラムの選定や翻訳・(@scala_jpと@scalamatsuriの)SNS運用・(会場でたまに)通訳などをさせていただきました。大変だったけど楽しかった!来年以降もScalaMatsuri運営に関わっていきたい😎 久々の大規模オフライン開

                                                                  ScalaMatsuri 2024 で Scala の WebAssembly 対応について話しました / スタッフとして参加しました - たにしきんぐダム
                                                                • (初心者向け)Scalaでsbtプロジェクトを作るときの勘所 - Lambdaカクテル

                                                                  この記事では、Scala初心者がプロジェクトを作るときに分かりにくい(であろう)ポイントを埋めようというものです。 こんな記事を読んだ。 trap.jp 普段Rustを書いている人がScalaを書いてみたという内容の記事で、普段Scalaに振れていない人の視点があってとても良かった。普段我々はScalaを書きすぎているので、初心者がどこでハマるのか?初学者はどのようなポイントを見ているのか?といったことがわからないのだ。 そこでこの記事では、上掲の記事を参考にしつつ、普段自分がScalaプロジェクトを作るときどのようにしているかを説明しようと思う。 プロジェクトを作る 最低限必要なもの sbtはどこからどこまでやってくれるのか プロジェクト作成 その他エコシステムの諸々(コンパイラ、フォーマッタなど) コンパイラ LSP Formatter / Linter scalafmt scalaf

                                                                    (初心者向け)Scalaでsbtプロジェクトを作るときの勘所 - Lambdaカクテル
                                                                  • Scala CLIのDockerイメージを使うと本当に簡単にシングルバイナリを生成できて便利 - Lambdaカクテル

                                                                    Scala CLIのおもしろい使い方を見付けたのでメモ。これまでと比べてはるかにScalaのちょっとしたスクリプトのシングルバイナリを生成できるようになるので、本当にGolangみたいに簡単にちょっとしたツールを作れるようになった。 scala-cli package Scala Nativeはシングルバイナリを生成できる Dockerイメージを利用すると便利 用途 クロスコンパイルはまだできなそう まとめ 過去の記事 scala-cli package Scala CLIにはpackageというサブコマンドがあり、これを利用するとScala ScriptをそのままUber JAR(直接実行できるJARファイル)にビルドできるのでなかなか便利だ。 しかもなんと--nativeオプションを使うことでバックエンドがScala Nativeに切り替わり、ネイティブバイナリを生成できるようになる。

                                                                      Scala CLIのDockerイメージを使うと本当に簡単にシングルバイナリを生成できて便利 - Lambdaカクテル
                                                                    1