PHP/SQL – Äktenskap i helvetet.

Den allmänna acceptansen av SQL som språk i samband med webbutveckling är i ett avseende märklig. SQL används (oftast) i dessa sammanhang utifrån dynamiska språk som t. ex. PHP. Den naturliga förklaringen till användningen av SQL är fokuset på dynamiskt innehåll som ger ett behov av en databas ur vilken information dynamiskt kan hämtas. Inga konstigheter där. Men om vi tittar på PHP så ser vi ett typexempel på vad som kallas Imperativ programmering, detta i kontrast med SQL som är lika typiskt för Deklarativ programmering. Vad innebär då dessa två begrepp? Imperativ programmering kan väldigt förenklat sägas vara att programmeraren specificerar hur något ska utföras, medan deklarativ programmering, lika förenklat, kan sägas vara att programmeraren specificerar vad som ska utföras.

Med ett välspecificerat fält och en fixerad uppsättning datatyper har utvecklingen av SQL och implementeringar därav, så som MySQL, Postgres SQL som de vanligare i webbutveckling, har databaser utvecklats till stabila och användbara verktyg. Kanske allt för bra. Lockelsen att använda dessa verktyg ligger just i effektiviteten inte i enkelheten att använda dem.

I fallet PHP/SQL finns otaliga exempel på att det på programmerarnivå är lite av ett äktenskap i helvetet. Det finns få sätt att effektivt och dynamiskt forma SQL-uttryck och det behövs extra arbete i varje förfrågning för att mappa resultat från SQL till variabler i PHP. PHP-tolken kan inte avgöra giltigheten i SQL-syntaxen, den har ingen självständig möjlighet att avgöra datatyper och kan därmed inte hjälpa till med att avgöra när specialtecken måste konverteras eller läggas till. Att det sedan finns olika implementeringar av SQL gör inte saken bättre, men det går att leva med.

Det som vore intressant att se är ett språk som har SQL som en del i sin syntax, en kropp som det kan heta… Detta skulle åtminstone kunna ge språkets tolk en möjlighet att avgöra valid kontra felaktig syntax och vi skulle kanske slippa alla försök att i smyg förvandla SQL till ett imperativt språk. Det vore inte första gången deklarativa språk ”bakas” in i imperativa språk. T. ex. reguljära uttryck går under deklarativa språk och finns definierat i syntaxen i språk som t. ex. Perl, Ruby eller Falcon.

Tveklöst är det inte lika enkelt att ta in SQL i syntaxen till ett annat språk, dels genom SQL:s standard upplägg med server-klient, men även genom det större komplexiteten i SQL kontra reguljära uttryck. Utvecklingen mellan PHP och det kanske populäraste deklarativa språket, HTML, är inte heller så upplyftande. Även där är vi fast i att programmera två separata språk samtidigt.

Detta inlägg är publicerat i Blogg och har etiketter , , . Bokmärk detta inlägg.

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Sökmotoroptimering

Marknadsföring som fungerar! Sökmotoroptimering som möter era behov och krav!

Sökmotormarknadsföring

Annonsera på sökmotorerna! Syns när någon söker efter era produkter eller tjänster!

Website

Sökmotoroptimerad Webbdesign som lönar sig för er verksamhet!