並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 404件

新着順 人気順

scalaの検索結果241 - 280 件 / 404件

  • Chatworkでリアクション機能をリリースした話_scala_ks.pdf

    その Swift コード、
こう書き換えてみないか / Polishing your Swift code with me!

      Chatworkでリアクション機能をリリースした話_scala_ks.pdf
    • Scala、Picocli、GraalVMによるネイティブCLIツールの作成 - たけぞう瀕死ブログ

      以前、Scalaを使ってCLIツールを作るという記事を書いたのですが、やはりJVMベースのアプリケーションには起動時間のオーバーヘッドが付き物なのでちょっとしたCLIツールをScalaで書こうという感じにはなかなかなりません。そこで今回はPicocliというJava向けのCLIツール用ライブラリとGraalVMを使ってネイティブCLIコマンドをScalaで作る方法を試してみました。 github.com sbtプロジェクトの作成 今回はPicocliのドキュメントで例として掲載されていたchecksumコマンドをScalaで実装してみます。まずは以下の内容でbuild.sbtを作成します。 name := "picocli-scala-example" version := "0.1" scalaVersion := "2.12.7" libraryDependencies ++= Seq

        Scala、Picocli、GraalVMによるネイティブCLIツールの作成 - たけぞう瀕死ブログ
      • ビルドツール「Bazel」について | フライウィール

        ソフトウェアエンジニアのshinyaです。 2019年10月に、ソフトウェアのビルド・テストツールである「Bazel」のバージョン1.0がリリースされました(Bazel公式ブログ)。 Bazelは使いやすいのですが、現時点では情報がまとまっているサイトが少ないです。そのため、この記事では私が調べたことをまとめることにしました。 目次 BazelとはBazel(Bazelisk)のインストールBazelのチュートリアル空のBazelワークスペース簡単なJavaパッケージより実践的な例Apache Spark Scalaパイプライン参考サイトなど適宜 NOTE:という項目で、補足的な情報を追加しています。 以下は2019年11月24日時点(Bazel 1.1.0)での情報です。コードはUbuntu 18.04とmacOSでテストしました。 BazelとはBazel (/ˈbeɪzˌəl/1)

          ビルドツール「Bazel」について | フライウィール
        • Minimal Cake Pattern 再考 - Qiita

          かつて Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 という記事が公開されたとき、ぶっちゃけ私は 100 日も経てば忘れられているだろうと思っていました。私の予想に反して 2020 年現在でも Twitter では Minimal Cake Pattern への言及がたまに見られ、中にはこのパターンが(あるいは DI そのものが)難しいと感じる人もいるようなので、今一度このパターンについて整理してみようと思います。 依存性注入とは Minimal Cake Pattern は 依存性注入 (Dependency Injection, DI) を実現するためのデザインパターンです。ですのでまずは DI についておさらいしましょう。理解済みであればこの節は飛ばして構いません。 例として、時間の計測を行う

            Minimal Cake Pattern 再考 - Qiita
          • WEB+DB PRESSでScala特集記事を執筆しました - Unipos engineer blog

            エンジニアの大沼です。 8/24に発売されるWEB+DB PRESS Vol.112にて、同僚の谷口、豊島の3人で『実践Scala オブジェクト指向×関数型』という題で特集記事を執筆しました。Fringe81エンジニアとしては前号に続き2号連続での執筆をさせていただきました。 私たちの特集では、Scalaの基本的な文法からアプリケーション作成までを27ページの中に凝縮してお届けしています。 WEB+DB PRESS誌では初のScalaについての特集ということで、Scalaを初めて触る方を対象に、Scalaの基本的な使い方からScalaプログラミングの楽しさが伝わる事を目指して、執筆しました。 特集は5章構成となっており、それぞれの概要は下記の通りです。 1章:Scalaの歴史からScalaを利用するためのセットアップ方法について解説しています。 2章/3章:初めて触る方向けにScalaの基

              WEB+DB PRESSでScala特集記事を執筆しました - Unipos engineer blog
            • The False Hope of Managing Effects with Tagless-Final in Scala

              Tagless-final is a technique originally used to embed domain-specific languages into a host language, without the use of Generalized Algebraic Data Types. In the Haskell community, tagless-final still refers to a way of creating polymorphic programs in a custom DSL that are interpreted by instantiating them to a concrete data type. In the Scala community, however, tagless-final is used almost excl

              • Scalaでwhileやvarを使ってもいい理由 - Qiita

                まえがき Scalaを利用している現場では、しばしば、コーディング規約、あるいは、コードレビューで「varやwhileを使っている」ことが指摘されて、使わないように修正させれることががあります。 どこの現場で、という話はしないですが、私が実際に見たり聞いたりした範囲では、5社以上はあるんじゃないか、という感じです。 もちろん、コーディング規約やコードレビューの指針はそれぞれの会社で適切に運用されていればよくて、個々の話に私を口を出す権利は無いのですが、この話はScala現場でしばしば問題にされるので、一度書いておきたくなりました。 何故whileやvarが忌避されるのか これは、関数型プログラミングの文脈を知っている方なら、おおよそ推測がつくと思うのですが、本質的にそれらの言語機能は、副作用を前提としているから、というのがあると思います。 たとえば、以下のプログラムは、1から9までの数につ

                  Scalaでwhileやvarを使ってもいい理由 - Qiita
                • 依存性解決のセマンティクス · eed3si9n

                  2019-07-29 / scala 依存性リゾルバー 依存性リゾルバー (dependency resolver)、もしくはパッケージマネージャーは、ユーザーによって与えられた制約の集合を元に矛盾しないモジュールの集合を決定するプログラムだ。通常この制約要件はモジュール名とそれらのバージョン番号を含む。JVM エコシステムにおける Maven モジュールは organization (group id) も指定に用いられる。その他の制約として、バージョン範囲、除外モジュール、バージョンオーバーライドなどもある。 パッケージングは大まかに OS パッケージ (Homebrew、Debian packages など)、特定のプログラミング言語のモジュール (CPAN、RubyGem、Maven など)、特定のアプリケーションのためのエクステンション (Eclipse プラグイン、Intell

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

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

                      Scala Nativeがいつのまにかシングルバイナリを吐けるようになっていた - Lambdaカクテル
                    • チームのスキル向上にもつながるシステム刷新 〜 Yahoo! JAPANアプリ「お知らせ」機能の開発事例

                      ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo! JAPANアプリの通知系バックエンドシステムを担当している福盛です。 今回はYahoo! JAPANアプリの「お知らせ」画面のバックエンドシステムの刷新をテーマに、「刷新にあたっての設計」と「その開発過程」についてお話ししたいと思います。 Yahoo! JAPANアプリの「お知らせ」画面は、現在アプリを通じて送信されたプッシュ通知の内容を一覧できる機能を提供しています。 表示される内容は例えば 最近の注目ニュース 災害情報 荷物の配送状況のお知らせ ヤフーの各種サービスからのお知らせ などです。 また上記の内容に加え、今後コンテンツの拡充を積極的に進めていくよう開発しています。 システムの刷新〜PHPか

                        チームのスキル向上にもつながるシステム刷新 〜 Yahoo! JAPANアプリ「お知らせ」機能の開発事例
                      • 貧者の Algebraic Data Types と(浅い)網羅性判定

                        こんにちは、びしょ~じょです。 これは TypeScript アドベントカレンダー 2020 の3日目の記事です。 ちなみに12月3日は冴草きいちゃんの誕生日です。大変めでたいですね。 1. はじめに 関数型プログラミングといえばなんですか? はい円楽さん早かった! はいはい、 パターンマッチング、いいですね。 パターンマッチングといえばプリミティブな数値や文字列のリテラルのみならず、ユーザが定義した型もその構造によってマッチできます。回りくどい言い方をしましたが代数的データ型(Algebraic Data Types, ADTs)です。 listing 1.1. 例えば OCamltype 'a option = | None | Some of 'a let to_default default o = match o with | None -> default | Some v -

                          貧者の Algebraic Data Types と(浅い)網羅性判定
                        • Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog

                          はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている田口と申します。 私が所属しているチームでは COMPASS というプロダクトに関する開発をメインで行っており、広告配信システム(Scala)、管理画面(Kotlin・Java)、バッチ系(Digdag(Python)・Spark Streaming(Scala)) ...etc など幅広い分野を担当しています。 担当しているプロダクトの中で広告配信システム(Scala)は、2014年に初期実装され現在(2021年)まで追加改修を継続的に行っているプロダクトになります。2019年の後半に「そろそろ刷新しよう」という声が上がり粛々と基盤固めを進めていましたが、他のプロダクトが落ち着いた今、ようやくチーム一丸となって広告配信システムのリプレイスに取り掛かり始めています。 今回のリプレイスでは Scala の関数型ライブラリであ

                            Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog
                          • ScalaとGolangでDDDを実装比較してみた

                            パラダイムの違う言語であるScala(PlayFramework)とGolang(Gin)を使い、同じ要件をDDDで実装しました。 DDDの実装例や言語毎の比較はあまり世間ではあまり見かけないので、ナレッジシェアも兼ねてまとめました。 前提 ScalaとGolangは別々のパラダイムから来ており、それぞれのメリット/デメリットが有ります 純粋に「やってみたらどうなるんだろう?」を実践したものであり、特定言語を持ち上げたりディスったりしたいわけではありません 実装は私が 現職 での経験を踏まえつつ自分なりにアレンジしたもの(特にScalaでの実装)です 「どんなケースにも対応できるDDDの正解実装」といわけではありません 経緯/モチベーション 業務ではDDDに沿ったweb APIを開発していることもあり、自分でイチから何か作ってみたかった そもそもゼロからアプリケーションを作る経験が少ないの

                              ScalaとGolangでDDDを実装比較してみた
                            • DynamoDB Streamsを用いたAkka Streamsによるキャッシュ処理の実装とDynalystでのインターン | CyberAgent Developers Blog

                              DynamoDB Streamsを用いたAkka Streamsによるキャッシュ処理の実装とDynalystでのインターン AI事業本部 Dynalystの黒崎(@kuro_m88)です。 今回はCA Tech JOBの制度を用いてインターンに参加して頂いた塚越さんからの寄稿記事です。 以下本文です。 みなさん初めまして! AI事業本部のDynalystというWeb広告に関するプロダクトのチームで、2020年3月の間 CA Tech JOBに参加させて頂きました、名古屋大学情報学部コンピュータ科学科4年の塚越駿(@hppRC)と申します。最近はもっぱら自然言語処理の研究やお勉強をしています。 本インターンでは、Scalaのactor modelを採用した並行処理ライブラリのAkkaと、それをベースにしたストリーミング処理用ライブラリのAkka Streamsを用いて、DynamoDB St

                                DynamoDB Streamsを用いたAkka Streamsによるキャッシュ処理の実装とDynalystでのインターン | CyberAgent Developers Blog
                              • Programming in Scala, Fifth Edition

                                If you purchase the eBook, you will be entitled to receive periodic updates as errata are fixed, for no additional charge. If you purchase a paper book, it will be shipped as soon as it comes into stock (which should take place the week of ). If you purchase the combo, the paper book will be shipped when it is published, estimated publication date is . About the book The fifth edition of Programmi

                                • はじめに · Scala で始める圏論入門

                                  はじめに 本サイトは、圏論初心者が圏論について学びながら作成した、Scala プログラマのための入門書です。教科書は Bartosz Milewski 氏著の Category Theory for Programmers の Scala Edition で、構成も原則これに沿っています。 Scala をやっていて、圏論について知りたい・学ぶ土台を作りたいという方の参考になれば幸いです。 目次 はじめに(ここ) 第1部 1章 圏とは 2章 型と関数の圏 3章 いろいろな圏 4章 Kleisli圏 5, 6章 積と余積 7章 関手 8章 関手性 (工事中)9章 関数型 10章 自然変換 第2部 (工事中)11章 宣言型プログラミング 12章 極限と余極限 付録 表記法 Writer 圏における射の合成と、恒等射と、関手について 免責事項 ドキュメントの章構成は基本的に原文に則っていますが、省

                                  • ZIO - Scalaで型安全に合成可能な非同期処理を実現する - Adwaysエンジニアブログ

                                    はじめに はじめまして!昨年10月に中途入社したエンジニアのおかむです。 エンジニアとしてはそれなりに長くやってきて、インフラからフロントエンドまで幅広く経験しています。 苗字が社長の岡村さん(2021年7月からは会長になります)と同じで紛らわしいため、Adwaysでは愛称で呼んでもらってます。 (実は年齢も岡村さんと同じです) 自己紹介は短く切り上げて本題に入りましょう。 以下、Scalaのサンプルコードではmdocを使っています。 はじめに ZIOとは何か 簡単なコード Map FlatMap and other combinators バリデーション エラー時のStacktrace 最後に ZIOとは何か https://zio.dev ZIOは、Scalaで作用を扱う関数型プログラミングのライブラリです。 「作用」というのはちょっとわかりづらいので、多少の語弊は恐れず「処理」と言い

                                      ZIO - Scalaで型安全に合成可能な非同期処理を実現する - Adwaysエンジニアブログ
                                    • やさしい Scala ~Json ライブラリ の実装をなぞりながら Scala 3 と関数型プログラミングの初歩を学ぶ~

                                      既存のOSSの実装をなぞりながら簡単な Json パーサーを作る過程で、Scala 3 で追加/変更された文法・機能と関数型プログラミングを学べるように書いた本です. この本を読むと - Scala 3 の文法・追加/変更された機能がわかります - Scala の関数型 Json ライブラリのお気持ちがわかります - Scala の関数型のお気持ちがチョットわかります - Scala 3 のマクロがわかります 最初から順番にじっくり読むよりは全体を斜め読みして気になったところをしっかり読むといいかもしれません. - Maven へのリリース方法を追加: 2021/11/11 - Tweak: 2022/05/03

                                        やさしい Scala ~Json ライブラリ の実装をなぞりながら Scala 3 と関数型プログラミングの初歩を学ぶ~
                                      • Scala 選定の結果と継続の方針 〜Advent Calendar 2016 Day 25 へのアンサー〜 - Qiita

                                        Mikatus Advent Calendar 2019 25日目の記事です。 開発責任者の土田です。 当社が2016年に参加したアドベント・カレンダー25日目の「Scala選定の理由と移行の方針」という記事へのアンサーを書こうと思います。事前にその記事を読んでいただいた方が、この記事の内容を楽しめるかなと思います。ただ、私の記事はあくまでポエムなので、そんなに期待しないでください。 プラットフォーム移行の観点でよりきちんとした内容は「Scala採用を決めて3年半たった、CTOの振り返り。アーキテクチャ刷新を成し遂げるために必要なこと」がとても参考になると思いますので、そちらをオススメします。 発端は(食べられる方の)カリーうどん → 最近は秋葉原でスープカリー 当時は当社のオフィスが白金高輪だったので、近くにあるカリーうどんを食べてました。その後は岩本町、浅草橋と移転したので食べてるカリ

                                          Scala 選定の結果と継続の方針 〜Advent Calendar 2016 Day 25 へのアンサー〜 - Qiita
                                        • 入門

                                          cs setup は JVM の管理だけでなく、便利なコマンドラインツールもインストールします: JDK (インストール済みでなければ) sbt ビルドツール Ammonite, 強化された REPL scalafmt, コードフォーマッター scalac (Scala 2 コンパイラー) scala (Scala 2 の REPL と script runner). csの詳細については、ccoursier-cliのドキュメントをご覧ください。 現在cs setup は Scala 2 のコンパイラとランナー(それぞれscalacとscalaコマンド)をインストールします。ほとんどのプロジェクトでは Scala 2 と Scala 3 の両方に対応したビルドツールを使用しているので、通常は問題になりません。しかし、以下の追加コマンドを実行することで、Scala 3のコンパイラとランナーを

                                          • 負荷テストツールGatling Tips(実践的なScalaスクリプト)

                                            Gatlingでシナリオを作成するときに、よくつかうテクニックをまとめてご紹介します。 基本的な実行方法やセットアップ方法は、こちらの記事「Gatlingで負荷テストを行う手順のまとめ(セットアップ編)」を参考にしてください。 よくつかうプロトコル設定 Gatlingでは、protocolsとして、シナリオに対する基本的な振る舞いを定義できます。 定義できる内容は、テスト対象のドメインやプロキシー、認証やUserAgentなど多岐にわたりますが、よく使うと思われるものを以下に解説します。 まずは、サンプルのソースです。 val pcAgent="Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/30.0.1599.101Safari/537.36" var httpProtocol = http

                                              負荷テストツールGatling Tips(実践的なScalaスクリプト)
                                            • Coursier を使って最速でScalaの開発環境を整える - ぶらっ記ぃ

                                              ざっくりまとめ Coursierの setup コマンドを使うとJDKとScala開発に必要なツールをまとめてインストールできるよ。 最近追加された install コマンド get-coursier.io Coursier といえば sbt v1.3.0 で取り込まれた高速でライブラリ依存を取得するためのOSSとして有名ですが、このCoursierにはCLIが提供されており、ライブラリ依存のグラフを出力したり、アプリケーションの起動スクリプトを用意するコマンドが提供されています。 最近の Coursier v2.0.0-RC のアップデートで install コマンドが追加されました。 Announcement: The install command of coursier is not experimental anymore, and is ready for prime time

                                                Coursier を使って最速でScalaの開発環境を整える - ぶらっ記ぃ
                                              • 実戦での Scala: Cake パターンを用いた Dependency Injection (DI) · eed3si9n

                                                2011-04-23 Akka の作者として益々注目を集めている Jonas Bonér が 2008年に書いた “Real-World Scala: Dependency Injection (DI)” を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2008年10月6日 Jonas Bonér 著 2011年4月22日 eed3si9n 訳 さて、実戦での Scala シリーズ第二弾の今回は、Scala を用いた Depenency Injection (DI) の実装をみていきたい。Scala は、備わっている言語機構だけを用いても何通りかの DI を実現できる非常に豊かでディープな言語だが、必要に応じて既存の Java DI フレームワークを使うこともできる。 Triental では、一つの戦略に落ち着くまで三つの異なる方法を試した

                                                • Scala 3への道

                                                  原文(投稿日:2021/03/03)へのリンク Scala 3には多くの変更が組み込まれており、Dottyに基づいている。新しいコンパイラは、Document Object Types (DOT) の内部データ構造を使用する。そのコードベースは現在の nsc コンパイラのほぼ半分のサイズであり、パフォーマンスの向上が約束されている。過去8年間の開発において、新しい型を含むDottyの新機能は、改善された enum 型の処理とメタプログラミングが含まれる。最初のリリース候補が利用可能になり、バージョン 3.0.0は2021年の初めから中頃にリリースされる予定だ。Scala 3は、Scala 2.13の下位バイナリ互換バージョンだ。 Webサイトに記載されているように、Scala 3の開発は3つの主要な目標に焦点を合わせている: Scalaの基盤を強化します。完全なプログラミング言語をDOT計

                                                    Scala 3への道
                                                  • Visual Scala Reference

                                                    このガイドは、Scala プログラミング言語でもっとも広く使われる関数のいくつかを集め、それらをシンプルな図解で概念的に説明します。 新しい項目をリクエストしたり、訂正したり、翻訳を提供するには、このプロジェクトの Github レポジトリへ行ってください。 AaggregateandThenappendedappendedAllCchaincollectcollectFirstcombinationscomposeconcatcondcondOptconstcontainscontainsSlicecopyToArraycorrespondscountcurriedDdiffdistinctdistinctBydropdropRightdropWhileEempty (PartialFunction)empty (コレクション)endsWithexistsFfillfilterfilte

                                                    • A Tour of Scala 3

                                                      Break Free with Managed Functional Programming: An Introduction to F#

                                                        A Tour of Scala 3
                                                      • こんなに違う!ScalaとKotlin

                                                        ハイインテグリティコミットメントを実現するスクラム開発の進化 / Evolution of Scrum for High Integrity Commitment

                                                          こんなに違う!ScalaとKotlin
                                                        • Scalaの逆引き解説サイト

                                                          Scalaを使ってみたいけれど、複雑そう、難しそう…と使うのを躊躇している方も多いと思います。 そこで、当サイトではScalaについて無理なく学べるよう、Javaなどの周辺技術との関わりも含めてやさしく平易に解説していきます。

                                                            Scalaの逆引き解説サイト
                                                          • FOLIOでのrefined活用法 - ドメインを型で形式知化し、契約を型で表すことで認知漏れを防ぐ - だいたいよくわからないブログ

                                                            FOLIOアドベントカレンダー2021 12日目です。 FOLIOではrefinedというライブラリを採用しているので、活用事例とその目的について考えていこうと思います。 お品書きは以下です。 refinedとは ドメイン知識の形式知化 契約を型で表すことによる認知漏れリスクへの対策 プラットフォームとしてのrefined まとめ refinedとは refined はScalaでrefinement typeを表現するためのライブラリで、Haskellの 同名ライブラリ のScala版として開発されました。 refinement type(篩型, ふるい型) はざっくりいうと、「値が0以上である」とか「長さが1以上である」といった制約を型で表現し、静的に保証するための概念で、1991年にFreemanらによってRefinement Types for MLで提案されました。 利用方法 r

                                                              FOLIOでのrefined活用法 - ドメインを型で形式知化し、契約を型で表すことで認知漏れを防ぐ - だいたいよくわからないブログ
                                                            • 不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita

                                                              諸般の理由で『Pythonのlambda式を用いたラムダ計算の基礎表現』を書いた後にHaskellに触れたところ,無名再帰関数を実行する不動点コンビネータfixがとんでもなく簡単に書けたため,同じ方法で他のプログラミング言語でもできないか試したところ,これまたあっさりできたので,まとめメモ的に新しく記事にした. このような内容がQiitaや書籍,ネット上に星の数の更に星の数乗ほどあることは承知しているが,この手の話はYコンビネータが大きな割合を占めており(実際,元記事でも取り上げている),関心のある人々の数多ある参考資料のひとつ程度に捉えてもらえると幸いである.ツッコミ,編集リクエスト歓迎. 不動点コンビネータの定義 不動点コンビネータとは,$f(g(f))=g(f)$が成り立つ関数$g$を指す.この記事では,Haskellの呼称であるfixを不動点コンビネータの関数名とする. Haske

                                                                不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita
                                                              • Hands-on Scala Programming

                                                                Hands-on Scala teaches you how to use the Scala programming language in a practical, project-based fashion. This book is designed to quickly teach an existing programmer everything needed to go from "hello world" to building production applications like interactive websites, parallel web crawlers, and distributed systems in Scala. In the process you will learn how to use the Scala language to solv

                                                                • 勝又さんは関数型言語を経験するべきと言っているので、結局Scalaをおすすめするしかないと思う - スクラムマスダーの日記

                                                                  エンジニアで、YouTubeで配信もされている勝又健太さんが、「Scalaが日本で衰退し始めている理由を説明します」という動画をアップされました。 僕は、過去、Scalaを少しだけ触ったことがあります。 そのため、以前から、勉強のために、日本でトップレベルのスキルをもつScalaエンジニアの方のTwitterをフォローさせていただいていました。 勝又さんが動画をアップされた日や翌日は、そのScalaエンジニアの方が、いつもとは異なるツイートをされていました。 僕は、少し違う感じ方をしたので、今回ブログに記します。 勝又さんの動画の要約 詳しくは、Youtubeにアップされている動画を確認いただければと思いますが、ざっくり要約すると以下の通りです。 学習コストの高さによる技術的負債の進行 学習コストの高い、関数型言語が日本で普及していないから 一度右肩下がりになった言語は、過去の例を鑑みると

                                                                    勝又さんは関数型言語を経験するべきと言っているので、結局Scalaをおすすめするしかないと思う - スクラムマスダーの日記
                                                                  • Scala, Scala 2, Scala 3, Dotty, DOTの違い:処理系と言語を区別する - kmizuの日記

                                                                    はじめに 昨日、 ScalaMatsuri 参加者の一人から、タイトルの用語について、どういう使い分けをされているのかがわからない、といった質問があったので、処理系と言語の区別という観点も踏まえてちょっと整理しておきます。Eugene Yokotaさんから聞いた話としては、Scala 3という用語についてちょっと違う意味合いもあるようなのですが、その辺はツッコミ入れてくださるのではないかと期待しています。 Scala 2019年6月30日現在、普通にScalaといったらプロダクションで普通に使われているScalaの処理系(scalacなど)を指す場合と、その処理系が対象とする言語そのものを指す場合の用法の大まかに二通りがあります。この辺の使い分けは話の文脈に多分に依存していて、たとえば、「Scalaはコンパイルが遅い」「Scala 2.12でコンパイル速度が15%(詳細な数値は忘れました)

                                                                      Scala, Scala 2, Scala 3, Dotty, DOTの違い:処理系と言語を区別する - kmizuの日記
                                                                    • GitHub - topshell-language/topshell: TopShell - a purely functional, reactive scripting language

                                                                      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.

                                                                        GitHub - topshell-language/topshell: TopShell - a purely functional, reactive scripting language
                                                                      • Java で Scala の Type Safe Builder パターンをエミュレートする

                                                                        class: center, middle ## Java で Scala の <br/><strong>Type Safe Builder パターン</strong><br/>をエミュレートする Burikaigi2020 02/01 --- class: left, middle ## 自己紹介 * 中村 学(Nakamura Manabu) * [@gakuzzzz](https://twitter.com/gakuzzzz) * Tech to Value 代表取締役 * Opt Technologies 技術顧問 <img src="../images/opt_logo_1.jpg" alt="Opt Technologies" width="450" style="margin-left: 0px" /> * F-CODE CTO <img src="../images/f-c

                                                                        • ScalaからAWS CDKを叩いてインフラを構築する - ぶらっ記ぃ

                                                                          モチベーション 先日、TypeScriptとPython向けに AWS Cloud Development Kit がGAになりました。 aws.amazon.com 現在GAではないのですが、JavaもこのAWS CDKの対象言語となっています。 じゃあ、JavaでできるならScalaでもできるよね?(決まり文句) Scalaでインフラコードを書けるのは嬉しそう。 というわけでScalaからAWS CDKを叩けるか試してみました。 セットアップ AWS CDKのインストール npm install -g aws-cdk Ammoniteのインストール ammonite.io 今回はScalaスクリプトを使ってAWS CDKのAPIを叩いてみます。 以下は執筆時の最新版をインストールしています。 sudo sh -c '(echo "#!/usr/bin/env sh" && curl -

                                                                            ScalaからAWS CDKを叩いてインフラを構築する - ぶらっ記ぃ
                                                                          • Scala-CLIを使うとScalaをいきなりバイナリに変換できてすごいので紹介したい - Lambdaカクテル

                                                                            Scala-CLIをいじっていたらかなり良さそうな機能を見付けたので紹介する。 Scala-CLI あらかじめ説明しておくと、Scala-CLIとはScalaをLLライクに扱うための便利ツールチェイン。REPLでコードを試したり、スクリプトを実行できたりする。 scala-cli.virtuslab.org 1ファイルで完結したスクリプトを書くと、依存性解決から実行まで全部やってくれるというのが非常にありがたい。RubyやPythonなどといったLLのように、強力な型安全性はそのまま、Scalaを書くことができる。 tanishiking24.hatenablog.com 本当にこれは革命的ツールチェインだ。 インストールも簡単で、JVMが動く環境でシェルで1行書けばよい。 $ curl -sSLf https://virtuslab.github.io/scala-cli-package

                                                                              Scala-CLIを使うとScalaをいきなりバイナリに変換できてすごいので紹介したい - Lambdaカクテル
                                                                            • 業務アプリケーションのScala 3アップデートを試してみた(前編) - FLINTERS Engineer's Blog

                                                                              こんにちは。FLINTERSでTech Adviserをしています、OE(@OE_uia)です。 Scala 3.0.0が2021年5月14日にリリースされたことを受けて、いつアップデートするか検討中の方も多いかと思います。 実際、今FLINTERSではScala製プロダクトのScala 3.0.0へのバージョンアップを試みており、今回はその進捗をブログ記事化しました。 TL;DR Play Frameworkやplay-jsonを利用したプロジェクトでも、一部はScala 3.0.0にアップデート出来ることを確認しました。 Scala 3化を完遂するにはやや時期尚早な感があるものの、今回試してみてScala 2.13とScala 3の互換性に関する知見がたまり、OSSへの貢献もできました。 scala3-migrate-pluginで依存しているライブラリのScala 3対応状況について

                                                                                業務アプリケーションのScala 3アップデートを試してみた(前編) - FLINTERS Engineer's Blog
                                                                              • DottyのMatch Typeを使ってコンパイル時にFibonacciを計算する - xuwei-k's blog

                                                                                見た目通りで、あまり難しくないので、特に説明することがない。 macroさえ使わずに書けますね。 shapelessにあったような色々な機能が標準で装備されています。 みなさん、Match Type使ってもっと複雑な色々な計算書いてみましょう。 ちなみに、この単純な実装だと、大きい数渡すと(コンパイル時に)大変なことになるのでご注意ください。 plugins.sbt addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.4.1") build.sbt scalaVersion := "0.26.0-RC1" Main.scala package example import scala.compiletime.ops.int.{-, +} import scala.compiletime.testing.{typeChecks, typeCheckE

                                                                                  DottyのMatch Typeを使ってコンパイル時にFibonacciを計算する - xuwei-k's blog
                                                                                • GitHub - makenowjust-labs/recheck: The trustworthy ReDoS checker

                                                                                  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 - makenowjust-labs/recheck: The trustworthy ReDoS checker