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
Tyranny of Choice
Search
Matthew Bergman
November 09, 2012
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Tyranny of Choice
Matthew Bergman
November 09, 2012
More Decks by Matthew Bergman
See All by Matthew Bergman
Health Myths We Tell in Tech
fotoverite
0
160
Crypto For the Masses_
fotoverite
1
110
The Blip Generation
fotoverite
0
140
Other Decks in Programming
See All in Programming
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
410
Kotlinの15年とServer-Side Kotlin
n_takehata
1
160
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
ActionController meets Protocol Buffers
sorah
0
660
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
110
Performance Optimization With LLMs
xleitix
0
180
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
contenteditable と日本語入力に向き合う
colorful12
0
210
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
phperだってパンチカードでコーディングしたい
o0h
PRO
0
370
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
Featured
See All Featured
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
エンジニアに許された特別な時間の終わり
watany
109
250k
The Curse of the Amulet
leimatthew05
3
16k
So, you think you're a good person
axbom
PRO
2
2.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How STYLIGHT went responsive
nonsquared
100
6.3k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
Navigating Team Friction
lara
192
16k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Transcript
Tyranny Tyranny Tyranny O f C h o i c
e
Matthew Bergman @FotoVerite
HOW MANY CHOICES A DAY DO YOU MAKE WHEN PROGRAMMING
1 5
1 0
5
I B E T 1 MOST DAYS
WE USUALLY HAVE OUR GOTOS
Frameworks
Precompilers
LIBRARIES
S t y l e s ;
Modules
EXPERIMENT AN Let try
IF I ASKED YOU TO CREATE A WORDPRESS SITE WHAT
WOULD YOU DO
None
Look Familiar?
None
BUT DO YOU HAVE ANY IDEA? WHERE TO START?
LUCKILY IN JS YOU DO!
WHEN NEW PROBLEMS ARISE THOUGH WE BEGIN WITH M o
d u l e s
NPM HAS 17,307 MODULES 11/09/12
NPM HAS 17,308 MODULES
H O L Y S H I T
That’s More Than Homebrew 2 , 0 0 2 F
o r m u l a s
That’s More Than Magic 1 2 , 2 4 6
C a r d s
THIS IS ONLY GOING TO G R O W
0 4000 8000 12000 16000 20000 N P M M
O D U L E S
THAT’S A LOT OF C H O I C E
S
IF I ASKED YOU TO USE A CONTROL FLOW LIBRARY
WHAT WOULD YOU DO
A S Y N C
IF YOU SEARCHED FOR CONTROL FLOW ON NPM-WWW YOU’D GET
20 MODULES
NONE ARE ASYNC
WE ASSUME THAT PEOPLE ALREADY HAVE THE KNOWLEDGE THAT WE
HAVE
WE ASSUME THAT PEOPLE ALREADY HAVE THE SKILLS THAT WE
HAVE
There has to be a better way than this Q
u e s t i o n s , w e m i g h t a n s w e r t h e m G o o g l e
THE PROBLEM IS NOT NPM-WWW
P R O B L E M
DISCOVERY M o d u l e s M o
d u l e s M o d u l e s M o d u l e s M o d u l e s M o d u l e s M o d u l e s DISCOVERY DISCOVERY DISCOVERY DISCOVERY
I LIKE THE IDEA OF MANY MODULES WORKING TOGETHER
We need Small Wheels Modules should do one thing Substack
Tiny modules are fun... because they are easy I just spin everything out into lots of tiny modules Substack Substack
DO ONE THING AND ONE THING ONLY MODULES SHOULD module.export
= function() {... }
WE DON’T WANT A MONOLITH
R A I L S Overshadowing Means no real innovation
S I N A T R A PUMA WEB-MACHINE
BUT
THE REASON PEOPLE USED RAILS IS BECAUSE IT MEANT
L e s s D e c i s i
o n s
L e s s Technical Debt
L e s s T i m e
EVERY CHOICE HAS A C O S T
AND
EVERY ACT OF CHOOSING HAS A C O S T
TECHNICAL DEBT ACCRUES BEFORE AND AFTER CHOICES
WE HAVE FINITE TIME
None
W E N E E D T O STREAMLINE D
E C I S I O N S
I SHOULDN’T HAVE TO MAKE FIFTY DECISIONS TO START A
PROJECT
IT’S NOT JUST ABOUT DEPENDENCIES
It’ about M O D U L E S M
O D U L E S M O D U L E S C ONNECTING C ONNECTING CONNECTING
Make sure you build your libraries in a layered fashion
to reduce complexity. See sockjs => shoes => mdm => boot Raynos S t a c k o v e r f l o w “
DISCOVERY DISCOVERY DISCOVERY DISCOVERY DISCOVERY
NEEDS TO BE ORGANIC
NEEDS TO BE FUN
NEEDS TO BE THOUGHTFUL
THERE ARE COMMON PATTERNS TO DISCOVERY DISCOVERY DISCOVERY DISCOVERY DISCOVERY
LETS START SIMPLE
BLOG-POSTS
UM... NODEJITSU?
PLANETNODE
TRAINING SITES
CODEACADEMY
JS FOR CATS?
PODCASTS
WE HAVE ONE PODCAST AND ONLY ONE PODCAST
N O D E U P
None
NODE IS A YOUNG COMMUNITY THESE THINGS TAKE TIME
C O M M U N I T Y TAKES
TIME
BUT
WE NEED TO CREATE THESE RESOURCES NOW
BECAUSE
WE DON’T WANT A MONOLITH
AND
WE NEED TO THINK
BIGGER
WE CAN DO BETTER THAN THE PREVIOUS GENERATION
A LOT OF THESE METHODS ARE TIME SENSITIVE
AND N P M HAS UNIQUE CHALLENGES UNIQUE
None
H E A L T H COMMITS STARS FORKS
COMMITS STARS FORKS IF IT DOES ONE THING WELL WHY
ARE YOU ADDING TO IT
COMMITS STARS FORKS DITTO
COMMITS STARS FORKS SERIOUSLY WHO USES STARS
WE NEED A NEW WAY TO JUDGE THE HEALTH OF
A MODULE
VIEWING DEPENDENTS BOTTOM TO TOP
GOODNESS INDEX NPM-WWW
BETWEEN AUTHORS Collaboration
USED IN PRODUCTION MODULES
A GROWING COLLECTION OF APPS AND THEIR MODULES
VISUALIZATIONS WOULD BE AWESOME
MODULES ARE THE INGREDIENTS FOR YOUR APP YOU NEED TO
KNOW HOW THEY FIT TOGETHER
WE NEED TO MAKE IT AS EASY AS WE CAN
TO DISCOVER THE TOOLS WE NEED
WE HAVE FINITE TIME
Node project has never had to have any of the
conversations that the Apache project had to have. Mikeal Rogers L X J S 2 0 1 2 “
THIS MEANS WE HAVE NEW CONVERSATIONS THAT WE NEED TO
HAVE
THESE PROBLEMS ARE NOT EASILY SOLVED.
STOP... DEMO TIME
@FOTOVERITE