jbdeiman schreef op vrijdag 27 maart 2009 @ 11:03:
[...]
PHP is juist door die "prutsers" die het maken (de PHP source zelf) zo laagdrempelig gebleven. Zonder dat was het internet waarschijnlijk niet zo groot en toegankelijk geweest als het nu is. Er zit wel degelijk een gedachte achter en die gedachte was altijd om het zo laagdrempelig mogelijk te houden.
Nu ken je wel ontiegelijk veel eer aan php toe. Het internet was al heel groot en toegankelijk voor PHP, en als je al iets zou moeten kiezen dan zou ik eerder voor MySQL kiezen. Een werkbare gratis database.
'De enige echte werkwijze die php toepast is de voglende :
Stap 1:
We bedenken een coole nieuwe feature of taal uitbreiding omdat dat veel gevraagd wordt, of gewoon hip klinkt. Deze implementeren we zonder een uitgebreide analyse.
Stap 2:
Proberen met kunst en vliegwerk de in stap 1 geïntroduceerde quirks backwardscompatible te houden wanneer blijkt dat bepaalde keuzes toch meer impact bleken te hebben.
Parallel hieraan:
Proberen in de bugreports het onlogisch zijn van bepaalde onderdelen te verdedigen door de technische implementatie uit te leggen, en daarbij volledig het werkelijke probleem te negeren.
Daarnaast wordt PHP zoveel gebruikt ook door professionele ontwikkelaars dat ze de laatste jaren bezig zijn geweest met het professionaliseren van de mogelijkheden van PHP. (Bijv. De OOP syntax en dergelijke)
De OOP syntax is alvast een typisch voorbeeld van een grote WTF. Keurig te mappen op de stappen hierboven. Als ze ook maar ietsje pietsje langer hadden nagedacht en eens wat research hadden gedaan naar het concept van OOP dan hadden ze gelijk in de eerste versie al geïmplementeerd dat de constructor van een class automatisch als eerste ook de constructor van zijn superclass aan zou roepen.
Het bashen van de PHP bouwers is, in mijn ogen, dan ook onterecht. Natuurlijk is PHP veel te vrij (dat vind ik, tevens een PHP programmeur, ook) waardoor je code niet altijd goed is en waardoor je vaak fouten krijgt, zeker bij beginners.
Vrijheid is niet het probleem.Je kunt keurig een logisch goed in elkaar steken compleet vrije taal ontwikkelen. Sommige taalkeuzes zijn echter gewoon onlogisch. Neem enkel bovenstaand voorbeeld waarbij 2 strings worden vergeleken. Als beide zijnden van de == al van hetzelfde type zijn, waarom in godensnaam gaan ze deze dan alsnog naar een int casten

...
Wanneer je echter gestructureerd werkt, en zeker tijdens de ontwikkeling alle fouten/ waarschuwingen weergeeft, dan zal je vanzelf ook netter en beter programmeren. (denk bijv. aan het definiëren van variabelen, het foutafhandelen bij Query's enz.) Ik zeg niet dat wat ik schrijf foutloos is, maar ik durf wel te zeggen dat je niet zomaar echte fouten tegenkomt.
Het gaat niet over hoe gestructureerd jij werkt en hoeveel fouten jij niet maakt. Het gaat over de competenties van de mensen achter PHP. Hierboven zijn al meerdere voorbeelden die aangeven dat ze incapabel zijn om de impact van bepaalde ontwerpbeslissingen te kunnen onderkennen.
Ik vind het wel prettig dat PHP ook steeds meer de kant op gaat van een OOP programmeertaal, maar dat de "procedurele syntax" nog wel beschikbaar is. Zeker als je "even snel iets moet maken" kan dat veel sneller procedureel dan echt in OOP. Meestal maak ik dan een simpele functie die aangeroepen kan worden. Net zo snel en effectief, alleen niet via een class aanroepbaar, maar daar is die ook snel genoeg in te bouwen indien nodig.
PHP gaat helemaal niet de kant op van OOP. Ze hebben een tijd terug de verkeerde afslag genomen en zijn langzamerhand aan het verdwalen op binnenweggetjes op zoek naar de weg naar OOP.