Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nobody Ever Got Fired for Picking Java

Nobody Ever Got Fired for Picking Java

Evaluating emerging programming languages for business-critical applications.

Alex Payne

May 14, 2013
Tweet

More Decks by Alex Payne

Other Decks in Programming

Transcript

  1. NOBODY EVER GOT FIRED
    FOR PICKING JAVA
    EVALUATING
    EMERGING PROGRAMMING LANGUAGES
    FOR BUSINESS-CRITICAL SYSTEMS

    View full-size slide

  2. THE PROBLEM:
    SO MUCH TO BUILD,
    SO MANY LANGUAGES
    TO BUILD IT ALL IN

    View full-size slide

  3. THE OLD GUARD:
    JAVA
    PYTHON
    PHP/ASP
    RUBY
    C/C++/OBJ-C/C#
    PERL
    VISUAL BASIC
    HASKELL
    OCAML/F#
    ...

    View full-size slide

  4. MO' LANGUAGES,
    MO' PROBLEMS:
    NEW LANGUAGES
    ARE COMING OUT
    FAST AND FURIOUS

    View full-size slide

  5. 48 LANGUAGES
    PRESENTED AT
    @EMERGINGLANGS
    SINCE 2010

    View full-size slide

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

    View full-size slide

  7. SO HOW
    DO WE
    CHOOSE?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. POPULARITY CONTEST, EX 1

    View full-size slide

  11. POPULARITY CONTEST, EX 2

    View full-size slide

  12. CRAPPY SOLUTION #3:
    DESIGN BY
    HACKER NEWS

    View full-size slide

  13. CRAPPY SOLUTION #4:
    CROWDSOURCE
    YOUR DECISION

    View full-size slide

  14. CROWDSOURCING

    View full-size slide

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

    View full-size slide

  16. BEWARE
    SUBJECTIVE
    CRITERIA,
    AKA:

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  19. "[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

    View full-size slide

  20. POSITIVE SUBJECTIVE CRITERIA
    UNIQUE TO EMERGING LANGUAGES:
    DEVELOPER APPEAL
    STRATEGIC NOVELTY
    HOMESTEADING
    MALLEABLE ROADMAP
    ACCESSIBLE COMMUNITY

    View full-size slide

  21. OBJECTIVE
    CRITERIA

    View full-size slide

  22. OBJECTIVE CRITERIA:
    PERFORMANCE
    LIBRARY BREADTH
    AVAILABLE PRIMITIVES
    STABILITY OF SYNTAX
    SECURITY HISTORY
    DEVELOPMENT CYCLE
    ...

    View full-size slide

  23. APPLY
    OBJECTIVE CRITERIA
    DIRECTLY TO
    DECISION THEORY

    View full-size slide

  24. CAN WE MAKE
    OBJECTIVE DECISIONS
    ABOUT
    EMERGING LANGUAGES?

    View full-size slide

  25. AT FIRST, NO.

    View full-size slide

  26. EXAMPLE:
    GO VS RUST

    View full-size slide

  27. EMERGING LANGUAGE
    ADOPTION
    STRATEGIES

    View full-size slide

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

    View full-size slide

  29. STRATEGY #2:
    MITIGATE RISK
    THROUGH
    COMMUNITY INVOLVEMENT

    View full-size slide

  30. STRATEGY #3:
    PLAY TO YOUR PICK'S
    STRENGTHS,
    USE ANOTHER LANGUAGE
    WHERE IT'S WEAK

    View full-size slide

  31. FIN.
    QUESTIONS?
    THANKS FOR LISTENING!

    View full-size slide