Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AngularJS in the Wild: A Survey with 460 Developers (PLATEAU Workshop 2016)

AngularJS in the Wild: A Survey with 460 Developers (PLATEAU Workshop 2016)

To implement modern web applications, a new family of JavaScript frameworks has emerged, using the MVC pattern. Among these frameworks, the most popular one is ANGULARJS, which is supported by Google. In spite of its popularity, there is not a clear knowledge on how ANGULARJS design and features affect the development experience of Web applications. Therefore, this paper reports the results of a survey about ANGULARJS, including answers from 460 developers. Our contributions include the identification of the most appreciated features of ANGULARJS (e.g., custom interface components, dependency injection, and two-way data binding) and the most problematic aspects of the framework (e.g., performance and implementation of directives).

ASERG, DCC, UFMG

November 01, 2016
Tweet

More Decks by ASERG, DCC, UFMG

Other Decks in Research

Transcript

  1. AngularJS in the Wild:
    A Survey with 460 Developers
    Miguel Ramos,
    Marco Tulio Valente
    UFMG, Brazil
    Gustavo Santos
    INRIA, France
    Ricardo Terra
    UFLA, Brazil

    View Slide

  2. jQuery
    AJAX
    Single-Page Applications
    Technologies
    2

    View Slide

  3. JavaScript MVC Frameworks
    3

    View Slide

  4. 4
    GitHub Contributors Google Searches
    AngularJS’s Popularity
    Questions on StackOverflow

    View Slide

  5. AngularJS characteristics
    Augments the HTML vocabulary
    Uses Dependency Injection
    Implements two-way data binding
    Provides different abstractions to structure applications
    5

    View Slide

  6. Motivation
    There is no clear knowledge on

    how the features proposed by AngularJS

    affect the development experience

    of JavaScript applications.
    6

    View Slide

  7. Developers’ Perceptions about
    General Aspects of AngularJS
    1
    2
    Mapping Study
    Survey
    7

    View Slide

  8. Mapping Study
    8

    View Slide

  9. Mapping Study
    Initial search queries
    “The best features of AngularJS” or
    “Problems with AngularJS”
    Search specific queries
    “Transclusion directives”,

    “AngularJS testing”
    Snowballing
    Digital libraries
    Q&A
    Blogs
    9

    View Slide

  10. Survey Design
    ● Open questions, Likert-like questions, and
    multiple choice questions.
    ● 25 questions, ~15 minutes
    ● Only background questions were mandatory
    ● Scales with an even number of options
    ● “Other” option in multiple choice questions
    10

    View Slide

  11. Questions
    2
    1
    3
    4
    5
    6
    7
    Participants background
    Key characteristics of AngularJS
    Problems in AngularJS templates
    Testing
    Development practices (complementary questions)
    Complex features of AngularJS
    AngularJS 2.0
    11

    View Slide

  12. Participants
    QO AO E
    Question owner Answer owner Editor
    12

    View Slide

  13. Survey promotion
    Pilot survey Final survey
    Sent to 30 users
    Scores from 9 to 24
    Typographical errors
    Ranking questions to rating
    questions
    Responses were discarded
    Initially sent to 60 users
    700 users emailed daily
    Sent to 3060 users
    Scores from 3 to 831
    460 responses (15%)
    13

    View Slide

  14. Survey Results
    14

    View Slide

  15. Background
    JavaScript experience AngularJS experience Largest application
    15

    View Slide

  16. Background
    16

    View Slide

  17. Key Features of AngularJS
    35.1%
    29.4%
    68.1%
    22.8%
    60.6%
    61%
    24.8%
    23.5%
    45.2%
    17

    View Slide

  18. Testing
    How often do you use the ngMock
    module for testing?
    Answered by:
    441 developers
    (95.9%)
    Possible reasons:
    Low usefulness of the features provided
    by the ngMock module
    Unfamiliarity with the module
    Few developers test their applications
    51.5%
    21.3%
    18

    View Slide

  19. Testing
    How difficult is to test this AngularJS components?
    Discussion:
    Common components are easy to test
    Directives with external templates may
    be hard to test due to the need of pre-
    compilation, and their interaction with the
    DOM
    35.3%
    53.7%
    61.7%
    19

    View Slide

  20. Mastering AngularJS
    54.9%
    32.4%
    43.6%
    61.9%
    58.5%
    52.2%
    20

    View Slide

  21. Most expected features of AngularJS 2.0
    Answered by:
    378 developers
    (82.1%)
    68.3%
    60.1%
    56.1%
    48.7%
    21

    View Slide

  22. Conclusion
    22

    View Slide

  23. 2
    1
    3
    4
    5
    6
    7
    Mostly experienced developers
    Most appreciated features: UI components, data binding
    Problems with performance degradation
    Components more difficult to test
    Development practices
    Complex features of AngularJS
    Most expected features on AngularJS 2.0
    23

    View Slide

  24. Thank You!
    24
    https://github.com/aserg-ufmg/angularjs-survey
    Miguel Ramos,
    Marco Tulio Valente
    {miguel, mtov}@dcc.ufmg.br
    Gustavo Santos
    [email protected]
    Ricardo Terra
    [email protected]

    View Slide