"Intr-adevar, asta ar fi trebuit sa fie un thread de utilizatori. Mereu cand vad afirmatii old school gen doar linia de comanda e buna, open source e superior, windows e naspa, limbajele stronglhy typed nu sunt bune etc, zic sa nu ma bag, si totusi nu rezist tentatiei.".
Asta inseamna ca chiar nu ai inteles nimic din ce am discutat pana acum sau cu rea vointa spui ca eu am spus ceea ce nu am spus.
In primul rand nu am spus niciodata ca doar linia de comanda este buna.
Ba chiar dimpotriva, ti-am spus ca eu nu folosesc un editor in linia de comanda, ci programe cu interfata grafica, si inca sub Windows.
Ba chiar am spus si despre limbajele de programare, ca pentru anumite domenii sunt de preferat cele ca Java/C# si nu PHP/Perl/Ruby/Python.
Sau ma insel?
De asemenea, nu am spus niciodata ca open source este superior, fiindca ar fi o generalizare prosteasca.
Anumite programe open source sunt mai bune decat altele proprietare in anumite domenii si mai proaste in alte domenii, asa ca depinde de ceea ce ai nevoie.
Si cred ca nu ai inteles gresit asta, fiindca am spus de multe ori ca preferinta pentru un limbaj sau program depinde de nevoile fiecaruia.
Nu am spus nici ca Windows e nashpa in toate privintele, ci am aratat care sunt punctele lui slabe.
"IonPop: Mie afirmatia ta legata de visual studio nu mi s-a parut legata de discutia anterioara cu linia de comanda. Eu am raspuns strict legat de programarea grafica, aratand ca este posibila si utilizata atat de vazatori, cat si de nevazatori. de Cazurile de utilizare pe care le-ai mentionat nu am avut nevoie niciodata, asa ca nu pot vorbi despre ele.".
Atunci inseamna ca ai facut, probabil neintentionat, o greseala stupida care pe mine ma enerveaza intotdeauna, raspunzand la o problema de genul "este greu sa fac un program care sa faca cutare lucru" cu un raspuns de genul "pai atunci fa-te avocat".
Pe unele liste de discutii apare cateodata cineva care arata o bucata de cod si care spune ca nu ii functioneaza OK, ca are cutare probleme cu respectivul program, si apare cineva care ii spune ceva de genul "Aa, folosesti Windows? Pai ala e un sistem nashpa. Foloseste Linux si va functiona OK programul".
De parca asta chiar ar fi o solutie. Poate ca cel care a pus intrebarea are un intreg sistem din care acel program este doar o mica particica, si probabil ca el are cunostinte in lucrul sub Windows si cu respectivul limbaj pe care le-a dobandit in multi ani, si vine unul sa ii spuna ca exista o alta solutie, de a folosi Linux, doar fiindca a aparut o singura problema intr-un program.
Exact asta ai facut tu cand am aratat cateva din neajunsurile Windows-ului legate de linia de comanda, iar tu imi recomanzi sa folosesc un sistem bazat pe interfata grafica, de parca asta ar fi o solutie.
Si asta doar fiindca linia de comanda din Windows nu are atat de multe facilitati ca cea din Linux/Mac.
Ce sa fac cu un program care are interfata grafica daca el trebuie sa ruleze automat la anumite ore prestabilite, sa preia date dintr-o baza de date, sa le proceseze si sa le introduca intr-o alta baza de date si sa le trimita apoi spre un alt program care sa le proceseze din nou si sa le trimita prin email? Asta ca un exemplu, desi exista nevoi mult mai complexe de atat.
La ce ar folosi o interfata grafica? Cum ar trebui sa trimit parametrii automat catre program daca nu ca parametrii in linia de comanda?
Daca spui ca nu ai avut niciodata nevoie de cazurile despre care am spus, atunci cum poti sa sti ca pentru asa ceva utilizarea unor programe cu interfata grafica este o alternativa?
Nu este bine sa vorbesti si sa le recomanzi altora ceva despre care spui ca nu sti, fiindca ii induci in eroare.
"Cazul tau cu sollo programmer este in minoritate, indraznesc sa afirm ca multi nevazatori pot fi interesati de programare pentru a avea o cariera intr-o firma, de aia am mentionat clar ca eu nu ma refer la costurile dezvoltarii personale, ci la programare in general, angajat sau acasa, fara restrictii. Strict tehnologie.".
Cred ca e cam nonsens ce ai spus mai sus, sau nu am inteles eu bine?
Ai spus "nu ma refer la costurile dezvoltarii personale", dar apoi si "angajat sau acasa".
Pai daca exista si varianta "acasa" atunci ea se refera strict la o dezvoltare in scop cat se poate de personal, fiindca banuiesc ca nu te referi la dezvoltarea acasa, dar intr-o echipa.
Si imi pare ca faci si prezumtii fara sa fi in cunostinta de cauza.
Si eu lucrez intr-o firma unde folosesc tot Perl, si am creat cu Perl si programe care ruleaza automat fara o interfata grafica, si programe pe care le rulez in linia de comanda, si programe cu interfata grafica folosite de clienti, de colegii de la contabilitate, si doua site-uri web ale firmei.
Dar tot datorita posibilitatii de a rula programele in linia de comanda si de la distanta, am putut si sa lucrez o perioada de la distanta pentru o firma dintr-o alta tara, ceea ce nu ar fi fost posibil daca as fi putut folosi doar o interfata grafica.
Si tot datorita posibilitatii de a lucra in linia de comanda pot si sa administrez un site de la distanta, un site care nu costa la fel de mult ca unul pe care as rula Windows.
Deci posibilitatea de a lucra in linia de comanda si facilitatile oferite in acest sens de sistemul de operare sunt importante, fiindca interfata grafica nu este o solutie pentru toate cum vrei tu sa arati.
Este cat se poate de bine ca din August ai un job la Reea, si eu personal ma bucur ori de cate ori un programator orb isi gaseste de lucru in Romania, fiindca inseamna ca trendul este de acceptare a orbilor in acest domeniu, si este foarte bine ca acolo poti folosi DotNet, dar cred ca ar trebui sa ai o atitudine mai deschisa si sa nu consideri ca doar ce ai invatat tu la scoala este cool, iar restul nu este bun doar fiindca tu nu ai avut nevoie si nu ai lucrat cu altceva dupa cum ne-ai spus.
"Tu zici:
"
Eu nu sunt firma nationala sau internationala care sa aiba fonduri mari pentru gazduire si nici nu am nevoie de un limbaj super standardizat pe care sa il poata intelege usor un incepator, ca sa nu am probleme cand vreau sa angajez noi membrii in echipa si sa imi fie usor sa ii gasesc, si ieftin, ci am nevoie de un limbaj in care pot programa cat de rapid posibil, eu singur si cu care sa pot crea programe a caror gazduire costa cat de putin posibil, iar Dotnet nici nu intra in discutie pentru asa
"
Eu iti zic ca afirmatiile tale cum ca doar firmele mari, alea internationale, cu fonduri, care au nevoie de limbaje standadizate, au nevoie de DotNet, sunt enormitati, iar tu vii si te comporti ca si cum eu, nu tu, as fi zis ca doar firmele mari au nevoie de DotNet, si iti alegi strategic firme mari care nu folosesc.".
In primul rand tu ai spus: "Zici ca DotNet nu e solutie pentru ca nu e portabila sub Linux, iar gazduirea pe Windows nu e rentabila. Eu, si toate firmele nationale si internationale care fac hosting si development pe Windows, te contrazic."..
Iar eu ti-am spus ca eu nu sunt firma nationala sau internationala.
Mi-ar fi placut sa vad mai multe exemple de site-uri ale unor persoane fizice care folosesc DotNet, ca o dovada ca gazduirea sub Windows si cu DotNet este rentabila si pentru ele, fiindca altfel comparam mere cu pere.
Eu iti spun de ce consider ca Windows are o problema pentru mine personal, iar tu imi spui ca exista alte solutii folosite de firme nationale si multinationale.
Iar in al doilea rand, nu am ales strategic acele firme, ci am ales cele mai mari firme in domeniul iT, si se pare ca ele nu prea folosesc DotNet.
Insa tot nu ne-ai dat exemple de alte firme importante in domeniul iT care sa foloseasca DotNet...
"
Poti enumera cateva limbaje din acestea... "multe"?
Bineinteles, in afara de PHP, despre care... mai bine sa nu vorbim.
"
)
Asta e tare. E ca si cum ai zice zi-mi si mie ce au facut nazistii rau, dar sa nu cumva sa imi pomenesti de tigani si evrei.
Php e principalul reprezentant al limbajelor astea dinamice, eel e cel mai important. Probabil e chiar cel mai folosit limbaj din lume, deci, statistic, oamenii au cea mai mare sansa sa se loveasca de problema asta la el. Asta e filosofia limbajelor dinamice, te lasam sa faci tu ce vrei, ca sa faci mai repede. Daca ai facut o tampenie, nasol tata, descurca-te.De acord, sunt jde mii de extensii si chestii care se pot folosi daca vrei sa ai un standard, dar problema e ca nu se folosesc. Si ai de lucrat cu codul unuia care a scris si stie el in capul lui ce se intapmla si cum, dar cand vezi codul nu intelegi nimic. La strong dyping nu o sa intalnesti niciodata asa ceva. Oricat ai vrea, nu poti obscura un program. Compilatorul te forteaza sa fii clar, ca sa inteleaga oricine ce ai vrut sa faci acolo.
Am scris cod in php, python si javascript, si in toate am avut o gramada de erori din cauza asta.
In Lua e la fel cu variabilele null, si nici javascript nu sta prea bine.".
Inseamna ca nu ai avut de corectat prea mult cod in Java scris de altii, ca sa vezi cat de standard este...
Daca programul foloseste doar clase si metode din distributia standard a limbajului si cunosti bine limbajul, atunci exista sanse ca programul sa fie OK, mai ales daca si structura programului este una standard, doar ca cod in DotNet si Java se poate scrie si fara DotNet sau Eclipse, si programatorul isi poate structura cat de ciudat se poate programul.
Daca in schimb se folosesc si alte clase nestandard create de diverse firme, atunci poti sa ai si mai multe batai de cap.
Cu alte cuvinte, poti sa scri prost programe in orice limbaj, avand o importanta mica pentru intelegerea codului faptul de a defini sau nu tipul variabilelor.
Gandeste-te doar logic. Presupune ca ai un program in C#/Java in care toate variabilele sunt de acelasi tip, fiindca probabil ca doar de asa ceva ai nevoie, si ca programul e doar un test, ca nici nu preia date din afara si nici nu trimite data in alta parte.
Crezi ca daca ai cunoaste la fel de bine un limbaj dinamic si acel program ar fi scris in respectivul limbaj l-ai intelege mai greu, doar fiindca tipul variabilelor nu este definit, stiind totusi ca toate sunt de acelasi tip?
Iti spun eu care este diferenta. Problema este flexibilitatea. Limbajele dinamice sunt mult mai flexibile decat cele statice, si poti face mult mai usor lucruri mult mai complexe, intr-un tip mult mai scurt si cu mult mai putin cod.
Dar asta poate insemna bucati de cod miraculoase care chiar daca au doar 3 linii, pot sa te puna in incurcatura si sa foloseasca diverse smecherii pe care nu le sti ca incepator.
Cand cunosti insa suficient de bine limbajul, nu mai ai probleme in a le intelege, chiar daca ele folosesc diverse metode sau functii din alte module care nu sunt in distributia standard a limbajului.
Asa ca este pur si simplu o chestiune de preferinte. Unii prefera sa scrie o gramada de cod pana se plictisesc, dar acel cod sa fie cat se poate de standard, iar altii prefera sa poata scrie mai putin cod care sa faca mai multe lucruri.
Cand scri mai mult cod exista insa si sanse mai mari sa faci greseli, dar ambele preferinte sunt cat se poate de normale.
Dupa cum spuneam, cei care prefera matematica prefera de obicei ca totul sa fie cat se poate de clar si standard, si in multe facultati de informatica predau in primul rand profesori de matematica, si sunt urmate de studenti care au fost buni la matematica, asa ca este foarte normal ca multi programatori sa prefere acest stil.
Larry Wall, cel care a creat limbajul Perl nu a fost matematician, ci lingvist, deci probabil ca observi diferenta.
Nici eu nu am absolvit o facultate de informatica asa ca nu am fost ghidat sa prefer un limbaj sau altul, ci le-am testat si pe unele si pe altele, si am preferat productivitatea mai buna a limbajelor dinamice.
"Orice ar zice oricine, tu o tii pe a ta: perl e cel mai bun (chit ca are market share infim de 0.7%).".
Mda, se pare ca din nou spui ca as fi spus ceva ce eu nu am spus.
Am spus ca nici un limbaj nu este bun pentru orice si fiecare are avantajele si dezavantajele lui. Am ajuns sa enumeram limbajele doar fiindca tu ai inceput sa spui ca exista alternative pentru linia de comanda, ceea ce este o limitare, nu o alternativa. Si am amintit si am dat exemple despre cum se fac anumite lucruri in Perl pentru a arata ca anumite conceptii despre limbajele dinamice nu sunt adevarate.
Ba chiar am spus si pentru ce anume nu este bun Perl si alte limbaje dinamice.
Si in plus pot sa iti spun ca exista multe alte dezavantaje ale lui...
"interfetele grafice sunt ineficiente".
Depinde la ce te referi prin "ineficiente". Daca te referi la viteza de operare, atunci depinde de program.
Anumite programe, cum ar fi editoarele de text, jocurile, sunt mult mai potrivite pentru o interfata grafica. Exista si jocuri in linia de comanda, si editoare de text, dar cel putin mie nu imi plac, fiindca lucrez mai greu cu ele decat cu o interfata grafica.
In cazul altor programe, linia de comanda nu doar ca este mai buna, ca in cazul acelor scurte comenzi cu care poti inlocui didiverse texte in mai multe fisiere folosind regular expressions, fiindca in mod evident este mult mai rapid de facut decat sa creezi un program cu interfata grafica care sa faca asa ceva, dar si pentru a concatena mai multe programe care sa isi execute fiecare partea sa, dar in anumite cazuri este singura solutie ca in cazul programelor care trebuie sa ruleze fara nici o interfata, in mod automat, sau de la distanta etc.
Daca te referi la eficienta din punct de vedere financiar, atunci diferra in functie de cat trebuie sa platesti pentru ele.
"si profesionistii adevarati folosesc consola".
Este mai simplu de utilizat anumite comenzi decat sa faci acelasi lucru cu o interfata grafica, insa este mult mai dificil de invatat sa utilizezi programe in linia de comanda, fiindca trebuie sa ai multa experienta, sa sti la ce se folosesc fiecare, ce parametrii accepta, cum le poti combina etc.
Asa ca daca sti sa folosesti bine programele in linai de comanda inseamna in mod evident ca ai o experienta mult mai mare decat altcineva care stie sa foloseasca bine interfata grafica. Sau nu esti de acord?
"windows e naspa ca sistem de hosting".
Da, asta in mod evident este adevarat, fara nici o discutie.
Si nu stiu de ce mai insisti daca tu spui ca tu nu ai experienta in administrarea unui sistem de la distanta, ca sa poti sa iti dai seama de diferente.
Ti-am spus, ca si costurile financiare sunt mai mari, si accesibilitatea pentru orbi este mai redusa, si resursele consumate sunt mai mari care pot implica costuri in plus etc.
"doar linux e bun.".
Ca o afirmatie generala iar spui ce nu am spus. Deja pot spune ca minti cu nerusinare si cu rea vointa, si chiar nu prea cred ca este doar o neintelegere.
Linux este mai bun decat Windows daca costurile cu resursele si cu licentele sunt importante, si asta pentru servere web si de baze de date, dar in nici un caz pentru lucrul de zi cu zi.
Si am spus cred de cateva ori ca pentru lucrul de zi cu zi si eu folosesc Windows. Crezi ca as folosi Windows daca as crede ca "doar Linux este bun" cum pretinzi ca as fi spus?
Sau nu este voie sa aducem nici o invinuire sistemului de operare Windows in nici un domeniu nici chiar in partile lui slabe?
"Cand vine cineva si iti zice ca mai exista si altceva, ca unii prefera aia pentru ca x, tu arati de ce x e praf si, again, doar perl rules.".
Nu era vorba despre Perl, ci despre linia de comanda de sub Windows care e proasta, si este absolut neimportant ca mai exista si altii care prefera altceva fiindca ei au alte nevoi si ca preferintele lor sunt bune pentru nevoile lor, nu pentru ce au nevoie cei care folosesc linia de comanda.
Sau vrei sa spui ca toate bazele de date de la MySQL, PostgreSQL, SQLite, sunt niste prostii si ca toata lumea ar trebui sa foloseasca doar programele create de Microsoft?
Spun asta fiindca toate acele baze de date pot fi accesate in linia de comanda, iar variantele de a le accesa cu o interfata grafica implica probleme de accesibilitate pentru orbi, iar daca linia de comanda ar trebui inlocuita cu o interfata grafica ar implica sa nu le mai putem folosi.
Asa ca spun din nou ca este o prostie acest mod de a arata ca solutia pentru o problema este de a schimba total si sistemul de operare si limbajul de programare, si stilul de programare, doar fiindca crezi tu ca Windows si o interfata grafica este o solutie pentru toate, iar cand iti arat pentru ce anume nu este o solutie, spui ca tu nu sti ca cu asa ceva nu ai avut de a face.
"Cum am mai zis, singurul motiv din care ma contrazic cu tine pe aici e in caz ca vede cineva interesat si crede ca ai dreptate si chestiile astea old school sunt singurul mod de a programa pentru un nevazator.".
Sti tu ca exista o zicala "dialog al surzilor". Cred ca ceva de genul asta este si discutia noastra.
Ti-am pus cateva intrebari dar ai sarit peste toate.
Asa ca din nou... Am spus eu ca doar in modul in care programez eu se poate programa?
Am spus ca fiecare isi are nevoile lui, si nu orice nevoi pot fi rezolvate la fel de usor prin folosirea unei interfate grafice, iar altele nu pot fi rezolvate deloc de o interfata grafica. Cred ca daca s-ar fi putut, Microsoft ar fi renuntat la command.com, nu ar fi introdus si cmd.exe ba chiar si PowerShell.
"Adevarul e ca putem programa cam in orice, destul de eficient. Daca vreti sa alegeti o platorma, cititi, invatati despre ele, hotarati-va ce vreti sa faceti cu ele. Nu va bazati pe o singura opinie, ori a cui ar fi.".
Sigur ca da, de programat putem programa in aproape orice, insa de administrat programele respective este mai simplu in anumite feluri si mai complicat in altele, dar stiu, despre administrare nu vrei sa vorbim fiindca tu nu ai experienta in asa ceva.
Or daca tot vorbim despre linia de comanda, atunci ei bine ea nu are nimic de a face cu programarea efectiva, fiindca in linia de comanda poti rula si programe in C# si programe in Java, ci rularea unui program tine de partea de administrare, iar administrarea nu o poti face intotdeauna printr-o interfata grafica.
Unii orbi isi pot gasi de lucru la o firma, ca mine sau ca tine, dar si noi si altii putem sa lucram si altceva la care avem nevoie de acces de la distanta unde nu putem accesa o interfata grafica, si nu vad de ce ar trebui sa ne limitam posibilitatile de a lucra care si asa sunt putine.
@Manu: "Pai nu cred ca neaparat trebuie inchis subiectul, pana la urma din el se pot si invata lucruri.".
Cand eram incepator in Perl, aveam mult mai mult timp liber si obisnuiam sa pun intrebari pe listele de discutii din care ieseau adevarate razboaie.
Rezultatul era ca dupa asemenea discutii imi faceam multi dusmani virtuali, insa puteam afla o multime de lucruri foarte utile si interesante pe care nu le-as fi putut gasi nici citind 10 carti de Perl.
Asta fiindca expertii in Perl isi alocau timp sa explice pe larg anumite chestiuni mai ciudate doar cand ii rodeau nervii.
"Daca IonPop sustine Perl... e ca si cum cei fani Apple sustin iPhone, nu cred ca isi vor lua toti iPhone, eu de exemplu nu imi cumpar.".
Eu nu sustin Perl, ci doar am aratat cum se face cutare si cutare lucru in Perl ca sa elimin opiniile gresite despre limbajele dinamice, insa cred ca iti dai seama ca fiindca cunosc acest limbaj cel mai bine, despre el am mai multe nemultumiri decat despre alte limbaje.
Sti tu cum sunt intrebati copiii de adulti... "tie ce materie iti place?".
Ei bine, la scoala si in liceu si in facultate adevarul este ca mie nu imi placea nici o materie, asa pur si simplu.
Imi placeau anumite chestiuni de la o materie, altele de la alte materii etc. Evident, aveam anumite materii pe care le preferam ceva mai mult si altele pe care le uram ceva mai mult, dar nu am putut sa impart niciodata ceva doar in alb si negru, adica ca cutare lucru imi place, iar cutare nu.
In general imi placeau materiile la care nu trebuia sa invat, adica pe cele la care daca eram atent in clasa, era suficient si nu trebuia sa mai pierd timpul citind iar si iar acasa. Asta probabil fiindca nu am o memorie foarte buna, asa ca nu sunt bun la tocit, ci imi place acele lucruri pe care trebuie sa le judeci, nu sa le tii minte.
Poate de asta prefer acum si limbajele de programare care folosesc de obicei nume scurte pentru functii si clase, in care trebuie sa scri putin cod care face multe, fiindca nu e nevoie nici de prea multa memorie, si si de aceasta data nu trebuie sa pierd prea mult timp cu ele.
In domeniul iT cred ca e cam la fel, adica pot enumera dezavantaje si avantaje la toate sistemele de operare pe care le cunosc cat de cat, si la toate bazele de date, si la toate limbajele de programare cu care am lucrat cat de cat, asa ca nu pot sa recomand unul doar fiindca din intamplare eu il cunosc mai bine decat altele.
Dar ce imi pare mie o opinie de clasa intai este parerea ca trebuie sa folosim ce foloseste majoritatea, si asta in toate domeniile, nu doar in domeniul iT.
Imi pare de exemplu o stupizenie sa chiar crezi in povestile crestinesti doar fiindca locuiesti intr-o tara in care a fost impus crestinismul in mintea majoritatii, fara sa te gandesti cum ar fi fost daca ai fi fost infiat de o familie din India, sau China, sau Africa unde majoritare sunt cu totul alte religii. Oare si atunci ai fi avut aceeasi parere? Probabil ca nu, iar daca esti o persoana nascuta cu nevoia de a crede in divinitati, care are nevoia sa stie ca in lume totul este stabilit, ca exista un destin pentru fiecare, ca dupa moarte sigur trebuie sa existe ceva, atunci probabil ca ai fi aderat cu mare bucurie si incredere la una dintre religiile locale si poate nici nu ai fi auzit despre povestile crestinesti, si ai fi crezut in reincarnare si nu intr-o viata de apoi, ai fi crezut in karma si nu in destin etc.
Eu cred ca este mult mai normal sa consideram ca absolut tot ce exista pe pamant, bune sau rele din punctul nostru de vedere, sunt cat se poate de normale, iar daca citim istoria putem vedea ca asa a fost intotdeauna.
Nu exista un bine general sau un rau general, ci fiecare vede binele si raul in functie de nevoile personale, de mediul in care traieste si este cat se poate de normal sa acceptam ca nu exista o singura solutie pentru orice in niciun domeniu, evident, nici in domeniul iT, unde asta este chiar mai simplu de demonstrat.
"Nu stiu nici de Perl daca ma voi apuca, dar conteaza ca cineva care il stie atat de bine sa ii prezinte avantajele, altfel ar fi fost destul de probabil sa treaca pe langa mine neobservat.".
Perl ti-ar fi util daca ai avea de manipulat, filtrat, transformat volume mari de date, daca ai avea de facut multe treburi de administrare a sistemului de operare, in primul rand sub Mac/Linux, dar si sub Windows, si daca ai avea de creat site-uri web suficient de complexe pentru care ai avea nevoie de o mare flexibilitate, mai ales daca ai avea nevoie sa o faci pentru tine personal si nu ai face doar parte dintr-o echipa.
Alternative pentru acestea ar fi si Python si Ruby, cu unele avantaje in plus, dar si cu unele dezavantaje.
C#, Java, C/C++ ti-ar fi mult mai putin utile pentru asa ceva.
PHP ar fi util pentru creat pagini web, si daca il folosesti ca lumea, adica daca nu esti tipul de persoana caruia ii place sa il forteze compilerul sa scrie codul corect, poti crea si cu el programe destul de OK.
Cred ca poti banui ca programatorii de la Facebook sau Yahoo nu au intampinat problemele pe care le-a intampinat Vortex cu PHP-ul.
Insa cam atat poti face OK cu el, dar cu smuls par din cap uneori, pagini web. Daca ai nevoie si pentru altele enumerate mai sus, PHP nu este o solutie extraordinara.
Din ce programe am vazut ca ai creat tu, sincer ma indoiesc ca ai nevoie de Perl/Python/Ruby, asa ca cu siguranta ca nu ti le-as recomanda ca o alternativa.
"Sincer mi-ar placea un topic in care sa dam tot felul de exemple de cod, solutii etc, doar de pe forumuri se invata un procent destul de mare din ce tine de astfel de lucruri.".
Pe blindprogramming era o discutie cu multi ani in urma (am scris prima data "cu cativa ani", dar mi-am dat seama ca deja au trecut multi ani de atunci) in care Jamal Masrui a propus sa cream un program denumit "Fruits Basket" in diverse limbaje, in care sa existe un camp de editare in care trebuia sa scriem ceva, numele unui fruct de exemplu, sa existe o lista cu fructele adunate, si cu un buton "add" si unul "delete". Idea era simpla, trebuia sa adaugam si sa stergem elemente din acea lista.
S-au creat diverse variante, si in C++, si in Ruby, Python, ba chiar a creat cineva un programel interesant in assembly language. Ala in assembly era interesant, dar limbajul... cam nashpa dupa cum poti sa iti dai seama, desi assembly language putem spune ca vizual este cel mai elegant limbaj.
Ala in assembly avea doar vre-o 2kb daca imi aduc bine aminte.
Alea in limbajele dinamice aveau peste 1mb fiindca includeau si interpretorul, adica cam cum e cand trebuie sa incluzi si JVM in kitul de instalare pentru un program in Java, ca sa functioneze pe o masina pe care nu exista Java.
Eu am creat o versiune in Perl folosind biblioteca Win32::GUI si o alta versiune care folosea biblioteca grafica WxPerl. Si Jamal a mai creat o versiune cu WxPerl si au mai folosit altii si alte limbaje.
Eu am creat si o aplicatie web care facea acelasi lucru doar ca cu o interfata Web. Cineva a adunat apoi programele si le-a inclus pe un site pe undeva, poate se pot gasi daca cauti dupa "fruits basket", insa stiu ca unele dintre ele s-au pierdut intre timp si nu au mai fost adunate acolo.
Cred ca nici acea versiune in Perl cu interfata web nu a fost pusa acolo, fiindca cum publicul tinta era din orbi, din motive de accesibilitate ei erau interesati sa preia un program pe care sa il poata rula cu un enter, nu pe care sa il ruleze sub un server web.
Insa programele erau foarte simple, caci practic nu faceau mare lucru, ci doar manevrau vre-o doua trei elemente de interfata.
Pe de o parte ar putea fi utile ca sa iti dai seama cam cum arata un limbaj fiindca te poate atrage respectivul limbaj, dar pe de alta parte te poate induce in eroare fiindca daca un limbaj de programare sau o clasa grafica sunt bune pentru un program micut, nu inseamna ca este la fel de bun pentru unul mare.
De exemplu, programul pe care l-am facut eu cu clasa grafica Win32::GUI arata super fain si are un cod foarte clar si usor de inteles si de catre incepatori care nu stiu Perl deloc.
Este in mod evident mult mai frumos decat cel care foloseste clasa WxPerl. Insa problema este ca biblioteca Win32::GUI nu mai este intretinuta, nu suporta Unicode decat in anumite controale si doar cu un anumit hack, nu ofera la fel de multe controale ca WxPerl, si evident, poate rula doar sub Windows, in timp ce programul care foloseste WxPerl poate rula si sub Mac sau Linux.
Iar cand ai de facut chestiuni mai complicate, de exemplu un sistem complex de meniuri, sau o interfata in mai multe limbi, este mai bun WxPerl, care insa la prima vedere pare mai urat decat Win32::GUI.
Asa ca de asta este bine sa existe liste de discutii unde sa poti intreba specialistii si sa ii crezi cand spun ceva, fiindca sigur ei stiu cel mai bine.
Eu nu i-am crezut!
La inceput de exemplu nu am invatat sa folosesc un sistem de template-uri, si nici vorba de un web framework iar despre procesoare de formulare cred ca nici nu auzisem, desi existau si atunci. Asa ca am creat primul site web intr-un mod foarte low level, cam cum sunt create majoritatea site-urilor in PHP.
Doar ca nu mi-a placut, asa ca am testat cateva sisteme de templating, si am vazut ca folosirea lor era mai lenta decat simpla includere a unor variabile in codul html, asa ca m-am apucat si am creat propriul meu sistem de template-uri, care era mai rapid decat alte sisteme standard.
Doar ca pe masura ce imbunatateam acel site, ba lipsea una, ba alta din sistemul meu de templat-uri, si la modul simplist in care era gandit, nici nu se puteau adauga acele facilitati.
Asa ca m-am gandit ca poate ce scriu cartile si ce spun specialistii nu sunt totusi minciuni, asa ca m-am apucat sa invat complicatul sistem de template-uri Template-Toolkit.
Si m-am mirat cand am vazut ca nu mi-a trebuit decat o singura zi ca sa invat sa il folosesc, si ca de fapt din cat timp lua afisarea unei pagini, incluzand preluarea datelor din baza de date, munca pe care o facea sistemul de template-uri era oricum nesemnificativa, deci pierderea de viteza chiar nu era importanta, insa facilitatile oferite erau infinit mai multe iar codul mult mai elegant.
Apoi am descoperit ca cu un web framework este si mai simplu si mai elegant de lucrat, ca se pot folosi multe elemente standard etc.
Dar pot sa iti spun ca nu mi-a parut rau ca am apucat acea cale, creandu-mi propriul sistem de template-uri, fiindca intre timp am invatat foarte multe altele cu care nu prea ai de a face daca lucrezi doar cu elemente de nivel inalt.