SlideShare a Scribd company logo
1 of 43
Download to read offline
Open Source Success:
      jQuery
                  John Resig
 http://ejohn.org/ - http://twitter.com/jeresig
jQuery
    A JavaScript library designed to hide
✦
    painful cross-browser compatibility issues
    while presenting a solid, usable, API.
Simple API
    $(“div > span”).addClass(“foo”);
✦
    ✦ “Find some elements”
    ✦ “Do something with them”

    Makes complex manipulation of web pages
✦
    simple
Points of Concern
    Primary issues:
✦
    ✦ Quality of API
    ✦ Quality of browser-issue-hiding

    Other issues:
✦
    ✦ Speed, community, licensing,
      development team, openness, test
      coverage, API documentation, tutorials,
      books, demos
Space
    Highly competitive space
✦

    Released Jan. 2006 - already a dominant
✦
    player: Prototype JavaScript Library
    (Bundled with Ruby on Rails, had some
✦
    nice coattail growth.)
    Other libraries: Dojo, Yahoo UI,
✦
    MooTools
Success?
    Personal Success vs. External Success
✦

    Personal Success (for me)
✦
    ✦ Someone else uses the project and finds
      it useful
    Some Numbers:
✦
    ✦ Downloads
      ✦ jQuery 1.2.6: 40+ million downloads
      ✦ (People probably include it directly in
        their pages)
      ✦ Total: Over 180+ million downloads
Personal Success
    Google Analytics
✦
    ✦ 1.5 million+ unique monthly visitors
    ✦ 125,000+ per day


March ’09 to Dec ‘08: 50% Growth


March ’09 to Feb ‘09: 8% Growth
External Success
    No solid numbers for JS Libraries
✦
    ✦ Scripts not indexed by Google
    ✦ Sites behind intranets

    A couple tools:
✦
    ✦ Google Trends (Google searches for a
      term)
External Success
    MAMA Opera
✦
    ✦ An HTML search engine built by Opera
    ✦ Can search through script files
Things That Are Important
    Technical
✦
    ✦ API Design
      (Usability, documentation)
    ✦ Code Quality
      (Licensing, openness, test coverage)
    Non-technical
✦
    ✦ Community
      (Resources, responsiveness)
    ✦ Learning Aides
      (Tutorials, books, demos)
What it all boils down to...
    How quickly can you get your user hooked
✦
    - and are you giving them room, and the
    resources, to grow?


    Put yourself in your user’s shoes.
✦
H
                                                                           In
                         Se
                                                                             te
                           co                                                                                                              om
                              n                                                   gr                                                           ep
                                                                                     at
                                    dA
                                                                                       io                                                           ag
                                                                                                                                                        e
                                                                                            n
                                         pp


                                                                                                                                      Vi
                         Ex                                                                                                             ew
                                                                           AP
                              pl                                                ID
                                or                                                                                                            Tu
                                                                                                                                                to
                                  eA                                                   oc
                                                                                           s                                                           ria
                                          PI
                                                                                                                                                             l

                                                                                                                                       D
                                                                           Co
                                                                                m                                                          ow
                                                                                    m
                         Ex                                                                                                                     nl
                              te                                                     un                                                           oa
                                                                                                                                                        d
                                   nd                                                   ity
                                        AP
                                           I

                                                                                                                                      Tr
                                                                                                                                         y
                                                                            Tu
                                                                              to                                                             Tu
                         Re
                                                                                                                                                t
                           ad                                                   ria                                                               or
                                                                                          ls
                                   So                                                                                                                  ial
                                        ur
                                          ce

The First Year: Growth
                                               The First Month: Learning
                                                                                                   The First Day: Can this help me?




                         Co
                                                                           Ex                                                         Ex
                               nt
                                                                             pe                                                            pe
                                   rib
                                                                                r                                                             r
                                                                                     im                                                           im
                                        ut
                                          e                                               en                                                           en
                                                                                               t                                                         t
                                                                                                                                                                 Watch the full process
