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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 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.
Even this paper was written using the online tool Overleaf instead of a conventional, PC-based word processing application such as Microsoft Word.
- 3.
- 4.
References
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)
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)
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)
Turner, M., Budgen, D., Brereton, P.: Turning software into a service. Computer 36(10), 38–44 (2003)
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)
VisionMobile: Cloud and Desktop Developer Landscape (2016). http://www.visionmobile.com/product/cloud-and-desktop-developer-landscape/. Accessed 5 Mar 2016
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)
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)
Mikkonen, T., Taivalsaari, A.: Web Applications: Spaghetti Code for the 21st Century. Technical report TR-2007-166, Sun Microsystems Labs, June 2007
Taivalsaari, A., Mikkonen, T.: The web as a software platform: ten years later. In: WEBIST 2017, Porto, Portugal (2017)
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)
Dijkstra, E.W.: Letters to the editor: go to statement considered harmful. Commun. ACM 11(3), 147–148 (1968)
Dijkstra, E.W.: Programming: from craft to scientific discipline. In: International Computing Symposium, pp. 23–30 (1977)
Hoare, C.: Programming: sorcery or science? IEEE Softw. 1(2), 5 (1984)
Corbato, F.: Sensitive Issues in the Design of Multi-Use Systems. Technical report, DTIC Document (1968)
Parnas, D.L.: Information Distribution Aspects of Design Methodology (1971)
Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R.: Structured Programming. Academic Press Ltd., London (1972)
Parnas, D.L.: A technique for software module specification with examples. Commun. ACM 15(5), 330–336 (1972)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
Parnas, D.L.: On the design and development of program families. IEEE Trans. Softw. Eng. 1, 1–9 (1976)
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)
Parnas, D.L., Clements, P.C., Weiss, D.M.: Enhancing reusability with information hiding. Tutorial Softw. Reusability, 83–90 (1983)
Parnas, D.L., Clements, P.C.: A rational design process: how and why to fake it. IEEE Trans. Softw. Eng. 2, 251–257 (1986)
Morris Jr., J.H.: Protection in programming languages. Commun. ACM 16(1), 15–21 (1973)
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)
Liskov, B., Zilles, S.: Programming with abstract data types. In: ACM SIGPLAN Notices, vol. 9, pp. 50–59. ACM (1974)
Liskov, B., Zilles, S.: Specification techniques for data abstractions. In: ACM SIGPLAN Notices, vol. 10, pp. 72–87. ACM (1975)
Guttag, J.: Abstract data types and the development of data structures. Commun. ACM 20(6), 396–404 (1977)
Zilles, S.N.: Procedural encapsulation: a linguistic protection technique. In: ACM SIGPLAN Notices, vol. 8, pp. 142–146. ACM (1973)
Corbató, F.J.: On building systems that will fail. In: ACM Turing Award Lectures 1990. ACM (2007)
MacLennan, B.J.: Principles of Programming Languages: Design, Evaluation, and Implementation. Oxford University Press, New York (1999)
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)
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)
Bouzid, A., Rennyson, D.: The Art of SaaS: A Primer on the Fundamentals of Building and Running a Successful SaaS Business. Xlibris (2015)
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
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
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)
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)
Wagner, J.L.: Web Performance in Action: Building Fast Web Pages. Manning (2016)
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)
Debois, P.: DevOps: a software revolution in the making. J. Inf. Technol. Manag. 24(8), 3–39 (2011)
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)
Fitzgerald, B., Stol, K.J.: Continuous software engineering: a roadmap and agenda. J. Syst. Softw. 123, 176–189 (2017)
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)
Garrett, J.J.: Ajax: A New Approach to Web Applications, 18 February 2005. http://adaptivepath.org/ideas/ajax-new-approach-web-applications/
Crane, D., McCarthy, P.: What Are Comet and Reverse Ajax? Springer (2009)
Hickson, I.: Server-Sent Events. W3C Recommendation 03 February 2015 (2015). http://www.w3.org/TR/eventsource/
Pimentel, V., Nickerson, B.G.: Communicating and displaying real-time data with websocket. IEEE Int. Comput. 16(4), 45–53 (2012)
Bergkvist, A., Burnett, D.C., Jennings, C., Narayanan, A.: WebRTC 1.0: Real-time Communication Between Browsers. Working draft, W3C (2012)
W3C: W3C Schools - HTML Web Workers Example. http://www.w3schools.com/html/html5_webworkers.asp
Darken, R.: Breaking the mosaic mold. IEEE Int. Comput. 2(3), 97 (1998)
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)
Mikowski, M.S., Powell, J.C.: Single Page Web Applications: JavaScript End-to-End. Manning, Shelter Island (2013)
Jadhav, M.A., Sawant, B.R., Deshmukh, A.: Single page application using AngularJS. Int. J. Comput. Sci. Inf. Technol. 6(3), 2876–2879 (2015)
Poulson, L.D.: Developers shift to dynamic programming languages. IEEE Comput. 40(2), 12–15 (2007)
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)
Charland, A., Leroux, B.: Mobile application development: web vs. native. Commun. ACM 54(5), 49–53 (2011)
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)
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)
Wargo, J.M.: Apache Cordova 4 Programming. Pearson Education (2015)
Moroney, L.: Microsoft Silverlight 4 Step by Step. Microsoft Press, Redmond (2010)
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)
Hartmann, B., Doorley, S., Klemmer, S.R.: Hacking, mashing, gluing: understanding opportunistic design. IEEE Pervasive Comput. 7(3), 46–54 (2008)
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)
Salminen, A., Mikkonen, T.: Mashups: software ecosystems for the web era. In: IWSECO@ICSOB (International Conference on Software Business), pp. 18–32 (2012)
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)
Wasik, B.: In the Programmable World, All Our Objects Will Act as One. Wired, p. 462, May 2013
Taivalsaari, A., Mikkonen, T.: Roadmap to the programmable world: software challenges in the IoT era. IEEE Softw. 34(1), 72–80 (2017)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
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)