vrijdag 5 februari 2010

Eerste ervaringen met Python

Al ruim tien jaar maak ik regelmatig gebruik van de scripttaal Perl. Ideaal om tekstbestanden te analyseren, voor dynamische webpagina's en om repetitieve taken te automatiseren. Perl voldoet aan mijn behoeften en ik kan er goed mee uit de voeten.

Maar sinds een paar jaar zie ik steeds meer Python gebruikt worden. Ik heb dat steeds genegeerd, want Perl voldeed en waarom zou je jezelf belasten met de zoveelste programmeertaal? Maar voorstanders beweren dat het zo'n elegante, 'schone' programmeertaal is. Zeker in vergelijking met Perl. En dat kwam me niet onwaarschijnlijk voor, want de 'P' in Perl staat voor 'Practical' (soms op het lompe af).

Onlangs kwam ik de Google App Engine tegen. Een omgeving om web services op te laten draaien. De omgeving ondersteunt Java en... Python. Ook Java beheers ik, maar tot-nu-toe heb ik slechte ervaringen met Java als web-taal.

Dus nu waren er twee dingen die ik uit wilde proberen en werd het tijd om eens met de slang te gaan worstelen. Gelukkig blijken er uitstekende handleidingen beschikbaar te zijn, waaruit ik Dive Into Python heb gekozen. Na het doorwerken van deze handleiding kom ik tot de volgende eerste indrukken:
  • sterke punten van Python
    • Python maakt gebruik van indentation in plaats van haakjes om blokken aan te geven. Dat heeft fanatieke voor- en tegenstanders, en ik vind het prettig.
    • Python functies gaan net als Tcl veel netter om met parameters (named en met defaults). Dit is in Perl erg omslachtig en voor mij een voortdurende ergernis.
    • In Python is alles net als in Java een Object. Dat betekent dat je bijvoorbeeld het akelige Perl-onderscheid tussen scalars en refs kwijt bent.
    • In Perl worden scalars, arrays en hashes van elkaar onderscheiden door $, @ en # voor de variabelenaam te zetten. Python heeft dat niet en oogt daardoor veel schoner.
    • Python kent net als C++ operator overloading, wat de code leesbaarder maakt.
    • Python ondersteunt multiple inheritance. Een groot risico, maar erg krachtig als goed gebruikt.
  • zwakke punten van Python
    • Ik moet weer een nieuwe taal (en vooral nieuwe bibliotheken) leren
    • In Perl kan je aan de variabele naam zien of je met een scalar, array of hash te maken hebt. Dit is soms handig (maar oogt rommelig, zie hierboven).
Het komt dus vooral neer op persoonlijke voorkeuren en wat je al kent. Maar mijn eerste indruk is toch dat Python inderdaad eleganter en schoner is dan Perl. Dus gaan we maar eens een eerste toepassing in Python in elkaar knutselen.

Later meer.

Geen opmerkingen:

Een reactie plaatsen