{"id":{"repo_id":"etsu","oai_identifier":"oai:dc.etsu.edu:etd-1109"},"canonical_url":"https://search.dev.ndltd.org/etd/etsu/oai:dc.etsu.edu:etd-1109","repository":{"repo_id":"etsu","name":"East Tennessee State University","base_url":"https://dc.etsu.edu/do/oai/"},"display":{"title":"Qualitative Analysis of the Usability of Three Contemporary Scripting Languages: Perl, Python and Tcl.","abstract":"<p>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.</p> <p>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,</p> <ol> <li>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.</li> <li>Python's and Tcl's mechanisms for supporting OO are much easier to learn for new users than Perl's.</li> <li>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.</li> <li>Perl's I/O and Socket libraries are much harder to use than Python's and Tcl's.</li> </ol> <p>The primary recommendations of this study are as follows:</p> <ol> <li>For Perl, a better OO support will reduce a significant number of OO-related defects, especially to new users.</li> <li>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.</li> <li>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.</li> </ol>","abstract_html":"&lt;p&gt;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.&lt;/p&gt; &lt;p&gt;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,&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Perl&#x27;s basic language constructs are the hardest to learn and to use. Python&#x27;s are the easiest. Tcl&#x27;s are closer to Python&#x27;s.&lt;/li&gt; &lt;li&gt;Python&#x27;s and Tcl&#x27;s mechanisms for supporting OO are much easier to learn for new users than Perl&#x27;s.&lt;/li&gt; &lt;li&gt;Python&#x27;s Tk libraries are easier to use than Perl&#x27;s and Tcl&#x27;s. Tcl&#x27;s [Incr Widget] (megawidgets) library is by far the hardest to master. Perl&#x27;s Tk library is somewhere in between.&lt;/li&gt; &lt;li&gt;Perl&#x27;s I/O and Socket libraries are much harder to use than Python&#x27;s and Tcl&#x27;s.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;The primary recommendations of this study are as follows:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;For Perl, a better OO support will reduce a significant number of OO-related defects, especially to new users.&lt;/li&gt; &lt;li&gt;For Tcl, Tcl&#x27;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.&lt;/li&gt; &lt;li&gt;Tcl&#x27;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.&lt;/li&gt; &lt;/ol&gt;","abstract_has_math":false,"creators":["Wang, Lingyun"],"institution":null,"degree_name":"MS (Master of Science)","degree_level":"Thesis - restricted","degree_discipline":"Computer and Information Science","degree_department":null,"school":null,"contributors":[],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2001,"date_issued":"2001-08-01T07:00:00Z","date_published":"2001-08-01T07:00:00Z","updated_at":"2026-07-24T02:18:50Z","subjects":["Usability","Perl","Python","Defect","PSP","Scripting Languages","Tcl","Computer Sciences","Physical Sciences and Mathematics"],"languages":[],"rights":["Copyright by the authors."],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://dc.etsu.edu/etd/59","outbound_label":"Repository record","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:creator","label":"Author","values":["Wang, Lingyun"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.available","label":"Dc Date Available","values":["1990-01-01T08:00:00Z"]},{"key":"dc:date.issued","label":"Date","values":["2001-08-01T07:00:00Z"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer and Information Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Thesis - restricted"]},{"key":"thesis:degree_name","label":"Degree Name","values":["MS (Master of Science)"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Usability","Perl","Python","Defect","PSP","Scripting Languages","Tcl","Computer Sciences","Physical Sciences and Mathematics"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:rights","label":"Dc Rights","values":["Copyright by the authors."]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["https://dc.etsu.edu/context/etd/article/1109/viewcontent/Wang7242001.pdf","https://dc.etsu.edu/etd/59"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["<p>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.</p> <p>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,</p> <ol> <li>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.</li> <li>Python's and Tcl's mechanisms for supporting OO are much easier to learn for new users than Perl's.</li> <li>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.</li> <li>Perl's I/O and Socket libraries are much harder to use than Python's and Tcl's.</li> </ol> <p>The primary recommendations of this study are as follows:</p> <ol> <li>For Perl, a better OO support will reduce a significant number of OO-related defects, especially to new users.</li> <li>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.</li> <li>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.</li> </ol>"]},{"key":"dc:title","label":"Title","values":["Qualitative Analysis of the Usability of Three Contemporary Scripting Languages: Perl, Python and Tcl."]}]}],"canonical_facts":{"dc:creator":["Wang, Lingyun"],"dc:date.available":["1990-01-01T08:00:00Z"],"dc:date.issued":["2001-08-01T07:00:00Z"],"dc:description.abstract":["<p>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.</p> <p>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,</p> <ol> <li>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.</li> <li>Python's and Tcl's mechanisms for supporting OO are much easier to learn for new users than Perl's.</li> <li>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.</li> <li>Perl's I/O and Socket libraries are much harder to use than Python's and Tcl's.</li> </ol> <p>The primary recommendations of this study are as follows:</p> <ol> <li>For Perl, a better OO support will reduce a significant number of OO-related defects, especially to new users.</li> <li>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.</li> <li>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.</li> </ol>"],"dc:identifier":["https://dc.etsu.edu/context/etd/article/1109/viewcontent/Wang7242001.pdf","https://dc.etsu.edu/etd/59"],"dc:rights":["Copyright by the authors."],"dc:subject":["Usability","Perl","Python","Defect","PSP","Scripting Languages","Tcl","Computer Sciences","Physical Sciences and Mathematics"],"dc:title":["Qualitative Analysis of the Usability of Three Contemporary Scripting Languages: Perl, Python and Tcl."],"thesis:degree_discipline":["Computer and Information Science"],"thesis:degree_level":["Thesis - restricted"],"thesis:degree_name":["MS (Master of Science)"]},"updated_at":"2026-07-24T02:18:50Z"}