Today we’re gonna talk about… therightabstractions.com
What’s the best programming language? therightabstractions.com
What’s the best __________________? X vs Y therightabstractions.com
IT DEPENDS therightabstractions.com
A Simplified Model therightabstractions.com “System-ish” ProgrammingApplication Programming Operating Systems Drivers Browsers Virtualization Low-level Resource Management CRUD / Line of Business Apps Reports Websites RESTful APIs Mobile Apps
What’s the best programming language for what I’m trying to do ? therightabstractions.com most appropriate
Qualitative Considerations Context Features Total Cost Longevity Community Substitutability Leadership therightabstractions.com
Qualitative Considerations Context – Expertise, codebase, external constraints Features Total Cost Longevity Community Substitutability Leadership therightabstractions.com
Qualitative Considerations Context – Expertise, codebase, external constraints Features – Expressive power, ease of starting, tool chain, etc. Total Cost Longevity Community Substitutability Leadership therightabstractions.com
Expressive power example therightabstractions.com
Ease of starting therightabstractions.com
Qualitative Considerations Context – Expertise, codebase, external constraints Features – Expressive power, ease of starting, tool chain, etc. Total Cost Longevity Community Substitutability Leadership therightabstractions.com
Qualitative Considerations Context – Expertise, codebase, external constraints Features – Expressive power, ease of starting, tool chain, etc. Total Cost – Price over the long term of owning and maintaining the codebase Longevity Community Substitutability Leadership therightabstractions.com
Qualitative Considerations Context – Expertise, codebase, external constraints Features – Expressive power, ease of starting, tool chain, etc. Total Cost – Price over the long term of owning and maintaining the codebase Longevity – How long will this language / library be maintained for? Community Substitutability Leadership therightabstractions.com
Qualitative Considerations Context – Expertise, codebase, external constraints Features – Expressive power, ease of starting, tool chain, etc. Total Cost – Price over the long term of owning and maintaining the codebase Longevity – How long will this language / library be maintained for? Community – Size, knowledge, culture, and energy of community that use this language Substitutability Leadership therightabstractions.com
Qualitative Considerations Context – Expertise, codebase, external constraints Features – Expressive power, ease of starting, tool chain, etc. Total Cost – Price over the long term of owning and maintaining the codebase Longevity – How long will this language / library be maintained for? Community – Size, knowledge, culture, and energy of community that use this language Substitutability – Do you have a way out if things go wrong? Leadership therightabstractions.com
Qualitative Considerations Context – Expertise, codebase, external constraints Features – Expressive power, ease of starting, tool chain, etc. Total Cost – Price over the long term of owning and maintaining the codebase Longevity – How long will this language / library be maintained for? Community – Size, knowledge, culture, and energy of community that use this language Substitutability – Do you have a way out if things go wrong? Leadership – Making things work. therightabstractions.com
C# therightabstractions.com Unavoidable Tier
C# JavaScript therightabstractions.com Unavoidable Tier
C# JavaScript therightabstractions.com Top Tier
C# JavaScript C# Java Python Ruby therightabstractions.com Top Tier
C# JavaScript C# Java Python Ruby therightabstractions.com Almost Top Tier
C# JavaScript C# Java Python Ruby Swift PHP therightabstractions.com Almost Top Tier
C# JavaScript C# Java Python Ruby Swift PHP therightabstractions.com Up And Coming Tier
C# JavaScript C# Java Python Ruby Swift Go PHP therightabstractions.com Up And Coming Tier
C# JavaScript C# Java Python Ruby Swift Go PHP therightabstractions.com Non-mainstream Tier
C# JavaScript C# Java Python Ruby Swift Go PHP Groovy Scala F# therightabstractions.com Non-mainstream Tier
C# JavaScript C# Java Python Ruby Swift Go PHP Groovy Scala F# therightabstractions.com Rarely Used Tier
C# JavaScript C# Java Python Ruby Swift Go PHP Groovy Scala F# Erlang OCaml Clojure Haskell therightabstractions.com Rarely Used Tier
C# JavaScript C# Java Python Ruby Swift Go PHP Groovy Scala F# Erlang OCaml Clojure Haskell therightabstractions.com Omissions C / C++ Better JavaScript – TypeScript, CoffeeScript, etc. Objective-C “Academicy” Languages – Ada, Idris, Coq Too obscure – Elm, Elixir Racket, Common Lisp Others