Programmering

Facebooks Hack-programmeringssprog bygger kodesikkerhed i PHP

Facebook har frigivet et programmeringssprog kaldet Hack, som gifter sig med letheden til PHP med de strenge sikkerhedskontroller af ældre sprog som C ++.

PHP-programmører burde let forstå Hack, som replikerer mange af de samme funktioner og funktioner i PHP, og tilføjer nogle få af sine egne for større produktivitet, sagde Bryan O'Sullivan, en Facebook-ingeniør på projektet.

[Arbejd smartere, ikke hårdere - download Developers 'Survival Guide fra for alle de tip og trends, som programmører har brug for at vide. | Hold dig opdateret med de seneste udviklernyheder med 's Developer World-nyhedsbrev. ]

I løbet af det sidste år har Facebook konverteret næsten hele sin PHP-kodebase til Hack, som udgør kernen på sit websted.

Ved oprettelsen af ​​Hack tog Facebook en tilgang, der lignede Microsofts med TypeScript, som grundlæggende er et supersæt af JavaScript, der ligesom Hack tilføjer statisk typing.

Begge projekter har til formål at styrke et populært dynamisk programmeringssprog, så det lettere kan bruges af store softwareteams til at designe missionskritiske applikationer.

Enkeltpersoner ville også have gavn af at bruge Hack, sagde O'Sullivan, både med hensyn til at øge deres websides ydeevne og forbedre den overordnede kvalitet af deres kode.

Hack kræver, at Facebooks HHVM (Hip Hop Virtual Machine) kører. HHVM er en virtuel maskine, der kompilerer PHP, normalt et fortolket sprog, til bytekode, så den kan køre hurtigere.

Hack er dybest set en udvidelse af PHP-sproget med indbygget statisk typing, en funktion der findes i mere traditionelle programmeringssprog som C / C ++ og Java, sagde O'Sullivan.

Mange af de nyere web-orienterede programmeringssprog, såsom PHP og JavaScript, har ikke statisk typing, hvorfor de kaldes dynamisk typede sprog. Med dynamisk typning "er der ingen eksplicit information i kildekoden, der beskriver, hvilken slags information programmet har at gøre med," sagde O'Sullivan.

I modsætning hertil kræver statisk skrivning, at programmøren definerer datatypen for hver variabel, før programmet kompileres eller køres. Selvom det kræver ekstra arbejde at implementere, forhindrer statisk skrivning, at kørselstidsfejl opstår, når den forkerte datatype indtastes i programmet, enten ved hjælp af menneskelig input eller en anden computerfunktion.

"Der er visse slags fejl og nedbrud, der kan opstå," hvis programmøren ikke er forsigtig med, hvilke data der er tildelt variabler, sagde O'Sullivan. "Disse latente fejl kan skjule sig i lang tid på dynamisk typede sprog."

Den virtuelle HHVM-maskine har en indbygget typekontrol for at sikre, at alle de indtastede oplysninger er korrekte. Hack tillader endda programmøren at definere unikke datatyper.

"Syntaktisk er Hack meget tæt på PHP. Vi tillod det at være muligt at køre PHP og Hack-kode side om side, så du gradvist kan konvertere din sprogkodebase fra PHP til Hack," sagde O'Sullivan.

Visse forældede PHP-funktioner understøttes dog ikke i Hack, og det er heller ikke en håndfuld funktioner, der ikke fungerer godt med statisk skrivning.

Hack leveres også med et antal tilføjelser, der ikke findes i PHP. Den ene er Collections, en måde at skabe arrays med mere nuance end array-funktionen, der tilbydes af PHP selv, sagde O'Sullivan.

Hack letter også brugen af ​​lukninger ved brug af Lambda-udtryk. Lukninger, der blev føjet til Java 8, "gør det let at kortfattet skrive temmelig komplicerede datatransformationer," sagde O'Sullivan.

Hack's Lambda-udtryk giver en måde at skabe lukninger "med færre antal tastetryk, hvilket er en stor gevinst for produktivitet," sagde han.

Facebook har leveret et antal plug-ins til teksteditorer på Hack-webstedet for at hjælpe kodere med at skrive på sproget, selvom virksomheden håber frivillige vil opbygge et par mere detaljerede.

O'Sullivan afslørede ingen specifikke planer om at tilbyde Hack-udvidelser tilbage til brugere af PHP, skønt han bemærkede, at virksomheden planlægger at "arbejde tæt sammen med open source-samfundet" for at videreudvikle sproget.

Joab Jackson dækker virksomhedssoftware og generelle teknologiske nyheder til Nyhedstjenesten. Følg Joab på Twitter på @Joab_Jackson. Joabs e-mail-adresse er [email protected]

$config[zx-auto] not found$config[zx-overlay] not found