1
A Sampling of NYC Python A Startup Junkie's Journey to Python via Java, Ruby and Scala Andy Parsons @andyparsons My Startups and Their Stacks What Are We Building? And in general... Happiness Speed Magic Readability BUSINESS WEB API SERVICES DATABASES TEAM SIZE Pro Photo ASP.NET C#, Perl SQL Server 12 Hyperlocal Content (Geolocation ) RoR Sinatra Scala PostgreSQL, MongoDB 10 Ereading and Book Recommende r RoR Scalatra Scala/Java MongoDB 8 Life Gaming Flask Python/ Gevent Python PostgreSQL, MongoDB 3 Building Happify: Comparing Language Options SPEED CONCURRENCY TOOLING PACKAGING / DEPENDENCIES DEPLOYMENT TESTING FRAMEWORKS / LIBS RUBY SCALA PYTHON Fast enough Achieved through Process.fork Healthy, lots of choice Gems Capistrano Mature Growing collection of libs, but weak in NLP Fast! Real concurrency, Akka Still early. IDE’s weak. Complex. JARs, SBT, Ivy, Maven. ? Maturing Early for native scala libraries, rely on Java interop Fast enough Achieved through multiprocessing Healthy, lots of choice Eggs Fabric Mature Massive collection of libraries READABILITY HAPPINESS / PRODUCTIVITY COMMUNITY / ACTIVITY PROPENSITY FOR MAGIC MATURITY / STABILITY HIRING RUBY SCALA PYTHON OK. Emphasis metaprogramming can present challenges. High Huge and active Metaprogramming is sometimes abused. RoR is too magical and many imitated its philosophy Stable, but much catchup remaining for gems to support 1.9 Tough. Medium learning curve, hard to find seasoned devs Concise, expressive but NOT simple. Highly variable! Small and active Too many ways to accomplish things. Scala “implicits” encourage magic Language spec changing, breakages still occurring in dot releases Very difficult. Steep learning curve Highly readable High Big and active Explicit better than implicit Most mature here. But the 2.x/3.x break is bad. OK. Shallow learning curve. FLAME BAIT BASICS Scala Ruby Python 23 18 8 How do they “Stack” Up? Happify is an angel-funded consumer destination “life game.” HTML5, Mobile, and Facebook front ends. Currently in stealth mode. Score is based on: Green = 2 Yellow = 1 Red = 0 Python 36% Ruby 60% Scala 4% Github Project Relative % Gratuitous Perf Charts! * from: http://shootout.alioth.debian.org

A Startup Junkie's Journey to Python via Java, Ruby and ... · Scala “implicits” encourage magic Language spec changing, breakages still occurring in dot releases Very difficult

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Startup Junkie's Journey to Python via Java, Ruby and ... · Scala “implicits” encourage magic Language spec changing, breakages still occurring in dot releases Very difficult

A Sampling of NYC Python

A Startup Junkie's Journey to Python via Java, Ruby and Scala Andy Parsons@andyparsons

My Startups and Their Stacks What Are We Building? And in general...

Happiness Speed Magic Readability

BUSINESS WEB API SERVICES DATABASES TEAM SIZE

Pro Photo ASP.NET C#, Perl SQL Server 12

Hyperlocal Content

(Geolocation)

RoR Sinatra ScalaPostgreSQL, MongoDB

10

Ereading and Book

Recommender

RoR Scalatra Scala/Java MongoDB 8

Life Gaming FlaskPython/Gevent

PythonPostgreSQL, MongoDB

3

Building Happify: Comparing Language Options

SPEED CONCURRENCY TOOLING PACKAGING / DEPENDENCIES

DEPLOYMENT TESTING FRAMEWORKS / LIBS

RUBY

SCALA

PYTHON

Fast enough Achieved through Process.forkHealthy, lots of

choiceGems Capistrano Mature

Growing collection of libs, but weak in

NLP

Fast! Real concurrency, AkkaStill early. IDE’s

weak.Complex. JARs, SBT, Ivy,

Maven.? Maturing

Early for native scala libraries, rely

on Java interop

Fast enoughAchieved through multiprocessing

Healthy, lots of choice

Eggs Fabric MatureMassive collection

of libraries

READABILITY HAPPINESS / PRODUCTIVITY

COMMUNITY / ACTIVITY

PROPENSITY FOR MAGIC

MATURITY / STABILITY

HIRING

RUBY

SCALA

PYTHON

OK. Emphasis metaprogramming can

present challenges.High Huge and active

Metaprogramming is sometimes abused. RoR is too magical and many imitated its philosophy

Stable, but much catchup remaining for gems to support 1.9

Tough. Medium learning curve, hard to find

seasoned devs

Concise, expressive but NOT simple.

Highly variable! Small and activeToo many ways to accomplish

things. Scala “implicits” encourage magic

Language spec changing, breakages still occurring in dot

releases

Very difficult. Steep learning

curve

Highly readable High Big and active Explicit better than implicitMost mature here.

But the 2.x/3.x break is bad.

OK. Shallow learning curve.

FLAME BAIT

BASICS

Scala Ruby Python

23

18

8

How do they “Stack” Up?

Happify is an angel-funded consumer destination “life game.”

HTML5, Mobile, and Facebook front ends.

Currently in stealth mode.

Score is based on:

Green = 2Yellow = 1Red = 0

Python36%

Ruby60%

Scala4%

Github Project Relative %

Gratuitous Perf Charts!

* from: http://shootout.alioth.debian.org