並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 240件

新着順 人気順

Scalaの検索結果1 - 40 件 / 240件

  • 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カクテル
      • スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、その効果と苦労点 - Qiita

        スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、その効果と苦労点RubyRailsScalaポエムスタートアップ この記事を書くに至った経緯 僕が代表をしている株式会社KOSKAでは製造業の原価管理をIoTで自動化するGenkanというサービスを提供しております。 そんな弊社では半年前、バックエンドをRuby on RailsからScalaに移行したのですが、その効果が思ったよりだいぶ大きく、いずれこの効果を共有したいなーと思っていました。 弊社ではスタートアップで全員ほぼ未経験状態のScalaを採用するという挑戦をした結果、「Scalaを書きたい」というレベルの高い人材をかなりの確率で捕まえられるようになり、開発がものすごい加速した上に堅牢になったのでそのうちスタートアップでScalaを採用するメリットを記事にする予定。 https://t

          スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、その効果と苦労点 - Qiita
        • 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 - たにしきんぐダム
          • これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル

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

              これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル
            • Chatworkテックリードが“今”の自分に集中してきた理由。Scala×DDDに出会い、サービス改善に生かすまで - Findy Engineer Lab

              自分が気づいてなかった資質を、探して、磨く 劣等感に消耗するより、目的志向で考える オープンソースコミュニティへの参画 ドメイン駆動設計とScalaが「点」となる ドメイン駆動設計との出会いと成果 遅延評価的学習法でScalaを習得 Scalaを使ってDDDを実践するスタイルを確立した 実験的に導入して結果が出れば業務での普及も進む 積み上げてきたScalaとDDDの開発スタイル Scalaコミュニティとともに 新しい挑戦で新しい「点」ができ、そして「線」につながる 「いずれどこかで点がつながって実を結ぶだろう」 過去も未来も思い切って手放し、今の自分に集中する こんにちは、Chatworkでテックリードをしている、かとじゅん(@j5ik2o)です。 今年(2020年)で48歳になりましたが、技術に前向きになったというか、本気を出したのは37歳ごろでした。遅いな……(笑)。まぁ、遅い早いが

                Chatworkテックリードが“今”の自分に集中してきた理由。Scala×DDDに出会い、サービス改善に生かすまで - Findy Engineer Lab
              • Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理

                Passkey Autofill に賭けるマネーフォワード ID - Money Forward Tech Day 2024

                  Java 5.0時代の非同期処理技術から学び直すScala/Java非同期処理
                • Scalaを使っているプロジェクトにメンバーがジョインする時に勧めている資料まとめ | DevelopersIO

                  はじめに 業務のメインプロジェクトではScalaを使うことが多く、チームに新しく加わったメンバーのオンボーディングではScala言語自体やライブラリ(主にtypelevel系)の資料を紹介する機会が少なくありません。毎回リンクのリストを作り、コメントを添えて共有するのですが、回数も増えてきたので記事にしてみることにしました。 Scala言語の入門 ScalaText 『Scala スケーラブルプログラミング』(第三版) 『Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド』 1つ目のScalaTextは有名なドワンゴさんの研修資料が日本のScalaコミュニティに寄贈にされたものです。2つ目以降はScalaTextの冒頭でも言及がありますが、入門としては鉄板かなと思います。他のプログラミング言語を修得されているのであればScalaTextを一通り

                    Scalaを使っているプロジェクトにメンバーがジョインする時に勧めている資料まとめ | DevelopersIO
                  • コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)

                    コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS 数多くのScala関連OSSにコミットを続ける吉田憲治(xuwei-k)さん。その精力的な活動を支える、関数型の知見の源をうかがいました。 オブジェクト指向言語と関数型言語の特徴を併せもつマルチパラダイム言語・Scala。この言語に関連するOSSのコミット履歴には「 xuwei-k」というアカウントが頻繁に登場します。今回お話を聞いた吉田憲治(よしだ・けんじ/ @xuwei_k )さん、その人です。 吉田さんはScalaのスペシャリストとして、数多くのScala関連OSSにコミットを続け、2018年、Scalaコミュニティに対する貢献者に贈られる「Phil Bagwell Award」を受賞しています。界隈屈指のコントリビューターとして知られる吉田さんに、Scalaのスキルを研鑽して

                      コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)
                    • Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ

                      この記事はJX通信社 Advent Calendar 2019 2日目の記事です。 昨日は、たっちさんの「Kubernetes Admission Webhookでリソース作成を自在にコントロールする」でした。 こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 今回は長年動かしてた Scala のマイクロサービスのリビルドを行った話をしようと思います。 TL;DR 新しい言語を投入するのにマイクロサービスは便利 Scala で感じていた問題点を解消しつつ Go へ移行できた 消費メモリが大きく減って安定稼働できるようになった 予防線を貼っておきますと、Scala より Go のほうがいいよね、といった本旨ではありません。 Scala で書いたマイクロサービス 弊社のマイクロサービスの一つにカテゴリ分類専用のサービスが存在します。 カテゴリやキーワードを登録しておくとル

                        Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ
                      • flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"

                        情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W

                          flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"
                        • ちっちゃな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のマクロ - 貳佰伍拾陸夜日記
                            • 経験5年のHaskellユーザがScalaを仕事で半年使ってみた

                              haskell-scala-java ちょっと前までScalaを書いていたので、 Haskell好きな人がScalaを書いた感想を書きます。 タイトルは経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blogの模倣です。 あくまで1ユーザの感想です。 Scalaに慣れてしまうと違和感を忘れてしまうと思ったので、当時箇条書きで雑にメモしていたものを参照して書いています。 逆にScala使いがHaskellを知るメモに役立つかもしれません。 Haskell歴 when: 2013年から知って学び始めましたが、本格的に使い始めたのは2015年からで、5年ほど使っています where: どの言語を使っても良くて新しい言語を学ぶ必要がなければ基本的にHaskellを使っています what: 趣味OSSプロジェクトの大半 現在一番スターもらっ

                                経験5年のHaskellユーザがScalaを仕事で半年使ってみた
                              • いつScalaを使い、いつ使わないのか

                                前置き 先日Twitterでこのような興味深いツイートを拝見しました。 なるほどと思ったので、自分が技術選定/アーキテクチャ設計において「どのような時にScalaを選択し、どのような時に選択しないのか」をあらためて言語化してみることにしました。 ちなみにこの記事タイトルは Scala福岡 2019 で講演させて頂いたものと同じタイトルですが、当時の資料は説明が無いと誤解を招く部分も多く非公開にしているため、その焼き直しも含めてこの記事を書いています。 また、ここで記載している内容は2022年8月現在の事情を元にした考えになります。言語の機能やとりまく状況などは日々変わっていくものであり、前提が変われば結論が変わることも当然にあります。あくまで現時点での意見の一つとして参考程度にして頂ければ幸いです。 また、この記事では主に言語機構や周辺ライブラリ・エコシステムといった側面からの判断を中心と

                                  いつScalaを使い、いつ使わないのか
                                • 部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記

                                  この記事はScala Advent Calendar 2022の19日目です. Scalaではジェネリック型の変性(variance)は+や-で指定しますが, 他の言語(たとえば, C#, Kotlin)ではoutやinだったりします. この記事では変性の意味を整理して, なぜScalaでは+/-の記号を使うのか説明します. 追記ただし, ここで説明している内容は基本的にC#やKotlinでも成立する(はずな)ので「なぜこれらの言語では+/-の記号を使わないのか」を説明するものではありません. 個人的には+/-の方がわかりやすいと思うし, out/inの記法は扱っている概念が簡単であるかのような誤解を生む(悪く言えば騙す)のでどちらかと言うと嫌いです. 発端 こういう話題がありました. Scala は共変が + で、反変が - なので理論重視? なのに対して、Kotlin と TypeSc

                                    部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記
                                  • Scalaのメモリ使用量はJavaよりも多いか検証した - Lambdaカクテル

                                    こういう記事を読んだ。 transparent-to-radiation.blogspot.com なんかScalaのメモリ使用量が異常に多いなと思って、調べた。検証コードもアップした。 github.com 検証として、様々なJVM(OpenJDKとかCorettoとか)とそのバージョン(8, 11, 17)でJARを実行して考察した。JVMを用意するためにASDFを使った。また、ASDFから引っぱってこれないJVMのバージョン(OpenJDKの8など)は省略している。 JAVA_OPTSは-Xms100M -Xmx2Gである。 手元のマシン(Linux x86_64 Xeon W-10855M 2.80GHz 64GiB RAM)でのrun-matrix.shの実行結果は、以下の通り(各列は、JVM、計算件数、実行時間Sec、メモリ総使用量KiB)。 openjdk-11 openjd

                                      Scalaのメモリ使用量はJavaよりも多いか検証した - Lambdaカクテル
                                    • ZOZOSUITのサーバーをPythonからScalaで実装し直してコストを下げた話 - Qiita

                                      TL;DR ZOZOSUITで計測したデータを扱うサーバーは、元々Pythonで実装していた それをScalaで実装し直した 結果、レイテンシにおけるパフォーマンスが向上した さらに、リソース面におけるサーバーコストも削減できた 技術選定における背景 ここ数年、機械学習の文脈やサービスの立ち上げ期のプロトタイプ実装のため、Webアプリケーションの分野においてもPythonが選択されることは本当によく聞かれるようになりました。 事実、難しいビジネス要求や急な仕様変更への柔軟な対応においては、比較的実装コストの低い言語やフレームワークを選択するメリットはとても大きいと言えます。 利用できるすべての変数やメソッドの型をプログラムの実行中に決めなければならない場合、ランタイムのオーバーヘッドは甚大になります。静的型付け言語では、そのオーバーヘッドが不要になります。Python、Perl、Rubyと

                                        ZOZOSUITのサーバーをPythonからScalaで実装し直してコストを下げた話 - Qiita
                                      • Scala3と圏論とプログラミング

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

                                          Scala3と圏論とプログラミング
                                        • 1万7千⾏のKotlinを2週間かけ⼒尽くでScalaに移⾏した話

                                          ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained

                                            1万7千⾏のKotlinを2週間かけ⼒尽くでScalaに移⾏した話
                                          • Scala3でコードは爆速になる マルチステージプログラミングの考え方

                                            アジア最大級の国際Scalaカンファレンスである「ScalaMatsuri2020」がオンラインで開催されました。そこでビジョナル・インキュベーションの鈴木氏が、Scala3(Dotty)で可能になったマルチステージプログラミング(MSP:Multi-stage Programming)について話しました。前半ではマルチステージプログラミングの概念やその基本的なプログラムの書き方について話しました。 マルチステージプログラミングのいいところ 鈴木健一氏(以下、鈴木):鈴木健一と申します。よろしくお願いします。本日はマルチステージプログラミングの話をします。 Dotty(※Scala3)でメタプログラミングの機能が強化されてマルチステージプログラミングができるようになったので、せっかくなのでそのお話をしまして、後半はTagless-finalのご紹介をします。最後にマルチステージプログラミン

                                              Scala3でコードは爆速になる マルチステージプログラミングの考え方
                                            • RoRやLaravelなどのフレームワークを使ってきた人がScalaを導入した時に引っかかる点とその解決策 - Qiita

                                              はじめに 僕が代表をしている株式会社KOSKAでは製造業の原価管理をIoTで自動化するGenkanというサービスを提供しております。 そんな弊社では半年前、バックエンドをRoRからScalaに移行したのですが、これが素晴らしく効果が高かったので以下の記事を書きました。 スタートアップである弊社が全員ほぼ未経験でRoRをScalaに移行した理由、その効果と苦労点 しかし、最後に書いたのですが、苦労する点もとても多いです。 弊社CPOが苦労する点を抽象的な部分に関しては以下の記事で書いてくれてはいます。 0からScalaを本番導入して感じたこと・考えたこと - Qiita ただ、実際にコードを書き始めた時に引っかかりやすい点をできるだけ詳しくあげておくことで、導入しようと考えた人がなるべく簡単に導入できるという状況を作りたかったので、書きました。 それではスタートです。 RubyやPHP、Py

                                                RoRやLaravelなどのフレームワークを使ってきた人がScalaを導入した時に引っかかる点とその解決策 - Qiita
                                              • さらなる型安全性を求めて ~ Refinement TypeをScalaで実現する ~

                                                SoRの性質が強いBtoBアプリケーションでは、「堅く」作ることを求められる箇所がしばしばあります。 Scalaの型安全性が頼もしく感じられるのは、まさにこのような箇所においてです。 「堅く」作るために、私たちがいま注目しているのが refined と newtype というライブラリです。 この記事では、refinedとnewtypeを使ってScalaの型安全性をさらに引き出すテクニックを紹介します。 Value Class / Tagged Type refined + newtypeの話題に入る前に、これまでにどのようなテクニックが使われてきたかを簡単に振り返りましょう。 ここに、SNSのユーザーアカウントを表現するクラスがあります。 case class User(id: String, email: String, age: Int) val user1 = User("@tod

                                                  さらなる型安全性を求めて ~ Refinement TypeをScalaで実現する ~
                                                • 0からScalaを本番導入して感じたこと・考えたこと - Qiita

                                                  Help us understand the problem. What are the problem?

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

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

                                                      0からScalaを本番導入して感じたこと・考えたこと - k.dev
                                                    • なぜ Scala 3 で変わったのか / Why things are changed in Scala3?

                                                      Scala 3で変わった機能の背景事情と、現段階でわかっているマイグレーションの話中心です。 2020/1/31 (株)セプテーニ・オリジナル 社内勉強会 資料

                                                        なぜ Scala 3 で変わったのか / Why things are changed in Scala3?
                                                      • Scalaへの移行 -ウォルマート・カナダへの導入で学んだこと- - Qiita

                                                        Help us understand the problem. What are the problem?

                                                          Scalaへの移行 -ウォルマート・カナダへの導入で学んだこと- - Qiita
                                                        • Scala 3 is here!🎉🎉🎉

                                                          After 8 years of work, 28,000 commits, 7,400 pull requests, 4,100 closed issues – Scala 3 is finally out. Since the first commit on December 6th 2012, more than a hundred people have contributed to the project. Today, Scala 3 incorporates the latest research in type theory as well as the industry experience of Scala 2. We’ve seen what worked well (or not so well) for the community in Scala 2. Base

                                                            Scala 3 is here!🎉🎉🎉
                                                          • Scalaのtrait、Rustのtrait、そしてScalaのimplicit - Don't Repeat Yourself

                                                            Scala の trait と Rust の trait は微妙に使い方が異なる、とよく質問を受けます。たしかに、使い心地は微妙に異なるかもしれません。Scala はオブジェクト指向を中心に設計された言語ですが、Rust はそれを中心に設計されているとは言えません*1。こういった言語設計の差が、trait の使い心地の違いを生み出していると私は思っています。 両者の trait には、共通した特徴もあります。共通した処理をまとめあげるという意味では同じ目的をもっているといえますし、また、「犬は動物である」「猫は動物である」の共通性を示すことで、共通したものをひとまとめに処理しきることもまた可能です。 Scala には implicit という強力な機能が存在します。これは柔軟でスケーラブルなソフトウェアデザインを可能にする Scala の特徴のひとつです。非常にすばらしい機能です。この機能

                                                              Scalaのtrait、Rustのtrait、そしてScalaのimplicit - Don't Repeat Yourself
                                                            • Scalaの学習コストについての私見 - kmizuの日記

                                                              ※2022/01/25 17:10追記 以下のツイートが別に「Scalaが主眼でない」こと自体は承知しています。一般論として、Scalaに限らず言える技術選定の話ですよね。ただ、妙な方向への読解をちょくちょく見かけたので、それに乗っかる形で現状のScalaについて率直な感想を書いておこうと思ったのでした。「この話とは別なんだけど」みたいな言葉をつけておけば良かったです。申し訳ありません。 数日前、以下のツイートに端を発して色々な意見が交わされていました。 「Scala好きなメンバーがプロダクト開発にScalaを採用して1人で開発していたが、そのメンバーが抜けてしまいScalaコードの保守ができなくて別の言語で書き直すことになった」という技術選定の失敗のお手本のような事例を目の当たりにしてしまった....— コミさん (@komi_edtr_1230) 2022年1月19日 これを見て「いや

                                                                Scalaの学習コストについての私見 - kmizuの日記
                                                              • REST・Protocol Bufferは必要ない RPCフレームワークにそのまま使えるScalaの魅力

                                                                アジア最大級の国際Scalaカンファレンスである「ScalaMatsuri2020」がオンラインで開催されました。そこでTreasure DataのTaro L. Saito 氏がScalaに関するいろいろなテクノロジーを紹介しました。2つ目は、Scalaで直接通信する方法について。前回の記事はこちら。 Scalaは実はRPCを実装するのに適した言語 Taro L. Saito氏:もともと何をしたかったかというと、「Scalaでクライアントもサーバーも実装できるんだったら、Scalaでそのまま通信できないのか?」というところが出発点になって、今新しいフレームワークを整えているところです。 ScalaはFunctional(関数型)で、かつstatically typed(静的型付き)、というobject orientedな言語になっているのがいいところです。 これよく考えてみると、Scal

                                                                  REST・Protocol Bufferは必要ない RPCフレームワークにそのまま使えるScalaの魅力
                                                                • Scalaの難しさをインターネットから集めてみる - Lambdaカクテル

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

                                                                    Scalaの難しさをインターネットから集めてみる - Lambdaカクテル
                                                                  • Scalaはバックエンドでもフロントエンドでも動く Treasure Dataのエンジニアが語るScalaの応用力の高さ

                                                                    アジア最大級の国際Scalaカンファレンスである「ScalaMatsuri2020」がオンラインで開催されました。そこでTreasure DataのTaro L. Saito 氏がScalaに関するいろいろなテクノロジーを紹介しました。まずは、バックエンドとフロントエンドの両方で使えるScalaについて。 趣味はオープンソースのプロジェクトを作ること Taro L. Saito氏:「Scala For Everything」というタイトルで発表します。簡単な自己紹介を。Treasure DataのSaitoといいます。Principal Software Engineerをしていて、今、カリフォルニア、アメリカの西海岸から発表しています。タイムゾーンの都合上、今こちらは夜の20時なんですけれども、ScalaMatsuriの運営の麻植さんが、タイムゾーンに配慮してくださったので、非常に感謝し

                                                                      Scalaはバックエンドでもフロントエンドでも動く Treasure Dataのエンジニアが語るScalaの応用力の高さ
                                                                    • Scalaで圏論チョット学ぶ

                                                                      ࠓ೔ͷΰʔϧ 6 関数型プログラミング のライブラリ ・Scalaz ・Cats etc… 圏論 ・圏 ・関⼿ ・⾃然変換 etc… 概念を 使っている 使う ⾒え隠れしても怖くない! チョットわかる! ※ エンジニアのよく⾔う 「完全に理解した」→ 「全然わからん」 →「チョットわかる」の「チョットわかる」ではなく ⽂字通りの「チョットわかる」がゴールです

                                                                        Scalaで圏論チョット学ぶ
                                                                      • Google、脆弱性検出ツール「OSS-Fuzz」のJavaVM対応を発表。Java/Kotlin/Scalaなどの脆弱性を検出可能に

                                                                        Google、脆弱性検出ツール「OSS-Fuzz」のJavaVM対応を発表。Java/Kotlin/Scalaなどの脆弱性を検出可能に Googleは、脆弱性検出ツールとしてオープンソースで公開している「OSS-Fuzz」をJavaVM言語にも対応させたことを明らかにしました。 OSS-FuzzはGoogleが2016年にオープンソースとして公開しました。 参考:Google、脆弱性検出のためのファジング(Fuzzing)を機械的に実行する「OSS-Fuzz」、ベータ公開 OSS-Fuzzは、ファジング(Fuzzing)と呼ばれる、「検査対象のソフトウェアに『ファズ(英名:fuzz)』と呼ばれる問題を引き起こしそうなデータを大量に送り込み、その応答や挙動を監視することで脆弱性を検出する検査手法」を実行してくれるツールです。 今回、ドイツのCode Intelligence社のファジングツー

                                                                          Google、脆弱性検出ツール「OSS-Fuzz」のJavaVM対応を発表。Java/Kotlin/Scalaなどの脆弱性を検出可能に
                                                                        • JavaScript/WebAssemblyをCDNエッジで実行するCloudflare Workersが、Python、Scala、Kotlin、Dart、Reasonへの対応を発表

                                                                          JavaScript/WebAssemblyをCDNエッジで実行するCloudflare Workersが、Python、Scala、Kotlin、Dart、Reasonへの対応を発表 Cloudflareは、JavaScript/WebAssemblyをCDNエッジで実行するサーバレス基盤「Cloudflare Workers」が、Python、Scala、Kotlin、Dart、Reasonの各言語に対応したことを発表しました。 #ServerlessWeek continues at Cloudflare. Today, we’re excited to announce that you can also build applications on Cloudflare Workers using Python, Scala, Kotlin, Reason and Dart htt

                                                                            JavaScript/WebAssemblyをCDNエッジで実行するCloudflare Workersが、Python、Scala、Kotlin、Dart、Reasonへの対応を発表
                                                                          • エスカレーター ラテン語で「e=(ここから)外に」「scala=梯子(でよじのぼ..

                                                                            エスカレーター ラテン語で「e=(ここから)外に」「scala=梯子(でよじのぼる)」「tor=するもの」。 直訳すると「上の階によじのぼるもの」といった感じか。 エレベーター ラテン語で「e=(ここから)外に」「levare=持ちあげる」「tor=するもの」。 直訳すると「上の階に持ち上げるもの」といった感じか。 scalaは「梯子」という意味。 scale(スケール)は「目盛り」や「ものさし」の意味、また「音階」という意味もある。 vectorに対するscalar(スカラー)は「量を増大・減少させる大きさ」。 つまり「梯子」から「段階的な変化」を意味するようになった。 ちなみにエスカレーターという言葉から「エスカレート(徐々に激しくなる)」という動詞が生まれた。逆ではない。 levareは、「軽い」という意味のlevisに由来する。 たとえば「levitation(レビテーション)」は

                                                                              エスカレーター ラテン語で「e=(ここから)外に」「scala=梯子(でよじのぼ..
                                                                            • 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編) - 貳佰伍拾陸夜日記

                                                                                またか. またなのか. 何回目だ. ということで, ラムダ計算のインタプリタの実装としては4回目くらい*1, コンパイル時計算でやるものとしても3回目くらいになってしまうけど, ラムダ計算の処理系をまた書いてしまった. 今回の目的は, Scala 3にはmatch typesという機能があり, これだけでチューリング完全なのではないか, というのを検証するため. また, 文字列リテラル型を操作する型レベル関数が3.1.2-RC1にきていて, これを使えば構文解析器だって書ける. 経緯 過去の事例 関数と返り値 パターンマッチと再帰呼出し Scala 3の型レベル言語 match types リテラル型操作 ラムダ計算の実装 評価 印字 構文解析 型推論 (型検査) おわりに 経緯 もともとは, id:xuweiさんが文字列リテラル型でコンパイル時に動作する構文解析器を実装していたのが始まり

                                                                                  コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記
                                                                                • 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