Ugle-sprog vil gøre PHP mere sikkert med Javascript-stil

Illustration: Mark Coleman
Sproget OWL vil gøre det muligt at skrive programmer til PHP-platformen, på en måde der ligner Javascript.

Et nyt sprog vil gøre det mere sikkert at skrive PHP, med en syntax, som ligner Javascript til forveksling.

Det nye sprog kalder sig OWL, men må ikke forveksles med det semantiske web-sprog af samme navn.

Dets eksistensberettigelse skal bestå i at gøre PHP-programmering mere sikkert. PHP har en masse fordele, lyder det fra OWL's hjemmeside, og disse fordele er en lav indlæringskurve, bred platformsunderstøttelse og ingen build-proces - der er ikke noget at compile.

Men sproget har også nogle bagdele, lyder det. Det drejer sig om et spraglet standardbibliotek i et globalt namespace, samt stor variation i hvordan fejl håndteres, og mange faciliteter som nemt kan føre til wepapps med sikkerhedshuller.

OWL vil ændre på det ved blandt andet at gøre hver fil til sit eget namespace, uden implicitte globale variable. Der er ikke "variable variable," som er en slags eval-funktion for variabel-navne i PHP. Standardbibliopteket bruger exceptions i stedet for fejlkoder, og det tillades ikke at have database-kald, fil-operation eller system-kald i HTML-skabeloner.

Dertil organiserer OWL standard-biblioteket i moduler og klasser, og bruger Unicodes UTF-8 som tegnsæt. Man kan heller ikke bare skrive til output-strømmen med <? ... ?> - elementer.

På sikkerhedssiden bryster sproget sig af at kræve HTTPS i forbindelse med formular-input, dog undtaget fra den lokale server af hensyn til udvikling. Dertil kommer en string-type kaldet LockStrings, som skal sætte en stopper for injektions-angreb. Der er heller ingen null-værdi i det nye sprog.

Ny grænseflade til gammel motor

»Det er en slags ny, sikker grænseflæde øverst til den samme gamle PHP-motor nedenunder,« siger sprogets bagmand Joe Lesko til Infoworld.

»Men jeg kan godt forestille mig at flere udviklere ville vælge OWL i stedet for rå PHP, i særdeleshed i projekter, som betsår af en enkelt udvikler.«

Et eksemple på OWL kan ses herunder, taget fra projektets hjemmeside.

// Hello :)
print('Hello World!');
 
// OWL has a familiar JavaScript-like syntax.
let animals = ['squirrel', 'deer', 'sparrow'];
animals.add('unicorn');
 
// The Web module has methods for common tasks, like
// returning a complete HTML5 document.
Web.sendPage({
    title:        'Forestbook',
    description:  'The sylvan social network.',
    body:         friendsHtml(animals),
});
 
// Template functions let you include HTML directly
// in your scripts. (With new HTML shortcut tags!)
template friendsHtml(friends) {
 
    <h1>> My Forest Friends
    <ul>
    :: for (friend in friends) {
        <li>> {{ friend.toUpperCaseFirst() }}
    :: }
    </>
 
}

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (5)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Morten Sørensen

Er det ikke bare fordi man kan? Og bare fordi man kan, er det jo altså ikke nødvendigvis en grund til at man skal.

Jeg kan godt se idéen med galskaben, især mht sikkerheden. Men er det ikke lidt skørt essentielt at skrive JS for at compile det til PHP? Man bruger jo heller ikke en skruetrækker til at banke et søm i med.

Jo vist, hvis man sidder som en enkelt udvikler på et projekt, der ligger på en shared host, og man ikke er særligt god til PHP men er verdensmester i JS, og har brug for noget serverside, så giver det måske mening. Men hvis du bygger apps, der gør brug af templates og routes, så kan du jo lige så godt lave din app i Vue.js i stedet for, hvor du kan lave dine templates og components i Markdown og Sass. Det er da langt nemmere, end at skulle bruge en eller anden JS-to-PHP compiler.

Og ja, skal du have indhold fra en database over i Vue.js, så skal du have et API og lave nogle ajax-kald. Men altså, jeg er ikke PHP udvikler, og det tog mig et kvarter at lave et RESTful API med Lumen.

  • 4
  • 0
Casper Pedersen

Nu er JavaScript (som rentfaktisk hedder ECMAScript) jo ikke kendt for at være et godt sprog, så at sammenlige et ny sprog med dette, betyder jo ikke at det nye sprog er godt.

PHP er brugt stort set overalt hvor der er en webserver, og det fleste sikkerheds huller i programmer kommer jo mest fra de mennesker der bruger sproget, og ikke sproget i sig selv.

  • 1
  • 2
Junior Ronnie

Nu har jeg set deres eksempler igenmen.
Synes det er gjort på en meget rodet måde og meget jeg kunne ønkse anderledes. PHP er i forvejen en rodet sprog som teamet bag heldigvis gøre noget for at rette op på. Men når man ser på OWL tempelate osv synes jeg st de fixer noget men gøre andet mere rodet

  • 0
  • 0
Peter Christiansen

Synes ideen er grænsende til det tossede. Hvis man vil programmere i javascript på serveren, hvorfor bruger man ikke node så?

Eller hvis php er så fucking dårligt, hvorfor laver man ikke et nyt sprog i stedet for den evige oversættelse fra det ene sprog til det andet?

Problemet er nok at programmører er dovne og ikke gider sætte sig ind i nye værktøjer aka. programmeringssprog, fanger i hvert fald mig selv i det nogle gange, men tvinger mig selv til at lære nyt hele tiden.

  • 0
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize