Proposals for Modular Asynchronous Web Programming: Issues and Challenges
Because of the success in the Internet technologies, traditional applications such as drawing and spreadsheet software are now provided as web applications. These modern web applications adopt asynchronous programming that provides high responsive user interactions even if an application works without multi-threading. At the same time, as the scale of these applications becomes large, modular programming becomes important because it allows developers to separate concerns, meaning that the evolution of one module does not affect other modules. However, applying asynchronous and modular programming is difficult because asynchronous programming requires uncoupling of a module into two sub-modules, which are non-intuitively connected by a callback method. The separation of the module spurs the birth of other two issues: callback spaghetti and callback hell. Some proposals have been proposed without the lack of issues about modular programming. In this paper, we compare and evaluate these proposals applying them to a non-trivial open source application development. We then present a discussion on our experience in implementing the application using these proposals. Finally, we point out challenges that this kind of proposal should overcome toward a modular programming.
KeywordsVirtual block Asynchronous programming Aspect-oriented programming
Unable to display preview. Download preview PDF.
- 2.flickr: http://www.flickr.com/
- 3.Friedman, D., Wise, D.: The Impact of Applicative Programming on Multiprocessing. Technical report (Indiana University, Bloomington. Computer Science Dept.), Indiana University, Computer Science Department (1976). http://books.google.co.jp/books?id=ZIhtHQAACAAJ
- 4.Fukuda, H., Leger, P.: A library to modularly control asynchronous executions. In: Proceedings of the 29th Annual ACM Symposium on Applied Computing (SAC 2015). ACM Press, Salamnca, April 2015 (to appear)Google Scholar
- 5.Harbulot, B., Gurd, J.R.: A join point for loops in aspectj. In: Proceedings of the 5th International Conference on Aspect-oriented Software Development, AOSD 2006, pp. 63–74. ACM, New York (2006). http://doi.acm.org/10.1145/1119655.1119666
- 6.Kiczales, G., Irwin, J., Lamping, J., Loingtier, J., Lopes, C., Maeda, C., Mendhekar, A.: Aspect oriented programming. In: Muehlhaeuser, M. (general ed.) et al. Special Issues in Object-Oriented Programming (1996)Google Scholar
- 7.Mikkonen, T., Taivalsaari, A.: Web applications - spaghetti code for the 21st century. In: Proceedings of the 2008 Sixth International Conference on Software Engineering Research, Management and Applications, SERA 2008, pp. 319–328. IEEE Computer Society, Washington, DC (2008). http://dx.doi.org/10.1109/SERA.2008.16
- 8.Ogden, M.: Callback hell. http://callbackhell.com/
- 10.Yossy:beinteractive: Flickrsphere. http://www.libspark.org/svn/as3/Thread/tags/v1.0/samples/flickrsphere/fla/FlickrSphere.html