Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Elixirのライバルを紹介する(仮) / Shibuya.ex #1 LT by moccos
Search
moccos
August 25, 2015
Technology
0
1.7k
Elixirのライバルを 紹介する (仮) / Shibuya.ex #1 LT by moccos
2015-08-25 Shibuya.ex #1 LT
発表に使ったバージョンに、喋った概要と一部補足のテキストをのせたもの
moccos
August 25, 2015
Tweet
Share
Other Decks in Technology
See All in Technology
Claude Codeを駆使した初めてのiOSアプリ開発 ~ゼロから3週間でグローバルハッカソンで入賞するまで~
oikon48
10
5.3k
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
400
AI AgentをLangflowでサクッと作って、1日働かせてみた!
yano13
1
120
Building a cloud native business on open source
lizrice
0
160
Biz職でもDifyでできる! 「触らないAIワークフロー」を実現する方法
igarashikana
3
1.3k
OpenTelemetry が拡げる Gemini CLI の可観測性
phaya72
2
1.7k
OSSで50の競合と戦うためにやったこと
yamadashy
3
930
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
0
230
ViteとTypeScriptのProject Referencesで 大規模モノレポのUIカタログのリリースサイクルを高速化する
shuta13
2
100
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
310
Implementing and Evaluating a High-Level Language with WasmGC and the Wasm Component Model: Scala’s Case
tanishiking
0
170
Zephyr(RTOS)にEdge AIを組み込んでみた話
iotengineer22
1
250
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Faster Mobile Websites
deanohume
310
31k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
610
It's Worth the Effort
3n
187
28k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Transcript
Elixirのライバルを 紹介する (仮) 2015-08-25 Shibuya.ex #1 LT もっこす(@moccos[twitter|GitHub])
ライバル? 適用分野が似ているという意味のライバル(Rails等)ではなく 姿形の似たアクターモデルのライバルを紹介
VS Erlangとの比較も話題としてはあるけれど、今回は無しで
VS この4つを紹介 (一番右はロゴがなかった)
Akka • http://akka.io/ • 2.3.12 (current stable release) • JVM
• Java / Scala 既にメジャーバージョン2、だいぶ充実してきている
Akkaといえば… Play Frameworkが一番有名かも Akkaの上に実装されている
公式を見ると、何やらあちこちで採用されている おそらくErlangと同様にバックエンドなので、見た目にはわからない
ドキュメントも充実
いろいろな機能が実装されている Erlang/OTPの売りであるSupervisorも ある
Akka vs Elixir Akka Elixir Scala / Java 言語 Elixir
/ Erlang JVM 処理系 Erlang VM メッセージ スケジュール単位 簡約 全体 GC Processごと 静的 型 動的 速い 演算速度 遅い そんな強力なライバルAkkaとの比較 かなりの部分がJVM と Erlang VMの比較
Akka vs Elixir Akka Elixir Scala / Java 言語 Elixir
/ Erlang JVM 処理系 Erlang VM メッセージ スケジュール単位 簡約 全体 GC Processごと 静的 型 動的 速い 演算速度 遅い Erlang VMの強みは • Actorのスケジュール → 長く演算しているErlangプロセスが占有しない • グローバルに同期しないGC → Stop the worldの危険性が低い という、Actor model専用機ならではの部分かと
Orleans • http://dotnet.github.io/orleans/ • 1.0.9 (NuGet) • .NET • C#
/ F# / VB Microsoft謹製 超大型FPS Halo4 のサーバーサイド (https://channel9.msdn.com/Events/Build/2014/3-641 このスライドの説明がとてもわかりやすい)
Orleansの思想 Virtual Actor
Virtual Actor instances always exist, virtually
Virtual Actor • あるActorが常時存在する (ように見える) • 落ちたら勝手にどこかで復活する • Let it
crash! の単純化 Erlang等だと、再起動ポリシーをこまごまと設定できるけども とりあえず再起動してくれればいいよ、とまで単純化できるのであれば 楽が出来そうなしくみ
Orbit • http://orbit.bioware.com/ • 0.4.5 (Maven central) • JVM •
Java / Scala
heavily inspired by the Orleans project
Orbitの雑な説明 • OrleansのJVM版クローン ほとんど同じ機能が実装されている でも、.NETではなくJVMで動くというだけで価値がある
Pony • http://www.ponylang.org/ • 0.1.7 (on 18 Jun) • ネイティブバイナリにコンパイル
最後に色物、まだ出来たての言語
でも既にCommercial Supportがある。謎の気合
要素は全てActor。これはErlang VMと同じといえる (喋る時間がなかったけども、GCがActor単位で可能な利点をPonyも持つ)
他の文法を雰囲気だけ見てみると… 変数宣言、これはわかる
なんだこれは → Objectの参照権で細かく分類されている
Pony • ドキュメントがなくてつらい • そもそも言語機能が多くて難しい • 理想が高いのはわかる • 演算性能が高くなるはずなのもわかる (ドキュメントについて補足)
一切全く無いのでなくチュートリアルはあるが、網羅的でない Exampleやソースコードが頼り
(とても大雑把な) まとめ • Akka • 機能豊富 • 実績あり • Orleans
/ Orbit • Actorの死活管理がシンプルでよければ • 分散システム前提 • Pony • 現状は人柱 • たぶん動けば速い
(とても大雑把な) まとめ •Elixir • Erlang VMの応答性が最強