タグ

Scalaに関するto-ke-iのブックマーク (17)

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

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

    あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記
  • Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani

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

    Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani
  • 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 3 マクロ入門 · eed3si9n

    2021-09-06 / scala はじめに マクロは楽しくかつ強力なツールだが、使いすぎは害もある。責任を持って適度にマクロを楽しんでほしい。 マクロとは何だろうか? よくある説明はマクロはコードを入力として受け取り、コードを出力するプログラムだとされる。それ自体は正しいが、map {...} のような高階関数や名前渡しパラメータのように一見コードのブロックを渡して回っている機能に親しんでいる Scala プログラマには「コードを入力として受け取る」の意味が一見分かりづらいかもしれない。 以下は、僕が Scala 3 にも移植した Expecty という assersion マクロの用例だ: scala> import com.eed3si9n.expecty.Expecty.assert import com.eed3si9n.expecty.Expecty.assert scala

  • Scala, MongoDB, and Cats-Effect - DZone

  • Interpreters In Scala

  • Scala 3に備える社内勉強会の取り組みについて - kubell Creator's Note

    みなさん、こんにちは!Chatworkの原田 (@shinharad) です。 今回は、最近弊社で取り組んでいる Scala 3 の社内勉強会について、このような流れでご紹介したいと思います。 最初に Scala 3 の今の状況をざっと確認 Chatworkでは Scala 3 の社内勉強会を継続的に開催している 勉強会で使っている資料、情報源のご紹介 勉強会でやったことをいくつかご紹介 Scala 3 の状況 まずは、Scala 3 の今の状況について軽く確認しておきましょう。 待ちに待った Scala 3 は、この記事を執筆している時点での最新版が Scala 3.0.0-RC3 で、大きな問題がなければこの5月中にも安定版がリリースされる予定です。 Scala 3 は、Scala 2 で不便だった機能や、煩雑で分かりづらかった機能が大幅に見直されました。 具体的には、代数的データ型(

    Scala 3に備える社内勉強会の取り組みについて - kubell Creator's Note
  • Scala の開発環境構築 2021 - たにしきんぐダム

    特に意味はないけどおしゃれかなと思って貼ったスクショ Scala Advent Calendar 2020 - Qiita 3日目です ここ2,3年の間にScalaの開発ツールチェーンは進化を続けていて、Scalaの開発体験はめちゃくちゃ良くなってきています。例えば、数年前だと IDEは基的にIntelliJ一択、vimとかemacsで開発環境作れなくもないけどかなり大変 IntelliJの型チェックがうまく行かなくて、ちょっと複雑なコード書くとコンパイルは通るのに画面が真っ赤になる コンパイルが遅い(インクリメンタルビルドしても遅い) という感じだったのですが、現状はかなり改善されていて IntelliJ 以外にも metals という Language Server がかなり使いやすくなっていてあらゆるエディタで簡単にScalaを書けるようになった IntelliJ も metals

    Scala の開発環境構築 2021 - たにしきんぐダム
  • Scala3と圏論とプログラミング - Qiita

    最近、圏論とプログラミングという素晴らしい資料を拝読しました。圏論とプログラミング愛に溢れる資料で読んでいて目頭が熱くなりました。そうだよな・・・プログラマにも圏論いるよな・・・ ただ、自分にとって残念だったのは、資料で説明用に選択されたプログラミング言語が「Haskell」だったことです。もちろんHaskellは素晴らしい言語です。ただ、自分にとってHaskellは外国語なのでちょっと理解が難しいのです。なのでこの資料が「Scala」で書かれていたらと夢想せずにはいられなかったのです。 Scalaと言えば昨年末にScala3のリサーチコンパイラのDottyがFeature Completeを宣言しました1。この宣言で新機能の追加は終了して、あとは2020年末のリリースに向けてひたすら品質を上げていく段階に突入しました。つまり、ようやく次世代のScalaが全貌を現したということです。 ここ

    Scala3と圏論とプログラミング - Qiita
  • Redirecting

    Redirecting to latest/...

  • JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】

    ヌーラボでScalaを書くRubyistの谷です。ヌーラボでは、Backlogの開発を担当しており、最近ではBacklogJavaからScala / Play Frameworkに移行するプロジェクトのメンバーでした。 BacklogのPlay化プロジェクトでは、OutOfMemorryError(以下、OOM)の発生やCPU使用率とロードアベレージが上がったままという、Java Virtual Machine(以下、JVM)上で動くBacklogのパフォーマンスに関する問題に対処すべく、何度かHeap/Thread dumpを見る機会がありました。 私がPlay化プロジェクトで取り組んだパフォーマンス改善の知見や経験をもとに、記事では「JVMで起こったパフォーマンスの問題の切り分け方」についてお届けします。 はじめに 番環境でしばらく動かしていると、コード自体は正しく実行できるけ

    JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】
  • 2019/05 Scala導入を検討したい人に向けた情報をまとめてみた

    scalakb20190523.md 2019/05 Scala導入を検討したい人に向けた情報をまとめてみた Scalaとは? The Scala Programming Language 開発元はLightbend 社 と EPFL(Odersky先生がいるスイスの大学) 2019/05 現在、最新バージョンは 2.12 Dottyと呼ばれる新しいScalaコンパイラが開発されている Scala3 2019/05 現在0.15.0-RC1 2系との互換性はなく、移行ツールが用意される いつ出るのかもまだよくわからないため、おそらくこちらがメインストリームになるのはまだ数年先であると言われているが・・・? 特徴 JVM言語 オブジェクト指向と関数型言語両方の特性を併せ持つ 個人的にScalaの好きなところ 環境構築が簡単 JDKとsbt(ビルドツール)さえあればいい Scalaのコンパイラ

    2019/05 Scala導入を検討したい人に向けた情報をまとめてみた
  • GraalVM

    Build faster, smaller, leaner applications An advanced JDK with ahead-of-time Native Image compilation

  • play-clojure(Play 2アプリをclojureでつくる)その1

    Play framework Advent Calendar 2014の19日目です。 しばらく間があいてしまってましたね。 ネタ投下します。 ここ1年くらい、新しい言語勉強としてclojureを使うことを心掛けてきました。 もともとPlay Javaを日々使っていたこともあり、これをミックスできないかと思い始め、play-clojureという企画をはじめてみました。 sbtには、sbt-clojure(https://github.com/Geal/sbt-clojure)というプラグインが存在しており、sbtを使ってclojureのコンパイルが可能になっています。 playは、sbt上で動いているのでこれを使うと面白いことができそうだというのがことの発端です。ScalaのパワーにClojureのシンプルさ!というわけです。 超簡単なhello worldを今回はやってみます。Play-

    play-clojure(Play 2アプリをclojureでつくる)その1
  • Mackerel開発におけるScalaとGo、そしてPerl

    Profile id: Songmu (ソンムー) Masayuki Matsuki おそらくはそれさえも平凡な日々 http://www.songmu.jp/riji/ https://metacpan.org/author/SONGMU 趣味はCPANizeです はてな東京オフィス チーフエンジニア Mackerelディレクター 趣味はCPANizeです CPANに上げたモジュールは60以上 miyagawaさんとかは200以上上げてますが… データストアの気持ちを考えながらコードをかくのが好き 主にMySQLとRedis Perlが好き

  • Effective Scala

    Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto (@okapies) and Satoshi Kobayashi (@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマ

    Effective Scala
  • 1