"Da, dar macar in Java sau C++, daca vad un x = 5 voi sti clar ca trebuie sa fie undeva definit acel x anterior, cel putin voi exclude posibilitatea ca acea variabila sa fie creata exact acolo.".
Ma rog, in Perl recomandarea este ca variabilele sa fie definite anterior asa ca nu prea intampin aceasta problema, dar ma gandesc ca si daca nu ar fi asa, tot nu ar fi o problema.
Daca la un moment dat valoarea vezi ca este 5, de ce ar trebui sa te mai intereseze ce valori anterioare a avut acea variabila?
Cred ca pot aparea neclaritati doar daca codul este in general scris prost de genul "spaghetti" incat iti este greu sa iti dai seama ce valoare are la un anumit moment dat o variabila...
Cred ca problema va fi daca vei face operatiunea x / 2 care iti va da rezultatul 2 in Python 2.7.
"De asemenea, daca vad un x = 5, pot da repede o cautare dupa "int x" si vad exact unde a fost creata variabila x, daca nu gasesc cu "int x" eventual incerc cautarea si cu "double x".".
Dar tot nu inteleg la ce te ajuta. Daca vezi la un moment dat x = 5, inseamna ca x este de tip integer si ca are valoarea 5. Ce importanta are sa vezi unde a fost definita? Asta daca nu a fost creata chiar in linia in care apare x = 5.
Daca ai fi vazut x = 5.0, atunci ar fi avut un tip de valoare in virgula mobila sau daca ai fi vazut x = "5" atunci ar fi fost string.... sau nu? Intreb fiindca nu sunt specialist in Python.
"De acord, cel mai bine e ca numele variabilelor si ale functiilor sa fie cat mai descriptive, imi place ca la Java te instruiestc aia destul de bine sa procedezi astfel.".
Eu nu sunt de acord, dupa cum am dat si exemplele de mai sus cu acele variabile cu nume cat mai descriptive.
Ele au multe dintre problemele variabilelor cu nume foarte scurte si criptice. Astfel de variabile sunt dificil de folosit chiar daca folosesti un IDE ca Eclipse, fiindca multe dintre ele pot avea nume asemanatoare, nume foarte lungi, iar intre unele pot exista diferente doar de o singura litera incat poti alege incorect si dintre optiunile oferite de IDE.
Cred ca variabilele trebuie sa aiba nume descriptive doar daca acele nume pot fi relativ scurte, dintr-un cuvant sau doua - trei. Daca sunt necesare 7 cuvinte ca sa definesti o variabila, cel mai usor este sa adaugi un comentariu in care sa explici ce reprezinta, si sa ii dai un nume mai scurt.
Asta pentru ca odata ce ai inceput sa lucrezi la un program, este nevoie doar de putin timp la inceput ca sa te lamuresti despre ce reprezinta acele variabile, nu sa citesti intreaga poveste de fiecare data cand le folosesti desi deja stii foarte bine ce reprezinta.
Daca intr-un fisier ar trebui sa folosesti sute de variabile, atunci intr-adevar, ar fi dificil sa le memorezi pe toate si nu ar ajuta sa pui comentarii pentru toate, asa ca ar fi bine sa fie cat mai descriptive, insa nu este bine sa ai fisiere cu sute de variabile cand poti foarte bine sa structurezi mai bine programul si sa creezi mai multe module de dimensiuni mai mici cu mai putine variabile.
"Se pare ca va trebui sa utilizez EdSharp-ul lui Jamal Masrui, cu ala am optiunea PyBrace: apas un Alt + Shift + { si imi transforma un cod de Python in cod C-like, iar la apasarea Alt + { imi readuce codul in format indentat pentru Python.".
Eu doar am citit despre acea facilitate, dar pe de o parte nu mi-a placut niciodata nici EdSharp (si i-am spus si lui Jamal de ce), iar pe de alta parte acel stil de programare imi pare un hack foarte instabil. Daca trebuie sa lucrezi doar la un proiect intr-un limbaj care nu iti place, atunci e OK, dar sa planuiesti sa il folosesti ca pe unealta principala de programare pe termen lung... nu imi pare a fi o idee extraordinara.
Nici mie nu imi place stilul Python/Ruby care nu foloseste acolade, fiindca obisnuiesc de foarte multe ori sa selectez ce este intre o acolada si perechea ei, ca sa mut un bloc dintr-o parte in alta, sau ca sa il sterg, sau pur si simplu ca sa vad cate linii are, ca sa imi dau seama cam cat de lung este, dar din fericire nu am fost nevoit sa lucrez in ele pana acum.
Imi dau seama ca daca as fi fost vazator, probabil ca as fi apreciat mai mult aceste limbaje, fiindca as fi vazut codul in intregime asa ca nu as fi avut nevoie sa contorizez liniile ca sa vad cam cat este de mare, m-ar fi ajutat indentarea asa ca as fi apreciat obligativitatea indentarii din Python, as fi putut utiliza multe mai multe editoare care noua ne sunt mai greu accesibile care permit mai multe facilitati pentru lucrul in aceste limbaje, dar orb fiind...