Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
お前はまだRubyの 型システムを知らない
Search
すぎうり
June 09, 2026
Programming
98
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
お前はまだRubyの 型システムを知らない
すぎうり
June 09, 2026
More Decks by すぎうり
See All by すぎうり
BareRuby ~組み込み向けRubyAOTコンパイラ~
uproad3
0
29
AIコードアポカリプス
uproad3
0
60
負債解消という仕事は儲かる
uproad3
8
5k
RaspberryPi Picoの表現力の拡張 ~アナログコンピュータとの出会い~
uproad3
0
47
お前はまだRubyの 型の強さを知らない
uproad3
0
37
Rubyのメソッド解決チェーン
uproad3
0
29
動的型解析器 Ethotrace
uproad3
0
21
UdonRubyの実現可能性について
uproad3
0
44
RubyKaja 2026
uproad3
0
38
Other Decks in Programming
See All in Programming
golang-bob.pdf
iwatsukayura
0
130
AmebaブログはKMPから卒業します
kmars0605
0
160
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
170
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
130
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
4
2.9k
ActionController meets Protocol Buffers
sorah
0
440
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
120
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Domain-Driven Transformation
hschwentner
2
2.3k
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
720
contenteditable と日本語入力に向き合う
colorful12
0
200
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
エンジニアに許された特別な時間の終わり
watany
109
250k
A Tale of Four Properties
chriscoyier
163
24k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Marketing to machines
jonoalderson
1
5.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Embracing the Ebb and Flow
colly
88
5.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
520
Done Done
chrislema
187
17k
Transcript
お前はまだRubyの 型システムを知らない すぎうり
自己紹介 すぎうり • Twitter:@uproad3 • Ruby歴20年 • VRChat歴7年 • 仕事:Rails |
AWS | LT芸人 • 趣味:アーキテクト | リファクタリング | ゲーム制作 | 電子工作 • 言語:Ruby | C# | C | JS | ほかいろいろ • 技術:Terraform | Unity | Ubuntu | MySQL | RaspberryPi • 悲しきフルスタックエンジニア • 最近はClaudeをシバきまわしている • RubyKaja 2026特別賞受賞 • LTをしてくる人賞受賞 • 特に型に強い思い入れがあるわけではない
自己紹介 すぎうり
自己紹介 すぎうり • Twitter:@uproad3 • Ruby歴20年 • VRChat歴7年 • 仕事:Rails |
AWS | LT芸人 • 趣味:アーキテクト | リファクタリング | ゲーム制作 | 電子工作 • 言語:Ruby | C# | C | JS | ほかいろいろ • 技術:Terraform | Unity | Ubuntu | MySQL | RaspberryPi • 悲しきフルスタックエンジニア • 最近はClaudeをシバきまわしている • RubyKaja 2026特別賞受賞 • LTをしてくる人賞受賞 • 特に型に強い思い入れがあるわけではない
自己紹介 すぎうり
自己紹介 すぎうり • Twitter:@uproad3 • Ruby歴20年 • VRChat歴7年 • 仕事:Rails |
AWS | LT芸人 • 趣味:アーキテクト | リファクタリング | ゲーム制作 | 電子工作 • 言語:Ruby | C# | C | JS | ほかいろいろ • 技術:Terraform | Unity | Ubuntu | MySQL | RaspberryPi • 悲しきフルスタックエンジニア • 最近はClaudeをシバきまわしている • RubyKaja 2026特別賞受賞 • LTをしてくる人賞受賞 • 特に型に強い思い入れがあるわけではない
Rubyの特徴 • 書いていて楽しい • スクリプト言語 • 純粋オブジェクト指向 • 書いていて楽しい •
動的型付け • ダックタイピング • 書いていて楽しい • 暗黙的型変換の禁止 • Mix-in • 実行時クラス再オープン • 書いていて楽しい
Rubyの特徴 • 書いていて楽しい • スクリプト言語 • 純粋オブジェクト指向 • 書いていて楽しい •
動的型付け • ダックタイピング • 書いていて楽しい • 暗黙的型変換の禁止 • Mix-in • 実行時クラス再オープン • 書いていて楽しい
Rubyの特徴 • 書いていて楽しい • スクリプト言語 • 純粋オブジェクト指向 • 書いていて楽しい •
動的型付け • ダックタイピング • 書いていて楽しい • 暗黙的型変換の禁止 • Mix-in • 実行時クラス再オープン • 書いていて楽しい
「Rubyには型がない」
「Rubyには型注釈がない」
Rubyの型システム 型検査:動的 型強度:強い ※暗黙的型変換をしない 型互換:構造的 ※ == ダックタイピング的 ⇔ 宣言的 / 継承的
型変性:あり ※オープンクラスやメソッド再定義など ポリモーフィック:あり ※ダックタイピングによって解決 実行時型表現:あり ※ Class#nameなど 型注釈:なし 型推論:なし ※外部システムにより提供
Rubyの型システム 型検査:動的 型強度:強い ※暗黙的型変換をしない 型互換:構造的 ※ == ダックタイピング的 ⇔ 宣言的 / 継承的
型変性:あり ※オープンクラスやメソッド再定義など ポリモーフィック:あり ※ダックタイピングによって解決 実行時型表現:あり ※ Class#nameなど 型注釈:なし 型推論:なし ※外部システムにより提供
型注釈/型推論 Rubykaigi2019 day1 Matz基調講演 型宣言(型注釈)を入れることについて 「(DRYではないから)Rubyに型(宣言)を取り入れたくない」 「型宣言することはコンピュータに使われているような気になる」 型推論について 「その代わり静的解析を導入し型チェックを行えるようにする」 →RBS
/ Solbet / Typeprof / Steep
Rubyの型システム 型検査:動的 型強度:強い ※暗黙的型変換をしない 型互換:構造的 ※ == ダックタイピング的 ⇔ 宣言的 / 継承的
型変性:あり ※オープンクラスやメソッド再定義など ポリモーフィック:あり ※ダックタイピングによって解決 実行時型表現:あり ※ Class#nameなど 型注釈:なし 型推論:なし ※外部システムにより提供
Rubyの型システム 型検査:動的 型強度:強い ※暗黙的型変換をしない 型互換:構造的 ※== ダックタイピング的 ⇔ 宣言的 / 継承的 型変性:あり ※オープンクラスやメソッド再定義など
ポリモーフィック:あり ※ダックタイピングによって解決 実行時型表現:あり ※Class#nameなど 型注釈:なし 型推論:なし ※外部システムにより提供
Rubyの特徴 • 書いていて楽しい • スクリプト言語 • 純粋オブジェクト指向 • 書いていて楽しい •
動的型付け • ダックタイピング • 書いていて楽しい • 暗黙的型変換の禁止 • Mix-in • 実行時クラス再オープン • 書いていて楽しい
オブジェクト指向とは 型の世界である
Rubyの型システム 型検査:動的 型強度:強い ※暗黙的型変換をしない 型互換:構造的 ※== ダックタイピング的 ⇔ 宣言的 / 継承的 型変性:あり ※オープンクラスやメソッド再定義など
ポリモーフィック:あり ※ダックタイピングによって解決 実行時型表現:あり ※Class#nameなど 型注釈:なし 型推論:なし ※外部システムにより提供
「Rubyには型がない」
「Rubyには型がない」 「うんうん、Rubyには 型(注釈)がないね
「Rubyには型がない」 「うんうん、Rubyには 型(注釈)がないね(冷笑)」
次回: お前はまだRubyの 型の強さを知らない
None