Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 209 reacties, 25.322 views •

Dinsdag is het vijftien jaar geleden dat de Deense ontwikkelaar Rasmus Lerdorf de scripttaal PHP publiekelijk vrijgaf. Inmiddels worden miljoenen websites met php gegenereerd, waaronder blogs, wiki's, fora en contentmanagementsystemen.

phpDe Deen annex Groenlander Rasmus Lerdorf gaf zijn Personal Home Page Tools op 8 juni 1995 vrij op de usenetgroep comp.infosystems.www.authoring.cgi. Rasmus had daarvoor al een jaar aan zijn in C geschreven tools gewerkt. De tools moesten een aantal Perl-scipts vervangen die Lerdorf gebruikte om zijn eigen webpagina te onderhouden. Hij voegde aan PHP al snel de mogelijkheid toe om met databases te communiceren. Het publiekelijk vrijgeven van de code moest ertoe leiden dat bugs sneller werden verholpen en de ontwikkeling in een stroomversnelling zou komen.

PHP werd destijds onder de gpl-licentie uitgebracht, maar vanaf versie 4.0 gebeurt dit onder de php-licentie. In 1997 werd PHP/FI 2 uitgebracht, waarbij FI voor form interpreter staat, maar de grootste sprong voorwaarts kwam in het jaar daarna met PHP 3. Twee ontwikkelaars uit Israël hadden een nieuwe parser geschreven en voor versie 4.0 herschreven ze de core van PHP geheel, om deze als Zend Engine uit te brengen. De Zend Engine is een compiler en runtime-engine en deze virtual machine speelde een grote rol bij de popularisering van PHP.

PHP 5 verscheen in 2004 en deze versie wordt door Zend Engine II aangedreven. Versie 5 bracht onder andere betere ondersteuning voor objectgeoriënteerd programmeren en de PHP Data Object-extensies. In juni 2009 verscheen versie 5.3, die verbeteringen als closureslate static binding en namespaces kreeg. Een komende versie van PHP zou aanvankelijk ondersteuning voor Unicode moeten brengen, maar de ontwikkeling van PHP 6 is stil komen te staan en er is daarop een ontwikkelversie op basis van versie 5.3 gestart waarin geen Unicode-ondersteuning is opgenomen.

PHP draait op honderdduizenden webservers en wordt als belangrijk onderdeel van het officieuze LAMP-platform gezien, waarbij de eerste drie letters staan voor Linux, Apache en MySQL en de laatste voor PHP, hoewel ook Perl en Python worden genoemd. Lerdorf werkte tot november vorig jaar als programmeur bij Yahoo maar is eind april aan de slag gegaan bij Wepay.com.

Reacties (209)

Reactiefilter:-12090209+1111+211+30
Moderatie-faq Wijzig weergave
Het Unicode verhaal in PHP6 is incorrect. Een paar maanden geleden hebben de PHP developers besloten opnieuw te beginnen met de volgende versie van PHP, aangezien development van PHP6 was komen stil te staan. Hierbij is de trunk (= development versie, wat PHP6 zou moeten worden) verwijderd en een nieuwe trunk gestart, als kopie van PHP 5.3, welke nu door het leven gaat onder versienummer 5.3.99 aangezien nog niet bekend is of het 5.4 of 6.0 wordt. Momenteel zit hier geen verder uitgebreide Unicode support in: er wordt naar een nieuwe oplossing gezocht. Wat hier wel in zit is type hinting voor scalars (function test(int $a, string $b)), traits, array dereferencing ($var = test(5, "hoi")[5]), ~20% performance winst, rewrite van de output-API (5% performance o.i.d.) en FastCGI Process Manager. Maar geen unicode dus ;)

[Reactie gewijzigd door hostname op 8 juni 2010 18:04]

Een komende versie van PHP zou onder andere ondersteuning voor Unicode moeten brengen
Welke ondersteuning voor Unicode mist php dan?
PHP kan nog niet goed omgaan met Unicode tekst bijvoorbeeld. Als je strpos() gebruikt tel je bytes en niet karakters (in Unicode kunnen die multi-byte zijn).
Gezien het buffer overflow risico moeten we dat maar zo houden. Het aantal bytes in de string is vaak belangrijker dan het aantal karakters. WIl je weten hoeveel karakters er in een string zitten moet je een andere functie gebruiken.
Onzin. De meeste functies werken op karakters, niet op bytes. Dat ze daarbij de aanname doen dat 1 karakter == 1 byte doet daar verder niets aan af. Volgens jouw logica zou mb_strpos() hetzelfde resultaat terug moeten geven als strpos(), aangezien ze bytes tellen. Het punt is dus dat ze geen bytes tellen, maar karakters.

Daarnaast zijn buffer overflows in PHP non-existent en dus geen enkele reden om als programmeur expliciet rekening mee te houden.

[Reactie gewijzigd door .oisyn op 8 juni 2010 18:24]

Yea right, en wat gebeurt er dan als je strlen() loslaat op een string om te kijken of de lengte voldoet? Stel dat je een string van 10 bytes maar 8 karakters controleert op lengte, waarbij 8 de maximaal toegestane lengte is. Dan moet je script dus aan de client gaan vertellen dat de string te lang is, terwijl de client braaf een string van 8 karakters heeft ingevuld 8)7

Buffer overflow? Wat heeft dat er mee te maken, daar heeft PHP genoeg beveiliging tegen... Bij strings werk je nagenoeg altijd met karakters, in je RDBMS geef je toch ook niet op wat de maximale grootte is van een string, maar wat de maximale lengte is?

Wat jij eigenlijk zegt is dat de grootte van een INT met waarde 8 eigenlijk 4 is (8 --> 1000 binair --> 4 bytes) :?
http://nl.php.net/manual/en/ref.mbstring.php

Opzich kan PHP prima er al prima mee overweg maar het komt in de core dus dan wordt het alleen maar simpeler om er mee te werken :)

[Reactie gewijzigd door StM op 8 juni 2010 17:55]

Aha.. Nooit opgevallen :)

Dit geeft idd als resultaat 3:

<?
echo strpos('€1','1');
?>
<?=strlen('€')?> spuugt ook vrolijk "3" uit.

<?=mb_strlen('€')?>, mits je je charsets goed hebt ingesteld, spuugt "1" uit.
Het is dan ook tijd voor Ruby on Rails!
Of misschien het Grails framework? Combinatie van het on-the-fly compileren van je Java/Groovy code bij wijzigingen, zodat je makkelijk net zoals bij PHP kunt kijken wat een aanpassing doet op je pagina, zonder dat je alles opnieuw telkens hoeft te deployen. Verder de voordelen van Java/Hibernate/Groovy/ORM. Ideaal voor mensen die PHP makkelijk vinden werken, maar toch ook wel Java willen leren/gebruiken en niet teveel de PHP-voordelen kwijt willen raken.
PHP is log en verouderd. Ruby on Rails is 100x fijner om in te programmeren! http://rubyonrails.org/
Het is misschien log, al wordt er zeker aan gewerkt om het efficiënter te maken, kijk maar eens naar HipHop for PHP. En daarbij is het zeer laagdrempelig voor beginnende programmeurs omdat het een heel flexibele taal is.
Elke Turing-complete taal is heel flexibel, waar doel je specifiek op?

