PHP to niezmiennie najpopularniejszy język skryptowy wykonywany po stronie serwera. Na podstawie wielu różnych szacunków można śmiało wysunąć tezę, że udziały PHP w rynku wynoszą jakieś 80%. Coraz więcej mówi się o funkcjach, które za jakiś czas pojawią się w PHP 8. Właśnie pojawiła się ważna informacja odnośnie tej wersji – w fazę RFC weszła implementacja JIT-a. To zaś może stanowić dla PHP całkowicie nowe rozdanie.
JIT – jak to działa?
Skrót JIT odnosi się do modelu Just-In-Time. Stosuje się go między innymi w spedycji i planowaniu produkcji, ale nas takie podejście interesuje oczywiście w kategoriach oprogramowania. W tym znaczeniu chodzi o wykonywanie Just-In-Time, co w praktyce oznacza swojego rodzaju kompilację w locie. Nie mamy wówczas do czynienia z kompilowaniem całego kodu za jednym razem przed jego wykonaniem, lecz z kompilacją blok po bloku (ale nie muszą być to wszystkie bloki) w czasie, gdy poprzednie skompilowane bloki są już wykonywane.
Kompilacja JIT w praktyce oznacza wykorzystanie maszyny wirtualnej do kodu bajtowego i dopiero ona dokonuje dalszej kompilacji na kod maszynowy. Najważniejsza z licznych korzyści w stosunku do standardowej kompilacji to brak konieczności kompilowania i wykonywania nieużywanych bloków kodu. Kompilacja jakiegoś bloku kodu zgodnie z założeniami JIT może być spowodowana na przykład przy wywołaniu konkretnej funkcji. Jeśli jednak ta nie zostanie wywołana przez niespełnienie warunków – oszczędzamy czas i cenne zasoby.
JIT w PHP 8
JIT w PHP miał się pojawić już w wersji siódmej w 2011 roku, jednak finalnie z tego zrezygnowano. To jednak wcześniejszym próbom zawdzięczamy przyśpieszenie wykonywania skryptów w „siódemce”. Co się odwlecze, to nie uciecze – implementacja JIT-a w PHP 8 właśnie weszła w fazę RFC i wszystko wskazuje na to, że tym razem się powiedzieć. Trzeba przyznać, że argumentacja na rzecz JIT-a w PHP jest solidna – według Dmitrija Stogowa, język PHP pod względem wydajności znalazł się pod ścianą i niewiele rzeczy da się zrobić lepiej przy aktualnych narzędziach i założeniach.
JIT ma to zmienić i pod względem optymalizacji stanowić dla PHP nowe otwarcie. Ale to nie jedyny powód – nowy model kompilacji ma otworzyć PHP drzwi do nowych zastosowań także poza środowiskiem webowym. Ma się to także przełożyć na przyśpieszenie prac nad nowymi funkcjami. Najważniejsze jednak, że JIT nie odnosi się tylko do przyszłości PHP, ale także do skryptów, które działają w Sieci od lat. Skrypt napisany nawet lata temu będzie wykonywany sprawniej już po implementacji JIT-a i nie są do tego potrzebne żadne prace adaptacyjne.
PHP 8 – kiedy premiera?
Tym bardziej cieszy, że prace nad implementacją wrą i najpewniej nie będziemy musieli czekać na JIT-a w PHP aż do premiery wersji ósmej. Padła bowiem propozycja, by udostępnić wykonywanie w locie już w wersji 7.4 jako funkcję eksperymentalną. Premiera PHP 8.0 zaplanowana została na 23 września 2021 roku.