Prijava na forum:
Ime:
Lozinka:
Prijavi me trajno:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:

ConQUIZtador
nazadnapred
Korisnici koji su trenutno na forumu 0 članova i 1 gost pregledaju ovu temu.


Tema za pitanja
o SMF forumu, phpBB2 i phpBB3 forumu, Wordpress i Joomla CMS sistemima!

Za vecinu drugih pitanja nacicete odgovor citajuci Top teme!

Idi dole
Stranice:
2  Sve
Počni novu temu Nova anketa Odgovor Štampaj Dodaj temu u favorite Pogledajte svoje poruke u temi
Tema: php jezik pregazen vremenom....(?)  (Pročitano 6483 puta)
15. Feb 2009, 11:36:51
Prijatelj foruma
Poznata licnost


Drugovi, drugovi, ... pa u drugom stanju...

Zodijak Gemini
Pol Muškarac
Poruke 2954
Zastava Vienna
OS
Windows XP
Browser
Mozilla Firefox 3.0.6
mob
HTC Sensation XL
Prenosim mishljenjel iskusnog programea zaposlenog u američkom Surgeworksu (Inchoo)...

Osvrnimo se sada na programski jezik zvan PHP. Svatko tko se bavi razvojem web aplikacija zasigurno je čuo za PHP (ukoliko nekoliko posljednjih godina nije proveo u...). Ukoliko u Google tražilicu upišete riječ "php" dobit ćete približno 10.010.000.000 rezultata. Što se u odnosu na "ruby" pretragu od 96.200.000  i "python" pretragu od 66.800.000 rezultata čini kao iznimno impresivna brojka.

Postavlja se pitanje, što PHP čini popularnim. Jedno od najčešćih odgovora koje će te dobiti jest kako je PHP iznimno lagan za naučit. Moj odgovor na taj odgovor, smjeh!

PHP, kao niti jedan drugi jezik nije lagan za naučit. Lagan je iskusnom programeru koji radi prijelaz s jednog na drugi programski jezik, ali početniku ne. Zapravo, usudio bih se reći kako je PHP jedan od težih jezika  za svladati.

Svatko je u stanju u pet minuta naučiti <?php echo 'Hello world'; ?>. Ako je to mjerilo učinje, onda da, lagan je. No PHP se od verzije 4 a pogotovo 5 hvali sa OOP podrškom. Za neupučene, Object Oriented Programming. Po mom skromnom mišljenju PHP i OOP su blago rečeno gorka kombinacija. PHP je započeo kao proceduralni jezik. Njegova trenuta podrška OOP-u je, blago rečeno, srednja žalost.

No vratimo se na "mjerilo težine učenja". Ukoliko kao ja imate iskustva sa MS Visual Studio i npr. C# programskim jezikom tada shvačate koliko koristna može biti Code Completion funkcionalnost što se samog IDE rješenja tiće te strongly typed osobona jezika koju ima C# primjerice. PHP je loosely typed programski jezik. Što znaći da informacija koju spremamo u varijablu može biti u jednom trenutku jednog tipa a u drugom trenutku nekog trugog tipa. Ovo je onaj dio koji ga čini "laganim za naučiti". Početnicima će se svidjeti ova "osobina" jer nisu svjesni njezinih mana. Tim više što varijablu nije potrebno deklarirati prije korištenja. PHP-u je svejedno što stavite u varijablu te kako "presipavate" varijable iz jedne u drugu, on će sam za vas odraditi "type casting". Ovo se u dobroj večini slučajeva ne manifestira kao problem jer rjetko kada čete naići na slučaj da "type casting" koji je PHP odradio nije onaj koji ste htjeli. Sve ovo je transparentno korisniku (developeru) stoga ako ste početnik na ovo niti ne obračate pažnju. Cool, zar ne? Ne! Sve ovo, vodi do kasnijih glavobolja kada je u pitanju debugging. Siguran sam da će se velika večina iskusnih PHP developera složiti kako je debugging nepoznanica, da ne kažem nula, u svijetu PHP-a. Barem kada se usporedi s onim kojeg imate u strongly typed jezicima poput C# (uz pomoć Visual Studia).

