— Your Favorite PL
Due Monday, September 09, midnight
Background Your group is to implement a project from scratch for a new customer, the College of Computer Science at Northeastern University. (Yes, they teach you how to program there but apparently they can’t produce software for their own needs. These professors ...)
The project has no connection to any pieces of the existing code base in your company, meaning you are free to choose the "best" programming language. In this day and age, programming language tends to include the entire ecosystem: include libraries, web-based library repos, IDE, community, books (like "Effective Copy and Paste from StackOverFlow") and so on. So feel free to interpret the term tightly or loosely.
Here are the project constraints. The target platform are the Linux machines provided by your customer (see Assignments, Overview). The chosen language must thus satisfy two deployment constraints: (1) the code will be deployed on the Linux lab machines of the College of Computer Science, and (2) the code should run without any real changes on your own computer/OS as well so that you have a proprietary development machine.
Additionally, it must come with support for Unix-style standard-in (STDIN) and standard-out I/O support plus dealing with tcp/ip sockets; modularity (packages, modules, functors, units); automatic unit testing (often called xyzUnit, after the original sUnit) and test coverage; reading and writing JSON, S-expressions, or XML; the ability to load code dynamically; and constructing graphical user interfaces.
Task Your task is for the two of you to choose the language, justify the choice, and write a draft memo for your manager that spells out the justification.
Formality Address your memo to your manager's manager. Use your manager's name in the "from" field of the memo. The subject is "programming language for CCIS project."
Do not put your own name on your memo. It would make your manage jealous.
Format Your memo must not exceed a single letter-format page at a 12 point font/16point base line with a 1.5in margin all around.
Delivery Deposit a PDF copy of your memo named our-teenage-heartbreak-language.pdf in a sub-directory named A in your assigned github account.
Grade Your grade will depend on satisfying the specified delivery and formatting instructions and its style, grammar, and organization. If the content is blatantly wrong, your grade will suffer, too.
Meta Background To give you an idea of how this may play out in the real world, the first task sketches out a scenario distilled from a real-life anecdote of a Software-Development graduate. It was her first task to write such a memo and she did so well that she is now on the list of 20 most influential women in IT.