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
590
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
320
mruby VM
matz
0
62
Contribute to Ruby (RubyKaigi 2022)
matz
0
190
Ruby_through_Reserved_Words.pdf
matz
0
120
Ruby after 25 years
matz
1
1k
Streem
matz
8
3.6k
world-of-languages.pdf
matz
8
1.3k
Ruby Everywhere
matz
11
120k
Other Decks in Programming
See All in Programming
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
1
360
layerx_20241129.pdf
kyoheig3
2
290
The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform | droidcon Italy
prof18
0
150
暇に任せてProxmoxコンソール 作ってみました
karugamo
1
720
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
180
あれやってみてー駆動から成長を加速させる / areyattemite-driven
nashiusagi
1
200
Recoilを剥がしている話
kirik
5
6.6k
talk-with-local-llm-with-web-streams-api
kbaba1001
0
170
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
240
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1k
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
330
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Mobile First: as difficult as doing things right
swwweet
222
9k
Fireside Chat
paigeccino
34
3.1k
Thoughts on Productivity
jonyablonski
67
4.4k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Site-Speed That Sticks
csswizardry
2
190
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
How GitHub (no longer) Works
holman
311
140k
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!