Debugging je jedan od najbitnih koraka u procesu razvoja apliakcije. PHP za sada nije "najsretnije" uhvatio taj korak.

Osvrnimo se sada na "function return type". Još jedna od nepoznanica ovog open source programskog jezika. U PHP je dozvoljeno napisati funkciju tipa

   1. public function doSomething($someParametar)   
   2. {     
   3. /* Vraca ispis (tj pise u web stranicu) ako je predani parametar integer, broj 1 */   
   4.     if($someParametar === 1) {   
   5.         echo 'Parametar predan funkciji je integer,  broj: 1';   
   6.     }   
   7.       
   8.     /*  Vraca string tip ako je predani parametar jednak stringi '1' */   
   9.     if($someParametar === '1') { 
  10.         return 'Parametar predan funkciji je string,  stringa sadrzi tekst: "1"';   
  11.     }   
  12.       
  13.     /* Vraca bool tip ako je predani parametar jednak null ILI praznoj stringi */ 
  14.     if($someParametar == null) {   
  15.         return true;   
  16.     }       
  17.       
  18.     /* Vraca array tip ako je predani parametar float tipa i jednak 4.2 */   
  19.     if($someParametar === 4.2) {   
  20.         return array(4.2, 2.4);   
  21.     }   
  22.       
  23. } 

public function doSomething($someParametar) { /* Vraca ispis (tj pise u web stranicu) ako je predani parametar integer, broj 1 */ if($someParametar === 1) { echo 'Parametar predan funkciji je integer, broj: 1'; } /* Vraca string tip ako je predani parametar jednak stringi '1' */ if($someParametar === '1') { return 'Parametar predan funkciji je string, stringa sadrzi tekst: "1"'; } /* Vraca bool tip ako je predani parametar jednak null ILI praznoj stringi */ if($someParametar == null) { return true; } /* Vraca array tip ako je predani parametar float tipa i jednak 4.2 */ if($someParametar === 4.2) { return array(4.2, 2.4); } }

Nedostatak deklaracije tipa funkcije jedan je od največih nedostataka PHP-a. Ne možete biti sigurni u tip rezultata funkcije ukoliko ona nema deklaraciju povratnog tipa. Gore navedeni primjer pokazuje i zašto. U primjeru su jasno navedene situacije gdje sam u suštini sam naveo povratni tip nakon svakog return-a. No zamislite da sam radio "return $sommeInnerFunctionVariable" gdje je $sommeInnerFunctionVariable varijabla koja je rezultat nekakvih operacija unutar funkcije.

Ukoliko se niste dobro ogradili, vaša $sommeInnerFunctionVariable može poprimiti različite tipove te ako kasnije u kodu raditi stvari poput "if(doSomething('branko') === $someOtherVariable)..." tada postoji mogučnost da će se vaš kod slomiti, a najgore od svega nećete dobiti pogrešku. Ovakve greške zbog lošeg dizajna samog jezika iznimno su teške za uoćiti te vam mogu oduzeti iznimno puno vremena. Većina programera i dalje korsiti PHP-ove built-in funkcije var_dump i print_r za debugging. Ovakav način debugiranja je iznimno spor i nepraktičan.

Postoji par rješenja dostupnih na tržištu, no velika večina ih nije truda vrijedna jer ne obavljaju debuging kako treba. XDebug, PHPDebug... srednja žalost, Apache vam puca, loša, gotovo nikakva, implementacija u IDE rješenja (kojih je ionako za na prste jedne ruke).

