Off-campus ETSU users: To download "Campus Only" theses, please use the following link to log in to our proxy server with your ETSU username and password.

Non-ETSU users: Please talk to your librarian about requesting this thesis through interlibrary loan.

Degree Name

MS (Master of Science)

Program

Computer and Information Science

Date of Award

8-2001

Committee Chair or Co-Chairs

Phillip E. Pfeiffer IV

Committee Members

John D. Chenoweth, Donald Gotterbarn

Abstract

The subject of this thesis is a qualitative analysis of the usability of three contemporary programming languages: Perl, Python, and Tcl. The relative usability of these languages was assessed by implementing two representative applications — a paint program and a chat program — in all three languages; using PSP to collect data on program development; and then comparing development times, defect counts, and defect fix times.

Overall, Python was the easiest of the three languages to use, especially for new users. Perl is the hardest, and Tcl is somewhere between. Specifically,

  1. Perl's basic language constructs are the hardest to learn and to use. Python's are the easiest. Tcl's are closer to Python's.
  2. Python's and Tcl's mechanisms for supporting OO are much easier to learn for new users than Perl's.
  3. Python's Tk libraries are easier to use than Perl's and Tcl's. Tcl's [Incr Widget] (megawidgets) library is by far the hardest to master. Perl's Tk library is somewhere in between.
  4. Perl's I/O and Socket libraries are much harder to use than Python's and Tcl's.

The primary recommendations of this study are as follows:

  1. For Perl, a better OO support will reduce a significant number of OO-related defects, especially to new users.
  2. For Tcl, Tcl's [Incr Tcl] megawidget library should wrap the standard raw Tk widgets into [Incr Tk] classes, to prevent a significant number of defects from mixture uses of raw Tk widgets and [incr Tk] megawidgets classes.
  3. Tcl's eventloop mechanism is a good model for handling non-blocking sockets and I/Os. Both Perl and Python should also provide such an easy model.

Document Type

Thesis - Campus Only

Copyright

Copyright by the authors.

Share

COinS