Orca: a Single-Language Web Framework for Collaborative Development

Orca: a Single-Language Web Framework for Collaborative Development

2012 10th International Conference on Creating, Connecting and Collaborating through Computing Orca: A Single-language Web Framework for Collaborative Development Lauritz Thamsen∗, Anton Gulenko∗, David A. Thomas Michael Perscheid†, Robert Krahn†, and Robert Hirschfeld† Bedarra Research Labs Software Architecture Group Ontario, Canada Hasso Plattner Institute [email protected] University of Potsdam, Germany ∗{firstname.lastname}@student.hpi.uni-potsdam.de †{firstname.lastname}@hpi.uni-potsdam.de Abstract— as well as the functionality and interfaces of two standard In the last few years, the Web has been established as a libraries. These development practices force developers to platform for interactive applications. However, creating Web mix functional, procedural, and declarative development styles applications involves numerous challenges since the Web has been created to serve static content. In particular, the separation of in their application sources, which considerably reduces the the client- and the server-side, being only connected through the readability of their implementations [5]. unidirectional Hypertext Transfer Protocol, forces developers to The duality of programming languages and the multitude of apply two programming languages including different libraries, applied technologies unavoidably lead to distinct and heteroge- conventions, and tools. Developers create expert knowledge by nous code bases, vocabularies, development practices, and, specializing on a few of all involved technologies. Consequently, the diverse knowledge of team members makes collaboration in thereby, expert knowledge. For these reasons, development Web development laboriously. teams become inflexible and the collaboration while devel- We present the Orca framework that allows developers to oping a single Web application becomes difficult. work collaboratively on client-server applications in a single We present the Orca framework that allows developers to object-oriented programming language. Based on the Smalltalk work collaboratively on all aspects of Web applications in a programming language, full access to existing libraries, and a single object-oriented language. Orca reduces the dominant bidirectional messaging abstraction, Orca provides a consistent environment that supports common idioms and patterns in client- difference between client and server by letting developers and server-side code. It reduces expert knowledge and the num- describe client parts, server functionality, and client-server ber of development tools and, thus, facilitates the collaboration communication in the language and development environment of Web developers. of the server. Our Smalltalk/Squeak [6] implementation au- Keywords-Collaborative Web Development, Orca, Smalltalk, tomatically translates client-side parts of the Web application JavaScript into readable JavaScript code. For these translated parts, it provides a client-side runtime, access to JavaScript libraries I. INTRODUCTION within Smalltalk, and transparent message passing between From its beginnings, the Web has evolved from a system client and server. Thus, developers can express complete for serving static documents to a platform for deploying applications in a single programming language and teams are interactive applications. To support this evolution, numerous able to share not only a homogenous code base and tools, but technologies have been developed to leverage the original ar- also knowledge in a consistent vocabulary. chitecture of the Web. As of today, servers provide services [1], The contributions of this paper are as follows: clients run self-supporting systems and display interactive user • A Web framework that allows to program both the interfaces [2], and polling idioms allow servers to send data client- and the server-side in a single object-oriented spontaneously to clients [3]. programming language and development environment However, the Web’s distinction between the client- and the (Section III, IV). server-side renders Web development more complicated than • A Smalltalk-to-JavaScript translator that automatically necessary. For example, the communication between the two generates readable code and a client-side environment parts is often uniquely implemented for a specific application, that permits access to language features and existing since there is no broadly established way to expose Web appli- libraries of both languages (Section V-A). cation interfaces without exposing implementation details [4]. • A bidirectional messaging abstraction that enables objects Further, developers combine numerous Web technologies such on clients and the server to communicate transparently as scripting languages, frameworks, database mappers, com- (Section V-B). munication protocols, and graphical markup languages. De- The remainder of this paper is organized as follows. Sec- velopers need to remember syntactic and semantic differences tion II illustrates the challenges of Web development in teams. 978-0-7695-4672-8/12 $26.00 © 2012 IEEE 45 DOI 10.1109/C5.2012.9 Section III introduces our Orca framework, while Section IV demonstrates all aspects of a typical Web application as it shows an example application. Section V describes Orca’s is interactive and collaborative [9]. Second, although teams implementation. Section VI evaluates our approach based on apply popular Web frameworks as Ruby on Rails [10] and the example application. Section VII discusses related work, Django [11] that claim to alleviate Web development, these while Section VIII concludes this paper. frameworks do not reduce the number of necessary tech- nologies. Client-side developers are still using JavaScript, II. CHALLENGES IN WEB DEVELOPMENT while the server-side language is called from within HTML We describe the development of a chat application by a team templates, forcing client and server developers to mix up their of programmers to demonstrate why Web development today implementations. is more challenging than it should be. The chat application Even though development of Web applications is special in allows users to type in their names and to send notes to other that it is tied to the Web’s technology stack with JavaScript, participants. These interactions trigger dynamic updates of the HTML, and CSS on the client-side and HTTP for client- browser’s user interface. server communication, these technologies can be abstracted. The development team confronted with the task of imple- A unified and object-oriented solution for Web development menting this application has to apply various technologies. can render the direct application of the unidirectional commu- They express the user interface using HTML, CSS, and nication protocol, graphical markups, and two programming JavaScript and implement the server functionality of chat languages unnecessary while providing full access to libraries message distribution in an additional language. on client and server. Although this server-side language can be chosen freely, the III. THE ORCA FRAMEWORK team does not use JavaScript for this task, because JavaScript has some problematic features [7]. For example, there are The Orca Web framework strives to reduce the difficulties of implicit global variable definitions, equality relationships that conventional Web development. It allows the development of are not transitive, automatic type conversion for values that all aspects of Web applications in a single language to increase are neither equal nor identical, and four distinct function the consistency of implementations. Although using multiple invocation patterns. If developers write JavaScript by hand, languages can alleviate programming of applications if specific they can accidentally inject security threats [8]. Nevertheless, languages are chosen for their eligibility as, for example, the team has to describe the client-side in JavaScript to allow Domain Specific Languages (DSLs), the languages of the Web the chat application to run in any browser. Further, the team are either general purpose as JavaScript or no longer applied directly applies the unidirectional Hypertext Transfer Protocol as originally intended as HTML and CSS [12]. Therefore, (HTTP) to transfer notes to the server. Orca solely relies on the Squeak/Smalltalk language. Using Spreading implementations across these technologies ren- Smalltalk avoids the aforementiond ambigious features of ders the development of the example complicated and la- JavaScript. borious. Developing Web applications using two different Development in a single language should not restrict devel- programming languages has several drawbacks as there are opers in expressing client-side programs. This is important differences in syntax, semantics, object models, means of mod- since executing logic on client-side can increase interface ularization, and standard libraries. The developers have to deal responsiveness and reduce network reliance [13]. Therefore, with this duality of languages either individually or by splitting Orca does not apply markup generation or wrappers for up into client- and server-side teams. When they decide not JavaScript libraries, but allows the expression of arbitrary to split up according to technologies, each developer has to client-side code in Smalltalk. constantly switch between languages. Splitting up, however, inevitably leads to expert knowledge as each programmer works with a subset of all involved technologies—the team becomes more dependent on individual developers. Client- and server-side developers

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us