Door Viognier: Het probleem zit niet in PHP en al helemaal niet in de superglobals. Het probleem zit em in de vele PHP-coders die niet weten hoe je moet programmeren.
Inclusief de ontwerpers. Zie url beneden.
Pro tip: Begin geen nieuwe projecten in PHP.
Dit is dus zeker geen pro tip, maar een onzin tip. Als iedereen, dus ook de scriptnoobies, overstappen naar bijvoorbeeld Python, dan krijg je daar precies dezelfde problemen.
Nee, want je bent een hoop gedonder kwijt. Zeker niet alles, want codekloppers die geen idee hebben wat ze zullen doen zullen domme dingen blijven doen, en er trots op zijn. Maar met PHP wordt dat versterkt door rariteiten in de taal zelf.
Een taal is maar een taal. Frans is niet beter dan Engels, Italiaans niet beter dan Duits. Of het een grammaticaal correcte zin is en of het hout snijdt hangt af van wie het spreekt. Hetzelfde geldt voor PHP, Python, Ruby, C#, Java en alle andere ontwikkeltalen.
Nee. Frans, Engels, Italiaans, en Duits zijn niet algemeen beter dan elkaar, maar ze zijn wel beter voor bepaalde doeleinden. Niet voor niets dat Frans de taal der liefde wordt genoemd. Italiaans is wellicht nog het makkelijkst te leren van dit rijtje, Engels is een beetje een omhooggevallen boerentaaltje maar wordt wereldwijd gesproken, en Duits is nog altijd groot voor bijvoorbeeld filosoferen. Een taal heeft wel degelijk sterktes en zwakten.
Dat geldt nog veel sterker voor computertalen. Wil je snelheid in uitvoering of hele precieze controle, dan ga je dicht bij de machine zitten en gebruik je C, al kost het schrijven meer werk en meer oppassen met pointers en dergelijk. C++ is meer van hetzelfde maar dan met tooling voor grote projecten erbij. Java wordt veel gebruikt in grootbedrijven omdat je er minder hooggequalificeerde codekloppers voor nodig hebt dan voor C++. Maar het blijkt daar handiger grote stukken aan tekstmanipulatie met xslt en xpath en xquery te doen dan het in java zelf te doen. Dat zie je bij andere talen dan toch minder. C# is zeg maar redmondiaanse antwoord op java, met hun aloude vendor lock-in extragratis erbij. Ruby en Python zijn vergelijkbaar als algemene scripttalen, alleen de inslag is radicaal anders.
Al die verschillen maken wel degelijk uit, al moet je meer dan alleen PHP achter je kiezen hebben om dat te begrijpen.
Het feit dat de onderzoekers stellen dat superglobals een probleem vormen geeft alleen maar aan dat zij niet snappen wat superglobals zijn en hoe je daar mee om moet gaan.
Nee, het probleem met PHP is altijd weer dat het een omgeving is waar je je veilig waant (het is niet zoals C waar de geringste fout je programma opblaast) maar waar je ongemerkt allerlei onveilige dingen doet, in combinatie met een heel erg groot contingent gebruikers dat niet erg goed is in opmerken wat veilig is en wat niet. Ze weten gewoon niet beter.
Door Anoniem: Als je vandaag de dag nog geen framework (Symfony2, ZendFramework2, Yii, Laravel) gebruikt voor een serieuze PHP website ben je inderdaad verkeerd bezig. Maar om dan te zeggen dat PHP inferieur is gaat helemaal nergens over.
Je zegt hier dat een je als je nou maar een grote berg "standaard" duck tape en sjortouw over een uiteenvallend gebouw uitstort dat je dan verkeerd bezig bent, maar een beter gebouw is natuurlijk onzin. Laat ik het daar niet mee eens zijn.
Als het fundament te zwak is en vol zit met scheuren, gaat geen enkele hoeveelheid verdere opbouw de fundamentele problemen oplossen. Dat is de situatie die we hier hebben. Je kan jezelf voorhouden dat pappen en nathouden je tijd wel zal duren, maar de enige echte oplossing is toch echt alles inclusief fundering afbreken en een nieuwe fundering leggen voor je opnieuw begint met opbouwen. Zuur, maar soms gewoon onoverkomelijk. Dat is waarom je Architecten nodig hebt die meer kunnen dan overal maar wat ideetjes vandaan jatten.
PHP heeft die zwaargewichten gewoon niet in huis. Nooit gehad. Degenen die iets meer konden zijn al lang geleden naar elders vertrokken, maar grote lichten zijn daar nooit in de buurt geweest. En het is de taal duidelijk aan te zien, voor iedereen die een klein beetje achtergrond in de materie heeft.
PHP zal misschien minder ondersteunen dan C++ , Java of C# maar dat maakt het nog geen slechte taal.
PHP was ontwikkeld voor website ontwikkeling, en daar is het ook nog steeds prima voor geschikt.
Je zegt dat "in de laatste plaats omdat de ontwikkelaars gewoon nauwlijks benul van taalontwerp hebben."
Het probleem is niet dat PHP "minder" ondersteunt. Ze hebben alles waar ze tegenaanliepen in de taal gegoten, zeg maar zoals Engels aan nieuwe woorden komt. Het probleem is dat het geen coherent geheel is, maar een zooitje van onbegrepen toevoegingen. En daar zitten dus regelmatig gaten en kieren in, en dus ook allerhande en vaak onoverkomelijke beveiligingsproblemen. Zeg maar een grote verzameling krotten in een sloppenwijk, dat niveau.
Laat ik het iemand anders wat langer zeggen:
http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/Overigens maakt het verzinnen van een lange lijst klachten tegen andere talen jouw lievelingstaal niet ineens beter. Vooruitgang is als we uiteindelijk beter bruikbare talen overhouden. PHP is in die grote vertelling vooral bruikbaar als voorbeeld van hoe het niet moet.
Zelf heb ik al meer dan 10 jaar ervaring met PHP, en heb ik verschillende projecten op mijn naam staan. Ik heb serieus gekeken naar Python, maar ben uiteindelijk bij PHP gebleven omdat ik anders al het werk dat ik inmiddels opgebouwd kan weggooien, en dat is voor mij een te groot verlies.
Je presenteert jezelf als een stereotiepe PHP "programmeur" die het niet aandurft met echte talen te werken. Zeg maar een soort vbklopper die niets anders kan van de intarrwebs. Er is een goede markt voor je kunstjes, wel 80% van de verscripte websites kunnen je gebruiken volgens de redactie, maar qua beveiliging ben je nog steeds onderdeel van het probleem, niet van de oplossing.
Persoonlijk schrijf ik een paar meer talen en kies ik per project welke het beste past. Kritieken zoals jij schrijft over talen waar je kennelijk geen benul van hebt, zal je van mij niet horen.