Udostępniona została pierwsza stabilna wersja środowiska uruchomieniowego Deno. Dzięki niemu możliwe jest uruchamianie JavaScriptu i TypeScriptu poza środowiskiem przeglądarki. Brzmi znajomo? Oczywiście – taką funkcję pełni dziś Node.js. Na tym jednak podobieństwa się nie kończą. Współtwórcą Deno (anagram Node) jest Ryan Dahl, autor Node.js.
Nowy runtime bez błędów Node.js
Dlaczego więc twórca jednego z najpopularniejszych narzędzi programistów JavaScript zdecydował się na uruchomienie nowego projektu? Według niego podczas prac nad Node.js popełnił szereg błędów, które na aktualnym stadium rozwoju środowiska są już niemożliwe do rozwiązania. Co ważne – Dano w żadnym wypadku nie jest forkiem czy inną wariacją Node.js, lecz całkowicie nowym środowiskiem uruchomieniowym pisanym od zera.
W rezultacie nowy runtime Dahla obsługuje obietnice, które z Node.js zostały usunięte w 2010 roku. Programista pozbył się kilku problematycznych komponentów – mowa m.in. o obsłudze modułów NPM czy systemie Generate Your Projects. Prace skupiały się także na podwyższeniu bezpieczeństwa, dzięki czemu Deno korzysta już z piaskownic dostarczanych przez znany z Chromium silnik V8, ograniczających dostęp do plików i sieci.
TypeScript i Rust przodem
Wyróżnikiem Deno jest także to, że najważniejsze jego komponenty (przede wszystkim Deno_core) zostały napisane w języku Rust. Również API silnika V8, oryginalnie napisane w C++ na gruncie nowego środowisk obsługiwane jest przez rustowy interfejs rusty_v8. Ponadto kolejkowanie zadań obsługiwane jest przez wykorzystywane w Ruście asynchroniczne środowisko uruchomieniowe Tokio.
Co ciekawe, twórcy Deno zdecydowali, że środowisko w pierwszej kolejności służyć ma uruchamianiu oprogramowania napisanego nie w JavaScripcie, lecz w TypeScripcie. Nie zachodzi potrzeba kompilowania kodu do JS, pliki wykorzystujące odmianę tego języka opracowaną przez Microsoft są w Deno uruchamiane bezpośrednio. W przyszłości także kompilator TypeScripta ma zostać przepisany na język Rust.
Co z paczkami Node.js?
Bodaj największym problemem Deno jest aktualnie brak kompatybilności z paczkami Node. Twórcy zapewniają jednak, że są w trakcie prac nad zapewnieniem stosownej warstwy kompatybilności, która pozwoli na automatyczną obsługę wielu aplikacji bez konieczności jakichkolwiek działań ze strony programisty. Więcej informacji o nowym środowisku uruchomieniowym znaleźć można na jego oficjalnej stronie.