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).

13beaa3b7239eca3319d54c6a9f3a85a?s=128

ASERG, DCC, UFMG

November 01, 2016
Tweet

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
  2. jQuery AJAX Single-Page Applications Technologies 2

  3. JavaScript MVC Frameworks 3

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

  5. AngularJS characteristics Augments the HTML vocabulary Uses Dependency Injection Implements

    two-way data binding Provides different abstractions to structure applications 5
  6. Motivation There is no clear knowledge on
 how the features

    proposed by AngularJS
 affect the development experience
 of JavaScript applications. 6
  7. Developers’ Perceptions about General Aspects of AngularJS 1 2 Mapping

    Study Survey 7
  8. Mapping Study 8

  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
  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
  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
  12. Participants QO AO E Question owner Answer owner Editor 12

  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
  14. Survey Results 14

  15. Background JavaScript experience AngularJS experience Largest application 15

  16. Background 16

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

    24.8% 23.5% 45.2% 17
  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
  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
  20. Mastering AngularJS 54.9% 32.4% 43.6% 61.9% 58.5% 52.2% 20

  21. Most expected features of AngularJS 2.0 Answered by: 378 developers

    (82.1%) 68.3% 60.1% 56.1% 48.7% 21
  22. Conclusion 22

  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
  24. Thank You! 24 https://github.com/aserg-ufmg/angularjs-survey Miguel Ramos, Marco Tulio Valente {miguel,

    mtov}@dcc.ufmg.br Gustavo Santos gugajansen@gmail.com Ricardo Terra terra@dcc.ufla.br