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
What is software made of?
Search
Yukihiro Matsumoto
January 28, 2017
Programming
710
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
What is software made of?
Yukihiro Matsumoto
January 28, 2017
More Decks by Yukihiro Matsumoto
See All by Yukihiro Matsumoto
30 Years of Ruby
matz
0
520
mruby VM
matz
0
110
Contribute to Ruby (RubyKaigi 2022)
matz
0
290
Ruby_through_Reserved_Words.pdf
matz
0
160
Ruby after 25 years
matz
1
1.5k
Streem
matz
8
3.8k
world-of-languages.pdf
matz
8
1.3k
Ruby Everywhere
matz
11
120k
Other Decks in Programming
See All in Programming
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
120
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
160
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
800
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
580
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.4k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
370
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
260
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
170
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Discover your Explorer Soul
emna__ayadi
2
1.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
Practical Orchestrator
shlominoach
191
11k
Amusing Abliteration
ianozsvald
1
210
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
260
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Transcript
Powered by Rabbit 2.1.9 What is software made of? Heroku
Ruby Association Yukihiro "Matz" Matsumoto @yukihiro_matz
Powered by Rabbit 2.1.9 RubyConf India
Powered by Rabbit 2.1.9 What is software made of?
Powered by Rabbit 2.1.9 What are little boys made
of?
Powered by Rabbit 2.1.9 What are little boys made
of? What are little boys made of? Snips and snails And puppy-dogs' tails That's what little boys are made of
Powered by Rabbit 2.1.9 What are little girls made
of? What are little girls made of? Sugar and spice And all things nice That's what little girls are made of
Powered by Rabbit 2.1.9 What is software made of?
Powered by Rabbit 2.1.9 First Ingredient
Powered by Rabbit 2.1.9 Hardware
Powered by Rabbit 2.1.9 Hardware can exist without Software
Powered by Rabbit 2.1.9
Powered by Rabbit 2.1.9 No Software can exist without
Hardware
Powered by Rabbit 2.1.9 Not 100% True
Powered by Rabbit 2.1.9 But Mostly True
Powered by Rabbit 2.1.9 My first computer
Powered by Rabbit 2.1.9
Powered by Rabbit 2.1.9 4bit CPU BASIC 1400 Steps
26 Variables
Powered by Rabbit 2.1.9 Poor Computer
Powered by Rabbit 2.1.9 It's 37 years ago
Powered by Rabbit 2.1.9 The Computer has been evolving
so fast!
Powered by Rabbit 2.1.9 Faster CPU More memory More
storage Wider bandwidth
Powered by Rabbit 2.1.9 The Computer I was using
when I started Ruby (1993)
Powered by Rabbit 2.1.9 Engineering Work Station
Powered by Rabbit 2.1.9 SONY NEWS (NWS-831)
Powered by Rabbit 2.1.9 CPU: 68020 16MHz MEM: 8MB
HDD: 156MB
Powered by Rabbit 2.1.9 Cost: 20,000USD
Powered by Rabbit 2.1.9 2016
Powered by Rabbit 2.1.9 Lenovo Thinkpad T460s
Powered by Rabbit 2.1.9 CPU: Core i7 (2.6GHz) MEM:
20GB HDD: 1TB (SSD)
Powered by Rabbit 2.1.9 Cost: 2,000USD
Powered by Rabbit 2.1.9 CPU: 325x
Powered by Rabbit 2.1.9 MEM: 2500x
Powered by Rabbit 2.1.9 HDD: 6410x
Powered by Rabbit 2.1.9 Now Computers are Fast!
Powered by Rabbit 2.1.9 The problem is..
Powered by Rabbit 2.1.9 Grand Illusion
Powered by Rabbit 2.1.9 1. Moore's Law
Powered by Rabbit 2.1.9 The number of transistors in
LSI doubles every 18 months=
Powered by Rabbit 2.1.9
Powered by Rabbit 2.1.9 2. Cores
Powered by Rabbit 2.1.9 Multi Cores
Powered by Rabbit 2.1.9 The end of free lunch
Powered by Rabbit 2.1.9 Concurrency
Powered by Rabbit 2.1.9 Concurrency is hard
Powered by Rabbit 2.1.9 3. Caches
Powered by Rabbit 2.1.9 Variables≒Memory
Powered by Rabbit 2.1.9 Memory Model Registers Memory (Stack+Heap)
Powered by Rabbit 2.1.9 Real Memory Model Registers Caches
Memory (Stack+Heap) Storage
Powered by Rabbit 2.1.9 Registers (1x) L1 Caches (4x)
L2 Caches (10x) L3 Caches (40x) Memory (100x) Storage (20Mx)
Powered by Rabbit 2.1.9 Developers (sometimes) need to fight
with illusion
Powered by Rabbit 2.1.9 Next Ingredient
Powered by Rabbit 2.1.9 Languages
Powered by Rabbit 2.1.9 Language = Grammar + Vocabulary
Powered by Rabbit 2.1.9 Language = Syntax + Library
Powered by Rabbit 2.1.9 How to express your idea
Powered by Rabbit 2.1.9 Communication between humans and machines
Powered by Rabbit 2.1.9 The tool to form your
idea
Powered by Rabbit 2.1.9 The tool to boost your
brain
Powered by Rabbit 2.1.9 Sapir-Whorf hypothesis
Powered by Rabbit 2.1.9 human thoughts are influenced by
(spoken) languages
Powered by Rabbit 2.1.9 Languages influence human thought, more
than you think
Powered by Rabbit 2.1.9 Languages matter
Powered by Rabbit 2.1.9 The evolution of programming languages
Powered by Rabbit 2.1.9 More abstract
Powered by Rabbit 2.1.9 More concise
Powered by Rabbit 2.1.9 Less code
Powered by Rabbit 2.1.9 Easier to write
Powered by Rabbit 2.1.9 Easier to read
Powered by Rabbit 2.1.9 More productive
Powered by Rabbit 2.1.9 Abstraction
Powered by Rabbit 2.1.9 Hide internal detail
Powered by Rabbit 2.1.9 Illusion
Powered by Rabbit 2.1.9 Languages create illusion
Powered by Rabbit 2.1.9 Developers (sometimes) need to play
with illusion
Powered by Rabbit 2.1.9 Illusion that make you productive
Powered by Rabbit 2.1.9 Illusion that make you consume
less brain power
Powered by Rabbit 2.1.9 Productivity matters
Powered by Rabbit 2.1.9 Productivity solves most of problems
Powered by Rabbit 2.1.9 Productivity make work work less
Powered by Rabbit 2.1.9 Productivity make work earn more
Powered by Rabbit 2.1.9 Productivity bring you success
Powered by Rabbit 2.1.9 Last Ingredient
Powered by Rabbit 2.1.9 Developers Community
Powered by Rabbit 2.1.9 Programmers
Powered by Rabbit 2.1.9 People
Powered by Rabbit 2.1.9 Programming is a human thing
Powered by Rabbit 2.1.9 Machines don't program
Powered by Rabbit 2.1.9 At least yet
Powered by Rabbit 2.1.9 We are not machines
Powered by Rabbit 2.1.9 Difference?
Powered by Rabbit 2.1.9 Heart
Powered by Rabbit 2.1.9 Desire
Powered by Rabbit 2.1.9 Machines do not desire anything
Powered by Rabbit 2.1.9 We program because we want
something
Powered by Rabbit 2.1.9 Passion
Powered by Rabbit 2.1.9 Machines do not have passion
Powered by Rabbit 2.1.9 We keep programming because we
have passion
Powered by Rabbit 2.1.9 20+ years of Ruby development
Powered by Rabbit 2.1.9 Anger
Powered by Rabbit 2.1.9 We (sometimes) program because we
get angry at something
Powered by Rabbit 2.1.9 3 Virtues of Programmers Laziness
Impatient Hubris
Powered by Rabbit 2.1.9 Weakness
Powered by Rabbit 2.1.9 Weak memory
Powered by Rabbit 2.1.9 Weak will
Powered by Rabbit 2.1.9 Weak mind
Powered by Rabbit 2.1.9 Weakness is the reason we
need illusion
Powered by Rabbit 2.1.9 Community
Powered by Rabbit 2.1.9 Communication
Powered by Rabbit 2.1.9 Collaboration
Powered by Rabbit 2.1.9 Motivation
Powered by Rabbit 2.1.9 They made Ruby possible
Powered by Rabbit 2.1.9 They made other great software
Powered by Rabbit 2.1.9 They will make your software
Powered by Rabbit 2.1.9 Summary
Powered by Rabbit 2.1.9 What is software made of?
Hardware and languages And developers community That's what is software made of?
Powered by Rabbit 2.1.9 Hardware
Powered by Rabbit 2.1.9 Languages
Powered by Rabbit 2.1.9 Community
Powered by Rabbit 2.1.9 Happy Hacking!
Powered by Rabbit 2.1.9 A Few More Things
Powered by Rabbit 2.1.9 Ruby3
Powered by Rabbit 2.1.9 Concurrency Performance Static Analysis
Powered by Rabbit 2.1.9 mruby
Powered by Rabbit 2.1.9 Streem
Powered by Rabbit 2.1.9 Happy Hacking!