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

5 kommentarer.  Hop til debatten
Ugle
Illustration: Mark Coleman.
Sproget OWL vil gøre det muligt at skrive programmer til PHP-platformen, på en måde der ligner Javascript.
28. juli 2017 kl. 10:30
errorÆldre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

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.

Artiklen fortsætter efter annoncen

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.

Artiklen fortsætter efter annoncen

»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.

  1. // Hello :)
  2. print('Hello World!');
  3.  
  4. // OWL has a familiar JavaScript-like syntax.
  5. let animals = ['squirrel', 'deer', 'sparrow'];
  6. animals.add('unicorn');
  7.  
  8. // The Web module has methods for common tasks, like
  9. // returning a complete HTML5 document.
  10. Web.sendPage({
  11. title: 'Forestbook',
  12. description: 'The sylvan social network.',
  13. body: friendsHtml(animals),
  14. });
  15.  
  16. // Template functions let you include HTML directly
  17. // in your scripts. (With new HTML shortcut tags!)
  18. template friendsHtml(friends) {
  19.  
  20. <h1>> My Forest Friends
  21. <ul>
  22. :: for (friend in friends) {
  23. <li>> {{ friend.toUpperCaseFirst() }}
  24. :: }
  25. </>
  26.  
  27. }
5 kommentarer.  Hop til debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger
5
31. juli 2017 kl. 10:10

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.

4
29. juli 2017 kl. 11:51

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

3
28. juli 2017 kl. 23:34

Et sprog der hedder det samme som andet, der får et tredie til at ligne et fjerde?

2
28. juli 2017 kl. 14:50

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
28. juli 2017 kl. 11:10

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.