Attrition
Failure at any step costs your project another user.

      Your project is your own worst enemy.
The First Day
 “After spending less than 3 hours reading blog posts
  and perusing the documentation I was able to do a
lot more in a lot less time then ever before. The huge
   community and neatly organized jQuery plugins
 make me feel like a sucker for not having jQuery for
                    my pet-project.”

  http://aleembawany.com/2009/01/16/switching-from-prototype-to-jquery/
Homepage
    Set a good first impression
✦

    Answer the questions:
✦
    ✦ What is this?
    ✦ What can it do for me?
    ✦ Where can I go to learn more?
Open Source Success: jQuery
Getting Started Tutorial
    Clear, focused
✦

    Assume no background knowledge
✦
Download
    Make it super-easy, remove any barriers
✦

    (We link straight to the source, no .zip)
✦
Licensing
    Not a concern for some of people
✦

    A huge concern for a lot of corporate users
✦

    Use the most-open license possible
✦
    ✦ Fewest number of restrictions gives you
      the largest possible market
    We use the MIT license for jQuery
✦
    ✦ “Leave my name on the source file”
Try the Tutorial
    ...and subsequent Experimentation
✦

    All about code quality
✦
    ✦ For JavaScript libraries: Make sure your
      code is seamless across browsers
    ✦ For desktop apps: Is it truly cross-
      platform? Are there dependencies?
    The user should never be forced to ask for
✦
    help in order to get started
    ✦ Asking for help “getting started” is a
      failure case on your end
Simplicity
    Simple APIs are king
✦

    Users understand quicker
✦

    Get started faster
✦

    Become advanced quicker
✦
The First Month
“Alright I am now really really into jQuery. I used to
hate javascript. WHAT HAS HAPPENED HERE?
           Javascript people, speak to me.”

            http://twitter.com/_ralph/status/1123503553
Community Resources
    Provide places for users to ask questions
✦

    jQuery:
✦
    ✦ Mailing list
    ✦ IRC Channel

    External:
✦
    ✦ jQueryHelp.com Forum
    ✦ StackOverflow.com
    ✦ Twitter
    ✦ Blogs
Monitor Your Community
    Make sure that everyone is getting the
✦
    help that they need
    Evangelism Team, run by Rey Bango
✦

    Track all of the services they use
✦
    ✦ Mailing List - Subscribe to the mailing
      list
    ✦ IRC - Sit in the IRC channel
    ✦ Blogs - Use Technorati and Google Blog
      Search
    ✦ Twitter - Use Twitter Search
Service
Treat every user as a potential, future, contributor.
Service




    Today Mike Alsup and Michael Geary are
✦
    part of the jQuery team
Twitter Tracking
    Track people talking about the code:
✦
    ✦ http://search.twitter.com/

    Look for people having trouble, asking
✦
    questions
Answer Questions
    It takes a lot of time, but sometimes it’s
✦
    really worth it
    You never know who could be having
✦
    trouble
Follow-up With Large Users
    Maintain a list of contacts with your large
✦
    users
    Ping them every once in a while
✦

    Make sure that they’re having a good
✦
    experience
    They frequently forget to file bugs - make
✦
    sure that happens
API Documentation
    jQuery had API docs from the start (2006)
✦

    Two other major libraries: Dojo, Prototype
✦
    didn’t have any until 2007+
    Clarity and usability of documentation is
✦
    huge
API Example
Alternative Views
Learn More
    Tutorials and Books
✦

    Tutorials are short and drive home a point
✦
    or single topic
    “Books” are more holistic and lead the
✦
    reader from start to finish
Tutorials
The First Year
API Buy-in
    Once users start using an API for an
✦
    application they generally stick with it
    Every new application is an opportunity to
✦
    snag, or lose, a user
    All boils down to attrition: Did your user
✦
    have a good experience building the first
    application?
Growth
You need to give users some place to grow to.
Open Process
    Open Source is easy
✦
    (just release the code
    and be done with it)
    Open Process is hard