En HipHop lijkt me echt een soort van last measure oplossing, een vreemde hack die slechts een symptoom van iets oplost. Voor een organisatie en website zo groot als Facebook (die had het toch gemaakt geloof ik?) kan het niet uit om alle developers om te scholen, of om de gehel software te herschrijven in een snellere taal.
En daarbij is het zeer laagdrempelig voor beginnende programmeurs omdat het een heel flexibele taal is.
Elke Turing-complete taal is heel flexibel, waar doel je specifiek op?
Dit is ook Turing-complete, dus flexibel, dus laagdrempelig? ;)
Ik zei flexibel, niks over laagdrempelig ;).
Moet haast wel.
Als Orang Oetangs Ook! kunnen leren, moet mensen toch wel BF kunnen begrijpen ;)
In alle eerlijkheid, ik ken een stuk of 3/4 talen (afhankelijk van hoe je telt, maja) en ik moet zeggen dat toen ik Ruby en RoR probeerde te leren dat een vreselijke ervaring was en ik het waarschijnlijk nooit meer zal aanraken. Zou best kunnen dat ik heel subjectief ben, maar dat is jouw stelling dan des te meer.

Hoe dan ook, je hoort never nooit iemand op z'n verjaardag te vertellen dat ie oud is, laat staan dat ie log is. O-) :*)
ja lekker onderbouwd :/

oh en Ruby on Rails is een framework en geen programmeer/scripting taal :+

[Reactie gewijzigd door !GN!T!ON op 8 juni 2010 17:59]

Zal PHP dan over 3 jaar, na hun 18e verjaardag, eindelijk een volwassen taal zijn? :+
Waarom is PHP geen volwassen taal? PHP is namelijk geweldig voor de doelen waarvoor de taal wordt gebruikt!
De taal is niet volwassen omdat zijn makers niet volwassen zijn. Ze presteren het keer op keer om vage niet-intuitieve designkeuzes te maken. Of eigenlijk zijn het ook geen designkeuzes, maar slaan ze gewoon aan het implementeren en moeten de overige side-effects dan maar uit die implementatie blijken. Elke poging tot discussie met de lui van Zend wordt de kop ingedrukt met "dit is geen bug, dit is zoals we het hebben geïmplementeerd". Ja, duh, élke bug komt voort uit de implementatie. Misschien moet je het dan anders implementeren.

Die onwil om van tevoren dingen goed uit te denken of anders achteraf te heroverwegen maakt dat PHP vol zit met rare quirks en dat de taal dus gewoon onvolwassen is. Dat hij daarbij goed inzetbaar is bij talloze projecten doet daar verder niets aan af. Beginners vallen keer op keer in diverse valkuilen zoals het feit dat het getal 0 gelijk is aan de string "aap" of dat als je een foreach met reference doet en later die variabele hergebruikt je plots het laatste element uit die array aanpast waar je de vorige foreach op had gedaan.

@Niellie41: als de reactie van Jeff van Hees een grap moet zijn dan is het niet echt bepaald een grappige. Waarschijnlijk doel jij op de reactie van GuidoH, maar dat is niet de reactie waar ik op reageer.

[Reactie gewijzigd door .oisyn op 8 juni 2010 18:04]

Dan gebruik je toch geen PHP. Als je een strong of static typed taal wilt moet je geen PHP nemen, zo simpel is het. Als de taal niet aan jouw behoeften voldoet betekend dat nog niet dat het niet volwassen is. Want op die manier heb je ook mensen die C geen volwassen taal vinden omdat deze niet weak typed is of omdat je wild pointers kan maken.

Een taal is naar mijn mening volwassen als deze breed ingezet wordt. Dat is bij PHP dus wel het geval. Dat jij dat onterecht vindt doet daar niks aan af.
Dan gebruik je toch geen PHP
Ah ja, de standaard dooddoener. "Als je het niet zint, dan gebruik je het toch niet" |:(. Wat is er in hemelsnaam mis met terechte kritiek op het designproces van een stuk software? Daarnaast sla je de plank echt compleet mis. PHP had als taal veel beter in elkaar kunnen zitten zónder hem strong typed oid te hoeven maken, en dat soort taalparadigma's zijn het hele punt dan ook niet. Javascript is vergelijkbaar met PHP wat dat betreft, maar zit als taal een heel stuk beter in elkaar. Dat is omdat de makers er veel meer van tevoren over nagedacht hebben en niet maar meteen zijn begonnen met typen.
Een taal is naar mijn mening volwassen als deze breed ingezet wordt.
Prima dat dat jouw mening is, ik deel 'm niet, en velen met mij. Ik zeg verder niet dat dit een reden is om PHP links te laten liggen, zolang je je maar blijft beseffen dat dingen altijd niet helemaal zullen blijven werken zoals je in eerste instantie verwacht en dat je dat dus van tevoren goed moet uitzoeken. Veel van die quirks staan ook niet duidelijk in de documentatie zelf, dan moet je op zoek in de comments onder de meeste docpagina's op php.net. De taal lijkt laagdrempelig, maar feitelijk is het dat gewoon niet.

De taal is buggevoelig, en dat had gewoon niet zo hoeven zijn (zonder dat de taal ineens falikant anders in elkaar hoeft te zitten). Zo hadden ze er bijv. voor kunnen kiezen om false te returnen bij 0 == "aap" (zoals javascript ook doet). Of om de reference te unsetten na de foreach lus. Of dat je geen string hoeft te gebruiken om naar een functie te refereren, maar gewoon gebruik kon maken van de identifier van de functie zelf.

[Reactie gewijzigd door .oisyn op 8 juni 2010 19:05]

Toch vind ik dat je (en velen met jou) PHP een soort minderwaardige positie toebedeelt vanuit een soort zuiverheidsdenken over hoe een programmeertaal zou moeten zijn.
Ik schrijf er elke dag in en .oisyn heeft helemaal gelijk. Je moet je best doen om om de troep heen te werken, en dan is het te doen.

Dat wat jij "zuiverheidsdenken" noemt noem ik "voorspelbaar gedrag en heldere specificatie". Het feit dat je een === nodig hebt om echt helemaal honderd procent zeker te weten of iets false of true is is eigenlijk absurd, het is op het niveau van "elk stuk gereedschap is een hamer, behalve een beitel, da's ook een schroevendraaier".

Ga http://blogs.msdn.com/b/ericlippert/ maar eens lezen en kijk wat je als taal-ontwerper tegenkomt. Als je over dat soort dingen niet voldoende nadenkt benadeel je iedere gebruiker en jezelf.

PHP zou gewoon een stuk beter kunnen zijn dan dat het nu is, en er is niks mis mee om dat te bekritiseren.

Of heb jij vroeger op een school gezeten waar je ondanks tranentrekkend slechte proefwerken alsnog een 6 kreeg "omdat je er toch de moeite voor had gedaan"?
Ja und? Een programmeur wordt toch ook geclassificeerd op de waarde van zijn geproduceerde code? Waarom zou je dan een programmeertaal die door velen wordt gebruikt niet minderwaardig achten als het conceptuele en design aspect (laat staan de API) gewoonweg brak in elkaar steekt. Gek genoeg was dat geen probleem als het ging om Visual Basic de grond in te boren, alhoewel dat qua gebruikersaantallen toch ook niet insignificant was.

(PS. ik zie ook nog steeds in allerlei webserver configuraties dat PHP processen na 500-1000 runs weer afgeschoten wordt vanwege memory leaks, erg geruststellend.)
Dan gebruik je toch geen PHP. Als je een strong of static typed taal wilt moet je geen PHP nemen, zo simpel is het. Als de taal niet aan jouw behoeften voldoet betekend dat nog niet dat het niet volwassen is. Want op die manier heb je ook mensen die C geen volwassen taal vinden omdat deze niet weak typed is of omdat je wild pointers kan maken.

Een taal is naar mijn mening volwassen als deze breed ingezet wordt.
BASIC wordt / werdt breed ingezet. Is dat een volwassen taal?

Engels wordt breed ingezet. Is dat er een?

Ik vindt C overigens iets té volwassen voor mijn wensen - teveel dingen die je verkeerd kunt doen.
Een programmeertaal (C) met een natuurlijke taal (Engels) vergelijken vind ik wel erg ver gaan. Ze hebben beide andere doelen en oorsprongen.
Ik vindt C overigens iets té volwassen voor mijn wensen - teveel dingen die je verkeerd kunt doen.
persoonlijk vind ik dat nou weer net de uitdaging :)
Feitelijk is dat natuurlijk een tekortkoming aan de taal, iets dat het juist níet volwassen maakt. Standaard-C staat m.i. veel te veel fouten impliciet toe. Dat is trouwens een probleem waar ook PHP enigszins last van heeft, mede getuige het hierboven genoemde voorbeeld 0 = "aap".
Nouja, tekortkoming zou ik het ook weer niet noemen... Feature, misschien. Met C zit je op een heel laag niveau te programmeren, wat zowel voordelen kan hebben (snelheid, drivers schrijven etc) als nadelen (hogere kans op fouten, zeker als je er net mee begint).
Met C zit je op een heel laag niveau te programmeren, wat zowel voordelen kan hebben
Er is geen enkel voordeel te behalen aan het feit dat je impliciet een willekeurig type pointer naar een willekeurig ander type pointer kunt converteren. Een fout die onlangs nog een topic op GoT verdiende:

