Nobody Ever Got Fired for Picking Java

Nobody Ever Got Fired for Picking Java

Evaluating emerging programming languages for business-critical applications.

3fcb27e39d2ff47357a803e91347fee4?s=128

Alex Payne

May 14, 2013
Tweet

Transcript

  1. NOBODY EVER GOT FIRED FOR PICKING JAVA EVALUATING EMERGING PROGRAMMING

    LANGUAGES FOR BUSINESS-CRITICAL SYSTEMS
  2. None
  3. THE PROBLEM: SO MUCH TO BUILD, SO MANY LANGUAGES TO

    BUILD IT ALL IN
  4. THE OLD GUARD: JAVA PYTHON PHP/ASP RUBY C/C++/OBJ-C/C# PERL VISUAL

    BASIC HASKELL OCAML/F# ...
  5. MO' LANGUAGES, MO' PROBLEMS: NEW LANGUAGES ARE COMING OUT FAST

    AND FURIOUS
  6. 48 LANGUAGES PRESENTED AT @EMERGINGLANGS SINCE 2010

  7. EVEN MORE PROBLEMATIC: LANGUAGE EVANGELISTS ARE AT YOUR DOOR

  8. SO HOW DO WE CHOOSE?

  9. CRAPPY SOLUTION #1: MAKE A TOTALLY ARBITRARY SELECTION

  10. CRAPPY SOLUTION #2: MAKE IT A POPULARITY CONTEST

  11. POPULARITY CONTEST, EX 1

  12. POPULARITY CONTEST, EX 2

  13. CRAPPY SOLUTION #3: DESIGN BY HACKER NEWS

  14. CRAPPY SOLUTION #4: CROWDSOURCE YOUR DECISION

  15. CROWDSOURCING

  16. WHAT IF WE MADE AN EVIDENCE-BASED DECISION?

  17. BEWARE SUBJECTIVE CRITERIA, AKA:

  18. SUBJECTIVE CRITERIA: READABILITY TERSENESS PRODUCTIVITY AGILITY MINDSHARE POLA/POLS ...

  19. PAPERS REFERENCING DISTRIBUTED SYSTEMS: ~3,810,000 PAPERS REFERENCING LANGUAGE ERGONOMICS: ~7,090

  20. "[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
  21. POSITIVE SUBJECTIVE CRITERIA UNIQUE TO EMERGING LANGUAGES: DEVELOPER APPEAL STRATEGIC

    NOVELTY HOMESTEADING MALLEABLE ROADMAP ACCESSIBLE COMMUNITY
  22. OBJECTIVE CRITERIA

  23. OBJECTIVE CRITERIA: PERFORMANCE LIBRARY BREADTH AVAILABLE PRIMITIVES STABILITY OF SYNTAX

    SECURITY HISTORY DEVELOPMENT CYCLE ...
  24. APPLY OBJECTIVE CRITERIA DIRECTLY TO DECISION THEORY

  25. CAN WE MAKE OBJECTIVE DECISIONS ABOUT EMERGING LANGUAGES?

  26. AT FIRST, NO.

  27. EXAMPLE: GO VS RUST

  28. EMERGING LANGUAGE ADOPTION STRATEGIES

  29. STRATEGY #1: ACKNOWLEDGE RISK, HEDGE AGAINST IT

  30. STRATEGY #2: MITIGATE RISK THROUGH COMMUNITY INVOLVEMENT

  31. STRATEGY #3: PLAY TO YOUR PICK'S STRENGTHS, USE ANOTHER LANGUAGE

    WHERE IT'S WEAK
  32. FIN. QUESTIONS? THANKS FOR LISTENING!