A Pythonról           
Daróczy Péter, h, 2006-09-18 08:36

A Pythonról

A Python egy portábilis, dinamikus, bővíthető, ingyenes nyelv, ami lehetővé teszi a programozás moduláris és objektum orientált megközelítését. 1989 óta fejleszti Guido van Rossum és számos önkéntes.

guido.png

Guido van Rossum a Python nyelv megalkotója

A nyelv jellemzői

  • A Python portábilis nemcsak különböző Unix változatokra, hanem MacOS, BeOS,
    NeXTStep, MS-DOS és különböző Windows változatokra is. Egy új fordítót írtak Java-ban - Jpython-nak hívják - ami Java bytekódot hoz létre.
  • Egyaránt megfelel néhányszor tízsoros scripteknek és több tízezer soros komplex projekteknek
  • Szintaxisa nagyon egyszerű, fejlett adattípusokat kombinál (listákat, szótárakat, ...) Nagyon tömör, ugyanakkor jól olvasható programok írhatók vele. Az azonos funkciójú C és C++ (vagy éppen Java) program hosszának gyakran a harmada-ötöde az egyenértékű (bőségesen kommentált és a standard szabályoknak megfelelően prezentált) Python program, ami általában 5-10-szer rövidebb fejlesztési időt és lényegesen egyszerűbb karbantartást jelent.
  • A programozó beavatkozása nélkül kezeli az erőforrásokat (memória, filehandlerek, ...) egy hivatkozás számláló mechanizmus segítségével (ami hasonlít egy "szemétgyűjtő" -höz (garbage collector), de különbözik attól).
  • A Pythonban nincsenek pointerek.
  • A Python (opcionálisan) többszálú (multi-thread).
  • Objektum orientált. Támogatja a többszörös öröklést és az operátor overloading-ot. Objektummodelljében - a C++ terminológiát használva - minden metódus virtuális.
  • A Pythonba - mint a Javaba vagy a C++ újabb verzióiba - egy kivételkezelő rendszer van beépítve, ami lényegesen leegyszerűsíti a hibakezelést.
  • A Python dinamikus (az interpreter ki tud értékelni Python kifejezéseket és utasításokat tartalmazó karakterláncokat), ortogonális (kevés fogalommal nagyszámú konstrukció írható le), reflektív (támogatja a metaprogramozást (például a végrehajtás során képes attribútumokat vagy metódusokat hozzáadni/eltávolítani egy objektumhoz/ból, vagy éppen megváltoztatni az osztályt)) és introspektív (számos fejlesztő eszköz - mint a debugger és a profiler - magában a Pythonban van implementálva).
  • A Python dinamikus típusadású, mint a Scheme vagy a SmallTalk. A programozó által manipulált minden objektumnak a programvégrehajtáskor jól meghatározott típusa van, amit nem kell előre definiálni.
  • Jelenleg két implementációja van. Az egyik interpretált, melyben a programok portábilis utasításokra vannak lefordítva, majd egy virtuális gép hajtja őket végre (mint a Java esetében, azonban van egy lényeges különbség: mivel a Java statikus típusadású, ezért jóval egyszerűbb egy Java-program végrehajtásának a felgyorsítása, mint egy Python programé). A másik implementáció közvetlenül Java bytekódot generál.
  • Bővíthető : mint a Tcl -t vagy a Guile -t, a Pythont könnyen illeszthetjük már meglévő C könyvtárakhoz. Felhasználhatjuk komplex programnyelvek bővítő nyelveként.
  • A standard Python könyvtár és a kiegészítő package-ek változatos szolgáltatásokat tesznek hozzáférhetővé : stringek és reguláris kifejezések, standard UNIX szolgáltatások (fileok, pipe-ok, jelek, socketek, szálak, ...), internet protokolok (Web, News, FTP, CGI, HTML...), állandóság (persistence), adatbázisok és grafikus interface-ek.
  • A Python folyamatosan fejlődő nyelv, ami mögött lelkes felhasználók és fejlesztők közössége áll, akiknek többsége támogatja a szabad szoftvereket. A nyelv alkotója által C-ben írt és karbantartott interpreterrel párhuzamosan egy másik, Javaban írt interpretert is fejlesztenek.
  • Végül a Python egy XML kezelésére alkalmas nyelv.

Idézet Gérard Swinnen : Tanuljunk meg programozni Python nyelven című könyvéből