Language performance and productivity: Python versus C, C++ and Java

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
School of Science | Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author
Date
2010
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
[10] + 78
Series
Abstract
Python is a very high-level general purpose programming language suitable for rapid prototyping as well as software development in general. It is said to be a clean and simple language that can significantly improve programmer productivity. This thesis compares the performance and productivity of Python to lower level languages often used for application programming. These languages are C, C++ and Java. The comparison is done using a set of small test programs implemented m each language. The tests include several different versions of Python and some experimental technologies that can improve the runtime performance of Python code. The work also provides a brief overview of the languages tested and the details of the official Python interpreter implementation. A survey of earlier research related to the performance and productivity of these languages is presented to support the test results. The experimental results show that the performance of plain Python code is far from the levels that C, C++ and Java reach m computationally demanding tasks. When efficient library routines and the powerful built-in operations in the language are used, Python can provide competitive results. The performance gap between the languages can be narrowed significantly by using techniques such as just-in-time compilation. The results also support the claims that Python is a more productive language than C, C++ or Java.

Python on yleiskäyttöinen hyvin korkean tason ohjelmointikieli, joka soveltuu nopeaan prototyypitykseen kuten myös ohjelmistokehitykseen yleisesti. Sen sanotaan olevan selkeä ja yksinkertainen kieli, joka voi merkittävästi parantaa ohjelmoijan tuottavuutta. Tämä diplomityö vertaa Pythonin tehokkuutta ja tuottavuutta matalamman tason kieliin, joita usein käytetään sovellusohjelmointiin. Nämä kielet ovat C, C++ ja Java. Vertailu suoritetaan käyttäen joukkoa pieniä testiohjelmia, jotka on toteutettu kullakin kielellä. Testeissä on mukana useita eri versioita Pythonista sekä joitakin kokeellisia tekniikoita, jotka voivat parantaa Python-koodin ajonaikaista tehokkuutta. Työ tarjoaa myös lyhyen yleiskuvan testattavista kielistä ja virallisen Python tulkin toteutuksen yksityiskohdista. Katsaus aiempiin tutkimuksiin, jotka liittyvät näiden kielten tehokkuuteen ja tuottavuuteen, esitetään testitulosten tueksi. Kokeelliset tulokset osoittavat, että tavallisen Python-koodin tehokkuus on kaukana tasoilta, joille C, C++ ja Java yltävät laskennallisesti vaativissa tehtävissä. Kun suorituskykyisiä kirjastorutiineja ja tehokkaita kieleen sisällytettyjä toimintoja käytetään, Python voi tarjota kilpailukykyisiä tuloksia. Kielten välisiä tehokkuuseroja pystytään kaventamaan merkittävästi käyttämällä tekniikoita kuten ajonaikainen kääntäminen. Tulokset tukevat myös väitteitä, joiden mukaan Python on tuottavampi kieli kuin C, C++ tai Java.
Description
Supervisor
Malmi, Lauri
Thesis advisor
Honkanen, Mika
Keywords
Python, Python, programming language, ohjelmointikieli, performance, tehokkuus, productivity, tuottavuus, benchmark, benchmark
Other note
Citation