Homework 6. Comparing scripting languages

Motivation

Following up on the project, your next assignment is to evaluate JavaScript+Node.js versus one more option as alternatives to Python+Twisted for the server side of a web application W that has many simultaneous interacting users that need lots of updates. You get to choose W.

Assignment

Choose W, and do some research on Node.js as a potential framework for W. Your research should include an examination of the Node.js source code and documentation to help determine whether Node.js would be an effective way to implement W. Please base your research on Node.js v0.8.22 (dated 2013-03-06), even if a newer version comes out before the due date; that way we'll all be on the same page.

Examine Node.js's source code, and compare it to the source code of Twisted. Focus on the JavaScript part of Node.js, not the parts written in C or other languages. Look at a core part of both systems, implemented in the two different languages, and compare the strengths and weaknesses of the two approaches.

Similarly, examine another application framework that is plausible for this application. Please choose one from the list (a) Erlang/OTP, (b) EventMachine, and (c) Go. If you would like to analyze a framework other than one of these three, please check with the TA before using it.

Specify any assumptions you make in your comparison, and any gaps or incompletenesses in your analysis.

Unlike the project, we are not expecting working prototypes, though prototypes are welcome.

Write an executive summary that compares the three approaches. The summary should be in 10-point font or larger and should be at most four pages. You can put references and appendixes in later pages, if there's not enough room on four pages: the appendixes should contain the source code or diagrams for your example application. Your summary should briefly describe W, and focus on the technologies' effects on ease of use, flexibility, generality, performance, reliability. The summary should be suitable for software executives, that is, for readers who have some expertise in software, particularly in managing software developers, but who are not experts in Python or Java. Please keep the resources for written reports in mind, particularly its advice for citations to sources that you consulted.

Submit

Submit a file hw6.pdf containing your summary. If you have prototype code, submit it as a compressed tarball hw6.tar.gz in the usual way; it should include a README file that contains instructions for how to build and run the prototype.


© 2012–2013 Paul Eggert. See copying rules.
$Id: hw6.html,v 1.44 2013/03/08 06:29:17 eggert Exp $