Tales from a radically polyglot team

Post on 22-Nov-2014

3.667 views 1 download

description

Arranging software development around a wide mix of programming languages and technologies offers both challenges and rewards. In this talk Ryan will explore the pros and cons that the 6Wunderkinder team found when working with over 10 different programming languages in a single product.

Transcript of Tales from a radically polyglot team

RADICALLYPolyglot

TEAM

RYAN LEVICK@itchyankles

OVER ten LANGUAGES

Why?

Software Crisis

The major cause of the software crisis is that the machines have become several

orders of magnitude more powerful! To put it quite bluntly: as long as there

were no machines, programming was no problem at all…

…When we had a few weak computers, programming became a mild problem, and now we have gigantic computers,

programming has become an equally

gigantic problem.

Edsger W. Dijkstra

void quick_sort (int *a, int n) { if (n < 2) return; int p = a[n / 2]; int *l = a; int *r = a + n - 1; while (l <= r) { if (*l < p) { l++; } else if (*r > p) { r--; } else { int t = *l; *l = *r; *r = t; l++; r--; } } quick_sort(a, r - a + 1); quick_sort(l, a + n - l); }

qsort :: Ord a => [a] -> [a] qsort [] = [] qsort (x:xs) = qsort less ++ [x] ++ qsort greater where less = [ y | y <- xs, y < x ] greater = [ y | y <- xs, y >= x ]

Internet

New Problems

Client Teams

Backend Team

OVER ten LANGUAGES

Bash Clojure

C# Go

Haskell Java

JavaScript/Node.js

Objective-C Python Ruby Scala

Trivial

Your Responsibility

1

2

3

4

5

Why?

We have to

We want to

develop quicker

We want the system to

run faster

We want to

be more expressive

We want to

learn

Is this really a good thing ?

Challenges

Deployment Woes

Context Switching

Jack-of-All-Trades !

Master-of-None

Benefits

Value Rigidity

The Fallacy of

General Purpose

The Spread of Ideas

Avoid Group Think

The Best People

The Right Tool

!

for the Job

Happier !

Employees

Your Future

Benefits of Polyglotism

Be Happy

Thank You