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
Alex Payne
May 14, 2013
Programming
21
39k
Nobody Ever Got Fired for Picking Java
Evaluating emerging programming languages for business-critical applications.
Alex Payne
May 14, 2013
Tweet
Share
More Decks by Alex Payne
See All by Alex Payne
Reconsidering Startups
al3x
7
630
Other Decks in Programming
See All in Programming
The New Developer Workflow: How AI Transforms Ideas into Code
danielsogl
0
100
KawaiiLT 登壇資料 キャリアとモチベーション
hiiragi
0
160
個人開発の学生アプリが企業譲渡されるまで
akidon0000
2
1.1k
Optimizing JRuby 10
headius
0
570
Jakarta EE Meets AI
ivargrimstad
0
780
プロダクトエンジニアのしごと 〜 受託 × 高難度を乗り越えるOptium開発 〜
algoartis
0
150
UMAPをざっくりと理解 / Overview of UMAP
kaityo256
PRO
3
1.4k
Lambda(Python)の リファクタリングが好きなんです
komakichi
4
240
Dissecting and Reconstructing Ruby Syntactic Structures
ydah
3
2k
Creating Awesome Change in SmartNews! En
martin_lover
0
110
Empowering Developers with HTML-Aware ERB Tooling @ RubyKaigi 2025, Matsuyama, Ehime
marcoroth
2
950
エンジニアが挑む、限界までの越境
nealle
1
310
Featured
See All Featured
KATA
mclloyd
29
14k
Six Lessons from altMBA
skipperchong
28
3.7k
Writing Fast Ruby
sferik
628
61k
A designer walks into a library…
pauljervisheath
205
24k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Building Applications with DynamoDB
mza
94
6.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.7k
Build your cross-platform service in a week with App Engine
jlugia
230
18k
Git: the NoSQL Database
bkeepers
PRO
430
65k
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!