Przejdź do treści

Co to jest runtime?

Runtime — czas wykonania programu. I tutaj mógłbym zakończyć wpis, ale postanowiłem, że go jeszcze trochę rozwinę. Co to właściwie znaczy “runtime”?

Błąd został zauważony w runtime, czy kompilacji?

Zdefiniujmy dwa ważne procesy:

Kompilacja, czyli stworzenie pliku programu, na podstawie kodu źródłowego, który będzie mógł być uruchomiony w środowisku uruchomieniowym.

Przykład:
Kod w TypeScript, aby został uruchomiony w przeglądarce, musi zostać skompilowany za pomocą kompilatora tsc do składni języka JavaScript.

oraz:

Runtime, czyli czas liczony od momentu, w którym program zostaje uruchomiony, działając w swoim środowisku uruchomieniowym, aż do momentu jego wyłączenia.

Przykład:
Aplikacja uruchomiona w przeglądarce posiada swój runtime, dopóki użytkownik nie zamknie taba.

“Runtime do uruchomienia języka X”

Często w rozmowie między developerami, możemy usłyszeć, że słowem “runtime” zostało opisane “narzędzie”, a może nawet środowisko, które uruchamia programy.

Przykłady z najpopularniejszych narzędzi typu “runtime”:

Błędy

z kompilacji pliku napisanego w TypeScript do składni JavaScript:

TS2322: Type '(p: any) => void' is not assignable to type 'void'.
TS2339: Property 'url' does not exist on type 'Page'.
TS2307: Cannot find module './service'.
TS2529: Duplicate identifier 'Promise'.

z runtime-u aplikacji napisanej w JavaScript uruchomionej w przeglądarce:

Uncaught TypeError: undefined is not a function
Uncaught ReferenceError: Invalid left-hand side in assignment
Uncaught TypeError: Converting circular structure to JSON
Uncaught TypeError: Cannot read property ‘foo’ of null
Uncaught RangeError: Maximum call stack size exceeded