✦
    (open source control,
    easy bug tracking)
    A good process helps
✦
    users learn
Extensibility
    Your API isn’t perfect -
✦
    it can’t include everything
    for everyone
    Give users the ability to
✦
    add their own functionality
    jQuery has a healthy plugin
✦
    community with hundreds
    of plugins.
    Gives jQuery a huge leg up
✦
    on other libraries.
Complex Applications
    Users will attempt to build increasingly
✦
    complex applications
    Need to be there to help, otherwise they’ll
✦
    leave for something else
    jQuery UI - A set of complex User
✦
    Interface components.
jQuery UI
Contributions
    How does a user become a contributor?
✦

    Encouragement is the biggest factor
✦
    ✦ Encourage users to submit bug reports
    ✦ Encourage them to build test cases
    ✦ Encourage them to submit patches

    Praise them when something good is done.
✦

    Communication is a huge factor here,
✦
    “dead” bugs or mailing list threads cripple
    participation.
Overview
    Help your users at every step of the way
✦

    Track them and help the stragglers
✦

    Help them grow and flourish
✦




    Questions?
✦
    ✦ jeresig@gmail.com
    ✦ http://ejohn.org/
    ✦ http://twitter.com/jeresig

More Related Content

What's hot

2010 Honda Insight Hybrid San Leandro
2010 Honda Insight Hybrid San Leandro2010 Honda Insight Hybrid San Leandro
2010 Honda Insight Hybrid San LeandroSan Leandro Honda
 
Workshop Of Ict Indicators In Education Ocde
Workshop Of Ict Indicators In Education OcdeWorkshop Of Ict Indicators In Education Ocde
Workshop Of Ict Indicators In Education Ocde@cristobalcobo
 
30 Minute Expert1
30 Minute Expert130 Minute Expert1
30 Minute Expert1Ben Wilkoff
 
rijkhof design package design samples
rijkhof design package design samplesrijkhof design package design samples
rijkhof design package design samplesRijkhof Design
 
2010 Honda Insight Hybrid Los Angeles
2010 Honda Insight Hybrid Los Angeles2010 Honda Insight Hybrid Los Angeles
2010 Honda Insight Hybrid Los AngelesMiller Honda
 
2010 Honda Insight Hybrid
2010 Honda Insight Hybrid2010 Honda Insight Hybrid
2010 Honda Insight HybridBell Honda
 
High stakes-world-of-mobile-payments-infographic
High stakes-world-of-mobile-payments-infographicHigh stakes-world-of-mobile-payments-infographic
High stakes-world-of-mobile-payments-infographicTyson Hackwood
 
AAF Nissan Plans Book
AAF Nissan Plans BookAAF Nissan Plans Book
AAF Nissan Plans Bookashmlaw67
 
A af plansbook2012
A af plansbook2012A af plansbook2012
A af plansbook2012tmburris
 
Fringe eu procurement - sara piller
Fringe   eu procurement - sara pillerFringe   eu procurement - sara piller
Fringe eu procurement - sara pillerlgconf11
 
M&A Integration Planning The Integration Of An Acquired Companys Legal De...
M&A Integration Planning The Integration Of An Acquired Companys Legal De...M&A Integration Planning The Integration Of An Acquired Companys Legal De...
M&A Integration Planning The Integration Of An Acquired Companys Legal De...Frank Fletcher
 

What's hot (13)

2010 Honda Insight Hybrid San Leandro
2010 Honda Insight Hybrid San Leandro2010 Honda Insight Hybrid San Leandro
2010 Honda Insight Hybrid San Leandro
 
Austin Honda Insight Brochure 2010
Austin Honda Insight Brochure 2010Austin Honda Insight Brochure 2010
Austin Honda Insight Brochure 2010
 
Workshop Of Ict Indicators In Education Ocde
Workshop Of Ict Indicators In Education OcdeWorkshop Of Ict Indicators In Education Ocde
Workshop Of Ict Indicators In Education Ocde
 
30 Minute Expert1
30 Minute Expert130 Minute Expert1
30 Minute Expert1
 
rijkhof design package design samples
rijkhof design package design samplesrijkhof design package design samples
rijkhof design package design samples
 
2010 Honda Insight Hybrid Los Angeles
2010 Honda Insight Hybrid Los Angeles2010 Honda Insight Hybrid Los Angeles
2010 Honda Insight Hybrid Los Angeles
 
2010 Honda Insight Hybrid
2010 Honda Insight Hybrid2010 Honda Insight Hybrid
2010 Honda Insight Hybrid
 
High stakes-world-of-mobile-payments-infographic
High stakes-world-of-mobile-payments-infographicHigh stakes-world-of-mobile-payments-infographic
High stakes-world-of-mobile-payments-infographic
 
IWB in the Prep Classroom
IWB in the Prep ClassroomIWB in the Prep Classroom
IWB in the Prep Classroom
 
AAF Nissan Plans Book
AAF Nissan Plans BookAAF Nissan Plans Book
AAF Nissan Plans Book
 
A af plansbook2012
A af plansbook2012A af plansbook2012
A af plansbook2012
 
Fringe eu procurement - sara piller
Fringe   eu procurement - sara pillerFringe   eu procurement - sara piller
Fringe eu procurement - sara piller
 
M&A Integration Planning The Integration Of An Acquired Companys Legal De...
M&A Integration Planning The Integration Of An Acquired Companys Legal De...M&A Integration Planning The Integration Of An Acquired Companys Legal De...
M&A Integration Planning The Integration Of An Acquired Companys Legal De...
 

Similar to Open Source Success: jQuery

ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1tutorialsruby
 
ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1tutorialsruby
 
jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jeresig
 
jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jeresig
 
OpenID Foundation Japan Chapter Announcement
OpenID Foundation Japan Chapter AnnouncementOpenID Foundation Japan Chapter Announcement
OpenID Foundation Japan Chapter AnnouncementDavid Recordon
 
Designing learning spaces to meet the changing needs and expectations of stud...
Designing learning spaces to meet the changing needs and expectations of stud...Designing learning spaces to meet the changing needs and expectations of stud...
Designing learning spaces to meet the changing needs and expectations of stud...Dan Munnerley
 
Supplement Comparison chart
Supplement Comparison chartSupplement Comparison chart
Supplement Comparison chart902sports
 
Creative Workshop Teacher's Guide
Creative Workshop Teacher's GuideCreative Workshop Teacher's Guide
Creative Workshop Teacher's GuideDavid Sherwin
 
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...Human Capital Media
 
High stakes world of Mobile Payments
High stakes world of Mobile PaymentsHigh stakes world of Mobile Payments
High stakes world of Mobile PaymentstxtNation
 
2010 Honda Insight Hybrid Omaha Nebraska
2010 Honda Insight Hybrid Omaha Nebraska2010 Honda Insight Hybrid Omaha Nebraska
2010 Honda Insight Hybrid Omaha NebraskaHonda Cars of Bellevue
 
2010 insight-hybrid-brochure
2010 insight-hybrid-brochure2010 insight-hybrid-brochure
2010 insight-hybrid-brochureBurbank Honda
 

Similar to Open Source Success: jQuery (20)

ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1
 
ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1ete2009-jquery-success-ete-1
ete2009-jquery-success-ete-1
 
jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)
 
jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)
 
Open Source Process: jQuery by John Resig
Open Source Process: jQuery by John ResigOpen Source Process: jQuery by John Resig
Open Source Process: jQuery by John Resig
 
Gpa
GpaGpa
Gpa
 
Personal Branding for Corporate Success
Personal Branding for Corporate SuccessPersonal Branding for Corporate Success
Personal Branding for Corporate Success
 
OpenID Foundation Japan Chapter Announcement
OpenID Foundation Japan Chapter AnnouncementOpenID Foundation Japan Chapter Announcement
OpenID Foundation Japan Chapter Announcement
 