Nedostatak "namespace"-a. Još jedna od boljki PHP-a. Namespace-i su iznimno korisna i neophodna stvar ukoliko želimo posati lako održivi kod. Lako održivi kod je s druge strane preduvjet kvalitetnom razvoju enterprise aplikacija. U PHP-u sve funkcije se nalaze u "jednom" namespace-u, što znaći da ukoliko se moja funckcija zove doSomething tada se niti jedna druga funkcija koju zovemo iz neke vanjske datoteke putem include-a or require-a ne smije zvati doSomething. Dio problema rješene je uvođenjem OOP podrške te ste u mogučnosti napisati nešto poput dolje navedenog.

   1. class People { 
   2.   
   3.     public function hello() { 
   4.   
   5.         echo 'Hello people...'; 
   6.   
   7.     } 
   8.   
   9.     public static function goodby() { 
  10.   
  11.         echo 'Goodby people...'; 
  12.   
  13.     } 
  14.   
  15. } 
  16.   
  17. function hello() { 
  18.   
  19.     echo 'Hello people, again...'; 
  20.   
  21. } 
  22.   
  23. $p = new People(); 
  24.   
  25. $p->hello(); 
  26.   
  27. $p::goodby(); 
  28.   
  29. hello(); 

class People { public function hello() { echo 'Hello people...'; } public static function goodby() { echo 'Goodby people...'; } } function hello() { echo 'Hello people, again...'; } $p = new People(); $p->hello(); $p::goodby(); hello();

PHP u verziji 6 najavljuje ispravak većine nabrojanih problema. No budimo realni, PHP je u startu građen kao proceduralni jezik, sve najavljene nadogradnje neće ga prestati činiti proceduralnim. Činjenica da vam je dozvoljeno pisati kombinaciju proceduralnog i OOP koda može ućiniti sretnim samo početnike, tj. one kojima se "prodaje" kako je PHP lagan za naučiti.

Jedna od "filozofija" dobrog dijela PHP developera jest, ne treba nam framework. Pišem kod i struktuiram aplikaciu kako ja hoću. Razmišljanja poput ovog dovela su principa "izmišljanja tople vode" gdje developeri iznova i iznova pišu kod za stvari koje su prije njih napisali drugi developeri nebrojeno puta. Uzmimo primjerice običnu file upload formu. Večina iskusnih developera napisala ju je iznova barem 5-10 puta. Nedostatak tog "one framework" principa za sobom povlaći nedostatak "komponenti" dostupnih za PHP. U ASP.Net-u primjerice, koji se zasniva na principu komponenata, postoji komponenta File upload koju je dobvoljno pozvati u kod i podesiti joj svega par property-a ne bi li bila funkcionalna. Opet, ovo čini kod daleko preglednijim i održivijim.

Što mislite zbog čega je Ruby popularan? Sigurno ne zbog samog jezika, već RoR-a. Doslovce jedan jedini framework u kojem svi rade. Doduše u posljednje vrijeme i tu se pojavljuju razno razna framework rješenje. No rezultat je isti, rad s frameworkom = struktuirane aplikacije, održiv kod, komponente.

Što se održivosti koda tiće, principa komponenti te debugiranja i ostalih business code-ing bitnih stvari tiće, PHP ima još velik put pred sobom. Do tada, ostaje nam na osloniti se na PHP framework-e kao što su ZendFramework, CodeIgniter, PHPCake, Symphone i sl. koji izlaće maksimum iz PHP-a.

Pravo pitanje je koliko je pametno graditi OOP temeljene aplikacije na jednom ovako "mutiranom" jeziku kao što je PHP u kojemu se isprepliću proceduralni i OOP kod?

Trenutno jedna od najbolje napisanih open source PHP temeljenih aplikacija je Magento, ecommerce platforma. Preporućio bih svima da si ju skinu s neta te pregledaju kod. Zatim usporedite taj kod sa kodom trenutno najpopularnije blog platforme, WordPress-a. WordPress je jedan od najboljih primjera "mutiranog" koda, u kojem se isprepliću proceduralni i OOP kod.

Nadam se da nisam bio previše kritičan prema PHP-u. Što ga više znate, to ga više volite i mrzite u isto vrijeme. Veselim se vašim komentarima, nadam se dobro argumentiranim

