A Startup Junkie's Journey to Python via , Ruby and Scala

Andy Parsons @andyparsons Happiness Speed Magic Readability

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

Happify is an angel-funded consumer Github Project Relative % destination “life game.” BUSINESS WEB API SERVICES DATABASES TEAM SIZE HTML5, Mobile, and Facebook front ends.

Pro Photo ASP.NET C#, SQL Server 12 Currently in stealth mode. Scala Ruby 4% 60% Hyperlocal PostgreSQL, How do they “Stack” Up? RoR Scala 10 Content MongoDB (Geolocation ) Score is based on: Ereading and Python Book RoR Scalatra Scala/Java MongoDB 8 Green = 2 Recommende Yellow = 1 23 36% r Red = 0 Python/ PostgreSQL, Life Gaming Python 3 Gevent MongoDB 18

Building Happify: Comparing Language Options

BASICS 8 PACKAGING / FRAMEWORKS SPEED CONCURRENCY TOOLING DEPLOYMENT TESTING DEPENDENCIES / LIBS

Growing collection Healthy, lots of Fast enough Achieved through Process.fork Gems Capistrano Mature of libs, but weak in RUBY choice NLP

Early for native Scala Ruby Python Still early. IDE’s Complex. JARs, SBT, Ivy, Fast! Real concurrency, ? Maturing scala libraries, rely SCALA weak. Maven. on Java interop A Sampling of NYC Python Achieved through Healthy, lots of Massive collection Fast enough Eggs Fabric Mature Gratuitous Perf Charts! PYTHON multiprocessing choice of libraries

FLAME BAIT

HAPPINESS / COMMUNITY / PROPENSITY FOR MATURITY / READABILITY HIRING PRODUCTIVITY ACTIVITY MAGIC STABILITY

OK. Emphasis Metaprogramming is sometimes Stable, but much Tough. Medium RUBY metaprogramming can High Huge and active abused. RoR is too magical and catchup remaining for learning curve, present challenges. many imitated its philosophy gems to support 1.9 hard to find seasoned devs

Too many ways to accomplish Language spec Very difficult. Concise, expressive but Highly variable! Small and active things. Scala “implicits” changing, breakages Steep learning SCALA NOT simple. encourage magic still occurring in dot curve releases

Most mature here. OK. Shallow Highly readable High Big and active Explicit better than implicit But the 2.x/3.x break PYTHON learning curve. is bad. * from: http://shootout.alioth.debian.org