1 — Your Favorite Programming Language

Due Monday, September 10, midnight

Your group is to implement a project from scratch for a new customer. 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 and IDE.

Here are your manager’s constraints. The project’s target platform are the Linux machines provided by the College of Computer Science, which is the primary client of the software (see Projects, General). The chosen language must thus 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. The chosen IDE should make it easy to write exploratory code. In addition, the language must satisfy two deployment constraints: (1) the code will be deployed on the Linux lab machines of the College of Computer Science (think of it as the first customer), 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.

Your task is to make the choice, justify it, and write a draft memo for your manager that spells out the justification.

Formality Address your memo to your manager's manager. Use your own manager's name in the "from" field of the memo. The subject is "programming language for super-hot project."

Do not put your own name anywhere on your memo. Your manager will be jealous otherwise.

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. Your grade will depend on the memo format and its English (style, grammar, organization). If the content is blatantly wrong, your grade will suffer, too.

Delivery Deposit a PDF copy of your memo named our-teenage-heartbreak-language.pdf in a sub-directory named week1 in your assigned github account.

Note 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.