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.
De 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 closures, late 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.
[Reactie gewijzigd door Jeffrey v. Hees op dinsdag 8 juni 2010 17:45]
Het is gek genoeg echt zo, PHP is meer vergevingsgezind dan C, maar het lijkt er in een hoop opzichten heel veel op. Ik schrijf PHP zelfs exact hoe een C programmeur het zou doen. (in de tijd dat ik nog geen C deed)Ik vraag me af in welke obscure C variant jij dan C programmeert.
Sinds het bestaat. Logica kun je leren. Design patterns ook. Natuurlijk vereist het ergens ook een gave, maar dat betekent niet dat het niet "leerbaar" is.Sinds wanneer kun je leren programmeren?
[Reactie gewijzigd door Bloodhatch op dinsdag 8 juni 2010 18:28]
Het is net als schrijven bloodhatch. Je moet het leren. Je weet wat je wil schrijven. Je begint met het leren van woordjes. Je leert meer woordjes, en je maakt al snel een zinnetje. Na een shitload aan zinnetjes heb je een boek.kwestie van syntax leren
Als jij 20 jaar traint vanaf je 3e af of zo - en je hebt er zin in en plezier in en wilt graag tennissen in tegenstelling tot door je ouders gepusht worden en het alleen maar doen omdat je het moet - dan heb je een goede kans dat je gelijk speelt of wint.Ik kan ook op een tennisbal slaan maar zelfs al train ik 20jaar, Federer zou me de grond inboren.
[Reactie gewijzigd door demonite op woensdag 9 juni 2010 09:54]
Wat een onzin is dat zeg. Weet je wat je niet hoef te leren? Ademen! Verder moet je alles leren, zelfs lopen.je kan niet leren programmeren
En zelfs ademen heb je geleerd.Wat een onzin is dat zeg. Weet je wat je niet hoef te leren? Ademen! Verder moet je alles leren, zelfs lopen.
Wat versta jij onder het betere programmeren en die vaste werkwijze's zijn die in alle gevallen wel geschikt? Ik heb zelf ervaring opgedaan met UML en ben van overtuiging dat het voor software waarbij databases gebruikt worden geschikt is, maar voor het maken van allerlei GUI gerelateerde zaken is het pure flauwekul. Ik betwijfel bijvoorbeeld ten zeerste dat er voor de basis van Google-maps ooit maar 1 UML diagram is getekend, laat staan dat er een design is geweest. Veel meer denk ik dat iemand aan het hacken is geslagen om te kijken of hij een enorm groot plaatje kon opknippen in kleinere en deze via javascript kon laten na laden. Volgens jou redenering is google-maps dus niet ontstaan uit serieus programmeren.Het betere programmeren
En waar denk je dat die bepaalde denkwijze vandaan komt? Die heb je ooit eens moeten leren. Natuurlijk kun je leren programmeren, iedereen die programmeur is heeft het ooit eens moeten leren, net zoals een willekeurige andere vaardigheid. En sommige mensen hebben er meer aanleg voor dan anderen.Sinds wanneer kun je leren programmeren? Voor programmeren heb je alleen een bepaalde denkwijze nodig, je gebruikt eigen logica om een oplossing te bedenken voor wat dan ook.
[Reactie gewijzigd door DevilsProphet op woensdag 9 juni 2010 08:41]
Al sinds november 2009 niet meer: Lerdorf leaves Yahoo!.Lerdorf werkt inmiddels als programmeur bij Yahoo.
[Reactie gewijzigd door Jeffrey v. Hees op dinsdag 8 juni 2010 20:27]
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.De introductie van die achterlijke namespace operator als laatste wapenfeit bevestigt dit nog maar eens.
[Reactie gewijzigd door .oisyn op dinsdag 8 juni 2010 18:49]
[Reactie gewijzigd door .oisyn op dinsdag 8 juni 2010 18:04]
[Reactie gewijzigd door poepkop op dinsdag 8 juni 2010 21:46]
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.Al waarschuwd de interperter prima op strict als een functie deprecated is. Kan je die dingen stapje voor stapje verwijderen
Ah ja, de standaard dooddoener. "Als je het niet zint, dan gebruik je het toch niet"Dan gebruik je toch geen PHP
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.Een taal is naar mijn mening volwassen als deze breed ingezet wordt.
[Reactie gewijzigd door .oisyn op dinsdag 8 juni 2010 19:05]
BASIC wordt / werdt breed ingezet. Is dat een volwassen taal?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.
persoonlijk vind ik dat nou weer net de uitdagingIk vindt C overigens iets té volwassen voor mijn wensen - teveel dingen die je verkeerd kunt doen.
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:Met C zit je op een heel laag niveau te programmeren, wat zowel voordelen kan hebben
[Reactie gewijzigd door .oisyn op woensdag 9 juni 2010 15:15]
Nou nou, niet overdrijven. .NET en Java hebben beiden een hoeveelheid 'standaardfuncties' waarvan PHP in een hoekje gaat zitten kniezen.De charme van PHP is de kracht van de gigantische hoeveelheid beschikbare standaardfuncties...
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.... en de eenvoud waarmee je die functies kunt aanroepen. Een paar regels code is genoeg om behoorlijke complexe bewerkingen uit te voeren.
[Reactie gewijzigd door Korben op woensdag 9 juni 2010 09:11]
In Nederland wel dan, in andere landen nietZal PHP dan over 3 jaar, na hun 18e verjaardag, eindelijk een volwassen taal zijn?
[Reactie gewijzigd door eXisTa op woensdag 9 juni 2010 08:53]
Er aan bijgedragen okay, maar 'gemaakt'???PHP heeft toch een beetje het web gemaakt zoals het nu is.
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.htmlNaja, dat zijn er echt niet zo veel hoor
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.Linux, Apache, MySQL, PHP. Te samen hebben ze het behouden voor de gewone gebruiker.
[Reactie gewijzigd door YopY op dinsdag 8 juni 2010 20:52]
Je weet niets van programmeren, Wilt zeker niet direct met vreemde termen lastig gevallen worden en je doet PHP.net vs Python.orgEn voor PHP heb je natuurlijk Python[...] Volgens velen minstens net zo makkelijk als PHP
[Reactie gewijzigd door daft_dutch op woensdag 9 juni 2010 00:01]
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.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 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.Daar komt nog bij dat Postgres écht open source is - MySQL valt onder een bedrijf
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.[...]
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.
Zoals?Ook het feit dat er een bedrijf achter zit heeft zijn voordelen.
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.Zo is er een stabiliteit in het ontwikkelproces.
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.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.
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.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?
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).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?
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.PHP is "goed genoeg". Voor java programmeurs komt ik altijd maar weer met system.lang.exit vs exit():
Ik denk dat ik meer snap dan je denktAls 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.
[Reactie gewijzigd door Janoz op woensdag 9 juni 2010 10:54]
[Reactie gewijzigd door .oisyn op dinsdag 8 juni 2010 18:32]
Dus omdat dat niet gebeurd is is het een weloverwogen keuze geweest? Rare redenatieEr had ook gekozen kunnen worden voor iets als Perl, Python, C of Java, dat is niet gebeurt.
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.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.
[Reactie gewijzigd door flowerp op dinsdag 8 juni 2010 23:38]
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.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.
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.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?
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.Tweakers, Facebook, zijn MOGELIJK geweest door PHP
[Reactie gewijzigd door .oisyn op woensdag 9 juni 2010 12:30]
Klopt, maar dan is die kleine transporter niet meer bruikbaar door die vervoerder op dat moment en moet ie dus naar die 747 overstappen.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.
[Reactie gewijzigd door !GN!T!ON op dinsdag 8 juni 2010 17:59]
En daarbij is het zeer laagdrempelig voor beginnende programmeurs omdat het een heel flexibele taal is.
Dit is ook Turing-complete, dus flexibel, dus laagdrempelig?Elke Turing-complete taal is heel flexibel, waar doel je specifiek op?
Welke ondersteuning voor Unicode mist php dan?Een komende versie van PHP zou onder andere ondersteuning voor Unicode moeten brengen
[Reactie gewijzigd door StM op dinsdag 8 juni 2010 17:55]
[Reactie gewijzigd door .oisyn op dinsdag 8 juni 2010 18:24]
[Reactie gewijzigd door hostname op dinsdag 8 juni 2010 18:04]
Op dit item kan niet meer gereageerd worden.
Populair: Tablets Samsung Websites en communities Mobiele telefoons Google Sony Microsoft Games Politiek en recht Consoles
© 1998 - 2013 Tweakers.net B.V. Contact Over Tweakers Jouw privacy Algemene voorwaarden Cookies
Tweakers wordt uitgegeven door De Persgroep en wordt gehost door True