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

Post on 05-Jan-2016

215 views 0 download

Transcript of Today we’re gonna talk about… therightabstractions.com.

therightabstractions.com

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

ITDEPENDS

therightabstractions.com

A Simplified Model“System-ish” Programming Application Programming

Operating SystemsDriversBrowsersVirtualizationLow-level Resource Management

CRUD / Line of Business AppsReportsWebsitesRESTful APIsMobile Apps

therightabstractions.com

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

most appropriate

therightabstractions.com

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 examplehttp://www.tutorialspoint.com/codingground.htm

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#Unavoidable Tier

therightabstractions.com

C#

JavaScript

Unavoidable Tier

therightabstractions.com

C#

JavaScript

Top Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Top Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Almost Top Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

PHP

Almost Top Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

PHP

Up And Coming Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Up And Coming Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Non-mainstream Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Groovy

Scala

F#

Non-mainstream Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Groovy

Scala

F#

Rarely Used Tier

therightabstractions.com

C#

JavaScript

C#Java

PythonRuby

Swift

Go

PHP

Groovy

Scala

F#

Erlang

OCaml

Clojure

Haskell

Rarely Used Tier

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