Designing learning spaces to meet the changing needs and expectations of stud...
Designing learning spaces to meet the changing needs and expectations of stud...Designing learning spaces to meet the changing needs and expectations of stud...
Designing learning spaces to meet the changing needs and expectations of stud...
 
1
11
1
 
Supplement Comparison chart
Supplement Comparison chartSupplement Comparison chart
Supplement Comparison chart
 
Creative Workshop Teacher's Guide
Creative Workshop Teacher's GuideCreative Workshop Teacher's Guide
Creative Workshop Teacher's Guide
 
Pronouns Adjectives
Pronouns AdjectivesPronouns Adjectives
Pronouns Adjectives
 
Dvd Label
Dvd LabelDvd Label
Dvd Label
 
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
Enterprise Collaboration: Can You Connect Social Learning and Business Perfor...
 
Spiral Of Knowledge - 1967
Spiral Of Knowledge - 1967Spiral Of Knowledge - 1967
Spiral Of Knowledge - 1967
 
High stakes world of Mobile Payments
High stakes world of Mobile PaymentsHigh stakes world of Mobile Payments
High stakes world of Mobile Payments
 
The Singles Lifecycle
The Singles LifecycleThe Singles Lifecycle
The Singles Lifecycle
 
2010 Honda Insight Hybrid Omaha Nebraska
2010 Honda Insight Hybrid Omaha Nebraska2010 Honda Insight Hybrid Omaha Nebraska
2010 Honda Insight Hybrid Omaha Nebraska
 
2010 insight-hybrid-brochure
2010 insight-hybrid-brochure2010 insight-hybrid-brochure
2010 insight-hybrid-brochure
 

More from jeresig

Does Coding Every Day Matter?
Does Coding Every Day Matter?Does Coding Every Day Matter?
Does Coding Every Day Matter?jeresig
 
Accidentally Becoming a Digital Librarian
Accidentally Becoming a Digital LibrarianAccidentally Becoming a Digital Librarian
Accidentally Becoming a Digital Librarianjeresig
 
2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)jeresig
 
Computer Vision as Art Historical Investigation
Computer Vision as Art Historical InvestigationComputer Vision as Art Historical Investigation
Computer Vision as Art Historical Investigationjeresig
 
Hacking Art History
Hacking Art HistoryHacking Art History
Hacking Art Historyjeresig
 
Using JS to teach JS at Khan Academy
Using JS to teach JS at Khan AcademyUsing JS to teach JS at Khan Academy
Using JS to teach JS at Khan Academyjeresig
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art Historyjeresig
 
NYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri ResultsNYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri Resultsjeresig
 
EmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image AnalysisEmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image Analysisjeresig
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art Historyjeresig
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)jeresig
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)jeresig
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jeresig
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobilejeresig
 
jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)jeresig
 
Holistic JavaScript Performance
Holistic JavaScript PerformanceHolistic JavaScript Performance
Holistic JavaScript Performancejeresig
 
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)jeresig
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)jeresig
 
Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)jeresig
 
JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)jeresig
 

More from jeresig (20)

Does Coding Every Day Matter?
Does Coding Every Day Matter?Does Coding Every Day Matter?
Does Coding Every Day Matter?
 
Accidentally Becoming a Digital Librarian
Accidentally Becoming a Digital LibrarianAccidentally Becoming a Digital Librarian
Accidentally Becoming a Digital Librarian
 
2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)2014: John's Favorite Thing (Neo4j)
2014: John's Favorite Thing (Neo4j)
 
Computer Vision as Art Historical Investigation
Computer Vision as Art Historical InvestigationComputer Vision as Art Historical Investigation
Computer Vision as Art Historical Investigation
 
Hacking Art History
Hacking Art HistoryHacking Art History
Hacking Art History
 
Using JS to teach JS at Khan Academy
Using JS to teach JS at Khan AcademyUsing JS to teach JS at Khan Academy
Using JS to teach JS at Khan Academy
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
 
NYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri ResultsNYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri Results
 
EmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image AnalysisEmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image Analysis
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)
 
Holistic JavaScript Performance
Holistic JavaScript PerformanceHolistic JavaScript Performance
Holistic JavaScript Performance
 
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)
 
Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)
 
JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)
 

Recently uploaded

The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 

Recently uploaded (20)

The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 

Open Source Success: jQuery

  • 1. Open Source Success: jQuery John Resig http://ejohn.org/ - http://twitter.com/jeresig
  • 2. jQuery A JavaScript library designed to hide ✦ painful cross-browser compatibility issues while presenting a solid, usable, API.
  • 3. Simple API $(“div > span”).addClass(“foo”); ✦ ✦ “Find some elements” ✦ “Do something with them” Makes complex manipulation of web pages ✦ simple
  • 4. Points of Concern Primary issues: ✦ ✦ Quality of API ✦ Quality of browser-issue-hiding Other issues: ✦ ✦ Speed, community, licensing, development team, openness, test coverage, API documentation, tutorials, books, demos
  • 5. Space Highly competitive space ✦ Released Jan. 2006 - already a dominant ✦ player: Prototype JavaScript Library (Bundled with Ruby on Rails, had some ✦ nice coattail growth.) Other libraries: Dojo, Yahoo UI, ✦ MooTools
  • 6. Success? Personal Success vs. External Success ✦ Personal Success (for me) ✦ ✦ Someone else uses the project and finds it useful Some Numbers: ✦ ✦ Downloads ✦ jQuery 1.2.6: 40+ million downloads ✦ (People probably include it directly in their pages) ✦ Total: Over 180+ million downloads
  • 7. Personal Success Google Analytics ✦ ✦ 1.5 million+ unique monthly visitors ✦ 125,000+ per day March ’09 to Dec ‘08: 50% Growth March ’09 to Feb ‘09: 8% Growth
  • 8. External Success No solid numbers for JS Libraries ✦ ✦ Scripts not indexed by Google ✦ Sites behind intranets A couple tools: ✦ ✦ Google Trends (Google searches for a term)
  • 9. External Success MAMA Opera ✦ ✦ An HTML search engine built by Opera ✦ Can search through script files
  • 10. Things That Are Important Technical ✦ ✦ API Design (Usability, documentation) ✦ Code Quality (Licensing, openness, test coverage) Non-technical ✦ ✦ Community (Resources, responsiveness) ✦ Learning Aides (Tutorials, books, demos)
  • 11. What it all boils down to... How quickly can you get your user hooked ✦ - and are you giving them room, and the resources, to grow? Put yourself in your user’s shoes. ✦
  • 12. H In Se te co om n gr ep at dA io ag e n pp Vi Ex ew AP pl ID or Tu to eA oc s ria PI l D Co m ow m Ex nl te un oa d nd ity AP I Tr y Tu to Tu Re t ad ria or ls So ial ur ce The First Year: Growth The First Month: Learning The First Day: Can this help me? Co Ex Ex nt pe pe rib r r im im ut e en en t t Watch the full process
  • 13. Attrition Failure at any step costs your project another user. Your project is your own worst enemy.
  • 14. The First Day “After spending less than 3 hours reading blog posts and perusing the documentation I was able to do a lot more in a lot less time then ever before. The huge community and neatly organized jQuery plugins make me feel like a sucker for not having jQuery for my pet-project.” http://aleembawany.com/2009/01/16/switching-from-prototype-to-jquery/
  • 15. Homepage Set a good first impression ✦ Answer the questions: ✦ ✦ What is this? ✦ What can it do for me? ✦ Where can I go to learn more?
  • 17. Getting Started Tutorial Clear, focused ✦ Assume no background knowledge ✦
  • 18. Download Make it super-easy, remove any barriers ✦ (We link straight to the source, no .zip) ✦
  • 19. Licensing Not a concern for some of people ✦ A huge concern for a lot of corporate users ✦ Use the most-open license possible ✦ ✦ Fewest number of restrictions gives you the largest possible market We use the MIT license for jQuery ✦ ✦ “Leave my name on the source file”
  • 20. Try the Tutorial ...and subsequent Experimentation ✦ All about code quality ✦ ✦ For JavaScript libraries: Make sure your code is seamless across browsers ✦ For desktop apps: Is it truly cross- platform? Are there dependencies? The user should never be forced to ask for ✦ help in order to get started ✦ Asking for help “getting started” is a failure case on your end
  • 21. Simplicity Simple APIs are king ✦ Users understand quicker ✦ Get started faster ✦ Become advanced quicker ✦
  • 22. The First Month “Alright I am now really really into jQuery. I used to hate javascript. WHAT HAS HAPPENED HERE? Javascript people, speak to me.” http://twitter.com/_ralph/status/1123503553
  • 23. Community Resources Provide places for users to ask questions ✦ jQuery: ✦ ✦ Mailing list ✦ IRC Channel External: ✦ ✦ jQueryHelp.com Forum ✦ StackOverflow.com ✦ Twitter ✦ Blogs
  • 24. Monitor Your Community Make sure that everyone is getting the ✦ help that they need Evangelism Team, run by Rey Bango ✦ Track all of the services they use ✦ ✦ Mailing List - Subscribe to the mailing list ✦ IRC - Sit in the IRC channel ✦ Blogs - Use Technorati and Google Blog Search ✦ Twitter - Use Twitter Search
  • 25. Service Treat every user as a potential, future, contributor.
  • 26. Service Today Mike Alsup and Michael Geary are ✦ part of the jQuery team
  • 27. Twitter Tracking Track people talking about the code: ✦ ✦ http://search.twitter.com/ Look for people having trouble, asking ✦ questions
  • 28. Answer Questions It takes a lot of time, but sometimes it’s ✦ really worth it You never know who could be having ✦ trouble
  • 29. Follow-up With Large Users Maintain a list of contacts with your large ✦ users Ping them every once in a while ✦ Make sure that they’re having a good ✦ experience They frequently forget to file bugs - make ✦ sure that happens
  • 30. API Documentation jQuery had API docs from the start (2006) ✦ Two other major libraries: Dojo, Prototype ✦ didn’t have any until 2007+ Clarity and usability of documentation is ✦ huge
  • 33. Learn More Tutorials and Books ✦ Tutorials are short and drive home a point ✦ or single topic “Books” are more holistic and lead the ✦ reader from start to finish
  • 36. API Buy-in Once users start using an API for an ✦ application they generally stick with it Every new application is an opportunity to ✦ snag, or lose, a user All boils down to attrition: Did your user ✦ have a good experience building the first application?
  • 37. Growth You need to give users some place to grow to.
  • 38. Open Process Open Source is easy ✦ (just release the code and be done with it) Open Process is hard ✦ (open source control, easy bug tracking) A good process helps ✦ users learn
  • 39. Extensibility Your API isn’t perfect - ✦ it can’t include everything for everyone Give users the ability to ✦ add their own functionality jQuery has a healthy plugin ✦ community with hundreds of plugins. Gives jQuery a huge leg up ✦ on other libraries.
  • 40. Complex Applications Users will attempt to build increasingly ✦ complex applications Need to be there to help, otherwise they’ll ✦ leave for something else jQuery UI - A set of complex User ✦ Interface components.
  • 42. Contributions How does a user become a contributor? ✦ Encouragement is the biggest factor ✦ ✦ Encourage users to submit bug reports ✦ Encourage them to build test cases ✦ Encourage them to submit patches Praise them when something good is done. ✦ Communication is a huge factor here, ✦ “dead” bugs or mailing list threads cripple participation.
  • 43. Overview Help your users at every step of the way ✦ Track them and help the stragglers ✦ Help them grow and flourish ✦ Questions? ✦ ✦ jeresig@gmail.com ✦ http://ejohn.org/ ✦ http://twitter.com/jeresig