Programmering

Facebooks programmeringsspråk Hack bygger kodesikkerhet til PHP

Facebook har gitt ut et programmeringsspråk kalt Hack, som gifter seg med den enkle PHP-en med de strenge sikkerhetskontrollene til eldre språk som C ++.

PHP-programmerere burde lett forstå Hack, som replikerer mange av de samme funksjonene og funksjonene til PHP, og legger til noen få av sine egne for større produktivitet, sa Bryan O'Sullivan, en Facebook-ingeniør på prosjektet.

[Jobb smartere, ikke vanskeligere - last ned utviklerens overlevelsesguide fra for alle tips og trender som programmerere trenger å vite. | Hold deg oppdatert på de siste utviklernyhetene med 's Developer World-nyhetsbrev. ]

I løpet av det siste året har Facebook konvertert nesten hele PHP-kodebasen til Hack, som utgjør kjernen på nettstedet.

Ved å lage Hack tok Facebook en tilnærming som lignet på Microsofts med TypeScript, som i utgangspunktet er et supersett av JavaScript som, i likhet med Hack, legger til statisk typing.

Begge prosjektene har som mål å styrke et populært dynamisk programmeringsspråk slik at det lettere kan brukes av store programvareteam til å designe oppdragskritiske applikasjoner.

Enkeltpersoner vil også ha nytte av å bruke Hack, sa O'Sullivan, både når det gjelder å øke ytelsen til deres nettsteder og forbedre den generelle kvaliteten på koden.

Hack krever at Facebooks HHVM (Hip Hop Virtual Machine) kjører. HHVM er en virtuell maskin som kompilerer PHP, vanligvis et tolket språk, til byte-kode, slik at den kan kjøre raskere.

Hack er i utgangspunktet en utvidelse av PHP-språket med innebygd statisk skriving, en funksjon som finnes i mer tradisjonelle programmeringsspråk som C / C ++ og Java, sa O'Sullivan.

Mange av de nyere web-orienterte programmeringsspråkene, for eksempel PHP og JavaScript, har ikke statisk skriving, derfor blir de referert til som dynamisk typede språk. Med dynamisk skriving "er det ingen eksplisitt informasjon i kildekoden som beskriver hva slags informasjon programmet har å gjøre med," sa O'Sullivan.

I kontrast krever statisk skriving at programmereren definerer datatypen for hver variabel før det programmet kompileres eller kjøres. Selv om det krever ekstra arbeid å implementere, forhindrer statisk skriving at det oppstår kjøretidsfeil når feil datatype blir lagt inn i programmet, enten ved menneskelig inngang eller en annen datamaskinfunksjon.

"Det er visse typer feil og krasj som kan oppstå," hvis programmereren ikke er forsiktig med hvilke data som er tildelt variabler, sa O'Sullivan. "Disse latente feilene kan skjule seg lenge i et dynamisk skrevet språk."

Den virtuelle HHVM-maskinen har en innebygd typekontroll for å sikre at all den oppgitte informasjonen er riktig. Hack lar til og med programmereren definere unike datatyper.

"Syntaktisk er Hack veldig nært PHP. Vi tillot det å være mulig å kjøre PHP og Hack-kode side om side, slik at du gradvis kan konvertere språkkodebasen din fra PHP til Hack," sa O'Sullivan.

Enkelte utdaterte PHP-funksjoner støttes imidlertid ikke i Hack, og det er heller ikke en håndfull funksjoner som ikke fungerer bra med statisk skriving.

Hack kommer også med en rekke tillegg som ikke finnes i PHP. Den ene er samlinger, en måte å lage matriser med mer nyanse enn array-funksjonen som PHP selv tilbyr, sa O'Sullivan.

Hack letter også bruken av nedleggelser gjennom bruk av Lambda-uttrykk. Stengninger, som ble lagt til Java 8, "gjør det enkelt å kortfattet skrive ganske kompliserte datatransformasjoner," sa O'Sullivan.

Hack's Lambda-uttrykk gir en måte å skape nedleggelser "med færre tastetrykk, noe som er en stor gevinst for produktivitet," sa han.

Facebook har levert en rekke tekstredigeringsprogrammer på Hack-nettstedet for å hjelpe kodere med å skrive på språket, selv om selskapet håper frivillige vil bygge noen få mer forseggjorte.

O'Sullivan avslørte ikke noen spesifikke planer om å tilby Hack-utvidelser tilbake til brukerne av PHP, selv om han la merke til at selskapet planlegger å "samarbeide tett med open source-samfunnet" for å videreutvikle språket.

Joab Jackson dekker bedriftsprogramvare og generelle teknologiske nyheter for Nyhetstjenesten. Følg Joab på Twitter på @Joab_Jackson. Joabs e-postadresse er [email protected]

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