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
0
540
What is software made of?
Yukihiro Matsumoto
January 28, 2017
Tweet
Share
More Decks by Yukihiro Matsumoto
See All by Yukihiro Matsumoto
30 Years of Ruby
matz
0
200
mruby VM
matz
0
47
Contribute to Ruby (RubyKaigi 2022)
matz
0
160
Ruby_through_Reserved_Words.pdf
matz
0
110
Ruby after 25 years
matz
1
860
Streem
matz
8
3.4k
world-of-languages.pdf
matz
8
1.2k
Ruby Everywhere
matz
11
120k
Other Decks in Programming
See All in Programming
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
370
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
310
Java 22 Overview
kishida
1
180
使ってみよう Azure AI Document Intelligence
kosmosebi
2
310
今、知っておきたい! 生成AIエージェントの世界
elith
3
360
Let's learn code review
riofujimon
1
310
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
650
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
700
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
0
190
Featured
See All Featured
It's Worth the Effort
3n
180
27k
The Invisible Side of Design
smashingmag
294
49k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
A designer walks into a library…
pauljervisheath
200
23k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
RailsConf 2023
tenderlove
4
540
Navigating Team Friction
lara
178
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
17
1.4k
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!