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
Nobody Ever Got Fired for Picking Java
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Alex Payne
May 14, 2013
Programming
40k
21
Share
Nobody Ever Got Fired for Picking Java
Evaluating emerging programming languages for business-critical applications.
Alex Payne
May 14, 2013
More Decks by Alex Payne
See All by Alex Payne
Reconsidering Startups
al3x
7
650
Other Decks in Programming
See All in Programming
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.7k
PHPer、Cloudflare に引っ越す
suguruooki
1
120
Running Swift without an OS
kishikawakatsumi
0
860
t *testing.T は どこからやってくるの?
otakakot
1
820
Vibe NLP for Applied NLP
inesmontani
PRO
0
530
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
150
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
250
Road to RubyKaigi: Play Hard(ware)
makicamel
1
500
의존성 주입과 모듈화
fornewid
0
150
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
0
100
AIと共に生きる技術選定 2026
sgash708
0
110
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
2k
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
350
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
130
Discover your Explorer Soul
emna__ayadi
2
1.1k
[SF Ruby Conf 2025] Rails X
palkan
2
980
The Pragmatic Product Professional
lauravandoore
37
7.2k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
270
エンジニアに許された特別な時間の終わり
watany
106
240k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Accessibility Awareness
sabderemane
1
110
It's Worth the Effort
3n
188
29k
How GitHub (no longer) Works
holman
316
150k
Transcript
NOBODY EVER GOT FIRED FOR PICKING JAVA EVALUATING EMERGING PROGRAMMING
LANGUAGES FOR BUSINESS-CRITICAL SYSTEMS
None
THE PROBLEM: SO MUCH TO BUILD, SO MANY LANGUAGES TO
BUILD IT ALL IN
THE OLD GUARD: JAVA PYTHON PHP/ASP RUBY C/C++/OBJ-C/C# PERL VISUAL
BASIC HASKELL OCAML/F# ...
MO' LANGUAGES, MO' PROBLEMS: NEW LANGUAGES ARE COMING OUT FAST
AND FURIOUS
48 LANGUAGES PRESENTED AT @EMERGINGLANGS SINCE 2010
EVEN MORE PROBLEMATIC: LANGUAGE EVANGELISTS ARE AT YOUR DOOR
SO HOW DO WE CHOOSE?
CRAPPY SOLUTION #1: MAKE A TOTALLY ARBITRARY SELECTION
CRAPPY SOLUTION #2: MAKE IT A POPULARITY CONTEST
POPULARITY CONTEST, EX 1
POPULARITY CONTEST, EX 2
CRAPPY SOLUTION #3: DESIGN BY HACKER NEWS
CRAPPY SOLUTION #4: CROWDSOURCE YOUR DECISION
CROWDSOURCING
WHAT IF WE MADE AN EVIDENCE-BASED DECISION?
BEWARE SUBJECTIVE CRITERIA, AKA:
SUBJECTIVE CRITERIA: READABILITY TERSENESS PRODUCTIVITY AGILITY MINDSHARE POLA/POLS ...
PAPERS REFERENCING DISTRIBUTED SYSTEMS: ~3,810,000 PAPERS REFERENCING LANGUAGE ERGONOMICS: ~7,090
"[P]reliminary results confirm that unsupported claims have been around since
the inception of higher level programming in the 1950s. [T]his behavior is unacceptable for the health of the research community." – MARKSTRUM, 2010
POSITIVE SUBJECTIVE CRITERIA UNIQUE TO EMERGING LANGUAGES: DEVELOPER APPEAL STRATEGIC
NOVELTY HOMESTEADING MALLEABLE ROADMAP ACCESSIBLE COMMUNITY
OBJECTIVE CRITERIA
OBJECTIVE CRITERIA: PERFORMANCE LIBRARY BREADTH AVAILABLE PRIMITIVES STABILITY OF SYNTAX
SECURITY HISTORY DEVELOPMENT CYCLE ...
APPLY OBJECTIVE CRITERIA DIRECTLY TO DECISION THEORY
CAN WE MAKE OBJECTIVE DECISIONS ABOUT EMERGING LANGUAGES?
AT FIRST, NO.
EXAMPLE: GO VS RUST
EMERGING LANGUAGE ADOPTION STRATEGIES
STRATEGY #1: ACKNOWLEDGE RISK, HEDGE AGAINST IT
STRATEGY #2: MITIGATE RISK THROUGH COMMUNITY INVOLVEMENT
STRATEGY #3: PLAY TO YOUR PICK'S STRENGTHS, USE ANOTHER LANGUAGE
WHERE IT'S WEAK
FIN. QUESTIONS? THANKS FOR LISTENING!