 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
johnutz
Data înscrierii: 20/Iul/2004
Mesaje: 956
Locație: Între scaun și tastatură
|
| Trimis: Lun Feb 28, 2005 10:46 am Titlul subiectului: |
|
|
Arond, tu de multe ori ai scris chestii corecte si ai lamurit lumea p-aici, dar cu asta ai luat-o un pic pe alaturi:
arond a scris: Oricum ar fi, PHP 3+ e cu siguranta un limbaj de programare.. confuziile cu pricina sunt stupide si denota analfabetism. Cu alte cuvinte, daca scriu un CGI in C, inseamna ca C nu e limbaj de programare ? :)
Get real.
Numa' bune.
Se pare ca aici ai vrut sa zici ca CGI e limbaj de programare..
CGI = Common Gateway Interface
Si se refera la ceva de genul ca ai un executabil pe care il apeleaza serverul http si apoi outputul acestuia il da catre browser. |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Lun Feb 28, 2005 11:48 am Titlul subiectului: |
|
|
johnutz, de ce nu citesti tu cu atentie ? Ia, reluam:
Cu alte cuvinte, daca scriu un CGI in C, inseamna ca C nu e limbaj de programare ?
---
CGI = Common Gateway Interface
Si se refera la ceva de genul ca ai un executabil pe care il apeleaza serverul http si apoi outputul acestuia il da catre browser.
Si acum explicitam:
"Daca scriu un program care respecta specificatia CGI in C , asta inseamna ca C nu e limbaj de programare ?"
Numa' bune. |
|
| Sus |
|
lostone
Data înscrierii: 03/Feb/2005
Mesaje: 233
Locație: behind a firewall
|
| Trimis: Mie Mar 02, 2005 2:10 pm Titlul subiectului: |
|
|
http://www.answerbag.com/q_view.php/948
that should do it... |
|
| Sus |
|
TheWanderer
Data înscrierii: 05/Apr/2004
Mesaje: 142
Locație: Bucuresti
|
| Trimis: Mie Mar 02, 2005 4:22 pm Titlul subiectului: |
|
|
Sunt sigur ca voi fi contestat de multi dar PHP nu este un limbaj de programare. Si uite si cateva argumente - unele deja le cunoasteti dar le voi enumera oricum:
1. Nu poti face cod executabil, PHP are nevoie de parser pentru a functiona. Practic reinterpretarea scriptului de face la fiecare rulare.
2. Nu ai practic nici un control asupra segmentului de date (heap). Nu poti aloca memorie dinamic.
3. Nu are caracter permanent. In C daca scriu un CGI ala o sa stea deschis cat vreu eu fara sa se apuce sa dea time-out!
4. Nu poti linka catre API-ul sistemului de operare.
5. Nu poti integra module obiect.
6. PHP nici macar nu a auzit de COM, ATL, COM+
7. In PHP instantiez o clasa, lucrez cu ea si apoi o transform in string. Pai in ce limbaj de programare mai exista treaba asta? PHP nu are nici macar tipuri.
Daca stau sa ma gandesc mai mult cred ca mai gasesc si alte argumente. Pe moment astea sunt suficiente. Think about it!
... si nu aruncati cu pietre ! |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Mie Mar 02, 2005 5:49 pm Titlul subiectului: |
|
|
Sa aruncam cu pietre :):
TheWanderer a scris: 1. Nu poti face cod executabil, PHP are nevoie de parser pentru a functiona. Practic reinterpretarea scriptului de face la fiecare rulare.
2. Nu ai practic nici un control asupra segmentului de date (heap). Nu poti aloca memorie dinamic. Asa nici Java nu e limbaj de programare.
TheWanderer a scris: 3. Nu are caracter permanent. In C daca scriu un CGI ala o sa stea deschis cat vreu eu fara sa se apuce sa dea time-out! Se poate si in PHP (vezi time_limit), dar in nici un caz asta nu e un criteriu pentru care ceva este sau nu un limbaj de programare.
TheWanderer a scris: 4. Nu poti linka catre API-ul sistemului de operare.
5. Nu poti integra module obiect. Acelasi argument ca 1, 2... asa nici Java nu e limbaj de programare.
TheWanderer a scris: 6. PHP nici macar nu a auzit de COM, ATL, COM+ Asta-i culmea! Tehnologii Microsoft, criterii pentru deslusirea poroblemei :). Si mai esti si inconsecvent: COM si COM+ sunt cu totul altceva decat ATL.
TheWanderer a scris: 7. In PHP instantiez o clasa, lucrez cu ea si apoi o transform in string. Pai in ce limbaj de programare mai exista treaba asta? PHP nu are nici macar tipuri. "o transform in string" se numeste serializare si e oferita de mai toate limbajele orientate obiect. A fi sau nu strong typed nu e nici asta un criteriu.
Numa' bune. |
|
| Sus |
|
TheWanderer
Data înscrierii: 05/Apr/2004
Mesaje: 142
Locație: Bucuresti
|
| Trimis: Mie Mar 02, 2005 6:08 pm Titlul subiectului: |
|
|
Now wait just a darn minute ...
1. In Java poti face module obiect si cod executabil. In Java poti aloca si dealoca un pointer (ca e mai mult static decat dinamic asta e partea a doau). Chestia cu Java nu se aplica. Iar, in Java poti linka catre alte librarii dinamice si module. Toata ideea cu Java e ca se ruleaza pe masina virtuala, adica se emuleaza procesorul. Nu e chiar aceeasi chestie!
Codul se compileaza si poti face multe chestii. Poti creea si suprafete OpenGL din Java!
2. Ok, poate persistenta nu e un criteriu tocmai potrivit. Il scoatem pe asta.
3. ATL (Template libraries) COM si COM+ nu sunt chestii inventate numai de microsoft. Chiar si gcc suporta atl. Eu nu vad cum faci un COM server in PHP si COM e folosit mult de tot! Hai sa spunem ca e o tehnologie si poate nu se aplica, dar orsicat. In PHP nu poti sa linkezi catre alte librarii decat daca it scrii tu wraper peste ele ... in C!
4. Chestia cu "o transform in string" nu se refera la serializare. Ma refer la o chestie de genul: $var_clasa = "acum e sir!"; Trec de la un tip la alt tip desi nu au nici o legatura intre ele. Ma rog .. tip .. in PHP nu exsita tipuri!
Ma rog, chiar nu am de gand sa ma bag intr-o polemica prea aprinsa cu subiectul asta pentru ca nu ma intereseaza prea tare daca este sau nu este limbaj de programare cat timp is face treaba. Poate implicatia care starneste ambitiile este daca cei care programaeaza in PHP sunt sau nu "la fel de programatori" ca cei de C++. Fara doar si poate ca da. |
|
| Sus |
|
w31rd0
Data înscrierii: 15/Mar/2004
Mesaje: 165
Locație: Timisoara
|
| Trimis: Mie Mar 02, 2005 10:02 pm Titlul subiectului: |
|
|
TheWanderer a scris: Ma rog, chiar nu am de gand sa ma bag intr-o polemica prea aprinsa cu subiectul asta pentru ca nu ma intereseaza prea tare daca este sau nu este limbaj de programare cat timp is face treaba. Poate implicatia care starneste ambitiile este daca cei care programaeaza in PHP sunt sau nu "la fel de programatori" ca cei de C++. Fara doar si poate ca da.
Nici eu nu aveam de gand sa mai postez aici, dar iti dau dreptate si te contrazic in acelasi timp. Php este un limbaj de programare, insa unul EXTREM de usor, unul de un nivel foarte inalt, comparabil cu Foxpro.
Programatorii de php, chiar si cei foarte buni, care stiu arhitecturi, manaca o implementare MVC, optimizeaza codul, query-urile, etc nu se pot compara cu programtorii buni de C++, Java EE, Visual C, etc
Aceste tehnologii sunt mult mai complexe, mult mai greu de inteles si folosit.
w31rd0 |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Mie Mar 02, 2005 10:29 pm Titlul subiectului: |
|
|
Masina virtuala Java are mai multe in comun cu Zend engine-ul decat ai crede. Si PHP se compileaza intr-un cod intermediar (bytecode) care e interpretat, ca in Java... si asemanarile continua.
Oricum, citat din Wikipedia (http://en.wikipedia.org/wiki/Programming_language):
A programming language or computer language is a standardized communication technique for expressing instructions to a computer. It is a set of syntactic and semantic rules used to define computer programs. A language enables a programmer to precisely specify what data a computer will act upon, how these data will be stored/transmitted, and precisely what actions to take under various circumstances.
Nu cred ca, in lumina acestei definitii, mai exista vreo umbra de indoiala.
Si inca ceva, important mai ales pentru cei care acum isi formeaza competentele: un limbaj de programare nu e decat o scula, un instrument. Chestia care conteaza cel mai mult (si care te face sau nu programator) nu e ce limbaje (tehnologii) cunosti, ci felul in care esti in stare sa formalizezi si abstractizezi problemele.
Un bun programator invata un nou limbaj de programare in 3 zile.
Numa' bune. |
|
| Sus |
|
w31rd0
Data înscrierii: 15/Mar/2004
Mesaje: 165
Locație: Timisoara
|
| Trimis: Joi Mar 03, 2005 12:06 am Titlul subiectului: |
|
|
No ofense dar ti-ai dat cu firma in cap, este o mare diferenta intre tehnologiile amintite de mine.
Nu inveti un limbaj in 3 zile de nici o culoare, doar de curiozitate si sincer, sunt curios in cate alte limbaje / tehnologii ai mai lucrat in afara de WEB, si in fara de PHP ??
A programa Visual e total diferit ca si concepte... etc, la fel si pt C, arhitecturi diferite, etc, sincer cam dai impresia ca ori nu stii ce inseamna programare la nivel serios ori nu stii ce inseamna sa cunosti nu o tehnologie ci un domeniu. Nu ma refer la cat de greu este sa inveti ce anume fac anumite clase, functii etc ci la modul cum le folosesti, este diferit in fucntie de domeniul unde programezi.
Definitia pe care ai dat-o nu o gasesc prea concludenta, ea suna mai mult la nivelul general, si pare cam invechita. Ideea e ca "limbajul" tau de programare, adica PHP nu este intrepretat de un computer ci de un interpreter, dupa cum s-a mai spus.
La Java ii zice Java Virtual Machine, machine stii tu ce inseamna, inainte sa interpretezi ceva in Java il compilezi in cod masina (interpretabil de JVM), deci se incearca asemanarea cu un limbaj clasic, care este compilat in functie de masina unde va rula, doar ca aici masina e portabila.
Eu nu neg ca PHP nu este un limbaj de programare, dar nu este unul cu care sa te mandresti ca mare programator, chiar daca il stii la un nivel foarte avansat ca si concepte etc, si tu mai ales, daca tot poti sa inveti un nou limbaj / tehnologie in 3 zile, aloca o sapt din timpul tau, studiaza J2EE si .Net si mai vb :)
noapte buna ;) |
|
| Sus |
|
Pirahna
Data înscrierii: 22/Aug/2004
Mesaje: 4530
Locație: la birou
|
| Trimis: Joi Mar 03, 2005 12:39 am Titlul subiectului: |
|
|
uf uf uf ... mai postasem una in care zisesem aceleasi chestii dar a fost sters miraculos ... :lol:
asa ca mai zic odata , dar frumos ca sa nu mai apese nimeni pe delete ...
Umm ... am discutat , s-a raspuns la intrebare ... haideti sa nu mai batem campii cu php limbaj de programare si sa trecem la urmatorul topic ok ???
:) |
|
| Sus |
|
punctweb
Data înscrierii: 24/Mar/2004
Mesaje: 507
|
| Trimis: Joi Mar 03, 2005 12:42 am Titlul subiectului: |
|
|
urmaresc topicul asta de ceva timp si am vazut ca toata lumea (intr-o oarecare masura) si-a dat cu parerea despre ce inseamna un limbaj de programare (desi topic-ul era daca PHP e un limbaj de programare)... In fine...
Eu am o alta curiozitate (desi sustin ideea de off-topic): mai programeaza cineva in ASM (ma refer la cei care activeaza pe forum-ul acesta, nu la lumea larga) ? |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Joi Mar 03, 2005 2:31 am Titlul subiectului: |
|
|
w31rd0 a scris: No ofense dar ti-ai dat cu firma in cap, este o mare diferenta intre tehnologiile amintite de mine.
Nu inveti un limbaj in 3 zile de nici o culoare, doar de curiozitate si sincer, sunt curios in cate alte limbaje / tehnologii ai mai lucrat in afara de WEB, si in fara de PHP ?? 10+ ani C/C++, vreo 2 ani Pascal inainte + inca vreo 2 ani Basic... ASM 8080,Z80,x86 (mai putin)... sa mai zic ? :) Dar nu experienta mea e relevanta, ci argumentele mele.
w31rd0 a scris: A programa Visual e total diferit ca si concepte... A programa Visual e o gaselnita de marketing Microsoft, si asta e o discutie lunga. Acum ca tot m-ai intrebat, am folosit Visual C++ de la versiunea 1.42/16 biti.. ar trebui sa stiu ce vorbesc.
w31rd0 a scris: la fel si pt C, arhitecturi diferite, etc, sincer cam dai impresia ca ori nu stii ce inseamna programare la nivel serios ori nu stii ce inseamna sa cunosti nu o tehnologie ci un domeniu. C (intamplator sau nu) seamana teribil cu PHP, atat ca limbaj in sine cat si bibliotecile standard. Ca sa vezi ca am dreptate, compara Lisp cu C :).
w31rd0 a scris: Nu ma refer la cat de greu este sa inveti ce anume fac anumite clase, functii etc ci la modul cum le folosesti, este diferit in fucntie de domeniul unde programezi. Cred ca m-ai inteles gresit. Ce am spus eu e faptul ca inveti un limbaj de programare in 3 zile, nu tehnologiile aferente. Cu alte cuvinte, daca eu sunt un programator bun, cu experienta solida C si stiu ce sunt sockets si cum arata o stiva TCP/IP + RFC-urile relevante, iti scriu un client de mail in PHP din prima zi, chit ca e prima aplicatie PHP pe care o scriu ever.
w31rd0 a scris: Definitia pe care ai dat-o nu o gasesc prea concludenta, ea suna mai mult la nivelul general, si pare cam invechita. Ideea e ca "limbajul" tau de programare, adica PHP nu este intrepretat de un computer ci de un interpreter, dupa cum s-a mai spus.
La Java ii zice Java Virtual Machine, machine stii tu ce inseamna, inainte sa interpretezi ceva in Java il compilezi in cod masina (interpretabil de JVM), deci se incearca asemanarea cu un limbaj clasic, care este compilat in functie de masina unde va rula, doar ca aici masina e portabila. Tu chiar nu intelegi ca faptul ca e compilat vs. interpretat nu are NICI O relevanta vizavi de un limbaj de programare ? Daca iti scriu maine un interpretor C, asta face ca C-ul sa fie mai putin limbaj de programare decat era pana acum ? Sau, un alt exemplu, Pascal: au existat compilatoare de Pascal pentru diverse platforme, ca si interpretoare de Pascal pentru aceleasi platforme. Asta inseamna ca Pascal este sau nu este limbaj de programare ? :).
Iar vizavi de JVM, repet, Zend engine e, conceptual, tot pe acolo.
w31rd0 a scris: Eu nu neg ca PHP nu este un limbaj de programare, dar nu este unul cu care sa te mandresti ca mare programator, chiar daca il stii la un nivel foarte avansat ca si concepte etc, si tu mai ales, daca tot poti sa inveti un nou limbaj / tehnologie in 3 zile, aloca o sapt din timpul tau, studiaza J2EE si .Net si mai vb :) Aici iar faci confuzie intre un limbaj de programare (Java sau C# sau ce vrei tu) si o platforma tehnologica (J2EE si .Net). Sunt lucruri diferite si, repet, am spus ca un programator bun invata un limbaj de programare in 3 zile si nu o anume platforma tehnologica. De exemplu, un bun programator C++ cam ce dificultati are sa invete C# ?
Ar fi bine sa vizitezi pagina aia de wikipedia, ai mai avea ceva de invatat (n-o spun cu aroganta sau condescendent)... Pentru amatori: http://en.wikipedia.org/wiki/Programming_language
EDIT
-----
Inca ceva, care cred ca provoaca ceva confuzie. Un limbaj de programare este o abstractiune matematica: se poate vorbi despre el la modul general, nu legat de o anume platforma, etc/etc... A nu se confunda un limbaj de programare cu un mediu de programare/platforma/whatever...
Pot sa programez C si pe hartie sau cu abacul :).
Numa' bune. |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Joi Mar 03, 2005 2:37 am Titlul subiectului: |
|
|
punctweb a scris: Eu am o alta curiozitate (desi sustin ideea de off-topic): mai programeaza cineva in ASM (ma refer la cei care activeaza pe forum-ul acesta, nu la lumea larga) ? Eu personal nu, de multa vreme... motivul sunt compilatoarele C/C++ moderne care genereaza, de cele mai multe ori, cod optimal... nu prea mai are sens sa te chinui cu ASM pentru castig de performanta 0.
Numa' bune. |
|
| Sus |
|
aurelian
Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti
|
| Trimis: Joi Mar 03, 2005 9:14 am Titlul subiectului: |
|
|
M-am abtinut si eu cat am putut de mult, dar sa imi dau si eu cu parerea acum :)
Daca php NU e limbaj de programare, atunci nici python sau ruby nu e.
Asemanarile intre cele 3 (php, python, ruby) sunt destul de mari:
toate sunt interpretate
nici in python nu exista tipuri (poti pune relaxat egal intre un int si un string).
Si (parerea mea) ruby sau python sunt mai orientate pe obiecte decat JAVA tocmai din cauza "tipurilor".
Mai nou exista si in php ceva: type hinting:
an style="color: #000000"><?php class foo{
}
class bar{
public function __construct(foo $foo){
}
}
$a = new foo();
$b = new bar($a);
Cam acum un an am descoperit obiectele, si de atunci lumea mea s-a transformat, iar cand a aparut php 5 am aflat de metode/atribute private/protected/public am aprofundat cuvinte cheie ca: static, implements, extends, abstract, instanceOf. Mai mult am reusit sa pun toate informatiile astea cap la cap si am pus-o de un "framework" - si lucrul cel mai interesant - pe care chiar il folosesc in productie. Am invatat si alte cuvinte: refolosirea codului, refractoring, design patterns.
In ianuarie statutul meu sa schimbat si a fost nevoie sa portez un cod existent scris in php in java -> dead line 20 de zile.
Cea mai mare problema a fost sa renunt la $ cand declar o variabila si sa pun . cand apelez o metoda in loc de ->.
Iar NUllPointerExceptions au fost chiar amuzante (un limbaj fara pointeri imi da NullPointerException???).
In rest mi-am terminat treaba in 10 zile :)
Printre tehnologii: XML (parsare+transformare xsl)+socketzi+JDBC.
Utilizarea JUnit sau Ant mi s-a parut foarte fireasca iar descoperirea faptului ca foloseam modelul Template Method (def. Gof) fara sa stiu a fost un alt castig important ptr. mine.
Nu se poate spune ca php nu e un limbaj de programare.
Mai nou se pot crea si executabile (see: http://amansio.blogspot.com/2005/02/php-php2exe.html ) sau aplicatii GUI ( http://amansio.blogspot.com/2005/02/php-php-method-synopsis.html )
Probabil ca multi nu isi dau seama de posibilitatile pe care le ai in php (BTW: vezi extensia COM), iar comparatia php cu J2EE sau .NET e total aiurea (wtf .NET sau J2EE e o tehnologie nu un limbaj de programare).
Probabil aparita namespaceurilor in php ar distruge compatibilitatea cu codul scris pe php 3 sau 4. Ptr. ca e inca surprinzator dar codul scris pe php 3 poate inca sa mai mearga si pe php 5. Asa compatibilitate unde o mai gasesti?
gata. |
|
| Sus |
|
TheWanderer
Data înscrierii: 05/Apr/2004
Mesaje: 142
Locație: Bucuresti
|
| Trimis: Joi Mar 03, 2005 1:11 pm Titlul subiectului: |
|
|
Uite la ce pumni s-a ajuns! Puteam sa jur ca subiectul asta va fi un mar al Discordiei.
Eu am o experienta de aproximativ 7 ani in C++. PHP este pentru mine un limbaj trivial. De ce? Este extrem de usor sa lucrezi in el comparativ cu C++ unde trebuie sa ai invedere multe lucruri daca vrei sa nu iti crape programul. Ca dovada uite si droaia de pusti care se apuca de PHP. Ai scris doua linii si wow ... ai conexia la MySQL. Cei care au implementat libmysql pe Visual stiu cam care sunt problemele... nu e chiar asa usor.
PHP sockets ... beton. Pai cu Berkley sockets in C m-au apucat niste draci ...
Dar stiti ce? E super OK pentru ceea ce face. Majoritatea il folosesc la un nivel mult sub ceea ce poate sa faca (am vazut WebServer scris in PHP).
Sunt de acord cu Arond cand spune ca poti invata un alt limbaj de programare in 3 zile. Bine ... poate nu chiar 3 zile dar intr-un timp scurt orisicat. Logica este aceeasi! Cat timp stii sa gandesti un program, este usor sa il descrii in alt limbaj. Tehnologiile particulare sunt documentate ... oricum toti programam cu MSDN/alta documentatie in fata.
Citat: Cred ca m-ai inteles gresit. Ce am spus eu e faptul ca inveti un limbaj de programare in 3 zile, nu tehnologiile aferente. Cu alte cuvinte, daca eu sunt un programator bun, cu experienta solida C si stiu ce sunt sockets si cum arata o stiva TCP/IP + RFC-urile relevante, iti scriu un client de mail in PHP din prima zi, chit ca e prima aplicatie PHP pe care o scriu ever.
Nu as merge aici chiar atat de departe ... trecerea de la un limbaj la altul e destul de debusolanta. Tinzi sa gandesti lucrurile in C. Cel putin eu cand m-am apucat de PHP puneam intrebari de genul: Dar cum fac un ptr catre aia? Dar cum fac lock pe treaba aia?
Citat: De exemplu, un bun programator C++ cam ce dificultati are sa invete C# ?
C# e really dumb ... asta i-ar pune mari bete in roate! :D
Citat: nca ceva, care cred ca provoaca ceva confuzie. Un limbaj de programare este o abstractiune matematica: se poate vorbi despre el la modul general, nu legat de o anume platforma, etc/etc... A nu se confunda un limbaj de programare cu un mediu de programare/platforma/whatever...
Total de acord. In final totul se rezuma la instructiuni de baza.
Bottom line! Ambele tabere isi apara cu inversunare pozitiile. Din punctul meu de vedere scorul este 0-0! Sunt multe argumente pro dar tot atatea argumente contra.
Programatorii PHP sunt "la fel de programatori" ca si cei de C++ sau alt limbaj. E adevarat ca nu multi privesc lucrurile asa. Poate nu chiar neintemeiat, multi php-isti nu au nici cea mai vaga idee de ce este in spate. Ceea ce ii face insa programatori este ca pot descrie un flux logic! Chiar daca in spate au o groaza de librarii care le fac viata usoara.
Hai sa inchidem topicul asta ca e clar ca nu are nici un rost ! |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|