Jeste čuli da su avioni za 9.11 zapravo bili AI PHP?
Čitam ovo već par dana i ne mogu da verujem šta ljudi pišu. Onda razmišljam - niko od starijih i iskusnijih neće da se umeša šta bih se ja trtio. E onda se setim da sam i ja nekad počinjao sa PHP-om i da su mi ovakve diskusije, koje blage veze sa realnošću i zdravom logikom nemaju, uvek smetale jer sam trošio vreme čitajući nebuloze. Zato pišem ova post - jer neko ko stvarno počinje sa PHP-om i web developmentp, možda naleti na ovo. Da ne pomisli kako ste napisali bilo šta pametno i korisno!
Da se vratimo na osnove:
Citat:
PHP is an open source general-purpose server-side scripting language originally designed for Web development to produce dynamic Web pages.
Izvor:
Wikipedia. Kakve to ima veze sa praksom? PHP omogućava developerima/programerima da jednostavno upravljaju obradom HTTP zahteva koji pristižu na web server (Da li je to Apache, lighttpd... potpuno nebitno). Poslednjih godina kako je preuzeo veliki udeo u tržištu napravljen je i interni webserver koji možete pokrenuti kako biste izbegli podešavanje ozbiljnog, produkcionog, web servera. Ne preporučuje se korišćenje njegovog web servera u produkcionom okruženju. Takođe PHP ima mogućnost programiranja CLI (command-line interface) aplikacija koje se pokreću iz komandne linije. Ova mogućnost se često koristi pri razvoju aplikacija koje aktivira cron (npr. potrebno vam je da se na svakih 10 minuta izvrši neka provera na serveru - cron + php cli app vam to omogućavaju). Dakle da raspravimo za kraj - PHP služi za "server-side" programiranje ili uprošćeno - obradu HTTP request-ova. Da moguće je koristite PHP aplikacije u kombinaciji sa mail serverom, cron-om, cli-em ali to onome ko počinje sa PHP-om nije primarno. Iz svega ovoga napisanog sledi - nikakav GUI (o driver-ima neću čak ni trošiti reči to je glupost svoje vrste) se ne pravi u PHP-u niti PHP ima nekog uticaja na GUI osim što služi da na određeni način izgeneriše HTML kod (u koji spada i JavaScript) i to isporuči kao odgovor klijentu koji je uputio zahtev (npr. browser-i kao što su Chrome, Firefox, IE, Opera...).
Ono što vi nazivate GUI zapravo je kombinacija "client-side" jezika kao što su HTML, JavaScript, Flash. Oni rade potpuno NEZAVISNO od "server-side" jezika!!!! Korišćenje bar kod čitača ili bilo kog drugog ulaznog uređaja zavisi isključivo od:
a) operativnog sistema
b) u manjoj meri browser-a.
Dakle ako želite da neko u Vašoj aplikaciji koristi bar kod skener - napravićete najobičnije input text polje i ostatak PREPUSTITI OS-u! To input text polje je HTML, blage veze nema sa PHP-om. Može se korišćenem AJAX tehnologije povezati sa serverom na kojem je PHP skripta za validaciju bar koda i to onda izgleda ovako:
1. Ukucavanjem adrese vaš browser šalje zahtev Web serveru (na kojem se koristi PHP ili neka druga tehnologija - potpuno nebitno).
2. Web server pri prijemu zahteva pročita
HTTP header-e kao i telo samog zahteva. Prvi služe uglavnom za kontrolu i upravljanje - "telo" zapravo čine podaci specifični za taj zahtev.
3. Web server na osnovu podataka iz zahteva poziva aplikaciju/skriptu nadležnu za taj zahtev koja opet može, a ne mora, biti PHP! Obrada zahteva se odradi tu, izgeneriše se "output" koji sadrži opet HTTP hedere i telo sa HTML kodom (ograničavam se sad na web aplikacije i zahteve koji se tiču generisanja web strane, u "telu" ne mora biti HTML ukoliko se koristi AJAX tehnologija onda se prosleđuje JSON, XML....). Rezultat obrade se prosleđuje browser-u.
4. Browser zatim čita HTTP odgovor (response), generiše DOM dokument koji je zapravo složena struktura (stablo) objekata a koji su opisani HTML-om! Zatim interpretira JavaScript i ostatak nek dopune front-end developeri.
Dakle - GUI je HTML-CSS-JS-Flash tehnologija koja nema veze sa PHP-om osim što PHP čita šta ste VI napisali u tim fajlovima sklapa ih na način i po logici koju ste VI napisali koristeći PHP i to isporučuje browser-u. Browser je dalje nadležan da na osnovu tog HTML-a generiše GUI (ako se to tako uopšte može nazvati al ajde ... kao može). Štampanje, kase, miš, tastatura, bar kod skener i sve ono gore napisano je u nadležnosti OS-a i delimično Browser-a A NE PHP-a! Lepota cele priče je što taj PHP na serveru možete zameniti ASP-om, Python-om, Ruby-em.... i ukoliko iskoristite iste HTML-CSS-JS fajlove, velika verovatnoća da korisnici to neće ni primetiti!
Kada je sve ovo napisano bio bi red da odgovorim korisniku koji je postavio pitanje ima li PHP budućnost:
Pitanje je široko i "složeno". Rekao bih da ima ukoliko oni koji rade na razvoju PHP-a uspeju da isprate savremene tokove. Neki drugi jezici su odavno usvojili OOP koncepte i približili se tradicionalnim jezicima kao što su Java i C#. Mislim da će na tom polju biti najviše unapređenja u narednom periodu. Web development se neverovatno brzo razvija i menja - potrebno je omogućiti veću slobodu programerima u radu sa memorijom i mogućnost razvoja složenijih algoritama obrade za koje, lično mislim, PHP još uvek nije idealno rešenje.
Ono što je PHP-ova dobra strana to je brzina učenja. Jako se brzo početnici kojima je to prvi jezik uhodavaju i počinju da rade. Takođe "prašta" greške i jako je intuitivan i "lagan" za korišćenje. Postoji ogromna zajednica ljudi i mogućnost da je neko naišao na problem sa kojim se susrećeš je 99%. To je još jedna velika stvar svakom početniku. Nažalost baš zbog toga što je relativno jednostavno početi sa PHP-om ima dosta ljudi kao što su ovi koji "pišu drajvere i GUI" u PHP-u... Prosto kvantitet je prevladao nad kvalitetom. Takođe PHP ima kvalitetne biblioteke za većinu stvari koja će ti biti potrebna pri izradi web aplikacija sa dobrom dokumentacijom, primerima itd... Sve u svemu - biće on tu još dugo i ako ti je cilj da radiš jednostavnije aplikacije (jednostavne blogove, CMS-ove...) svakako počni sa PHP-om baš zbog te "lakoće" učenja. Postoi veliki broj gotovih framework-a kojima se možeš služiti ali ti toplo preporučujem da počneš sa "native" (osnovnim) PHP-om. Kada savladaš osnove PHP-a neće ti biti problem da uzmeš WP koji je open-source blog platforma (mada koliko god ja to odbijao da prihvatim zbog neke "tradicije" - polako postaje kompletno CMS rešenje i još što šta...). S' obzirom da si web dizajner i da se verovatno nećeš baviti razvojem velikih i složenih aplikacija - slobodno uzmi PHP, nećeš pogrešiti :)
Sa druge strane Python se sa svojim Django framework-om poprilično proširio i počeo da uzima maha. Koliko je Python "jednostavan" za učenje dovoljno govori to što mu je bilo neophodno da se napravi kompletan Framework da bi ljudi počeli da ga koriste za stvari za koje koriste PHP bez ikakvih dodataka. O ASP-u, Ruby-u i drugim sličnim jezicima neću pisati jer se sa njima nisam susretao - ostaviću to kolegama koje će možda potrošiti malo vremena da kažu više o njima.
Pozdrav.
P.S. I pre nego što krene priča o GTK i Qt ekstenzijama - ne pravi se od Ferarija svemirski brod... Na tom polju teško da će PHP ikada uspeti ozbiljno da ugrozi C# i Javu.
Bad programmers worry about the code. Good programmers worry about data
structures and their relationships.