30
Today we’re gonna talk about… therightabstractions.com

Today we’re gonna talk about… therightabstractions.com

Embed Size (px)

Citation preview

Page 1: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

Today we’re gonna talk about…

Page 2: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

What’s the best programming language?

Page 3: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

What’s the best __________________?

X vs Y

Page 4: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

ITDEPENDS

Page 5: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

A Simplified Model“System-ish” Programming Application Programming

Operating SystemsDriversBrowsersVirtualizationLow-level Resource Management

CRUD / Line of Business AppsReportsWebsitesRESTful APIsMobile Apps

Page 6: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

What’s the best programming language for what I’m trying to do?

most appropriate

Page 7: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

Qualitative Considerations

• Context• Features• Total Cost• Longevity• Community• Substitutability• Leadership

Page 8: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

Qualitative Considerations

• Context – Expertise, codebase, external constraints• Features• Total Cost• Longevity• Community• Substitutability• Leadership

Page 9: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

Qualitative Considerations

• Context – Expertise, codebase, external constraints• Features – Expressive power, ease of starting, tool chain, etc.• Total Cost• Longevity• Community• Substitutability• Leadership

Page 10: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

Expressive power examplehttp://www.tutorialspoint.com/codingground.htm

Page 11: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

Ease of starting

Page 12: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

Qualitative Considerations

• Context – Expertise, codebase, external constraints• Features – Expressive power, ease of starting, tool chain, etc.• Total Cost• Longevity• Community• Substitutability• Leadership

Page 13: Today we’re gonna talk about… therightabstractions.com

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

Page 14: Today we’re gonna talk about… therightabstractions.com

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

Page 15: Today we’re gonna talk about… therightabstractions.com

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

Page 16: Today we’re gonna talk about… therightabstractions.com

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

Page 17: Today we’re gonna talk about… therightabstractions.com

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.

Page 18: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#Unavoidable Tier

Page 19: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

Unavoidable Tier

Page 20: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

Top Tier

Page 21: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Top Tier

Page 22: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Almost Top Tier

Page 23: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

PHP

Almost Top Tier

Page 24: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

PHP

Up And Coming Tier

Page 25: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Up And Coming Tier

Page 26: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Non-mainstream Tier

Page 27: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Groovy

Scala

F#

Non-mainstream Tier

Page 28: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Groovy

Scala

F#

Rarely Used Tier

Page 29: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Groovy

Scala

F#

Erlang

OCaml

Clojure

Haskell

Rarely Used Tier

Page 30: Today we’re gonna talk about… therightabstractions.com

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Groovy

Scala

F#

Erlang

OCaml

Clojure

Haskell

OmissionsC / C++Better JavaScript – TypeScript, CoffeeScript, etc.Objective-C “Academicy” Languages – Ada, Idris, CoqToo obscure – Elm, ElixirRacket, Common LispOthers