int mijnArray[10];
int ** pointerNaarMijnArray = &mijnArray;

Deze code compileert prima in C, maar hij is gewoon fout. C++ zal hier een error geven (omdat een int(*)[10] nou eenmaal niet naar int** te converteren is). Als je het beter weet dan dan de compiler, dan is dat met een expliciete cast alsnog gepiept. Maar het feit dat zo'n cast nodig is scheelt al een hoop fouten.

[Reactie gewijzigd door .oisyn op 9 juni 2010 15:15]

Een taal is naar mijn mening volwassen als deze breed ingezet wordt.

Ik ken een hoop erg volwassen programmeertalen die slechts op zeer kleine schaal gebruikt worden, ook voor web based omgevingen.

Ik vind PHP meer een lastige verwende puber met overgewicht en stemmingswisselingen. Ik kan er goed mee werken, en het doet wat je ervan verwacht, maar ik ken mooiere en meer consistente talen.
Als je ergens NIET goed mee kan werken en wat NIET doet wat je verwacht, dan is het wel een verwende puber met overgewicht en stemmingswisselingen. Waar jij je vergelijking dus op probeert te baseren ontgaat mij volledig.

C is niet te volwassen. Je moet het kunnen. Dat is juist het hele verschil tussen een scripttaal (PHP) en een programmeertaal (C) C moet je leren, ook al meende iemand hier boven dat je programmeren niet hoeft te leren. Maar stack overflows, memset foutjes en alloc inconsistentie zal je met PHP niet zo snel hebben (Net als segfaults)
PHP moet je ook leren, en in PHP heet het net zo goed "programmeren". De hele distinctie tussen script en programma gaat nergens over.
TuXzero, hou nou aub eens op met dat strong/weak/dynamic typing... het is NIET het feit dat PHP dynamic typed is dat het onvolwassen maakt en een strongly typed taal is ook niet automatisch volwassen.

PHP de taal is onvolwassen vanwege precies de redenen die .oisyn hierboven opgeeft.

Het platform (de standaard library) heeft ook z'n problemen. Met name een coherente naamgeving is overduidelijk een gebrek, maar ik mis ook wel wat functies voor dingen als transacties en concurrency (en met concurrency doel ik op dingen zoals in .NET die wel even wat verder gaan dan een simpel threadje spawnen).

Meer basic dingen missen ook. Waar is een fatsoenlijke session scope? En dan heb ik het ook nog niet eens over meer moderne scopes zoals een view scope of een conversation scope.
Wat ik hier aan wil toevoegen is dat ik nog steeds iets als een specificatie van de taal mis, zoals je die wel bij Java hebt. In die zin vind ik het model wat Sun heeft ontwikkeld voor de ontwikkeling van Java veel meer open en transparant.
Het is open en transparant, uitgebreid en precies gespecificeerd, echter dit komt (in mijn optiek) niet ten goede van de snelheid van het ontwikkelen van de taal zelf. Genoeg libraries die een enorme hoeveelheid functionaliteit bieden, maar in vergelijking met bijvoorbeeld .NET ligt de snelheid er behoorlijk uit - en langzame vooruitgang, net zoals stilstand, is achteruitgang.

Niet om Java te bashen overigens, ik ben zou er veel mee aan het werken. Alhoewel ik graag C# / .NET zou willen leren.

En PHP eens toe willen passen in een professioneel project - je kunt mooie dingen maken met PHP, maar er wordt teveel in geprutst door mensen die denken dat ze er verstand van hebben. Zie ook: Zend Framework.

Zend als bedrijf zou er wel goed aan doen om bij PHP 7 (ofzo) de taal volledig op de schop te nemen - alle quirks eruit, een officiële standaard uitbrengen, etcetera. Ik denk dat als ze daarmee bezig gaan, en ze zien hoeveel uitzonderingen ze moeten beschrijven (bijvoorbeeld dat 0 == "aap"), ze zich wel even achter de oren zullen krabben.

Het lijkt me ook niet onmogelijk om een interpreter te maken die zowel ouderwetse PHP code als de nieuwe, verbeterde versie te kunnen onderscheiden en te interpreteren.
Ik vind de vergelijking volledig mank gaan, PHP moet je gebruiken waar het voor bedoeld is; de primaire toegang tot je webserver. PHP moet je vergelijken met ASP, want ik vind persoonlijk dat als je een web-applicatie maakt veel zaken beter met javascript/flash kan afhandelen (client-side).

edit: Verder ben ik het wel enigzins eens met bovenstaande comments. Ze zouden wel eens een keer een nieuwe start mogen maken, net als Adobe met As2 naar As3.
Wat met name een probleem is nu dat hele oude webapplicaties van klanten deprecated functies gebruiken en dat geeft problemen met updaten van de php-versie. Ik zou graag een frisse en slanke nieuwe versie van php willen die ik naast de oude php kan draaien.

[Reactie gewijzigd door poepkop op 8 juni 2010 21:46]

Inderdaad. Ze kunnen het niet maken ineens alle oude PHP applicaties te breken. Dat zou de populariteit van PHP direct slopen

Al waarschuwd de interperter prima op strict als een functie deprecated is. Kan je die dingen stapje voor stapje verwijderen
Al waarschuwd de interperter prima op strict als een functie deprecated is. Kan je die dingen stapje voor stapje verwijderen
Langzaamaan doen ze dat ook, gelukkig - controversiële zaken zoals magic quotes en short open tags (alhoewel die wel handig zijn) worden er uit gehaald.
@hackerhater: Dat hoeft helemaal niet zo te zijn. Microsoft deed in 2000 precies hetzelfde toen het van VB6 naar VB.NET ging. VB6 applicaties moesten flink worden aangepast om te kunnen draaien (compileren) in VB.NET. Hetzelfde geld voor asp en asp.net.

