タグ Scala
人気順 10 users 50 users 100 users 500 users 1000 usersTwitterがScalaを採用した大昔を振り返ってScalaについて色々考えてみる - xuwei-k's blog
雑にtweetしたら多少反応があったというか、新しいもの書くばかりではなく歴史を振り返る方が、場合によっては面白いというかためになるというか、 そもそもプログラミングに限らず現在や未来は過去の延長線上でしかないので、歴史を振り返ることは大事ですね。 先に断っておきますが「X(旧Twitter)」と書くの面倒だし「... 続きを読む
筒で理解する反変・共変
この記事では、Java、Scala、TypeScriptなど、サブタイピング(subtyping)をサポートする言語であれば間違いなくサポートしているであろう「反変(contravariant)」・「共変(covariant)」について、視覚的なアナロジーを用いつつ解説したいと思います。コード例を含め全てTypeScriptを前提とした説明ですが、同様の... 続きを読む
Scala の Wasm バックエンドを実装した
Scala.js 1.17.0 で実験的な Wasm backend がサポートされました! リリースノートに書いてあるとおり、以下のような設定をすることでScala.jsがJSの代わりにWasmモジュール(とモジュールに渡すJS object)を生成することができます。 @JSExport によるモジュールのexportがサポートされていませんが、それ以外のsemantic... 続きを読む
Scalaわいわい勉強会 #3【東京】へ参加してきた、楽しかった、最高だった - Magnolia Tech
scala-tokyo.connpass.com 久しぶりのScalaのイベント「Scalaわいわい勉強会 #3【東京】」に参加してきました いやーディープなScalaの話が聞ける場所は貴重なので、最高でした 会場は乃木坂のWeWork! 開始時間を完全に間違えて18:30スタートだったのに、19:00に会場到着 (しかも、参加者に送られてはずのWeWork入館メ... 続きを読む
ZIO Lambdaを用いてScalaネイティブバイナリをAWS Lambdaで動かしてみた - エムスリーテックブログ
こんにちは。エムスリーエンジニアリンググループでScalaとマミさんが好きな安江です。今回は私が所属しているデジカルチームのお話です。ZIO Lambdaを使ってScalaネイティブバイナリをAWS Lambdaで動かしてみました。こちらの技術スタックの紹介をします。 ZIO Lambda 背景 技術スタック Scala ZIO ZIO Lambda GraalVM ... 続きを読む
ハマったポイントたくさんあったけどPlay3.0/Scala3.3へバージョンアップできたよ - エムスリーテックブログ
こんにちは。エムスリーエンジニアリンググループでScalaとマミさんが好きな安江です。今回は私が所属している製薬企業向けプラットフォームチームのPlay製プロダクトのPlay/Scalaバージョンアップのお話です。当初Play2.8にバージョンアップしていたのですが、その最中にPlay2.9/Play3.0やScala LTSが出たりもしました... 続きを読む
なっとく!関数型プログラミング を読んで関数型プログラミングを学んだ - Qiita
EDOCODEでエンジニアをしているYutakaです。 こちらは社内勉強会で発表した資料を元にしています。 関数型言語の知識がほとんどないエンジニアがなっとく!関数型プログラミングで学んだ用語を一部まとめました。原著はGrokking Functional Programmingです。本書はScalaとJavaで説明がされていますが、できる限り社内で... 続きを読む
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. A much better choice than vfox, fnm, gvm,
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 続きを読む
JSONの差分を取ってJSON Patchを得るにはdiffsonがおすすめ - Lambdaカクテル
こういうツイートを見た。 Scala (or Java) で、jsonのdiffをpatchファイルみたいな感じでわかりやすいテキストで出力してくれるライブラリないかなあ。そしてjacksonに依存してないといいな— Arthur (@Arthur1__) 2024年1月13日 現代のプログラミングではJSONの差分を取ったり、逆にパッチを当てるということがよくある... 続きを読む
Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani
AndroidのためのJava/Kotlinはスコープ外とします まず断っておくと、俺はScalaが好きだ。 自分が作ったScalaプロダクトは二個現存している。うち一つはまだまだ自分が開発している。というか今は会社を作って1人でプロダクトを作っている身なのだが、それもScala3+ZIO2でゴリゴリ書いている。 でも残念、もうScalaとい... 続きを読む
Scalaわいわい勉強会 参加した - ふんわり放牧
scala-tokyo.connpass.com 株式会社はてな 東京オフィスで開催されたScalaわいわい勉強会に参加した。 発表内容の感想ではなく、参加して漠然と思ったことについて書く。個人の日記です。 Scala、10年前に本当に少しだけ触った程度で何も覚えていない(github.comに辛うじてコードが残っている)のだけれど、 この1年はJ... 続きを読む
JavaScriptでScalaのFutureを表現する
はじめに Scala.jsというプロジェクトがあります。 Scalaで書いたプログラムをJavaScriptに変換する、とてもクールなツールです。 ただ、もちろん言語自体が違うため、完全なマッピングが可能な訳ではありません。ベストエフォートでセマンティクスを維持したままJavaScriptに変換しますが、いくつか対応付けが困難なケ... 続きを読む
JDK 21のswitch式でpattern match書いたら10倍以上遅い件 - xuwei-k's blog
switch式の結果javapしたらhttps://t.co/xMc0YEYsrg java.lang.runtime.SwitchBootstraps と tableswitch が使われることに気がついたが、これ巨大なswitch式をJDK 21以降で書いた場合、同等の巨大なmatch式をScalaで書くよりも速度が速い可能性があるのでは??? これScalaで活用できるか?というと— Kenji Yoshida (@... 続きを読む
これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル
自分は、仕事でScalaを数年間・プライベートな経験を含めると10年弱のScalaの経験がある、そこそこの熟練Scalaエンジニアだ。チームにメンバーが入ってきたり他人に勧めるたびにScalaの環境構築を教えている一方、最新の知見を反映した記事が無くて他人に勧めづらかったので、自分が書くことにした。 現在ある記事 けっ... 続きを読む
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 -... 続きを読む
ScalaのビルドツールMillが生成するUberjarはZIPファイルの面白仕様を使ってシェルから直接実行できるようになっている - Lambdaカクテル
プログラミング言語Scalaで最もよく使われているビルドツールといえばsbtだ。起動しっぱなしのインタラクティブ仕様なsbtがやや鈍重なきらいがある一方、もう1つのビルドツールであるMillが開発されており、こちらではnpmのようなシェル単位の操作体系を指向している。 mill-build.com 単にコマンド体系のみならず、Mill... 続きを読む
畳み込みの視点から見たforallとexists: 空集合に対するforallは常にtrueになる - Lambdaカクテル
こういうツイートが話題になっていた。 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ— ふみ a.k.a.DJ Monad (@fumieval) 2023年5月29日 つまりScalaで言うと次のようなコードが何になるか、というもの... 続きを読む
Scalaのメモリ使用量はJavaよりも多いか検証した - Lambdaカクテル
こういう記事を読んだ。 transparent-to-radiation.blogspot.com なんかScalaのメモリ使用量が異常に多いなと思って、調べた。検証コードもアップした。 github.com 検証として、様々なJVM(OpenJDKとかCorettoとか)とそのバージョン(8, 11, 17)でJARを実行して考察した。JVMを用意するためにASDFを使った。また、ASDFか... 続きを読む
GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp
つきなみGo GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する はじめに 筆者はGoだけではなく、Scalaなど他言語を扱った経験もあり、しばしばGoには他の言語にあるXという機能がなぜないのだろう?と考えることがあります。 たとえば、テスト関数ごとに暗黙的に呼ばれる初期化... 続きを読む
Scalaのimplicitをもう少し楽に追いかけたい - 風に吹かれても
Implicitな値の由来が分からん 3行要約 詳細 implicit args implicit conversions and classes inferred type まとめ Implicitな値の由来が分からん Scalaのコードを読んでいるときに、どこから来ているか分からないimplicitな引数があって困っていた。 このことをツイートしたらアドバイスをもらえて、解決できたので備... 続きを読む
部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記
この記事はScala Advent Calendar 2022の19日目です. Scalaではジェネリック型の変性(variance)は+や-で指定しますが, 他の言語(たとえば, C#, Kotlin)ではoutやinだったりします. この記事では変性の意味を整理して, なぜScalaでは+/-の記号を使うのか説明します. 発端 こういう話題がありました. Scala は共変が + で... 続きを読む
ChatGPTはプログラミング言語マスター(語弊ありまくり) - kmizuの日記
皆さんおはようございます。見ている人は見ていたかもしれませんが、昨夜はかなり遅くまで巷で話題沸騰のChatGPTによくわからんクエリを投げて、その結果をみてげらげら笑っていました。特に存在しないプログラミング言語であり「ScalaにHaskellと同じ型推論を加えた」言語Scalayがあることにしたら、ChatGPTが本当にHas... 続きを読む
普段はPerlとScalaを書いていますが #rubykaigi 2022に参加してきました / 吸えそうな知見 - Lambdaカクテル
普段はPerlとScalaを書いて暮らしていて、Rubyを書くのはcapistranoを使うとき・・・という位のWebアプリケーションエンジニア、 id:Windymelt です。株式会社はてなで、はてなブックマークを開発しています。 普段は、関数型テクニックの話をよく記事に書いています。ちょっと見てやってください。 blog.3qe.us 今回、... 続きを読む
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の各言語に対応したことを発表しました。 #Serverless... 続きを読む
月額報酬が高いプログラミング言語 3位「Vue.js」、2位「Go」、1位は?
Remogu(リモグ)は、約4000件のITエンジニア向けのフルリモートワーク案件から、職種別・言語別の平均月額報酬をランキング形式で発表した。職種別の1位は「CTO/VPoE/テックリード」の93.7万円、言語別の1位は「Scala」の93.8万円となった。全案件の平均月額報酬は約73.5万円だった。 続きを読む