Ruby and Python Seminar:
Final Paper
Note:
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.
Due:
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
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:
- 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?
- 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.
- 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.
- web 2.0 (computing over the network)
- multi-core/processing machines
- cheap, pervasive 3-d graphics.
- Moreover you all came up with several more features that you would want in a programming language including:
- Ease of learning
- Ease of Mastery (which is something entirely different)
- Quick development time
- Good development tools (editor, compiler, debugger etc - preferably integrated)
- Good documentation so you know what works and what doesn't
- 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.