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
大規模アプリにおけるXcode Previews実用化までの道のり
ikesyo
0
960
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
2.6k
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
1.2k
議事録の要点整理を自動化! サーバレス Bot 構築術
penpeen
3
1.6k
dynamic!
moro
9
4.5k
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
380
Playwrightはどのようにクロスブラウザをサポートしているのか
yotahada3
7
2.2k
defer f()とdefer fの挙動を 誤解していた話
kogamochiduki
2
160
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
CSC509 Lecture 01
javiergs
PRO
1
430
AccessorySetupKitで実現するシームレスなペアリング体験 / Seamless pairing with AccessorySetupKit
nekowen
0
210
ИИ-Агенты в каждый дом – Алексей Порядин, PythoNN
sobolevn
0
140
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Raft: Consensus for Rubyists
vanstee
139
7.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
840
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Being A Developer After 40
akosma
90
590k
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!