Aquí teniu un petit script en Python (en sessió interactiva):
>>> llista1 = [('Antoni', 15), ('Pepa', 4), ('Josep', 28)]
>>> print ” “.join(’Bon dia, el/la %s té %d anys.’ % (nom, edat) for nom, edat in llista1)
Bon dia, el/la Antoni té 15 anys. Bon dia, el/la Pepa té 4 anys. Bon dia, el/la Josep té 28 anys.
Sembla molt facil, oi? Anem a provar quin sería l’equivalent en PHP…
<?PHP
$llista1 = array(
array(’Antoni’, 15),
array(’Pepa’, 4),
array(’Josep’, 28),
);
foreach($llistal1 AS $array) {
echo ‘Bon dia, el/la ‘,$array[0],’, té ‘,$array[1],’ anys. ‘;
}
?>
Caram, doncs si que ha quedat llarg, eh? I quin és més fàcil de llegir?
Bé, només volia deixar una petita tonteria ara que fa dies que no escrivia res aquí. Això sí, d’aquí poc sentireu d’algun projecte :). Vinga, així es queda el post, que es tard. Bona revetlla a tothom!
Reflexions ràpides sobre les diferencies al codi.
Si, aquesta instrucció en Python es molt potent però no deixa de ser una curiositat.
Personalment trobo horrible la indentació forçada de codi en el Python i espantós que es permeti l’ús de variables no declarades, la font de problemes més gran de tota la història de la informàtica.
I sobre l’estructura del codi en PHP… son molts anys d’escriure C i C++, i sóc un apassionat del (a==b)?x:y; i de les temudes assignacions en clàusules condicionals… Per mi sense cap mena de dubte el PHP.
I ampliem el debat… Jo que vinc del mon de desenvolupar en eines Microsoft durant molts anys (del 89 en Windows com pocs), encara crec que la guia d’estil de codi dels nois de Redmond és bona.
Per mi:
foreach($llistal1 AS $array)
{
{ - En línia inferior malgrat que la transformació en bloc a llenguatge màquina (o qualsevol metallenguatge actual) ho consideri una sola instrucció.
I les variables capitularitzades (NomVariable) i les membres declarades amb m_NomVariable.
No hi estic d’acord, trobo que la indentació de Python fa que tots els codis tinguin la mateixa estructura i s’entenguin més fàcilment; i en quant a la declaració de variables, prefereixo tenir la llibertat de triar si declarar-les o no i, a part, en PHP això és igual. Una de les coses que m’està agradant de Python és precisament la seva filosofia de “fer estàndards, però no obligar”, com ara amb les funcions privades d’una classe.
En quant al (a==b) ? x : y;, jo també en faig força ús :).
Ui, això últim deixe’m-ho per una altre discussió, perquè tampoc ens entendrem :P. Personalment no m’agrada gens això de posar el { més abaix, però aquesta és una cosa que en cada projecte és diferent; tema noms de variable, sempre les faig començar en minúscules però si hi ha més d’una paraula les següents si que comencen en majúscules.
La estructura del Python obliga a línies llarguíssimes. No estic d’acord en que suggereixi res quan el format abans de començar a programar ja et ve imposat.
Crec que és un gran llenguatge per a la gent que prové del Basic, principiants o per projectes d’àmbit reduït o toyware.
La descapitularització del primer nom en una variable és un tema que mai no he entès el per què. Tu per que ho fas?
I de fet, sigui per costum, sigui perquè hi tinc més experiència, o sigui perquè inconscientment m’agrada més, PHP encara és, i crec que continuarà sent, com a mínim durant un bon temps, el llenguatge que utilitzo per a fer pàgines web :).
Una altre opció interessant seria que es poguessin combinar els dos i així poder aprofitar les avantatges d’ambdós, ja me n’informaré.
No té perquè que les línies siguin tan llargues, pots partir-les en varies línies si les acabes amb una barra invertida (/).
Doncs jo trobo que el PHP és més fàcil. Per exemple, en PHP només hi ha l’array, en canvi en Python n’hi ha de tres tipus diferents; Python també necessita més contemplacions amb els tipus d’una variable, en PHP casi no cal ni fixar-s’hi (sí, això és bo; no dic pas que PHP no sigui bo, sinó simplement que ara que he descobert Python trobo que és un llenguatge molt més potent, llàstima que sigui tan lent…).
Quan a que les variables comencin amb caixa baixa (és a la llista d’Ubuntu.cat on va sortir aquest terme, no? :P), doncs simplement m’agrada més, i potser també és més ràpid d’escriure.
Tens raó en les variables en PHP, m’he confós :-P… El desastre en aquest aspecte és el PHP. Perdó, perdó, perdó.
Si, pots tallar les línies amb la barra, però és horrible. A mi m’agrada trinxar-les com vull.
El Python té l’encís de la immediatesa. Pots fer petites coses en moments. Però aquesta immediatesa també té el perill com ha passat que molta gent i moltes empreses “serioses” acabessin fent projectes en Visual Basic.
I els resultats de realitzar programari massa ràpid sense uns bons plantejaments son caríssims en temps estructura i diners de mantenir.
Això ho permeten aquest tipus de llenguatges.
Aprofito per posar-me on no em criden i et recomano un dels meus llibres de capçalera. “The Art of Computer Programming. Vol 3 - Searching and Sorting” de Donald E. Knuth. És un plaer per a qualsevol informàtic.
>> I els resultats de realitzar programari massa ràpid sense uns bons plantejaments son caríssims en temps estructura i diners de mantenir.
Bé, és una llibertat que dóna Python. Ningú t’obliga a fer el programa sense planejar-lo abans, però en cas de que sigui masoquista i ho vulguis fer així et deixa.
Però bé, per alguna cosa diuen que Python és un llenguatge apte per a fer prototips de programes grans.
M’apunto el llibre aquest com a possible per quan hagi acabat de llegir “Profesional Ajax”, i “Accelerated C++: Practical Programming by Example” de Andrew Koenig.