Following up on the project, your next assignment is to evaluate JavaScript and Node.js as an alternative to Twisted for building application server herds.
Do some research on Node.js as a potential framework for this kind of application. 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 an application server herd. Please base your research on Node.js v0.8.15 (dated 2012-11-26), 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 to 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.
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 two approaches. The summary should be in 10-point font or larger and should be at most three pages. You can put references and appendixes on a later pages, if there's not enough room on three pages: the appendixes should contain the source code or diagrams for your example application. Your summary should 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 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.