Waarom Python?

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Rond 2018 had ik behoefte aan een general purpose programmeertaal, om verder te gaan waar SQL voor mij ophoudt. Ik gebruikte Bash al redelijk veel, maar ook dat heeft z'n beperkingen. De keuze is gevallen op Python.

Relevante eigenschappen van Python

  • Linux: Geschikt voor Linux. Toevallig ook voor alle andere relevante platformen, maar dat speelt voor mij amper een rol
  • Open-source: Alle belangrijke programmeertalen ter wereld, zijn tegenwoordig open-source. Ik zou heel diep moeten nadenken, voordat ik ooit nog een propriëtaire taal zou gebruiken
  • Veelzijdig: Python is van veel markten thuis. In beginsel programmeer ik veel in SQL, maar ik heb een additionele taal nodig voor de dingen waarvoor SQL niet bedoeld is. Daardoor kwam ik uit op talen zoals PHP, R, Perl en Bash. Er zijn een aanal redenen waarom Python voor mij de voorkeur heeft boven deze andere talen, en veelzijdigheid speelt een grote rol: Ik wil liever maar één additionele general-purpose taal leren. Vooral het contrast met PHP is groot. Voorbeelden:
    • Interactie met MySQL-databases waarbij MySQL-objecten ook nog eens als 'native' Python-objecten benaderd kunnen worden dankzij ORM's
    • Matrixalgebra - Python is vermoedelijk voor mij een prima vervanger van Matlab en heeft grote voordelen boven bv. R, Gnumatic en Octave
    • Statistiek, inclusief numerieke data-types met hoge significantie
    • Big data
    • Microcontrollers: Echt waar: [1]
  • Actueel: Waar PHP aan belang aan het inboeten is (begin 2019), neemt de relevantie van Python toe. Rond 2015 heeft Python Java gepasseerd als meest gebruikte programmeertaal [2]
  • Interpreted/bytecode/gecompileerd?: Ik geloof dat het standaard een geïnterpreteerde taal is, maar dat er altijd een JIT compiler naar byte-code gebruikt wordt. Dat schijnt geheel transparant te functioneren. Godzijdank: Niet wachten op een compiler. Ik denk dat je dit kunt merken, omdat een script niet wordt uitgevoerd als er een syntaxfout in zit. Geïnterpreteerde talen executeren meestal totdat ze die fout tegenkomen, maar Python executeert nix, als-ie zo'n fout tegenkomt
  • Leuke taal: Pyton is leuk om in te programmeren. Illustraties:
    • Geen verplicht karakter (zoals ; in SQL) om een commando te eindigen
    • Functionele gebruik van whitespace is handig
    • Het staat me bij dat bv. C, C++, Java of Perl, heel omslachtig werken (Perl mbt. API-toegang), maar misschien heb ik het niet lang genoeg geprobeerd. Visual Basic is propriëtair, platform-afhankelijk en een zooitje
    • PHP is inconsistent, rommelig, onhandig (bv. embedded SQL ipv. ORM's) en onveilig.

Overige kenmerken

Overige kenmerken, die handig zijn om te weten, maar voor mij minder van belang zijn:

  • Imperative: (itt. declaratief) [3]
  • Object-oriented: Volwaardig object-oriented, muv. data hiding (encapsulation)
  • Functioneel: Want functies en statements behouden geen state [4]. Dus ook geschikt voor lambda-calculus en recursie, zoals in Scheme of Algol
  • Procedureel [5].
  • High level: Dus eerder een scripttaal dan een low-level taal zoals C of assembler
  • Structured: Geen goto, maar subroutines + effectieve abstraction
  • White space: Meest opvallende kenmerk van Python: White space heeft een functie! Het wordt gebruikt voor nesting, waar andere programmeertalen bv. '{' en '}' gebruiken
  • Flexibel: Dit staat op gespannen voet met gestructureerd, maar ik denk dat ik er wel blij mee ben.