Python is ook een lijmtaal, en dit wordt ook gestimuleerd doordat je vrij eenvoudig in C of C++ extensies kunt schrijven als je performance nodig hebt, of als je bestaande libs wilt gebruiken in je Python-applicatie.
Het grootste verschil met Perl is echter meer de ‘cultuur’. In Perl zit veel speciale syntax, veel ‘slimmigheidjes’, en er is ‘more than one way to do it’. Je kunt <statement> unless <conditie> schrijven, maar ook if (!conditie) <statement>. Zulke zaken worden in Python meestal met argusogen bekeken. Er wordt gestreefd door de ontwikkelaars om bij voorkeur één manier te hebben om iets te doen. De syntax is daarom minimalistisch, er zijn niet zulke magische variabelen als $/ en de taal laat zich zelf b.v. wel door een grammatica beschrijven.
Verder is OO bij Perl 5 nog een beetje naderhand erop gezet, en dat zie je, vind ik, aan alles. De syntax is niet erg schoon. In Python is de OO volledig geïntegreerd. Dit betekent ook dat je b.v. ints kunt subclassen, of de built-in dictionary kunt uitbreiden. (Overigens is Python niet alleen OO, Haskell-programmeurs zullen de lijst-comprehensies herkennen, en de mogelijkheid om functies als first-class citizens te gebruiken.)
Als zodanig leent Python zich denk ik ook beter voor grotere projecten, waarbij het van belang van leesbaarheid van de code (gecombineerd met eventuele rapid prototyping) groot is. Perl wordt wat dat betreft wel als ‘write only’-taal getypeerd. En dat Python ook werkt voor grote projecten moge duidelijk zijn als je ziet dat b.v. YouTube Python gebruikt, Google dit intensief doet (de maker van Python werkt ook bij Google tegenwoordig), en b.v. CERN, NASA en ESA Python gebruiken.
Overigens is er met Python (maar ook Perl) wat dat betreft ook veel wetenschappelijke software te verkijgen zoals SciPy en SymPy, wat (basis)functionaliteit vergelijkbaar met Matlab en Maple naar Python brengt. (Perl heeft PDL). Vanwege de snelle ontwikkelingsmogelijk en hoge interface is dit vaak veel gemakkelijker dan C programmeren; tegelijkertijd is de interface ook weer flexibeler dan Maple of Matlabs ingebouwde programmeertaal.
Dat maakt dingen ook voor mij een stuk duidelijker. Ik zelf was van plan on Python te leren maar ik snap niet wat jullie allemaal zo handig vinden aan de syntax? in PHP (dat kan ik wel redelijk) is de syntax heel erg veel duidelijker! In Python word zoveel gefocust op indenting en line breaks. Als je dat nou eens niet wil heb je een probleem.
In PHP is het simpeler. Indenting maakt niet uit, elke regel code eindigt met ; En elke variable begint met een $ Als je een if statement wil hebben is dat
if($foo == 1)
{
echo $foo.
}
Veel simpeler toch!
Als je tot in het extreme doortrekt, waarom dan eigenlijk nog regels? Whitespace zoals regeleinden (incusief lege regels) en indenting geeft struktuur aan code en maakt het beter leesbaar. Ook voor anderen.
Geloof me, hoe langer je zelf python'd, hoe raarder je PHP gaat vinden als taal. Daarnaast vind ik dat python veel overzichtelijker code geeft dan PHP, omdat je gewoon moet identen.
Geen last van beginnende programmeurs die hun blocks niet indenten waardoor de code compleet onleesbaar wordt.
Daarnaast is python veeeeeeeeeeeeeeeeeeeeeeeel veelzijdiger als taal dan PHP, PHP is voornamelijk voor webdev, python kan worden gebruikt voor webdev, maar ook voor desktop ui's, embedded script taal en nog veel meer.
En ja, ik kom ook van PHP/C++/Andere curly braces talen, en ja ik moest ook wennen dat python geen curly braces etc had. Maar nu ik het een tijdje doe, wil ik eigenlijk niet meer anders.
als je grote programma's maakt in python begint dat indenten toch wel heel handig te worden. Je kan zo het stuk opzoeken waarnaar je op zoek bent. De sub classes zijn veel duidelijker bijvoorbeeld. Het ziet er net uit als de reacties hier op tweakers. Verder is python veel uitgebreider dan php, je kan er van alles mee maken van games tot websites (google gebruikt veel python, bijvoorbeeld voor de help pagina's).
Het is echt een hele mooie taal om mee te beginnen.
De syntax is makkelijk en voor dat je het weet heb je al je eerste nuttige programma in elkaar zitten. Het schrijft lekker snel en de code van andere mensen is goed te lezen.
Python is een interpreted taal maar het valt ook te compileren tot .exe (of elf etc) bestanden!
[Reactie gewijzigd door c-r-all op zaterdag 4 oktober 2008 13:46]