Orca: A Single-Language Web Framework for Collaborative Development

In the last few years, the Web has been established as a platform for interactive applications. However, creating Web applications involves numerous challenges since the Web has been created to serve static content. In particular, the separation of the client- and the server-side, being only connected through the unidirectional Hypertext Transfer Protocol, forces developers to apply two programming languages including different libraries, conventions, and tools. Developers create expert knowledge by specializing on a few of all involved technologies. Consequently, the diverse knowledge of team members makes collaboration in Web development laboriously. We present the Orca framework that allows developers to work collaboratively on client-server applications in a single object-oriented programming language. Based on the Smalltalk programming language, full access to existing libraries, and a bidirectional messaging abstraction, Orca provides a consistent environment that supports common idioms and patterns in client- and server-side code. It reduces expert knowledge and the number of development tools and, thus, facilitates the collaboration of Web developers.

[1]  Randall B. Smith,et al.  Directness and liveness in the morphic user interface construction environment , 1995, UIST '95.

[2]  Steve Vinoski,et al.  Node.js: Using JavaScript to Build High-Performance Network Programs , 2010, IEEE Internet Comput..

[3]  Haining Wang,et al.  Characterizing insecure javascript practices on the web , 2009, WWW '09.

[4]  Tommi Mikkonen,et al.  Partitioning web applications between the server and the client , 2009, SAC '09.

[5]  Stéphane Ducasse,et al.  Seaside: A Flexible Environment for Building Dynamic Web Applications , 2007, IEEE Software.

[6]  Mehdi Jazayeri,et al.  Some Trends in Web Application Development , 2007, Future of Software Engineering (FOSE '07).

[7]  Adrian Holovaty,et al.  The Definitive Guide to Django: Web Development Done Right, Second Edition , 2009 .

[8]  Gustavo Alonso,et al.  Web Services: Concepts, Architectures and Applications , 2009 .

[9]  Manuel Serrano Programming web multimedia applications with hop , 2007, ACM Multimedia.

[10]  Tommi Mikkonen,et al.  Web Applications – Spaghetti Code for the 21st Century , 2008, 2008 Sixth International Conference on Software Engineering Research, Management and Applications.

[11]  Tommi Mikkonen,et al.  Transforming the web into a real application platform: new technologies, emerging trends and missing pieces , 2011, SAC.

[12]  Manuel Serrano,et al.  Hop Client-Side Compilation , 2007, Trends in Functional Programming.

[13]  W. Ackermann Zum Hilbertschen Aufbau der reellen Zahlen , 1928 .

[14]  Craig Chambers,et al.  Object, message, and performance: how they coexist in Self , 1992, Computer.

[15]  John K. Bennett,et al.  The design and implementation of distributed Smalltalk , 1987, OOPSLA '87.

[16]  Phil McCarthy,et al.  Comet and Reverse Ajax: The Next-Generation Ajax 2.0 , 2008 .

[17]  Daniel H. H. Ingalls The Lively Kernel: just for fun, let's take JavaScript seriously , 2008, DLS '08.

[18]  Dave Thomas,et al.  Agile Web Development with Rails , 2005 .

[19]  Tommi Mikkonen,et al.  Web Browser as an Application Platform , 2008, 2008 34th Euromicro Conference Software Engineering and Advanced Applications.

[20]  Tommi Mikkonen,et al.  The mashware challenge: bridging the gap between web development and software engineering , 2010, FoSER '10.

[21]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .

[22]  Michael Haupt,et al.  Type harvesting: a practical approach to obtaining typing information in dynamic programming languages , 2011, SAC '11.

[23]  Bennet S. Yee,et al.  Native Client: A Sandbox for Portable, Untrusted x86 Native Code , 2009, 2009 30th IEEE Symposium on Security and Privacy.

[24]  Derrick G. Kourie,et al.  Server-centric Web frameworks: An overview , 2008, CSUR.

[25]  Krzysztof Palacz,et al.  Lively Wiki a development environment for creating and sharing active web content , 2009, Int. Sym. Wikis.

[26]  Adrian Holovaty,et al.  The Definitive Guide to Django , 2008 .