En om nou te zeggen dat de populariteit van VB(.net) is afgenomen, nou nee. De kans is erg groot dat als die rare quirks uit de taal worden gehaald en Zend de discussie met de developer base aandurft PHP een meer professionelere uitstraling zou krijgen.

Als zelfs Microsoft delen van hun code gaan ontwikkelen als open-source (MVC.NET, MEF, etc) om daarmee developers meer betrekken bij de ontwikkeling van .NET, dan kan het toch niet zo zijn dat een van de grotere open source projecten opmerkingen uit de community negeren..

Overigens als PHP 7 ineens totaal anders zou werken, dan heeft dan natuurlijk verder weinig te maken met PHP 6. Default hou je dan gewoon PHP6 aan en bij die enkele website welke werkt op basis van PHP7 kun je de mime type koppelen aan de PHP7 module. Daarnaast heeft PHP in het verleden wel vaker braking changes gehad. En als je die netjes beschrijft dan is daar helemaal niets mis mee.
Noem eens een programmeertaal waar beginners niet in een valkuil terecht komen.

De charme van PHP is de kracht van de gigantische hoeveelheid beschikbare standaardfuncties en de eenvoud waarmee je die functies kunt aanroepen. Een paar regels code is genoeg om behoorlijke complexe bewerkingen uit te voeren.
De charme van PHP is de kracht van de gigantische hoeveelheid beschikbare standaardfuncties...
Nou nou, niet overdrijven. .NET en Java hebben beiden een hoeveelheid 'standaardfuncties' waarvan PHP in een hoekje gaat zitten kniezen.
... en de eenvoud waarmee je die functies kunt aanroepen. Een paar regels code is genoeg om behoorlijke complexe bewerkingen uit te voeren.
Als je iedere keer in de documentatie moet gaan spitten om op te zoeken hoe die ene magische functie ook alweer heet waarmee je die ene specifieke ultra-bewerking kunt uitvoeren... dat is niet eenvoudig.

[Reactie gewijzigd door Korben op 9 juni 2010 09:11]

het is een grap. Sommige mensen nemen alles serieus.
Dat PHP makkelijk is om te leren en te gebruiken zal ik niet ontkennen maar in vergelijking met andere talen zitten er teveel quirks in om als volwassen te worden gezien. De introductie van die achterlijke namespace operator als laatste wapenfeit bevestigt dit nog maar eens.
De introductie van die achterlijke namespace operator als laatste wapenfeit bevestigt dit nog maar eens.
Ze hadden geen keus. In tegenstelling tot veel andere talen is de betekenis van een identifier in PHP afhankelijk van de context waarin hij gebruikt wordt. Zo is het prima mogelijk om een constante, functie, class én namespace met dezelfde naam te hebben. De operators eromheen bepalen vervolgens welke van de 4 je bedoelt. new of :: -> class. \ -> namespace. () -> functie. En anders gewoon een constante.

[Reactie gewijzigd door .oisyn op 8 juni 2010 18:49]

(legt grap uit) Je bent voor de wet volwassen als je 18 jaar wordt.
Ook ginder in Denemarken/groenland?
Oh, haha :P. Ik denk je bent weer zo iemand die PHP afkraakt :P. Excuus }:O

[Reactie gewijzigd door Jeffrey v. Hees op 8 juni 2010 20:27]

Nee, meerderjarig. :)
Ja, en volgend jaar mag PHP bier drinken :+
En dan LAM(P) worden? ;)
Zal PHP dan over 3 jaar, na hun 18e verjaardag, eindelijk een volwassen taal zijn? :+
In Nederland wel dan, in andere landen niet ;)
Ik zat meer te denken in de lijn van "Onkruid vergaat niet", maar die van jouw is leuker :)
Gelukkig is PHP niet van Yahoo!

Even zonder dollen,driemaal in de ronte hoera voor PHP.
PHP heeft toch een beetje het web gemaakt zoals het nu is.

[Reactie gewijzigd door eXisTa op 9 juni 2010 08:53]

PHP heeft toch een beetje het web gemaakt zoals het nu is.
Er aan bijgedragen okay, maar 'gemaakt'???

