RSTTA




A Rosetta Stone for WebDev Tools

" We're not so different, you and I... "


Ruby Python Node.js
Package management gem pip npm
Canonical package repo Rubygems PyPI: Python Package Index npm Registry
Virtual environments rvm gemset
    or
rbenv
virtualenv
      +
virtualenvwrapper
nodeenv
Dependency management bundle
Gemfile
pip
requirements.txt
npm
package.json
Runtime management rvm install
pyenv install
nvm install
Runtimes MRI
Topaz (RPython)
JRuby
REE
Rubinius
cPython
PyPy (RPython)
Jython
V8
Webserver interface
specifications
Rack WSGI JSGI (defunct)
Middleware Rack Middleware WSGI Middleware Connect Middleware
Express Middleware
Web application servers Rack-compliant:
Passenger
Unicorn
Thin
more...
WSGI-compliant:
uWSGI
Gunicorn
Werkzeug
more...

Non-native to the
node.js culture
Server-side frameworks Rack-compliant:
Ruby on Rails
Sinatra
more...
WSGI-compliant:
Django
Flask
more...

Meteor
Express
more...
Task automation Rake Invoke Grunt
Gulp.js
Remote server automation Capistrano Fabric Flightplan
Capistrano
Fabric
Process monitoring & control God
Foreman
Supervisor
Node Foreman
node-supervisor
Forever
  Upstart
Configuration management Puppet
Chef
Containerization Docker
Development environment automation Vagrant
BDFLs Yukihiro Matsumoto 松本行弘
David Heinemeier Hansson (Rails)
Guido van Rossum
Adrian Holovaty (Django, Emeritus)
Jacob Kaplan-Moss (Django, Emeritus)
Isaac Schlueter
Ryan Dahl (Emeritus)

Pro-polyglot. RSTTA feeback welcomed at @jefflaporte.