E nasol daca Jaws functioneaza chiar atat de rau din acest punct de vedere sub Windows 7.
Dar oricum, in final tot e mai bine daca poti sa faci un simplu Control+V sau chiar sa pui o alta comanda mai complexa pentru paste, decat sa trebuiasca sa intri prin meniuri pentru un simplu paste, asa ca si varianta cu default.jss tot e o solutie.
Disputa: Static vs Dynamic type, linie de comanda versus GUI
@IonPop:
Nu, motivul din care te certi cu toata lumea este ca faci presupuneri nefondate despre oameni, cum ar fi:
"
Sigur ca da, eu ma contrazic cu oricine care pretinde ca stie ceva, dar care nici nu are experienta ci doar face pe atotstiutorul in domenii in care am experienta si care am vazut intr-adevar ca functioneaza foarte bine.
"
"
atunci intr-adevar, ti-ai atins scopul. Chiar daca esti incepator in domeniul iT vad ca nici nu esti curios si deschis sa afli mai multe, ci tii mortis sa ii
convingi pe altii de cunostintele tale, asa ca nu are rost sa mai insist
"
Intai, esti suficient de arogant incat sa consideri ca toti cei care se cearta cu tine nu stiu ce vorbesc, doar tu. Asta e fenomenal, mai rar o asa incredere in sine.
Apoi, iti permiti sa iti dai parerea, extrem de sigura si increzatoare, referitoare la experienta mea si la deschiderea mea la nou. Ba, mai mult, chiar te comporti ca si cum tu ai stii exact ce si cat am facut eu de-a lungul vietii in informatica, deducand asta din cateva mesaje pe un forum.
Unii oamen i sunt mai impulsivi asa, si cand vad faze de genul asta, reactioneaza violent. Din diverse motive, nu e si cazul meu in momentul de fata.
Alt potential motiv al certurilor tale e insistenta. Eu am explicat, zic eu, destul de clar, ca, pentru mine, thread-ul e inchis. De aia nici nu m-am mai adresat tie. tu ai continuat ca si cum nici nu ai fi auzit.
Totusi, neintelegerile sunt si de partea ta, cu gramada. Insisti pe linia de comanda, de care nu m-am legat ca interfata in sine, ci doar in contextul programarii. Nu programare direct in cli, fireste, oi fi eu un biet incepator nestiutor, dar nici chiar asa. Ma refeream la compilarea in linia de comanda versus IDE. Manu a zis foarte bine, pentru intelegere si teste e buna compilarea in cli, dar pentru proiecte mari, IDE-ul isi are avantajele lui. Pentru unii, fireste. Poti la fel de bine sa compilezi cu pattern-uri in cmd, sau sa folosesti chestii gen make sau ant. Pentru a mia oara, am zis doar ca GUI-ul se poate folosi in programare, nu ca e singura varianta.
Dispretul tau pentru limbajele statice e, cum ziceam, evident din ton. Asta cu fiecare e bun pentru ceva o zici doar ca sa pari echilibrat, dar cand e vorba de orice task de programare aici pe forum, vii si zici cum aia s-ar putea face de 1000, pardon, 32000 de ori mai bine in Perl, si ce naspa sunt limbajele astea cu instructiuni lungi, facute doar pentru standarde si fraieri incapabili sa invete chestii smechere si cu adevarat inteligente cum este Perl, care, daca viata ar fi corecta, ar trebui sa fie limbaj majoritar, predat in universitati si toate cele.
Cum am spus, nu pe tine vreau sa te conving. Tu nu ai sa iesi din ale tale, orice ar fi.
Reactia ta cand ti se critica bijuteria este "habar n-ai, se vede ca nu l-ai folosit". De ce zici asta? Pentru ca tu, personal, nu consideri argumentele acelea valide? Te-ai gandit vreodata ca poate oponentul tau chiar a incercat acele lucruri, dar pur si simplu parerea lui difera de a ta, el vazand pur si simplu in alt mod acele aspecte?
Nu pare. Insisti sa afirmi ca eu n-am programat in limbaje dinamice. Te porti ca si cum m-ai cunoaste. E complet fals. Nu ma cunosti. Chiar deloc. Varsta iti da, poate, un ascendent de experienta temporala in IT, dar in nici un caz calitativa..
Ca sa clarificam, daca tot am raspuns, nu am nimic contra utilizarii liniei de comanda in scopuriile enuntate de tine, fara cele legate de programare. Consider in mod sincer ca IDE-ul poate fi o alternativa la linia de comanda in orice conditii, inclusiv folosind limbaje dinamice.
Nu m-am pronuntat referitor la acele task-uri fie pentru ca nu am avut nevoie de ele, fie pentru ca volumul de munca a fost suficient de redus incat sa nu merite, in opinia mea, automatizare, si am ramas la GUI.
Nu, motivul din care te certi cu toata lumea este ca faci presupuneri nefondate despre oameni, cum ar fi:
"
Sigur ca da, eu ma contrazic cu oricine care pretinde ca stie ceva, dar care nici nu are experienta ci doar face pe atotstiutorul in domenii in care am experienta si care am vazut intr-adevar ca functioneaza foarte bine.
"
"
atunci intr-adevar, ti-ai atins scopul. Chiar daca esti incepator in domeniul iT vad ca nici nu esti curios si deschis sa afli mai multe, ci tii mortis sa ii
convingi pe altii de cunostintele tale, asa ca nu are rost sa mai insist
"
Intai, esti suficient de arogant incat sa consideri ca toti cei care se cearta cu tine nu stiu ce vorbesc, doar tu. Asta e fenomenal, mai rar o asa incredere in sine.
Apoi, iti permiti sa iti dai parerea, extrem de sigura si increzatoare, referitoare la experienta mea si la deschiderea mea la nou. Ba, mai mult, chiar te comporti ca si cum tu ai stii exact ce si cat am facut eu de-a lungul vietii in informatica, deducand asta din cateva mesaje pe un forum.
Unii oamen i sunt mai impulsivi asa, si cand vad faze de genul asta, reactioneaza violent. Din diverse motive, nu e si cazul meu in momentul de fata.
Alt potential motiv al certurilor tale e insistenta. Eu am explicat, zic eu, destul de clar, ca, pentru mine, thread-ul e inchis. De aia nici nu m-am mai adresat tie. tu ai continuat ca si cum nici nu ai fi auzit.
Totusi, neintelegerile sunt si de partea ta, cu gramada. Insisti pe linia de comanda, de care nu m-am legat ca interfata in sine, ci doar in contextul programarii. Nu programare direct in cli, fireste, oi fi eu un biet incepator nestiutor, dar nici chiar asa. Ma refeream la compilarea in linia de comanda versus IDE. Manu a zis foarte bine, pentru intelegere si teste e buna compilarea in cli, dar pentru proiecte mari, IDE-ul isi are avantajele lui. Pentru unii, fireste. Poti la fel de bine sa compilezi cu pattern-uri in cmd, sau sa folosesti chestii gen make sau ant. Pentru a mia oara, am zis doar ca GUI-ul se poate folosi in programare, nu ca e singura varianta.
Dispretul tau pentru limbajele statice e, cum ziceam, evident din ton. Asta cu fiecare e bun pentru ceva o zici doar ca sa pari echilibrat, dar cand e vorba de orice task de programare aici pe forum, vii si zici cum aia s-ar putea face de 1000, pardon, 32000 de ori mai bine in Perl, si ce naspa sunt limbajele astea cu instructiuni lungi, facute doar pentru standarde si fraieri incapabili sa invete chestii smechere si cu adevarat inteligente cum este Perl, care, daca viata ar fi corecta, ar trebui sa fie limbaj majoritar, predat in universitati si toate cele.
Cum am spus, nu pe tine vreau sa te conving. Tu nu ai sa iesi din ale tale, orice ar fi.
Reactia ta cand ti se critica bijuteria este "habar n-ai, se vede ca nu l-ai folosit". De ce zici asta? Pentru ca tu, personal, nu consideri argumentele acelea valide? Te-ai gandit vreodata ca poate oponentul tau chiar a incercat acele lucruri, dar pur si simplu parerea lui difera de a ta, el vazand pur si simplu in alt mod acele aspecte?
Nu pare. Insisti sa afirmi ca eu n-am programat in limbaje dinamice. Te porti ca si cum m-ai cunoaste. E complet fals. Nu ma cunosti. Chiar deloc. Varsta iti da, poate, un ascendent de experienta temporala in IT, dar in nici un caz calitativa..
Ca sa clarificam, daca tot am raspuns, nu am nimic contra utilizarii liniei de comanda in scopuriile enuntate de tine, fara cele legate de programare. Consider in mod sincer ca IDE-ul poate fi o alternativa la linia de comanda in orice conditii, inclusiv folosind limbaje dinamice.
Nu m-am pronuntat referitor la acele task-uri fie pentru ca nu am avut nevoie de ele, fie pentru ca volumul de munca a fost suficient de redus incat sa nu merite, in opinia mea, automatizare, si am ramas la GUI.
Vortex Website
Maximum de confort, cu minimum de efort.
Maximum de confort, cu minimum de efort.
"Intai, esti suficient de arogant incat sa consideri ca toti cei care se cearta cu tine nu stiu ce vorbesc, doar tu. Asta e fenomenal, mai rar o asa incredere in sine.".
Faci din nou generalizari. Consider ca nu se pricep cei care spun ca interfata grafica este intotdeauna o alternativa mai buna pentru linia de comanda, ceea ce in mod evident nu este adevarat. Si ti-am aratat si exemple, cum ar fi acea scurta linie de comanda cu care poti face inlocuiri in diverse fisiere, fara ca tu sa fi aratat practic o alternativa pentru acelasi lucru folosind o interfata grafica.
"Alt potential motiv al certurilor tale e insistenta. Eu am explicat, zic eu, destul de clar, ca, pentru mine, thread-ul e inchis. De aia nici nu m-am mai adresat tie. tu ai continuat ca si cum nici nu ai fi auzit.".
Pe mine chiar nu ma intereseaza ca tu ai spus ca pentru tine thread-ul este inchis. Odata ce ai raspuns, este normal sa te astepti la raspunsuri din partea celorlalti, si nu sa iti spui parerea si sa spui ca thread-ul este inchis, asteptandu-te ca ceilalti sa nu mai reactioneze doar pentru ca tu consideri thread-ul inchis.
Cand un thread este inchis pentru cineva, respectiva persoana pur si simplu nu mai raspunde si gata.
"Totusi, neintelegerile sunt si de partea ta, cu gramada. Insisti pe linia de comanda, de care nu m-am legat ca interfata in sine, ci doar in contextul programarii. Nu programare direct in cli, fireste, oi fi eu un biet incepator nestiutor, dar nici chiar asa. Ma refeream la compilarea in linia de comanda versus IDE. Manu a zis foarte bine, pentru intelegere si teste e buna compilarea in cli, dar pentru proiecte mari, IDE-ul isi are avantajele lui. Pentru unii, fireste. Poti la fel de bine sa compilezi cu pattern-uri in cmd, sau sa folosesti chestii gen make sau ant. Pentru a mia oara, am zis doar ca GUI-ul se poate folosi in programare, nu ca e singura varianta.".
Ma rog, poate ca a fost o neintelegere, desi divergenta de la care a pornit toata discutia a fost destul de simpla si anume:
Eu am spus ca Windows ofera unelte mai slabe de programare decat alte sisteme de operare si anume in ceea ce priveste linia de comanda.
Iar tu ai spus ca pentru linia de comanda exista o alternativa interfata grafica.
Sau nu este asa?
Ei bine, pentru anumite programe interfata grafica nu este o alternativa, si de aici divergenta.
"Dispretul tau pentru limbajele statice e, cum ziceam, evident din ton. Asta cu fiecare e bun pentru ceva o zici doar ca sa pari echilibrat, dar cand e vorba de orice task de programare aici pe forum, vii si zici cum aia s-ar putea face de 1000, pardon, 32000 de ori mai bine in Perl, si ce naspa sunt limbajele astea cu instructiuni lungi, facute doar pentru standarde si fraieri incapabili sa invete chestii smechere si cu adevarat inteligente cum este Perl, care, daca viata ar fi corecta, ar trebui sa fie limbaj majoritar, predat in universitati si toate cele.".
Cred ca iti dai seama ca exagerezi din nou doar ca sa pari mai interesant.
Uite, chiar in aceste zile Campus a creat un program pentru care l-am felicitat, fiindca este foarte bun, desi este un program cu interfata grafica in C#.
Am spus cumva cum s-ar putea face acel program mai bine in Perl? Sau am spus ca C# este nashpa?
Evident ca nu am spus, fiindca in Perl ar fi mult mai complicat de facut, cu un efort mult mai mare, tocmai fiindca Perl este un limbaj nepotrivit in multe domenii.
Dar insa daca un program se poate face mai simplu in Perl, si mai rapid, iar codul sursa este mai clar, atunci cred ca este foarte normal sa arat si cum s-ar putea face acel program in Perl.
Sau nu ar trebui sa o fac ca sa nu te deranjeze pe tine?
"Cum am spus, nu pe tine vreau sa te conving. Tu nu ai sa iesi din ale tale, orice ar fi.".
Dar pe cine? Sa inteleg ca de fapt tu nici nu ai discutat cu mine in acest dialog, ci doar ai vrut sa demonstrezi publicului larg cat de multe sti?
"Reactia ta cand ti se critica bijuteria este "habar n-ai, se vede ca nu l-ai folosit". De ce zici asta? Pentru ca tu, personal, nu consideri argumentele acelea valide? Te-ai gandit vreodata ca poate oponentul tau chiar a incercat acele lucruri, dar pur si simplu parerea lui difera de a ta, el vazand pur si simplu in alt mod acele aspecte?".
Nu mai fac copy/paste cu raspunsul tau anterior, dar presupune ca am facut, si gandeste-te ca si tu ai reactionat fix la fel.
Dar de fapt este o divagatie de la problema importanta. Discutiile despre ce limbaje de programare pot fi folosite, despre cat de mari sunt firmele care le folosesc etc, suau aparut doar ulterior in discutie. Problema importanta este linia de comanda care este mai slaba sub Windows decat sub Mac sau Linux fiindca de la asta a pornit discutia.
"Nu pare. Insisti sa afirmi ca eu n-am programat in limbaje dinamice. Te porti ca si cum m-ai cunoaste. E complet fals. Nu ma cunosti. Chiar deloc. Varsta iti da, poate, un ascendent de experienta temporala in IT, dar in nici un caz calitativa..".
Am spus doar in functie de ce ai scris tu despre tine. Daca este adevarat, atunci raspunsurile tale arata cat de bine pregatit esti.
Ca Python, Lua etc nu sunt bune fiindca nu stiu ce erori ti-au dat tie...
Dar cine stie, poate ca intr-adevar ai o pregatire profesionala excelenta iar cei de la Google care folosesc totusi Python din greu se zbat in fiecare zi cu astfel de probleme, insa nu incep sa foloseasca C# de prosti ce sunt.
"Ca sa clarificam, daca tot am raspuns, nu am nimic contra utilizarii liniei de comanda in scopuriile enuntate de tine, fara cele legate de programare. Consider in mod sincer ca IDE-ul poate fi o alternativa la linia de comanda in orice conditii, inclusiv folosind limbaje dinamice.".
O interfata este o interfata, si poti crea programe pentru toate interfetele folosind o multime de limbaje, asa ca nu conteaza daca este vorba despre un limbaj dinamic sau static.
Si un program in Java sau C# poate fi compilat in linia de comanda, se pot crea programe care sa fie rulate in linia de comanda si in C# sau Java, de fapt chiar compilatoarele pentru C# si Java ruleaza tot in linia de comanda etc.
Da, sigur ca se pot crea programe cu interfata grafica si in limbajele dinamice, insa exista si limbaje in care nu se pot crea astfel de programe, cum este limbajul Bash, de exemplu, care este un limbaj de programare al interpretorului de comenzi cu acelasi nume.
Ceea ce conteaza insa este domeniul pentru care trebuie sa creezi programe.
Cum am mai spus, daca vrei sa creezi programe pentru publicul larg, este mai bine sa folosesti interfata grafica, fiindca pentru necunoscatori este mai simplu de folosit.
Si un bun exemplu de curand amintit este programul creat de Campus.
Daca insa vrei sa creezi un program pentru profesionisti, pentru care folosirea interfetei linie de comanda nu este o problema, este pe de o parte mult mai simplu si pe de alta parte poate oferi o flexibilitate mult mai mare daca programul este creat cu o interfata linie de comanda.
Si tot un exemplu amintit de curand sunt programele ffmpeg si youtube-dl.
In mod evident programul youtube-dl ofera mai multe facilitati decat programul creat de Campus, si la fel, programul ffmpeg ofera mult mai multe facilitati decat cele folosite de programul youtube-dl.
Iar crearea lor a fost mai simpla decat daca ar fi necesitat si crearea unei interfete grafice cu o multime de controale si meniuri cu care sa se poata combina toate acele facilitati.
Apoi ma mai gandesc la programe ca tesseract sau programul convert din pachetul ImageMagick pe care le poti usor apela din diverse programe pentru a recunoaste optic diverse imagini, automat, fara sa ai de facut nimic manual ca in cazul unui program ca FineReader.
Cu un program de genul FineReader nu ai ce face cand vrei sa automatizezi ceva, si trebuie eventual sa platesti din greu pentru o licenta pentru SDK-ul lor daca vrei sa poti face asa ceva, pe cand cu tesseract o poti face gratis.
Si serverul web Apache, care este totusi cel mai folosit server web din lume, ofera un fel de mini interfata grafica pentru cateva operatiuni, insa in mod linie de comanda ofera mult mai multe optiuni.
Deci nu conteaza in ce limbaje au fost scrise acele programe, ci conteaza domeniul, adica cu ce scopuri sunt folosite.
"Nu m-am pronuntat referitor la acele task-uri fie pentru ca nu am avut nevoie de ele, fie pentru ca volumul de munca a fost suficient de redus incat sa nu merite, in opinia mea, automatizare, si am ramas la GUI.".
Asta este perfect normal si este totul OK, si pentru nevoile pe care le ai este normal sa consideri ca interfata grafica este o alternativa a liniei de comanda, insa gandeste-te ca altii au de lucru aproape exclusiv la programe care dupa ce sunt create trebuie sa ruleze singure ori de cron la anumite ore si in anumite zile, ori sa poata fi rulate de alte programe cat mai usor posibil, ori sunt destinate unor specialisti care nu au nici o problema in rularea lor din linie de comanda si atunci trebuie eliminat din ele tot ce este in plus, pentru a consuma cat mai putine resurse, pentru a rula cat mai repede etc. Sau exista firme care angajeaza personal care lucreaza de la distanta si ei trebuie sa poata accesa serverele prin SSH, ca sa incarce programele pe serverul firmei, sa le ruleze, sa faca configurarile necesare pe server, sa acceseze acolo bazele de date etc.
Ei bine, eu sunt una dintre aceste persoane, asa ca din acest motiv am nevoie de linia de comanda, nu fiindca imi place mie asa de mult sa scriu texte in ea unde Jaws se descurca ceva mai greu decat intr-un camp text standard, ci fiindca asa impune munca pe care trebuie sa o fac, iar din acest motiv am spus ca Windows ofera mai putine facilitati in acest domeniu pentru programatori, caci linia de comanda este mai slaba decat sub Linux si Mac, si ce este cel mai important, pentru treburile pe care trebuie sa le fac ea nu poate fi in nici un caz inlocuita cu o interfata grafica ca o alternativa de preferat.
O alternativa care sa implice folosirea unei interfete grafice implica mari dezavantaje, cum ar fi costuri mai mari din partea firmei, deci o rentabilitate mai redusa, costuri atat cu licente de Windows si Visual Studio cat si cu echipamente cu mai multe resurse si o perioada mai lunga pentru dezvoltare.
Si apropos, spuneai parca si despre usurinta intretinerii diverselor programe, care se poate face mai simplu daca programele sunt scrise in limbaje strongly typed. De obicei programele sunt mai usor de intretinut in programele strongly typed, insa nu fiindca sunt strongly typed, adica nu fiindca in ele se declara tipul variabilelor, lucru care dupa cum am mai spus se poate face oarecum si in Perl daca vrei, ci fiindca sunt mai standard si acelasi lucru se face de obicei intr-un singur fel. Ma rog, asta este deviza si a limbajului Python... dar ma rog , nu asta conteaza.
Ceea ce conteaza este faptul ca exista domenii in care programele rareori trebuie intretinute. De exemplu daca creezi programe care preiau date din fisiere pdf, doc, docx, xls, xlsx, txt, site-uri web etc, pentru a fi folosite apoi in data mining, daca un site se modifica, sau daca formatul si structura unui fisier se modifica, atunci trebuie de obicei sa rescri programul in intregime, fiindca nimic nu mai seamana oricum. Poate ca inainte analizai un fisier xlsx, iar acum trebuie sa analizezi un fisier pdf cu imagini. Asa ca ceea ce conteaza in primul rand este sa poti crea programul super rapid. Sigur, folosesti si multe module foarte standard, insa in nici un caz nu poti crea programe in care poti defini variabilele foarte clar, fiindca o data calendaristica poate aparea o data ca 2013-09-16, alteori ca 09/16/2013, alteori ca Sep 9 2013 iar in locul altor variabile numerice pot aparea diverse litere etc.
De aceea pentru astfel de nevoi se folosesc limbaje dinamice, si de aceea si robotul folosit de Google este scris in Python.
De aceea am spus eu ca depinde de domeniul in care ai nevoie de programe, si ca pentru unele domenii este mai bun un limbaj, iar pentru altele alt limbaj, nu ca sa promovez eu Perl sau limbajele dinamice.
Eu scriu acum acest text intr-un program cu interfata grafica, prefer sa folosesc Winamp si nu un media player in linia de comanda, asa ca fiecare tip de interfata isi are locul ei.
Faci din nou generalizari. Consider ca nu se pricep cei care spun ca interfata grafica este intotdeauna o alternativa mai buna pentru linia de comanda, ceea ce in mod evident nu este adevarat. Si ti-am aratat si exemple, cum ar fi acea scurta linie de comanda cu care poti face inlocuiri in diverse fisiere, fara ca tu sa fi aratat practic o alternativa pentru acelasi lucru folosind o interfata grafica.
"Alt potential motiv al certurilor tale e insistenta. Eu am explicat, zic eu, destul de clar, ca, pentru mine, thread-ul e inchis. De aia nici nu m-am mai adresat tie. tu ai continuat ca si cum nici nu ai fi auzit.".
Pe mine chiar nu ma intereseaza ca tu ai spus ca pentru tine thread-ul este inchis. Odata ce ai raspuns, este normal sa te astepti la raspunsuri din partea celorlalti, si nu sa iti spui parerea si sa spui ca thread-ul este inchis, asteptandu-te ca ceilalti sa nu mai reactioneze doar pentru ca tu consideri thread-ul inchis.
Cand un thread este inchis pentru cineva, respectiva persoana pur si simplu nu mai raspunde si gata.
"Totusi, neintelegerile sunt si de partea ta, cu gramada. Insisti pe linia de comanda, de care nu m-am legat ca interfata in sine, ci doar in contextul programarii. Nu programare direct in cli, fireste, oi fi eu un biet incepator nestiutor, dar nici chiar asa. Ma refeream la compilarea in linia de comanda versus IDE. Manu a zis foarte bine, pentru intelegere si teste e buna compilarea in cli, dar pentru proiecte mari, IDE-ul isi are avantajele lui. Pentru unii, fireste. Poti la fel de bine sa compilezi cu pattern-uri in cmd, sau sa folosesti chestii gen make sau ant. Pentru a mia oara, am zis doar ca GUI-ul se poate folosi in programare, nu ca e singura varianta.".
Ma rog, poate ca a fost o neintelegere, desi divergenta de la care a pornit toata discutia a fost destul de simpla si anume:
Eu am spus ca Windows ofera unelte mai slabe de programare decat alte sisteme de operare si anume in ceea ce priveste linia de comanda.
Iar tu ai spus ca pentru linia de comanda exista o alternativa interfata grafica.
Sau nu este asa?
Ei bine, pentru anumite programe interfata grafica nu este o alternativa, si de aici divergenta.
"Dispretul tau pentru limbajele statice e, cum ziceam, evident din ton. Asta cu fiecare e bun pentru ceva o zici doar ca sa pari echilibrat, dar cand e vorba de orice task de programare aici pe forum, vii si zici cum aia s-ar putea face de 1000, pardon, 32000 de ori mai bine in Perl, si ce naspa sunt limbajele astea cu instructiuni lungi, facute doar pentru standarde si fraieri incapabili sa invete chestii smechere si cu adevarat inteligente cum este Perl, care, daca viata ar fi corecta, ar trebui sa fie limbaj majoritar, predat in universitati si toate cele.".
Cred ca iti dai seama ca exagerezi din nou doar ca sa pari mai interesant.
Uite, chiar in aceste zile Campus a creat un program pentru care l-am felicitat, fiindca este foarte bun, desi este un program cu interfata grafica in C#.
Am spus cumva cum s-ar putea face acel program mai bine in Perl? Sau am spus ca C# este nashpa?
Evident ca nu am spus, fiindca in Perl ar fi mult mai complicat de facut, cu un efort mult mai mare, tocmai fiindca Perl este un limbaj nepotrivit in multe domenii.
Dar insa daca un program se poate face mai simplu in Perl, si mai rapid, iar codul sursa este mai clar, atunci cred ca este foarte normal sa arat si cum s-ar putea face acel program in Perl.
Sau nu ar trebui sa o fac ca sa nu te deranjeze pe tine?
"Cum am spus, nu pe tine vreau sa te conving. Tu nu ai sa iesi din ale tale, orice ar fi.".
Dar pe cine? Sa inteleg ca de fapt tu nici nu ai discutat cu mine in acest dialog, ci doar ai vrut sa demonstrezi publicului larg cat de multe sti?
"Reactia ta cand ti se critica bijuteria este "habar n-ai, se vede ca nu l-ai folosit". De ce zici asta? Pentru ca tu, personal, nu consideri argumentele acelea valide? Te-ai gandit vreodata ca poate oponentul tau chiar a incercat acele lucruri, dar pur si simplu parerea lui difera de a ta, el vazand pur si simplu in alt mod acele aspecte?".
Nu mai fac copy/paste cu raspunsul tau anterior, dar presupune ca am facut, si gandeste-te ca si tu ai reactionat fix la fel.
Dar de fapt este o divagatie de la problema importanta. Discutiile despre ce limbaje de programare pot fi folosite, despre cat de mari sunt firmele care le folosesc etc, suau aparut doar ulterior in discutie. Problema importanta este linia de comanda care este mai slaba sub Windows decat sub Mac sau Linux fiindca de la asta a pornit discutia.
"Nu pare. Insisti sa afirmi ca eu n-am programat in limbaje dinamice. Te porti ca si cum m-ai cunoaste. E complet fals. Nu ma cunosti. Chiar deloc. Varsta iti da, poate, un ascendent de experienta temporala in IT, dar in nici un caz calitativa..".
Am spus doar in functie de ce ai scris tu despre tine. Daca este adevarat, atunci raspunsurile tale arata cat de bine pregatit esti.
Ca Python, Lua etc nu sunt bune fiindca nu stiu ce erori ti-au dat tie...
Dar cine stie, poate ca intr-adevar ai o pregatire profesionala excelenta iar cei de la Google care folosesc totusi Python din greu se zbat in fiecare zi cu astfel de probleme, insa nu incep sa foloseasca C# de prosti ce sunt.
"Ca sa clarificam, daca tot am raspuns, nu am nimic contra utilizarii liniei de comanda in scopuriile enuntate de tine, fara cele legate de programare. Consider in mod sincer ca IDE-ul poate fi o alternativa la linia de comanda in orice conditii, inclusiv folosind limbaje dinamice.".
O interfata este o interfata, si poti crea programe pentru toate interfetele folosind o multime de limbaje, asa ca nu conteaza daca este vorba despre un limbaj dinamic sau static.
Si un program in Java sau C# poate fi compilat in linia de comanda, se pot crea programe care sa fie rulate in linia de comanda si in C# sau Java, de fapt chiar compilatoarele pentru C# si Java ruleaza tot in linia de comanda etc.
Da, sigur ca se pot crea programe cu interfata grafica si in limbajele dinamice, insa exista si limbaje in care nu se pot crea astfel de programe, cum este limbajul Bash, de exemplu, care este un limbaj de programare al interpretorului de comenzi cu acelasi nume.
Ceea ce conteaza insa este domeniul pentru care trebuie sa creezi programe.
Cum am mai spus, daca vrei sa creezi programe pentru publicul larg, este mai bine sa folosesti interfata grafica, fiindca pentru necunoscatori este mai simplu de folosit.
Si un bun exemplu de curand amintit este programul creat de Campus.
Daca insa vrei sa creezi un program pentru profesionisti, pentru care folosirea interfetei linie de comanda nu este o problema, este pe de o parte mult mai simplu si pe de alta parte poate oferi o flexibilitate mult mai mare daca programul este creat cu o interfata linie de comanda.
Si tot un exemplu amintit de curand sunt programele ffmpeg si youtube-dl.
In mod evident programul youtube-dl ofera mai multe facilitati decat programul creat de Campus, si la fel, programul ffmpeg ofera mult mai multe facilitati decat cele folosite de programul youtube-dl.
Iar crearea lor a fost mai simpla decat daca ar fi necesitat si crearea unei interfete grafice cu o multime de controale si meniuri cu care sa se poata combina toate acele facilitati.
Apoi ma mai gandesc la programe ca tesseract sau programul convert din pachetul ImageMagick pe care le poti usor apela din diverse programe pentru a recunoaste optic diverse imagini, automat, fara sa ai de facut nimic manual ca in cazul unui program ca FineReader.
Cu un program de genul FineReader nu ai ce face cand vrei sa automatizezi ceva, si trebuie eventual sa platesti din greu pentru o licenta pentru SDK-ul lor daca vrei sa poti face asa ceva, pe cand cu tesseract o poti face gratis.
Si serverul web Apache, care este totusi cel mai folosit server web din lume, ofera un fel de mini interfata grafica pentru cateva operatiuni, insa in mod linie de comanda ofera mult mai multe optiuni.
Deci nu conteaza in ce limbaje au fost scrise acele programe, ci conteaza domeniul, adica cu ce scopuri sunt folosite.
"Nu m-am pronuntat referitor la acele task-uri fie pentru ca nu am avut nevoie de ele, fie pentru ca volumul de munca a fost suficient de redus incat sa nu merite, in opinia mea, automatizare, si am ramas la GUI.".
Asta este perfect normal si este totul OK, si pentru nevoile pe care le ai este normal sa consideri ca interfata grafica este o alternativa a liniei de comanda, insa gandeste-te ca altii au de lucru aproape exclusiv la programe care dupa ce sunt create trebuie sa ruleze singure ori de cron la anumite ore si in anumite zile, ori sa poata fi rulate de alte programe cat mai usor posibil, ori sunt destinate unor specialisti care nu au nici o problema in rularea lor din linie de comanda si atunci trebuie eliminat din ele tot ce este in plus, pentru a consuma cat mai putine resurse, pentru a rula cat mai repede etc. Sau exista firme care angajeaza personal care lucreaza de la distanta si ei trebuie sa poata accesa serverele prin SSH, ca sa incarce programele pe serverul firmei, sa le ruleze, sa faca configurarile necesare pe server, sa acceseze acolo bazele de date etc.
Ei bine, eu sunt una dintre aceste persoane, asa ca din acest motiv am nevoie de linia de comanda, nu fiindca imi place mie asa de mult sa scriu texte in ea unde Jaws se descurca ceva mai greu decat intr-un camp text standard, ci fiindca asa impune munca pe care trebuie sa o fac, iar din acest motiv am spus ca Windows ofera mai putine facilitati in acest domeniu pentru programatori, caci linia de comanda este mai slaba decat sub Linux si Mac, si ce este cel mai important, pentru treburile pe care trebuie sa le fac ea nu poate fi in nici un caz inlocuita cu o interfata grafica ca o alternativa de preferat.
O alternativa care sa implice folosirea unei interfete grafice implica mari dezavantaje, cum ar fi costuri mai mari din partea firmei, deci o rentabilitate mai redusa, costuri atat cu licente de Windows si Visual Studio cat si cu echipamente cu mai multe resurse si o perioada mai lunga pentru dezvoltare.
Si apropos, spuneai parca si despre usurinta intretinerii diverselor programe, care se poate face mai simplu daca programele sunt scrise in limbaje strongly typed. De obicei programele sunt mai usor de intretinut in programele strongly typed, insa nu fiindca sunt strongly typed, adica nu fiindca in ele se declara tipul variabilelor, lucru care dupa cum am mai spus se poate face oarecum si in Perl daca vrei, ci fiindca sunt mai standard si acelasi lucru se face de obicei intr-un singur fel. Ma rog, asta este deviza si a limbajului Python... dar ma rog , nu asta conteaza.
Ceea ce conteaza este faptul ca exista domenii in care programele rareori trebuie intretinute. De exemplu daca creezi programe care preiau date din fisiere pdf, doc, docx, xls, xlsx, txt, site-uri web etc, pentru a fi folosite apoi in data mining, daca un site se modifica, sau daca formatul si structura unui fisier se modifica, atunci trebuie de obicei sa rescri programul in intregime, fiindca nimic nu mai seamana oricum. Poate ca inainte analizai un fisier xlsx, iar acum trebuie sa analizezi un fisier pdf cu imagini. Asa ca ceea ce conteaza in primul rand este sa poti crea programul super rapid. Sigur, folosesti si multe module foarte standard, insa in nici un caz nu poti crea programe in care poti defini variabilele foarte clar, fiindca o data calendaristica poate aparea o data ca 2013-09-16, alteori ca 09/16/2013, alteori ca Sep 9 2013 iar in locul altor variabile numerice pot aparea diverse litere etc.
De aceea pentru astfel de nevoi se folosesc limbaje dinamice, si de aceea si robotul folosit de Google este scris in Python.
De aceea am spus eu ca depinde de domeniul in care ai nevoie de programe, si ca pentru unele domenii este mai bun un limbaj, iar pentru altele alt limbaj, nu ca sa promovez eu Perl sau limbajele dinamice.
Eu scriu acum acest text intr-un program cu interfata grafica, prefer sa folosesc Winamp si nu un media player in linia de comanda, asa ca fiecare tip de interfata isi are locul ei.