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