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
610
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
350
mruby VM
matz
0
63
Contribute to Ruby (RubyKaigi 2022)
matz
0
200
Ruby_through_Reserved_Words.pdf
matz
0
120
Ruby after 25 years
matz
1
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
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
190
Pulsar2 を雰囲気で使ってみよう
anoken
0
250
GoとPHPのインターフェイスの違い
shimabox
2
200
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
950
もう僕は OpenAPI を書きたくない
sgash708
5
1.8k
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
280
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
9
2.9k
color-scheme: light dark; を完全に理解する
uhyo
7
480
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
220
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
260
Honoとフロントエンドの 型安全性について
yodaka
7
1.4k
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
250
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
38k
How to Ace a Technical Interview
jacobian
276
23k
The Cult of Friendly URLs
andyhume
78
6.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
500
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Speed Design
sergeychernyshev
27
800
Faster Mobile Websites
deanohume
306
31k
Documentation Writing (for coders)
carmenintech
67
4.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
570
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
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!