IZVOR: http://wm.com.hr/kolumna/php-jezik-pregazen-vremenom/7/
« Poslednja izmena: 15. Feb 2009, 11:45:50 od •Vodish li na pivo• »
IP sačuvana
social share
To je kao da kazes da nisi primetio ljubicastog slona sa neonskim osvetljenjem u guzici kako stoji pored tebe u mracnoj sobi Smiley
Pogledaj profil WWW
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Clan u razvoju


hmm...hmm...

Zodijak Libra
Pol Muškarac
Poruke 30
OS
Windows XP
Browser
Mozilla Firefox 3.5.2
mob
LG Shine
Jedini problemi PHP-a, do petice, su:
- Nema familija klasa
- Cache kod samog prevođenja u niži jezik (bitovi i to...nemoj samo spomenuti ob_start(), jer nije to)

Ova dva problema su uklonjena u PHP6  Smile
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Moderator
Capo di tutti capi


Underpromise; overdeliver.

Zodijak Gemini
Pol Muškarac
Poruke Odustao od brojanja
Zastava 44°49′N - 20°29′E
OS
Windows XP
Browser
Opera 9.64
mob
Apple iPhone 6s
Pritom jeste lak za ucenje i izuzetno dobro dokumentovan Smiley
IP sačuvana
social share
Pobednik, pre svega.

Napomena: Moje privatne poruke, icq, msn, yim, google talk i mail ne sluze za pruzanje tehnicke podrske ili odgovaranje na pitanja korisnika. Za sva pitanja postoji adekvatan deo foruma. Pronadjite ga! Takve privatne poruke cu jednostavno ignorisati!
Preporuke za clanove: Procitajte najcesce postavljana pitanja!
Pogledaj profil WWW GTalk Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Hronicar svakodnevice


Zodijak Aries
Pol Muškarac
Poruke 864
OS
Windows XP
Browser
Mozilla Firefox 3.5.2
mob
Apple IPhone 3GS,
Citat
php jezik pregazen vremenom....(?)
Moze li mi neko reci jel mu se desilo da je nesto trebo da isprogramira za web a da nije mogo u php-u?
IP sačuvana
social share
Pogledaj profil GTalk
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Zvezda u usponu


Zodijak
Pol Muškarac
Poruke 1620
OS
Windows Vista
Browser
Mozilla Firefox 3.0.13
ova mi tema treba  Smile

ukratko moja prica....bavio sam se oo programiranjem (delpi i c++) i dizajnom (za flexo ambalazu)...kako od toga 'ljeba nema....presao sam na web design...elem ps layout odradjujem u dw i to je to za sada....sledeci korak je web programiranje....php mi se cini kao dosta lagan za nauciti ali mi nisu poznate mogucnosti drugih web jezika i kako ide opstenje sa bazama....jednostavno ne mogu da ocijenim kako ce stvari ici u buducnosti   Smile php je koliko mi se cini najpopularniji.... sta mi predlazete da naucim
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Moderator
Capo di tutti capi


Underpromise; overdeliver.

Zodijak Gemini
Pol Muškarac
Poruke Odustao od brojanja
Zastava 44°49′N - 20°29′E
OS
Windows XP
Browser
Opera 9.64
mob
Apple iPhone 6s
Php... pa se u buducnosti prilagodjavaj Wink
IP sačuvana
social share
Pobednik, pre svega.

Napomena: Moje privatne poruke, icq, msn, yim, google talk i mail ne sluze za pruzanje tehnicke podrske ili odgovaranje na pitanja korisnika. Za sva pitanja postoji adekvatan deo foruma. Pronadjite ga! Takve privatne poruke cu jednostavno ignorisati!
Preporuke za clanove: Procitajte najcesce postavljana pitanja!
Pogledaj profil WWW GTalk Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Hronicar svakodnevice


Zodijak Aries
Pol Muškarac
Poruke 864
OS
Windows XP
Browser
Mozilla Firefox 3.5.2
mob
Apple IPhone 3GS,
moje neko misljenje
#1 besplatan
#2 razvojni
#3 brzo se uci, jednostavno pravljenje naprednih alata
# jednostavan za timski rad
#4 open source
#5 mana - nemogu da se odvojim od njega Smiley