Ik denk dat jij geen benul hebt van hoeveel sites en web applicaties op .NET en Java EE draaien, al dan niet in de back end.
(even generaliseren) Zijn dat niet die sites die er 20+ sec over doen op een pagina te genereren? Sorry, cheap shot ;) (Klik eens rond op http://www.rai.nl/ voor de grap... om te huilen gewoon)

Anyway, wat statistics (juni 2010):
- 32% van de top 1.000.000 sites draait op PHP (totaal: 30%)
- 23% van de top 1.000.000 sites op ASP.NET (totaal: 25%)
- 2% van de top 1.000.000 sites op J2EE (totaal: 8%)

Even los van hoe goed de taal zelf eigenlijk is, door de toegankelijkheid en brede ondersteuning heeft het zeker een enorme bijdrage geleverd aan "het web". Ok, door de toegankelijkheid is er ook weer een enorme berg rotzooi geproduceerd en sommige ontwerp-keuzes kan ik inderdaad alles behalve volgen... maar feit blijft dat het, alles afgewogen, de #1 taal-voor-het-web is. Nog wel tenminste...
-offtopic
Wow, dat is wel heel extreem :O die lui hebben zeker nog nooit van cache gehoord ofzo
-ontopic
PHP is een enorm fijne taal, en volledig naar je eigen hand te zetten, je kan procedureel maar ook object-orientated programmeren, erg goed!
En ik denk dat jij geen benul van het web heb.

Het gaat hier om een taal die meer dan de andere gebruikt kan worden door iedereen. Het is niet voor niets dat alle populaire blogs en webshops en forums op php draaien.

Ja .NET en Java wordt gebruikt, door de grote partijen. PHP is de taal voor de hobbyist en dit maakt hem tot de taal die iedereen instaat stelde met een ideetje zijn eigen site te maken.

Het web is god zij dank meer dan alleen de ibm en microsoft sites. Het is de voetbal club die met een php forumpje ook mee mag doen.

En dat is waar vooral Java fans maar niets van snappen. Dat 99% van het web een taal nodig heeft die makkelijk is te leren en het gewoon doet. LAMP is niet voor niets het acronym en niet LAMJ or LAM.NET of WIMP

Linux, Apache, MySQL, PHP. Te samen hebben ze het behouden voor de gewone gebruiker.
Mwah, ik denk eerder dat je de invloed van php overschat. Php was toevallig op het juiste punt op het juiste moment.

Ja, er waren op een gegeven moment de horde hobbyisten die een laagdrempelig platform nodig hadden (en nee inderdaad, jee en asp.net zijn dat zeker niet). Toevallig was php makkelijk te installeren onder de gratis beschikbare apache, en werkte het out of the box met mysql, wat ook weer makkelijk te installeren was. Dit alles draaide op een redelijk krachtig gratis server OS genaamd linux. Dus kozen veel mensen daarvoor. Omdat veel mensen er voor kozen gingen meer hosters het supporten en vervolgens krijg je een soort van network effect.

Maar, heb alsjeblieft niet de illusie dat de hobbyist altijd verstoken zou zijn gebleven van de kunst van het websites maken wanneer php er niet was geweest. Als php er niet was geweest had het web er nog net zo uit gezien, alleen hadden we dan allemaal python, perl, orbscript, serverside javascript of wat dan ook gebruikt. Persoonlijk durf ik nog wel te stellen dat van je zo geliefde LAMP afkorting de P wel het minst belangrijk was voor de 'webapp door de gewone man'-revolutie.
Ach perl. Maar perl bestaat al langer en zeker in de beginne was er helemaal geen mod_php voor apache.

Dus verklaar dan toch eens waarom men voor PHP koos? En waar komt die mod_php vandaan en waarom is of was er in ieder geval geen mod_perl?

En inderdaad, het netwerk effect heeft PHP groot gemaakt maar WAAROM trad dit netwerk effect op bij PHP en niet bij de andere talen?

Stricte programmeurs klagen vaak over de idiote functie benaming in PHP. Ze zijn opgevoed dat het anders moet en kunnen er niet bij dat het eigenlijk niets uitmaakt. Ze zijn als auto rijders die als ze in engeland aankomen totaal van stuur zijn omdat alles aan de verkeerde kant zit. Dan gaan ze vervolgens een complete discussie aan waarom rechts rijden beter is. Zou best eens kunnen, maar zo wat?

PHP is "goed genoeg". Voor java programmeurs komt ik altijd maar weer met system.lang.exit vs exit():

Als je niet snapt wat makkelijker en sneller is, dan zul je het nooit snappen. Dan ben je als een BSD fan die maar niet snapt waarom iedereen voor het mindere Linux kiest. Ben je een wijn liefhebber die niet snapt waarom er meer bier word gedronken. Ben je een WK hater die niet snapt dat mensen die niets van voetbal snappen het feest toch leuk kunnen vinden.
Dus verklaar dan toch eens waarom men voor PHP koos? En waar komt die mod_php vandaan en waarom is of was er in ieder geval geen mod_perl?

En inderdaad, het netwerk effect heeft PHP groot gemaakt maar WAAROM trad dit netwerk effect op bij PHP en niet bij de andere talen?
Dat zeg ik toch? Een combinatie van op de juiste plek op het juiste moment, gevolgd door het netwerk effect. Een eigenschap van het effect is dat een marginaal verschil automatisch exponentieel groeit. Het muntje viel toevallig richting php en de rest is geschiedenis.
Stricte programmeurs klagen vaak over de idiote functie benaming in PHP. Ze zijn opgevoed dat het anders moet en kunnen er niet bij dat het eigenlijk niets uitmaakt. Ze zijn als auto rijders die als ze in engeland aankomen totaal van stuur zijn omdat alles aan de verkeerde kant zit. Dan gaan ze vervolgens een complete discussie aan waarom rechts rijden beter is. Zou best eens kunnen, maar zo wat?
Waar het om gaat is consequent zijn. Het gaat hier niet om een discussie tussen het plaatsen van je accolade op dezelfde regel of op de volgende regel. Het gaat over een consequente naamgeving. Php's naamgeving van functies is dat niet. (Soms prefixen, soms niet, soms camelcase, soms underscores, danweer is de haystack het eerste argument en dan is het weer de needle en soms mag het blijkbaar allebei).

Om even je metafoor erbij te pakken: Php kun je eerder vergelijken met een land waarbij je bij elk kruispunt op moet letten of je op de weg die je inrijd nu links, of rechts moet rijden.
PHP is "goed genoeg". Voor java programmeurs komt ik altijd maar weer met system.lang.exit vs exit():
Uiteraard is php 'goed genoeg', maar om even op het tweede deel in te gaan. Ten eerste is het System.exit(); en ten tweede hebben zelfs de mensen achter php ingezien dat alle functies in dezelfde scope toch niet zo heel handig is.
Als je niet snapt wat makkelijker en sneller is, dan zul je het nooit snappen. Dan ben je als een BSD fan die maar niet snapt waarom iedereen voor het mindere Linux kiest. Ben je een wijn liefhebber die niet snapt waarom er meer bier word gedronken. Ben je een WK hater die niet snapt dat mensen die niets van voetbal snappen het feest toch leuk kunnen vinden.
Ik denk dat ik meer snap dan je denkt ;). Wat ik echter nog vermakelijker vind is dat je met je eigen tunnelvisie eigenlijk blind bent voor de onderbouwde kritiek op php en daarmee eigenlijk precies zelf datgene doet waar je mij van probeert te betichten.

[Reactie gewijzigd door Janoz op 9 juni 2010 10:54]

Linux, Apache, MySQL, PHP. Te samen hebben ze het behouden voor de gewone gebruiker.
Maar tegen welke prijs? Vooral de laatste twee hebben enorm veel quirks en zorgen voor veel rommel en misinformatie op het internet, terwijl er toch zoveel betere alternatieven zijn. Voor MySQL is er bijvoorbeeld Postgres - en iedereen die het kent én die wat verstand heeft van databases zal snel toegeven dat die veruit superieur is aan MySQL. Daar komt nog bij dat Postgres écht open source is - MySQL valt onder een bedrijf (MySQL AB) dat onder een bedrijf valt (Sun) dat onder een bedrijf valt (Oracle), waardoor het 'open' karakter toch wat onstabiel lijkt.

En voor PHP heb je natuurlijk Python, Neerlandsch trotsch als het op programmeertalen aankomt. Volgens velen minstens net zo makkelijk als PHP, maar veel beter qua standaarden en professionaliteit - zie ook http://wiki.python.org/moin/PythonVsPhp. Niet de meest neutrale bron overigens.

[Reactie gewijzigd door YopY op 8 juni 2010 20:52]

En voor PHP heb je natuurlijk Python[...] Volgens velen minstens net zo makkelijk als PHP
Je weet niets van programmeren, Wilt zeker niet direct met vreemde termen lastig gevallen worden en je doet PHP.net vs Python.org

met php kom je heel snel op http://www.php.net/manual/en/tutorial.firstpage.php
Met Python kom je bij http://docs.python.org/tutorial/index.html

Wat is er nu Makkelijker??

@flowerp:
nu voor de volgende vraag. ga weer naar PHP.net of Python.org en vraag hoe je met LDAP kan babbelen.
is PHP dan niet de hornbach?

[Reactie gewijzigd door daft_dutch op 9 juni 2010 00:01]

Het idee achter het concept 'beginner' is dat het meestal van voorbijgaande aart is. Op een gegeven moment ben je beginner af en kies je gewoon een goede tool.

Kwasten bij de HEMA doop je in de verf en kunt verfen. Profesionele kwasten hebben wat meer zorg en kennis nodig. Zijn HEMA kwasten daarom beter dan profesionele? Kiezen ook profesionals voor de HEMA?
Wat een enorm flauwe vergelijking. Dat je bovenstaande kan laten werken is ook alleen maar omdat je een mod_php in je Apache hebt zitten. Je ziet dus dermate de niche focus die PHP van oudsher heeft.

Dat Python van oudsher een generieke programmeertaal is betekent dus dat de focus niet ligt bij het "even snel een hello world in een browser schermpje toveren". Dus wat dat aangaat vind ik echt dat je appels met peren aan het vergelijken bent.

