View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Discussion 1 - Derek DeRaps

http://www.cc.gatech.edu/ugrads/d/deraps/comparison.pdf

I read a scientific article from 2000 that compared seven languages – 4 “scripting” languages: Tcl, Perl, Python, Rexx; and 3 non-scripting languages: Java, C, C++. The experimenter gathered data by offering a programming challenge to programmers who qualified and were willing to submit to the restrictions. The challenge was to create a phone number-to-text mapping - essentially to output all the different possible words that a phone number could create (i.e. 1 maps to “j”,”n”,”q”, etc.). The experiment yielded some interesting results. The experimenter found that the programs written with the scripting languages had roughly half as many lines of code and took roughly half as much time to code. There were no significant differences in reliability between any of the programming languages. The scripting languages took twice as much memory as C and C++, Java took four times as much memory as C and C++. During initialization, C and C++ run three to four times faster than Java, and five to 10 times faster than the scripting languages. During the main phase of the program, C and C++ were only about twice as fast as Java, and the scripting languages ran even faster than Java. Python and Perl were significantly faster than Rexx and Tcl. The experimenter concluded that the memory overhead of Java is huge compared to that of C and C++, but the run time efficiency is quite acceptable. The “scripting languages” are very reasonable alternatives to the “conventional” programming languages for many tasks.

The article did not go into the exact differences between each language, but some information can be gathered through inference and personal experience. Programmers are able to code faster in the "scripting" languages and write less code to accomplish the same tasks because of their dynamic nature and also because the given task (phone number to words mapping) is more suited to smaller scale languages with libraries that are geared for useful, simple tasks. The dynamic nature of the "scripting" languages slows them down because more information must be interpreted at run-time.

Arcadiy Kantor's article talks about the uses of object oriented programming and the direction that new programming languages should be heading. To quote Arcadiy, "'Conscious consideration of support for flexible generics can improve the ability of these languages to express modular and reusable program components.' It is this goal which would undoubtedly ease the burden on programmers." I propose that, according to the findings of the experiment I just reviewed, the "scripting" languages such as Python (and an unreviewed language called Ruby) are at the forefront of that change - make coding easier on programmers and making them more productive.

Links to this Page