並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 40件

新着順 人気順

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

  • 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
    • これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル

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

        これだけ読めばOK!Scalaの環境構築2023 - 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のマクロ - 貳佰伍拾陸夜日記
          • Scalaの難しさをインターネットから集めてみる - Lambdaカクテル

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

              Scalaの難しさをインターネットから集めてみる - 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を採用
              • 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連発 - 貳佰伍拾陸夜日記
                • JavaScriptでScalaのFutureを表現する

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

                    JavaScriptでScalaのFutureを表現する
                  • 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カクテル
                    • ハマったポイントたくさんあったけど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へバージョンアップできたよ - エムスリーテックブログ
                      • 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
                        • 刮目せよ!! 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カクテル
                          • 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わいわい勉強会 参加した - ふんわり放牧

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

                                Scalaわいわい勉強会 参加した - ふんわり放牧
                              • 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でデータ指向プログラミングは可能か - かとじゅんの技術日誌
                                  • 株式会社ドワンゴ会場提供で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わいわいブログ
                                    • 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で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
                                        • ペーパーバック版の『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
                                          • 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 に参加しました! - たにしきんぐダム
                                            • 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

                                              • 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わいわい勉強会を開催しました! #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わいわいブログ
                                                  • 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カクテル
                                                    • 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
                                                      • 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,

                                                        • Scala Nativeがいつのまにかシングルバイナリを吐けるようになっていた - Lambdaカクテル

                                                          ScalaをネイティブコンパイルしてJVM無しで実行ファイルとして動かせるようにする仕組みであるScala Nativeが、いつのまにかシングルバイナリを出力できるようになっていた。これにより、Goと同じように1つのバイナリさえコピーすればScalaを動かせる環境が整ったことになる。 シングルバイナリ シングルバイナリとは、実行に必要なライブラリが静的にリンクされ、単体のバイナリとして完結した実行ファイルの通称*1である。より正確な表現として、静的リンクされた実行ファイルとか、静的実行ファイル(statically linked executable, static executable)というのがストレートだろう。この意味におけるシングルバイナリの対義語は動的リンクされた実行ファイル、動的実行ファイルである。英語だとdynamic executableだ。静的リンクされた実行ファイルは必

                                                            Scala Nativeがいつのまにかシングルバイナリを吐けるようになっていた - Lambdaカクテル
                                                          • 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)
                                                            • 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プロジェクトを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わいわい勉強会」に参加するまで - PCで苔を育てる人

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

                                                                    本当の初心者が「Scalaわいわい勉強会」に参加するまで - PCで苔を育てる人
                                                                  • 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でsbtプロジェクトを作るときの勘所 - Lambdaカクテル

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

                                                                          (初心者向け)Scalaでsbtプロジェクトを作るときの勘所 - Lambdaカクテル
                                                                        • Scala 3で型レベル自然数をやってみたらすごく簡単になってた - kmizuの日記

                                                                          Scala 3、正式リリースされてからそこそこ経ってますが皆さん使ってますか?実は自分は、主にIntellij IDEAのScala 3対応に不安もあってScala 2.13系列をずっと使い続けて来たのですが、最近はScala 3対応も進んできたようなので乗り換えを始めることにしました。で、手始めにということで型レベル自然数(型レベルペアノ数)を定義してみることにしました。 型レベル自然数は読んで字の如くで、型のレベルで自然数をエンコーディングしちゃおうって技です。依存型のある言語なら最初からあるので、わざわざ型レベル自然数とか大仰な言い方しなくてもいいのですが、それはそれとして論より証拠。早速、Scala 3で型レベル自然数を定義してみます。 enum Nat { case Zero case Succ[A <: Nat](v: A) } 定義はこれだけです。簡単ですね。Scala 2だ

                                                                            Scala 3で型レベル自然数をやってみたらすごく簡単になってた - kmizuの日記
                                                                          • 今から関数型プログラミングを学ぶとしたら、ScalaとHaskell、どっちがオススメですか? | mond

                                                                            mondでこの質問への回答を読んでみましょう

                                                                              今から関数型プログラミングを学ぶとしたら、ScalaとHaskell、どっちがオススメですか? | mond
                                                                            • 『なっとく!関数型プログラミング』はScalaで説明されている本だけど読んだらHaskellのdoもわかるようになった - nakaoka3の技術ブログ

                                                                              関数型プログラミング言語については、以前にHaskellの本を読んでみたりして、興味はあったのだが正直あまり理解できてなかった。 『なっとく!関数型プログラミング』はScalaのコードで関数型プログラミングを説明している本だ。最近邦訳が発売されて話題になっていたので買って読んでみた。 www.seshop.com この本で入れ子のflatMap の説明から、Scalaの for 内包表記 を説明しているところを読んで、Haskell の do もこれかということに気がついた。 リストの場合 // 入れ子のflatMap val result = List(1, 2).flatMap { x => List(10, 20).flatMap { y => List(100, 200).map { z => x + y + z } } } // for内包表記 val result2 = for

                                                                                『なっとく!関数型プログラミング』はScalaで説明されている本だけど読んだらHaskellのdoもわかるようになった - nakaoka3の技術ブログ
                                                                              • AWS LambdaでScala 3をContainer imageで動作させる - Lambdaカクテル

                                                                                先日(といっても結構前のことだが)、Scala 3のLTSサポートバージョンである3.3.0がリリースされた。Scala 3の開発が円熟してきているようで嬉しい。これからも元気でいてね。今回はScala 3をAWS LambdaのContainer imageを使って動作させる手法についてお伝えしたい。令和ではお盆の精霊はコンテナに乗ってやってくるぞ。 www.scala-lang.org これまでもこのブログではAWS LambdaでScala 3を動作させる方法を紹介してきたが、アーティファクトのサイズが大きくなると、JARを直接デプロイする方式ではアーティファクトに250MBのサイズ制限が生じるという問題があった。機械学習などを利用するアプリケーションではこのサイズ制限によりLambdaの利用に制約が生まれがちである(ただし、アーティファクトにJVMを含まなくても良いためサイズ効率は

                                                                                  AWS LambdaでScala 3をContainer imageで動作させる - 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