Skip to main content

Return of the Great Spaghetti Monster: Learnings from a Twelve-Year Adventure in Web Software Development

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 322))

Abstract

The widespread adoption of the World Wide Web has fundamentally changed the landscape of software development. Only ten years ago, very few developers would write software for the Web, let alone consider using JavaScript or other web technologies for writing any serious software applications. In this paper, we reflect upon a twelve-year adventure in web development that began with the development of the Lively Kernel system at Sun Microsystems Labs in 2006. Back then, we also published some papers that identified important challenges in web-based software development based on established software engineering principles. We will revisit our earlier findings and compare the state of the art in web development today to our earlier learnings, followed by some reflections and suggestions for the road forward.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    In 2016, Wired Magazine reported that the size of the average web page had exceeded the size of the original (year 1993) Doom multiplayer 3D computer game (https://www.wired.com/2016/04/average-webpage-now-size-original-doom/).

  2. 2.

    Even this paper was written using the online tool Overleaf instead of a conventional, PC-based word processing application such as Microsoft Word.

  3. 3.

    https://en.wikipedia.org/wiki/Cargo_cult_programming.

  4. 4.

    https://www.microsoft.com/en-us/windows/microsoft-edge.

References

  1. Mikkonen, T., Taivalsaari, A.: Web Applications - Spaghetti Code for the 21st Century. In: Proceedings of the International Conference on Software Engineering Research, Management and Applications (SERA 2008, Prague, Czech Republic, 20–22 August 2008), pp. 319–328. IEEE Computer Society (2008)

    Google Scholar 

  2. Taivalsaari, A., Mikkonen, T., Ingalls, D., Palacz, K.: Web Browser as an application platform. In: 34th Euromicro Conference on Software Engineering and Advanced Applications (SEAA 2008, Parma, Italy, 3–5 September 2008), pp. 293–302. IEEE Computer Society (2008)

    Google Scholar 

  3. Casteleyn, S., Garrigós, I., Mazón, J.N.: Ten years of rich internet applications: a systematic mapping study, and beyond. ACM Trans. Web 8(3), 18:1–18:46 (2014)

    Article  Google Scholar 

  4. Turner, M., Budgen, D., Brereton, P.: Turning software into a service. Computer 36(10), 38–44 (2003)

    Article  Google Scholar 

  5. Petsas, T., Papadogiannakis, A., Polychronakis, M., Markatos, E.P., Karagiannis, T.: Rise of the planet of the apps: a systematic study of the mobile app ecosystem. In: Proceedings of the 2013 Internet Measurement Conference, pp. 277–290. ACM (2013)

    Google Scholar 

  6. VisionMobile: Cloud and Desktop Developer Landscape (2016). http://www.visionmobile.com/product/cloud-and-desktop-developer-landscape/. Accessed 5 Mar 2016

  7. Taivalsaari, A., Mikkonen, T., Ingalls, D., Palacz, K.: Web Browser as an Application Platform: The Lively Kernel Experience. Technical report, TR-2008-175, Sun Microsystems Laboratories (2008)

    Google Scholar 

  8. Ingalls, D., Felgentreff, T., Hirschfeld, R., Krahn, R., Lincke, J., Röder, M., Taivalsaari, A., Mikkonen, T.: A world of active objects for work and play: the first ten years of lively. In: Proceedings of SPLASH 2016 Onward! Track (Amsterdam, The Netherlands, 30 October–4 November 2016), pp. 238–249 (2016)

    Google Scholar 

  9. Mikkonen, T., Taivalsaari, A.: Web Applications: Spaghetti Code for the 21st Century. Technical report TR-2007-166, Sun Microsystems Labs, June 2007

    Google Scholar 

  10. Taivalsaari, A., Mikkonen, T.: The web as a software platform: ten years later. In: WEBIST 2017, Porto, Portugal (2017)

    Google Scholar 

  11. Mikkonen, T., Taivalsaari, A.: The Mashware challenge: bridging the gap between web development and software engineering. In: Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research, pp. 245–250. ACM (2010)

    Google Scholar 

  12. Dijkstra, E.W.: Letters to the editor: go to statement considered harmful. Commun. ACM 11(3), 147–148 (1968)

    Article  Google Scholar 

  13. Dijkstra, E.W.: Programming: from craft to scientific discipline. In: International Computing Symposium, pp. 23–30 (1977)

    Google Scholar 

  14. Hoare, C.: Programming: sorcery or science? IEEE Softw. 1(2), 5 (1984)

    Article  Google Scholar 

  15. Corbato, F.: Sensitive Issues in the Design of Multi-Use Systems. Technical report, DTIC Document (1968)

    Google Scholar 

  16. Parnas, D.L.: Information Distribution Aspects of Design Methodology (1971)

    Google Scholar 

  17. Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R.: Structured Programming. Academic Press Ltd., London (1972)

    MATH  Google Scholar 

  18. Parnas, D.L.: A technique for software module specification with examples. Commun. ACM 15(5), 330–336 (1972)

    Article  Google Scholar 

  19. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  20. Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 1, 1–9 (1976)

    Article  Google Scholar 

  21. Parnas, D.L.: Designing software for ease of extension and contraction. In: Proceedings of the 3rd International Conference on Software Engineering, pp. 264–277. IEEE Press (1978)

    Google Scholar 

  22. Parnas, D.L., Clements, P.C., Weiss, D.M.: Enhancing reusability with information hiding. Tutorial Softw. Reusability, 83–90 (1983)

    Google Scholar 

  23. Parnas, D.L., Clements, P.C.: A rational design process: how and why to fake it. IEEE Trans. Softw. Eng. 2, 251–257 (1986)

    Article  Google Scholar 

  24. Morris Jr., J.H.: Protection in programming languages. Commun. ACM 16(1), 15–21 (1973)

    Article  Google Scholar 

  25. Morris Jr., J.H.: Types are not sets. In: Proceedings of the 1st Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 120–124. ACM (1973)

    Google Scholar 

  26. Liskov, B., Zilles, S.: Programming with abstract data types. In: ACM SIGPLAN Notices, vol. 9, pp. 50–59. ACM (1974)

    Article  Google Scholar 

  27. Liskov, B., Zilles, S.: Specification techniques for data abstractions. In: ACM SIGPLAN Notices, vol. 10, pp. 72–87. ACM (1975)

    Article  Google Scholar 

  28. Guttag, J.: Abstract data types and the development of data structures. Commun. ACM 20(6), 396–404 (1977)

    Article  Google Scholar 

  29. Zilles, S.N.: Procedural encapsulation: a linguistic protection technique. In: ACM SIGPLAN Notices, vol. 8, pp. 142–146. ACM (1973)

    Article  Google Scholar 

  30. Corbató, F.J.: On building systems that will fail. In: ACM Turing Award Lectures 1990. ACM (2007)

    Google Scholar 

  31. MacLennan, B.J.: Principles of Programming Languages: Design, Evaluation, and Implementation. Oxford University Press, New York (1999)

    MATH  Google Scholar 

  32. Naur, P., Randell, B.: Software Engineering: Report of a Conference Sponsored by the NATO Science Committee, Garmisch, Germany, 7–11 October 1968, Brussels, Scientific Affairs Division, NATO (1969)

    Google Scholar 

  33. McIlroy, M.D., Buxton, J., Naur, P., Randell, B.: Mass-produced software components. In: Proceedings of the 1st International Conference on Software Engineering, Garmisch Pattenkirchen, Germany, pp. 88–98 (1968)

    Google Scholar 

  34. Bouzid, A., Rennyson, D.: The Art of SaaS: A Primer on the Fundamentals of Building and Running a Successful SaaS Business. Xlibris (2015)

    Google Scholar 

  35. ECMAInternational: ECMAScript 2015 Language Specification, Standard ECMA-262, 6th Edn., June 2015. http://www.ecma-international.org/ecma-262/6.0/. Accessed 22 Feb 2017

  36. ECMAInternational: ECMAScript 2016 Language Specification, Standard ECMA-262, 7th Edn., June 2016. http://www.ecma-international.org/ecma-262/7.0/. Accessed 22 Feb 2017

  37. Lautamäki, J., Nieminen, A., Koskinen, J., Aho, T., Mikkonen, T., Englund, M.: CoRED: browser-based collaborative real-time editor for Java web applications. In: Proceedings of the ACM 2012 Conference on Computer Supported Cooperative Work, pp. 1307–1316. ACM (2012)

    Google Scholar 

  38. Lupfer, N., Kerne, A., Webb, A.M., Linder, R.: Patterns of free-form curation: visual thinking with web content. In: Proceedings of the 2016 ACM on Multimedia Conference (MM 2016, Amsterdam, The Netherlands, 15–19 October 2016), pp. 12–21 (2016)

    Google Scholar 

  39. Wagner, J.L.: Web Performance in Action: Building Fast Web Pages. Manning (2016)

    Google Scholar 

  40. Leppänen, M., Mäkinen, S., Pagels, M., Eloranta, V.P., Itkonen, J., Mäntylä, M.V., Männistö, T.: The highways and country roads to continuous deployment. IEEE Softw. 32(2), 64–72 (2015)

    Article  Google Scholar 

  41. Debois, P.: DevOps: a software revolution in the making. J. Inf. Technol. Manag. 24(8), 3–39 (2011)

    Google Scholar 

  42. Olsson, H.H., Alahyari, H., Bosch, J.: Climbing the “Stairway to Heaven” - a multiple-case study exploring barriers in the transition from agile development towards continuous deployment of software. In: 2012 38th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA), pp. 392–399. IEEE (2012)

    Google Scholar 

  43. Fitzgerald, B., Stol, K.J.: Continuous software engineering: a roadmap and agenda. J. Syst. Softw. 123, 176–189 (2017)

    Article  Google Scholar 

  44. Taivalsaari, A., Mikkonen, T., Pautasso, C., Systä, K.: Comparing the built-in application architecture models in the web browser. In: 2017 IEEE International Conference on Software Architecture (ICSA), pp. 51–54. IEEE (2017)

    Google Scholar 

  45. Garrett, J.J.: Ajax: A New Approach to Web Applications, 18 February 2005. http://adaptivepath.org/ideas/ajax-new-approach-web-applications/

  46. Crane, D., McCarthy, P.: What Are Comet and Reverse Ajax? Springer (2009)

    Google Scholar 

  47. Hickson, I.: Server-Sent Events. W3C Recommendation 03 February 2015 (2015). http://www.w3.org/TR/eventsource/

  48. Pimentel, V., Nickerson, B.G.: Communicating and displaying real-time data with websocket. IEEE Int. Comput. 16(4), 45–53 (2012)

    Article  Google Scholar 

  49. Bergkvist, A., Burnett, D.C., Jennings, C., Narayanan, A.: WebRTC 1.0: Real-time Communication Between Browsers. Working draft, W3C (2012)

    Google Scholar 

  50. W3C: W3C Schools - HTML Web Workers Example. http://www.w3schools.com/html/html5_webworkers.asp

  51. Darken, R.: Breaking the mosaic mold. IEEE Int. Comput. 2(3), 97 (1998)

    Article  Google Scholar 

  52. Mesbah, A., Van Deursen, A.: Migrating multi-page web applications to single-page Ajax interfaces. In: 11th European Conference on Software Maintenance and Reengineering CSMR 2007, pp. 181–190. IEEE (2007)

    Google Scholar 

  53. Mikowski, M.S., Powell, J.C.: Single Page Web Applications: JavaScript End-to-End. Manning, Shelter Island (2013)

    Google Scholar 

  54. Jadhav, M.A., Sawant, B.R., Deshmukh, A.: Single page application using AngularJS. Int. J. Comput. Sci. Inf. Technol. 6(3), 2876–2879 (2015)

    Google Scholar 

  55. Poulson, L.D.: Developers shift to dynamic programming languages. IEEE Comput. 40(2), 12–15 (2007)

    Article  Google Scholar 

  56. Mikkonen, T., Taivalsaari, A.: Creating a mobile web application platform: the lively kernel experiences. In: Proceedings of the 24th ACM Symposium on Applied Computing (SAC 2009), Proceedings, vol. 3, pp. 177–184 (2009)

    Google Scholar 

  57. Charland, A., Leroux, B.: Mobile application development: web vs. native. Commun. ACM 54(5), 49–53 (2011)

    Article  Google Scholar 

  58. Joorabchi, M.E., Mesbah, A., Kruchten, P.: Real challenges in mobile app development. In: ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 15–24. IEEE (2013)

    Google Scholar 

  59. Dalmasso, I., Datta, S.K., Bonnet, C., Nikaein, N.: Survey, comparison and evaluation of cross platform mobile application development tools. In: 2013 9th International Wireless Communications and Mobile Computing Conference (IWCMC), pp. 323–328. IEEE (2013)

    Google Scholar 

  60. Wargo, J.M.: Apache Cordova 4 Programming. Pearson Education (2015)

    Google Scholar 

  61. Moroney, L.: Microsoft Silverlight 4 Step by Step. Microsoft Press, Redmond (2010)

    Google Scholar 

  62. Taivalsaari, A., Mikkonen, T.: The web as an application platform: the saga continues. In: 37th Euromicro Conference on Software Engineering and Advanced Applications (SEAA 2011, Oulu, Finland, 30 August–2 September 2011), pp. 170–174. IEEE Computer Society (2011)

    Google Scholar 

  63. Hartmann, B., Doorley, S., Klemmer, S.R.: Hacking, mashing, gluing: understanding opportunistic design. IEEE Pervasive Comput. 7(3), 46–54 (2008)

    Article  Google Scholar 

  64. Taivalsaari, A., Mikkonen, T.: Mashups and modularity: towards secure and reusable web applications. In: 2008 23rd IEEE/ACM International Conference on Automated Software Engineering-Workshops, ASE Workshops 2008, pp. 25–33. IEEE (2008)

    Google Scholar 

  65. Salminen, A., Mikkonen, T.: Mashups: software ecosystems for the web era. In: IWSECO@ICSOB (International Conference on Software Business), pp. 18–32 (2012)

    Google Scholar 

  66. Salminen, A., Mikkonen, T., Nyrhinen, F., Taivalsaari, A.: Developing client-side mashups: experiences, guidelines and the road ahead. In: Proceedings of 14th International Academic MindTrek Conference: Envisioning Future Media Environments, pp. 161–168. ACM (2010)

    Google Scholar 

  67. Wasik, B.: In the Programmable World, All Our Objects Will Act as One. Wired, p. 462, May 2013

    Google Scholar 

  68. Taivalsaari, A., Mikkonen, T.: Roadmap to the programmable world: software challenges in the IoT era. IEEE Softw. 34(1), 72–80 (2017)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tommi Mikkonen .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Taivalsaari, A., Mikkonen, T. (2018). Return of the Great Spaghetti Monster: Learnings from a Twelve-Year Adventure in Web Software Development. In: Majchrzak, T., Traverso, P., Krempels, KH., Monfort, V. (eds) Web Information Systems and Technologies. WEBIST 2017. Lecture Notes in Business Information Processing, vol 322. Springer, Cham. https://doi.org/10.1007/978-3-319-93527-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-93527-0_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-93526-3

  • Online ISBN: 978-3-319-93527-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics