Upload
mike-mcneil
View
84
Download
0
Embed Size (px)
DESCRIPTION
How did a small, completely self-funded team build a web framework that became more popular than comparable tools with million-dollar budgets? By welcoming the outsiders. Mike will recount how Sails.js grew from an internal tool to one of the most popular frameworks for Node.js, without forgetting its roots. Javascript is quickly becoming more than just the lingua franca of the web– it’s rapidly growing in popularity on servers, mobile devices, and embedded systems. In many ways, “Javascript is the new Java.” More and more backend developers are becoming familiar with tools like Bower, Yeoman and Grunt, and Angular has empowered web developers to create single page apps as part of their everyday workflow. As the industry standardizes around Javascript, it’s not only important to take advantage of new tools; we must also make sure these new tools and methodologies are accessible and understandable to developers from more traditional backgrounds. In this talk, Mike will reflect on the experiences he’s had building and managing an open-source Node.js framework, Sails.js. He’ll discuss the success we’ve had attracting interlingual developers to Sails, and share some lessons and difficulties we’ve encountered migrating a new generation of developers from PHP, Java, .NET and Rails to Node.js. He will share examples from both sides of the spectrum, both community-related and technical, including: How to encourage (not dissipate) the growth of subcultures within an open-source community How to reconcile different levels of familiarity and preference for different collaboration tools (Github, IRC, Google Groups, etc) How to assimilate the technical heritages from past frameworks (i.e. syntax, nomenclature, project structure) How to meet expectations around reference documentation, and direct community contribution towards guides and tutorials Mike is an engaging speaker with a knack for dynamic Q&A. He is passionate about the subject matter and can adapt the talk to any time frame. http://allthingsopen.org/talks/rags-to-open-source-the-story-of-sails-js/ http://allthingsopen.org/speakers/mike-mcneil/
Citation preview
from rags to open-source
Raleigh, North Carolina 2014
bdfl ofthe leading open-source MVC framework for Node.js
the leading open-source MVC framework for Node.js
at least pageviews since 2013830,000
GitHub stars 8,030
over downloads / day1,500
in funding$0
est. feb 2012
(us)
(customer)
(Javascript app)
love at first sightcirca 2011
Node.js...
“We’re doing I/O completely wrong.”
<— “just look at the Unterschied!”
“Not acceptable!”
“Threads should be used by experts only.”
“Concurrency should be easy.”
How is that possible?
(copy the browser)
// synchronous!console.log(‘hi’)
// asynchronous!setTimeout(function (){! console.log(‘hi’);!}, 240000000);
vs.
incredible
could we use
…for everything?
I wondered…
so…
You don't want to be writing all these system calls.
You need something that gives you… an ORM abstraction, or
something.
so Sails.js was born
Sails is an MVC framework.
Sails is an MVC framework.
Sails is an MVC framework.
Sails is an MVC framework.
Sails is an MVC framework.
Sails is an MVC framework.
Sails is an MVC framework.
Sails is an MVC framework.
first version (late 2011)
December 2012
>=20 other community adapters custom app-specific adapters
January 2013
first halfway-decent docs
http://web.archive.org/web/20130514080123/http://balderdashy.github.io/sails/
posted screencast in early 2013
…woke up to 1000 views
reddit — Feb 2013hacker news — Mar 2013and again two months later
issues pull requests
questions
????
???????????
v0.9 introduced a new streamlined asset pipeline
asset pipeline????
“what about gulp?!”
“so thirsty…”
asset pipeline????????!!!!
asset pipeline????????!!!!
asset pipeline????????!!!!
asset pipeline????????!!!!
asset pipeline????????!!!!
so v0.10 introduced generators.
feature requests are the hydra
they will never stop.
they will never stop.
ever.
moral of the story
only write code you actually need
if someone else actually needs something, they’ll write a pull request
only merge new code if someone actually needs you to merge it (i.e. there’s no other way, via a
plugin or something)
Supporting the Community
Tools
Metrics
Advice
#sails on freenode (IRC)
issues
groups
Tools
Metrics
Advice
• Github stars
• NPM downloads / day
• Google group membership
• IRC channel activity
• Number of tagged StackOverflow questions(and your answer ratio)
Tools
Metrics
Advice
inline jsdoc comments are not enough
write docs in markdown
compile to HTML
don’t repeat yourself
DRY
don’t repeat ourselves
DRO
the goal of open source
make an IRC channel start a Google group post a YouTube video
so
support !== marketing
but remember
support !== marketing
( )
but remember
far more front-end developers
∃
than back-end developers
far more front-end developers
∃
than back-end developers
eventually everyday backend development
will be commoditized
Questions?
from rags to open-source
@mikermcneil