Ik vind je ook nogal stellig met je opmerking richting YopY dat hij "[...] weet niets van programmeren]".
Je weet niets van programmeren, Wilt zeker niet direct met vreemde termen lastig gevallen worden en je doet PHP.net vs Python.org

met php kom je heel snel op http://www.php.net/manual/en/tutorial.firstpage.php
Met Python kom je bij http://docs.python.org/tutorial/index.html

Wat is er nu Makkelijker??
Wat versta je onder "makkelijker"? Ik zie een Hello World script (waar het hele installatieproces van Apache, PHP en/of mod_php overgeslagen wordt) op de PHP site, en de inhoud van de Python documentatie op de Python site.

Op de PHP site wordt je, als leek, geïntroduceerd tot HTML, PHP's open / close tags, een echo statement, HTML in datzelfde echo statement (dat algemeen gezien wordt als 'bad practice' en gewoon verwarrend is voor nieuwe mensen), etcetera.

Het Python alternatief? Download de installer, open een commandline, typ 'python', en typ

[code=python]print "hello world"[/code]

Lijkt mij persoonlijk een stuk makkelijker voor de beginnende gebruiker.
Daar komt nog bij dat Postgres écht open source is - MySQL valt onder een bedrijf
Wat een imens non argument. MySQL is echt open source, het is vrijgegeven onder een open bron licentie (GNU GPLv2) en deze licentie kan NOOIT teruggenomen worden. Men kan enkel een nieuwe versie maken onder een gesloten licentie, maar dankzij de open source licentie kan er dan een fork ontstaan en kan men met een open versie blijven verder gaan.

Ook het feit dat er een bedrijf achter zit heeft zijn voordelen. Zo is er een stabiliteit in het ontwikkelproces. Het bied ook zekerheden naar de klanten toe wat betreft support, iets wat voor bedrijven vaak belangrijker is dan het open bron karakter of de aanschafprijs.
[...]
Wat een imens non argument. MySQL is echt open source, het is vrijgegeven onder een open bron licentie (GNU GPLv2) en deze licentie kan NOOIT teruggenomen worden. Men kan enkel een nieuwe versie maken onder een gesloten licentie, maar dankzij de open source licentie kan er dan een fork ontstaan en kan men met een open versie blijven verder gaan.
Helemaal mee eens, beiden zijn volledig open source. BSD heeft als voordeel dat je geen verplichting hebt om aanpassingen te publiceren wanneer je de nieuwe code zelf gaat uitgeven, maar dit is een situatie waar gebruikers toch al geen last van hebben.
Ook het feit dat er een bedrijf achter zit heeft zijn voordelen.
Zoals?
Zo is er een stabiliteit in het ontwikkelproces.
Welke stabiliteit? MySQL staat daar zeker niet bekend om, zie de doorlooptijd van de bugfixes, men weigert vrijwel altijd externe bijdrages/fixes op te nemen.

En waarom zou dit stabieler zijn dan het proces van een project die geen commerciële eigenaar heeft? Commercie heeft een ander doel dan de ontwikkelaars, deze doelen kunnen elkaar zelfs bijten. Zeker wanneer er ook nog closed source versies van hetzelfde product worden uitgegeven: Zie MySQL en nu Oracle.
Het biedt ook zekerheden naar de klanten toe wat betreft support, iets wat voor bedrijven vaak belangrijker is dan het open bron karakter of de aanschafprijs.
En sinds wanneer is support van dit bedrijf beter dan support van andere bedrijven? Ik heb de gekste dingen van MySQL-engineers gehoord, dingen waar andere MySQL-engineers zich voor zouden schamen. Blunders die de data integriteit van de database (voor zover daar bij MySQL sprake van is) ernstig op het spel zetten! Support van dit soort (gecertificeerde!) medewerkers wil je absoluut niet hebben. Dus wat voor zekerheid heb je het dan over? Het certificaat zegt blijkbaar niks en de aansprakelijkheid is toch beperkt door de leveringsvoorwaarden van het support. Dat is met support altijd het geval en dus maakt het niet uit wie het support levert.

Maar goed, het gaat over PHP: Gefeliciteerd! :Y) (taart!)
Naja, dat zijn er echt niet zo veel hoor, je moet niet vergeten dat praktisch iedere enkele blog, forum of cms systeem (m.a.w. de meeste content gerichte sites) gemaakt is in PHP. ASP en Java worden alleen gebruikt voor echte webservices en daar zijn er in vergelijk met blogs, fora en standaard sites ongelovelijk weinig van. En sowieso, zelfs het merendeel van alle webservices zijn waarschijnlijk in PHP gedaan.
Naja, dat zijn er echt niet zo veel hoor
Ik denk dat je je daar nog heel erg in vergist. Kijk eens wat de meest gebruikte programmeer taal is. Dat is toch echt Java. Zie b.v. http://www.tiobe.com/inde...paperinfo/tpci/index.html

Bedenk dan ook nog eens dat Java op de client (desktop) slechts een vrij kleine rol speelt . Er is nog wel een niet geheel klein aantal mobile apps, maar de overgrote meerderheid van de Java developers doet server side development.

Wat zouden al die developers dan toch doen joh, als Java zogenaamd zo weinig op het web gebruikt wordt?

Bedenk dat enorm veel banken, vliegtuigmaatschappijen, energie bedrijven etc op Java draaien. Het is leuk dat de blogs, webshopjes en fora op PHP draaien, maar dat is slechts 1 aspect van het web. Dat de serieuzere commerciele diensten OOK via het web beschikbaar zijn is minstens zo belangrijk en is juist iets wat het web zo'n intergraal onderdeel heeft gemaakt van onze maatschappij.

Bedenk daarbij dat zelfs platforms die voor de gebruiker volledig PHP lijken in de backend Java gebruiken. Denk b.v. aan Facebook's Cassandra (http://en.wikipedia.org/wiki/Apache_Cassandra).

Ook in de (semi) wetenschap (mijn eigen terein) wordt Java zeer veel ingezet, voor diverse dingen als (web based) job management, simulatie management en steeds vaker ook voor de implementatie van de simulatie code zelf. Dit zijn ook gewoon dingen die wetenschappers via het web aansturen en niet lokaal op hun computer draaien.