uz dobru literaturu i praktican rad posle godinu dana covjek moze se nazvati profesionalcem
ja iskreno nisam naletio na neku stvar da se ne moze uraditi samo je pitanje sposobnosti razvijanja ideje

u skopu sa AJAX-om i MySQL-om mozes sve da uradis
IP sačuvana
social share
Pogledaj profil GTalk
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Prijatelj foruma
Poznata licnost


Drugovi, drugovi, ... pa u drugom stanju...

Zodijak Gemini
Pol Muškarac
Poruke 2954
Zastava Vienna
OS
Windows Vista
Browser
Mozilla Firefox 3.0.5
mob
HTC Sensation XL
Kontam ako je decko radio u c++ da moze njega koristit za serversko programiranje...negdje sam vidio taj fazon ali ga ne kontam...
IP sačuvana
social share
To je kao da kazes da nisi primetio ljubicastog slona sa neonskim osvetljenjem u guzici kako stoji pored tebe u mracnoj sobi Smiley
Pogledaj profil WWW
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Hronicar svakodnevice


Zodijak Aries
Pol Muškarac
Poruke 864
OS
Windows XP
Browser
Mozilla Firefox 3.5.2
mob
Apple IPhone 3GS,
za serversko programiranje web-a jest da je nepodnosim ali to je JAVA menij je tesko da radim sa JAVOM zato sto po meni ona ne lici ni na jedan logici programski jezik ali sto se stice serverskih WEB stranica mislim da nemoze ni jedan jezik da joj parira najvise radi zastite i mogucnostima kod kompaliranja kod samom klijenta
IP sačuvana
social share
Pogledaj profil GTalk
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Zvezda u usponu


Zodijak
Pol Muškarac
Poruke 1620
OS
Windows Vista
Browser
Mozilla Firefox 3.0.13
c++ bas i nije najsrecnije resenje za web poslove
php mi ima 'poznatu' sintaksu zato mi je najblizi  Smile a sto se tice napredovanja mislim da cu da  pocnem da radim volonterski u nekom dizajn studiju...(previse puta da)  Smile
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Idi gore
Stranice:
2  Sve
Počni novu temu Nova anketa Odgovor Štampaj Dodaj temu u favorite Pogledajte svoje poruke u temi
nazadnapred
Prebaci se na:  

Poslednji odgovor u temi napisan je pre više od 6 meseci.  

Temu ne bi trebalo "iskopavati" osim u slučaju da imate nešto važno da dodate. Ako ipak želite napisati komentar, kliknite na dugme "Odgovori" u meniju iznad ove poruke. Postoje teme kod kojih su odgovori dobrodošli bez obzira na to koliko je vremena od prošlog prošlo. Npr. teme o određenom piscu, knjizi, muzičaru, glumcu i sl. Nemojte da vas ovaj spisak ograničava, ali nemojte ni pisati na teme koje su završena priča.

web design

Forum Info: Banneri Foruma :: Burek Toolbar :: Burek Prodavnica :: Burek Quiz :: Najcesca pitanja :: Tim Foruma :: Prijava zloupotrebe

Izvori vesti: Blic :: Wikipedia :: Mondo :: Press :: Naša mreža :: Sportska Centrala :: Glas Javnosti :: Kurir :: Mikro :: B92 Sport :: RTS :: Danas

Prijatelji foruma: Triviador :: Nova godina Beograd :: nova godina restorani :: FTW.rs :: MojaPijaca :: Pojacalo :: 011info :: Burgos :: Alfaprevod

Pravne Informacije: Pravilnik Foruma :: Politika privatnosti :: Uslovi koriscenja :: O nama :: Marketing :: Kontakt :: Sitemap

All content on this website is property of "Burek.com" and, as such, they may not be used on other websites without written permission.

Copyright © 2002- "Burek.com", all rights reserved. Performance: 0.053 sec za 16 q. Powered by: SMF. © 2005, Simple Machines LLC.