Ruby and Python Seminar:
Final Paper


As you have heard me say before, We have been given permission in this class to replace our regularly scheduled final with this final paper.


The Paper is due, hard copy only, before or during the regularly scheduled final time for this class:
i.e. Monday, Dec. 17 11:00 a.m. - 1:00 p.m.

The Paper:

The title of our seminar is: Python and Ruby, will one of them become the next big thing? Currently, Java is the most widely use programming language out there. It only has about 20% of the market, but that is enough to achieve its plurality. As one can see in the image below
tcpi trends image from their site
Java has seen a slight irregular decline in the last few years from its height of more than 25% of the market three to four years ago. Moreover, the other formerly dominant languages are also in decline. This leaves the door open for a new programming language to emerge.

Therefore your thesis question is:

Will one of python or ruby be the next big thing? (and of course why or why not)

There are several related questions that you might answer in support of your answer along with a few considerations that you should address:
  1. Will there be a 'next big thing'? Or can we look for several languages to be in wide use in the next few years or so? For most of the last 40 years there has been a language which has stood out as a 'must have language'. That language changes every decade or so, but there has been that one language that you should learn in addition to the others you know. Will that be true in the next decade?
  2. There have been many who think that instead of focusing on a single language to solve all problems the way we have in the past, programming in the near future will involve two languages, a heavy duty application programming language and a lightweight scripting language. Some programs (like the game Civilization IV which uses python as its extension/modding language) already take this approach.
  3. In an early class we looked at the developing trends in computing. Any big thing is going to have to support one or more of them well.
    1. web 2.0 (computing over the network)
    2. multi-core/processing machines
    3. cheap, pervasive 3-d graphics.
  4. Moreover you all came up with several more features that you would want in a programming language including:
    1. Ease of learning
    2. Ease of Mastery (which is something entirely different)
    3. Quick development time
    4. Good development tools (editor, compiler, debugger etc - preferably integrated)
    5. Good documentation so you know what works and what doesn't
    6. Ease of implementing good security.
Of course some of these features are part of the programming language itself, and others can be added. So its worth looking around to see whats out there and what is likely to be out there soon. Your paper should address the support for each sub-bullet in list item 3 above along with at least some of the bullets in item 4. The questions in item 1 are intended to get you thinking about these trends. If you find yourself not quite sure where to start, that is a good place. If you have an idea that you already want to expound on, then go ahead.


Paper Format

Your paper should be a 10 page double spaced paper with normal margins and font sizes. (you know what I mean).

Further you should write this as an agumentitive writing paper. Set out your thesis and defend it. Use the short handout on Argumentitive writing that I've given out in class to help you understand the basic elements of an argumentitive paper.

Make sure to include a bibliography of your references. You may use either MLA or APA style for your bibliography.

Finally remember, this is not Star Wars:  Don't  trust your feeling!! Those viceral elements are of only passing importance when evaluating a language. Tell me what you think, what you believe and what you can prove.