Ook een niet gering aantal services waarvan PHP webshopjes gebruikt maken, zoals betalingen, ad serving, datafeeds, zijn in Java gemaakt (en ook in .NET en enkele andere oplossingen). Ik zeg niet dat Java het alleenheerschap heeft in deze markten, maar geef aan dat Java VEEL meer wordt gebruikt dan je denkt als je alleen naar de .php extentie kijkt van de blogs en webshopjes die je bezoekt.
Je bedoelt een security gatenkaas middels allerlei cross-site scripting (XSS), database injection en meer van dat soort aanvallen? :+
Wat heeft dat met PHP te maken? Een taal beschermt nooit tegen XSS, database injection etc - dat is de verantwoordelijkheid van de programmeur zelf, en/of van de ontwikkelaars van de libraries waar die persoon mee werkt.
Zolang er programmeurs zijn, zullen er veiligheidslekken zijn 8)7
Je kan er van vinden wat je wil, maar als je nieuw bent in programmeer land is PHP een prima start. Daarna zou ik inderdaad wel verder leren in bv ASP.NET (met C# geen VB!:P) of Java.
Waarom zou het zo slecht zijn om VB te gebruiken? Buiten de syntax, zijn de verschillen bij mijn weten echt niet groot.
VB is niet goed om te leren omdat Ms er al lang zelf van aan het afstappen is. Als je na al die jaren nog altijd niet naar C++ of C# bent gegaan, ben je je eigen vak niet aan het volgen.
Onzin.

VB.NET wordt nog steeds ontwikkeld.

En verder bij .NET gaat het NIET om de syntax die je gebruikt maar om het framework met haar concepten.

De meest gemaakte fout is dan ook dat bedrijven vaak niet verder komen dan de discussie VB of C#, die bedrijven hebben er dan ook niets van begrepen.

(Sterker nog je kunt je VB class zo laten omzetten naar een C# class via bv. http://www.carlosag.net/Tools/CodeTranslator/ )
Uhm... niet mee eens.

Er wordt juist heel veel geinvesteerd in VB.Net en Microsoft heeft de commitment om VB.Net en C# qua features gelijk te houden. (Jaja, ook LINQ). Dus MS stapt er verre van af.

Ik vind de hele taaldiscussie tot op zekere hoogte een non-issue. Een programmeertaal draait om smaak, voorkeur en toepassing. The right tool for the job in mijn optiek.
De oude VB is wel dood het gaan. Ik gok dat Rizon daar op doelt
Muah. Ik heb voor een klant www.hrtforyou.com vertaald van VB naar PHP en ik lieg niet dat ik 60% minder code nodig had om hetzelfde gedaan te krijgen. De oude versie had een class met ruim 1000 regels om extra functies toe te voegen.
Was het VB Classic of VB.Net?
Daarbij zijn we ook allemaal waarschijnlijk blij, omdat we anders geen Tweakers.net hadden kunnen lezen in de vorm zoals het nu is.
Als PHP niet had bestaan dan had Femme destijds wel een andere taal gebruikt. Het gaat nergens over om het bestaan van t.net aan PHP te danken. 't Is maar een tool.
Ik denk dat Tweakers.net de huidige vorm voor een belangrijk deel te danken heeft aan de taal die PHP heet. Natuurlijk zijn er andere zaken, maar er zal zeker met reden voor PHP gekozen is.
Omdat het een lage drempel heeft en Femme slechts een hobbyist programmeur was, dat is de énige reden. Inmiddels lopen ze keer op keer tegen de limieten aan en worden de backends van grote belangrijke features in talen als Java geschreven. Als je denkt dat het destijds een weloverwogen keuze is geweest dan zit je er naast :).

[Reactie gewijzigd door .oisyn op 8 juni 2010 18:32]

Nou ja, "PHP ken ik al, Java1 niet" of "Over PHP kan ik veel vinden wat ik meteen snap, over Java1 niet" is ook een geldig argument natuurlijk. Als Femme eerst een andere / moeilijkere / minder laagdrempelige taal had moeten leren, was de intresse tijdens dat leer process misschien wel weg ge-ebt, waardoor deze website misschien wel nooit af had gekomen.

Natuurlijk zijn er een heleboek technische redenen om iets anders als PHP te gebruiken. Maar belangrijker zijn de economische redenen. En als de keuze is "binnen één maand releasen met een technisch minder goede taal" of "over drie maanden releasen met een technisch betere taal", dan zal de eerste keuze toch vaak winnen.

Alleen met een oneindig budget kun je (misschien) software schrijven zonder daarbij consecies te moeten doen.

1: Of C, of Python, of ASP, of wat je maar wil.
Natuurlijk zijn er een heleboek technische redenen om iets anders als PHP te gebruiken. Maar belangrijker zijn de economische redenen. En als de keuze is "binnen één maand releasen met een technisch minder goede taal" of "over drie maanden releasen met een technisch betere taal", dan zal de eerste keuze toch vaak winnen.
Helaas zien managers vaak niet in dat snel bouwen ook nadelig kan zijn. Bovenstaand geldt overigens niet specifiek voor PHP - ik kan ook binnen een maand een website uitpoepen in wat voor taal dan ook als het nodig is - maar in het algemeen.

"You can have it cheap, fast, and good. Pick two" gaat de stelling. Zie ook http://en.wikipedia.org/wiki/Project_triangle.
En als de keuze is "binnen één maand releasen met een technisch minder goede taal" of "over drie maanden releasen met een technisch betere taal", dan zal de eerste keuze toch vaak winnen.
Onzin. Net zo veel bedrijven investeren wel degelijk in goede tools omdat ze iets willen bouwen dat goed blijft staan en ze daar het geld voor hebben of de investering gekregen hebben.

Zo geldt het overal in onze economie. Jij bekijkt het puur vanuit je eigen amateur/hobby visie en denk dan dat iedereen de zelfde afweging maakt en er het zelfde over denkt.

Een klein kind kan snel iets bouwen met Lego. Moet daarom alles wat los en vast zit in onze maatschappij dan maar met Lego gebouwd worden??? :?

[Reactie gewijzigd door flowerp op 8 juni 2010 23:38]

Moet daarom alles wat los en vast zit in onze maatschappij dan maar met Lego gebouwd worden???
Ja ;)
Dat ga ik ook eens onderzoeken, ik hoor het steeds vaker. Back-end in C/Java/.NET, het klinkt intressant!
Er had ook gekozen kunnen worden voor iets als Perl, Python, C of Java, dat is niet gebeurt. Daarbij ben ik van mening dat het heel erg goed is dat onderdelen van een systeem worden verdeeld en in andere talen worden geschreven omdat je daarmee zo flexibel mogelijk bent.
Er had ook gekozen kunnen worden voor iets als Perl, Python, C of Java, dat is niet gebeurt.
Dus omdat dat niet gebeurd is is het een weloverwogen keuze geweest? Rare redenatie :)
Tja, en je snapt dus blijkbaar niet wat je zelf zegt.

Tweakers, Facebook, zijn MOGELIJK geweest door PHP. NU ze geld zat hebben zitten ze aan de limieten, maar nu kunnen ze beter kopen.

Dat is alsof je zegt dat een kleine transporter een slechte auto is omdat als je uitgegroeid bent naar een internationaale vervoerded een 747 meer kan vervoeren en sneller. Maar zonder die oude transporter had je bedrijf de eerste maand nooit overleefd.
Je vergelijking gaat mank. Er is namelijk niets mis met de Transporter. Er is wel wat mis met PHP. Als je toch in de categorie auto's wilt blijven, Janoz plaatste ooit eens een mooie analogie over hoe er met PHP designissues wordt omgegaan door de developers
Als ik aan een stuur naar rechts draai wil ik dat ik naar rechts ga. Dan kun je documenteren dat het andersom werkt, het verdedigen door te vertellen dat er nu eenmaal een clockwise wormwiel gebruikt is en als handig voorbeeld aandragen dat je bij het achteruitrijden gewoon naar de jusite kant stuurt. Het is volkomen logisch dat het zo werkt door het gebruikte wormwiel, maar maakt dat het ook automatisch logisch dat je naar links moet sturen om rechtsaf te gaan?
De vergelijking is dus dat er geen kleine auto's bestaan, behalve die ene die toevallig ook een clockwise wormwiel gebruikt. Gezien de laagdrempeligheid van die auto (klein en kost weinig) boort hij een gat in de markt aan, maar dat betekent niet dat er niets op aan te merken is.
Tweakers, Facebook, zijn MOGELIJK geweest door PHP
Nonsens. Die sites zijn zonder PHP ook mogelijk, en vaak zelfs beter. Het enige verschil is dat er zo gigantisch veel LAMP configuraties te krijgen zijn waardoor de drempel zo laag is.

Grappig trouwens dat je in elke post hier onder dit artikel mensen ervan beticht er geen verstand van te hebben.

[Reactie gewijzigd door .oisyn op 9 juni 2010 12:30]

Dat is alsof je zegt dat een kleine transporter een slechte auto is omdat als je uitgegroeid bent naar een internationaale vervoerded een 747 meer kan vervoeren en sneller. Maar zonder die oude transporter had je bedrijf de eerste maand nooit overleefd.
Klopt, maar dan is die kleine transporter niet meer bruikbaar door die vervoerder op dat moment en moet ie dus naar die 747 overstappen.

Zo is het ook met PHP. Het is leuk voor hobby mensen die hun home page er mee bakken, maar zodra je meer wilt en je meer profesioneel inzicht gaat krijgen loop je snel tegen limieten aan
PHP is een super scriptingtaal. Niet moeilijk en ideaal als instaptaal, of als taal om betrekkelijk kleine applicaties in te schrijven.

Het punt is wel dat eens als je echt een grote taal met een imens framework erachter (C#, Java, ...) hebt gebruikt, je je gaat ergeren aan het niveau van PHP, en alle mankementen erachter. Het is een prachtige taal, maar inderdaad niet echt volwassen te noemen.

PHP mankeert een hele boel, maar ik weet niet of het noodzakelijk is om dit erin te steken. PHP is nu net zo lekker "leuk" als klein los taaltje waarmee je snelsnel iets uit de mouw kan schudden die gemakkelijk op elk platform te draaien is.
Ik heb ervaring met zowel PHP, Java, C# en nog wat talen.
En ik moet toch altijd weer zeggen wat een heerlijke taal php is.

Ik heb altijd het idee bij Java en c# maar vooral bij c++ dat jij je moet aanpassen aan de taal. Terwijl bij PHP je veel minder gezeur hebt en het gewoon werkt.
Volgens mijn idee heeft PHP gewoon begrepen waar het om gaat.
Weinig gezeur en het werkt prima :P
Ik heb altijd het idee bij Java en c# maar vooral bij c++ dat jij je moet aanpassen aan de taal.
Moet je ook bij PHP. Zie: 0 == "aap". Dat PHP vergevender is is wel waar, en je kunt er ook vlot dingen mee maken. Je moet jezelf echter afvragen of je dat wilt.
Ik snap het kritiek op PHP ook niet. Het mist een aantal features, maar so what. Ik heb al dusdanig gave applicaties gezien dat ik het de ontwikkelaars wel kan vergeven.

Sowieso is de gene die bepaald of een applicatie goed / slecht is de programmeur. Een matige programmeur zal met zowel PHP, ASM of C# ook slechte resultaten neerzetten.

En wat de interpreter betreft. Tegenwoordig zijn op enkele uitzonderingen de meest gebruikte talen niet zo low level. Ook ASP.NET werkt met run-times.
Dat een taal low-level is (wat betekent dat je met een taal zo ongeveer rechtstreeks het OS/de CPU aanstuurt in plaats van dat dat geabstraheerd is), is anno 2010 meestal niet echt een bewonderenswaardige feature voor een webtaal. ASP.NET werkt inderdaad met een 'run-time', maar dat is niet veel meer dan een DLL met functies die om jouw code heen gewikkeld zitten. Uiteindelijk blijft het zo dat je code vertaald wordt in machinecode en vervolgens gewoon vrolijk aan de processor wordt gegeven. In tegenstelling tot de meeste PHP-code (die regel voor regel geïnterpreteerd en vervolgens uitgevoerd wordt).
Feli PHP :-)

Naar mijn mening is het toch wel een krachtige programmeertaal. De meeste zaken die je je ook maar kan inbeelden (toch qua webbases vlak), kan gewoon met PHP.

In verband met Cubic X zijn reactie:

Ik denk niet dat PHP direct (of 15 jaar) zal weggaan. Het is en blijft een relatief eenvoudige programmeertaal. Misschien dat ze op professioneel vlak meer en meer gaat vervangen worden, maar op niveau van de hobbyist zal het zeker niet zo snel verdwijnen.
De meeste zaken die je je ook maar kan inbeelden (toch qua webbases vlak), kan gewoon met PHP.
Ftp connectie in je sessie bewaren?
Als je FTP connecties in je (HTTP) sessie wilt bewaren, doe je denk ik iets anders fout.

Maar nee, ik geloof niet dat je een connection (van wat dan ook) in je sessie kan opslaan in PHP. Lorduh zegt dan ook "de meeste zaken". Ook de taal van jou keuze kan maximaal "de meeste zaken", er is niet zoiets als een taal die alles kan.
Als je FTP connecties in je (HTTP) sessie wilt bewaren, doe je denk ik iets anders fout.
Nee hoor. Het opzetten van een ftp connectie is redelijk duur en kan ook relatief lang duren waardoor het kan lonen om deze in een echte sessie scope op te kunnen slaan.

Daarnaast zijn er zeker wel talen die alles kunnen. Denk bijvoorbeeld alleen al aan C. Die kan ten eerste alles wat php ook kan (php interpreter zelf is immers in c geschreven dus elke handeling die php uit kan voeren kan c dus ook), maar daarnaast kan je daarin ook nog eens een compleet multi threaded server applicatie bouwen (apache). Dat wil je niet met php.

Maar goed. Als je door het bewaren van een resource in je sessie niet overtuigd bent, wat dacht je van het volgende:

-Multithreading
-Standaard i18n
-Echt OO programeren met methode overloading
Wat je kan doen is een class object opslaan in een sessie.
En die class kan connecties bevatten naar wat dan ook.
Zo heb ik een user class weleens in een sessie opgeslagen die dan weer de connectie met de database bevatten. Ik weet niet echt OO maar het bewijst prima dat je een connectie dan wel via een omweg wel op kan slaan in een sessie :P

[Reactie gewijzigd door hellfighter87 op 8 juni 2010 23:37]

Onzin, een resource is niet serializable en daarom niet op te slaan in een sessie.
Ik weet niet hoe het bij PHP zit, maar in .NET maakt het niet zoveel uit of iets serializable is of niet, zo lang je maar in-process sessies gebruikt. Als dat zo is, kan ik alles in een sessie-variabele opslaan, of het nou value-type of reference-type is.

Dat het niet altijd een goed idee is, is een tweede natuurlijk :)

[Reactie gewijzigd door Korben op 9 juni 2010 09:21]

.oisyn heeft het (neem ik aan) specifiek over php. Bij php is een sessie niks meer dan een naar de schijf geserialiseerd bestandje dat aan het begin van je script wordt ingeladen en aan het einde wordt weggeschreven. Van een echte session 'scope' zoals bv .NET dat wel heeft kun je dus niet spreken. Vandaar dat ik het ook als voorbeeld aandraag van iets wat in php niet kan en in andere omgevingen wel.

Op dit item kan niet meer gereageerd worden.



HTC One (M9) Samsung Galaxy S6 Grand Theft Auto V Microsoft Windows 10 Apple iPad Air 2 FIFA 15 Motorola Nexus 6 Apple iPhone 6

© 1998 - 2015 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True