Node.js Inventor Ryan Dahl wydaje Deno: TypeScript / V8 Runtime Environment

Silnik wykonawczy JavaScript V8 Google + TypeScript: Ulepszenia na serwerze Node.js

Standard serwera internetowego Node.js został wprowadzony w 2009 roku przez Ryana Dahla, a następnie stał się ważnym aspektem współczesnych platform programistycznych JavaScript. Serwery WWW Apache działają w oparciu o procesy wątkowe, podczas gdy serwery Node.js działają z pętlami zdarzeń. Przy wielu jednoczesnych użytkownikach staje się współbieżność wątków "nieszczelny" na Apache, podczas gdy serwery Node.js używają wywołań zwrotnych, aby wyeliminować czasy oczekiwania na niezwykle szybkie wskaźniki współbieżności. JavaScript działa zgodnie z projektem na podstawie pętli zdarzeń, które Dahl przepisał do środowiska wykonawczego po stronie serwera, aby zbudować serwer WWW z nieblokującą strukturą przetwarzania żądań We / Wy. Dzięki temu programiści aplikacji Node.js mogą tworzyć skrypty wysoce współbieżnych programów na tym samym sprzęcie, które przesyłają strumieniowo dane z większą prędkością, jednocześnie obsługując również TCP, DNS, & HTTP bez Apache. Wykorzystanie fragmentów żądań / odpowiedzi, funkcji utrzymywania aktywności i znanych interfejsów API, które działają w sposób niezależny od platformy, doprowadziło do sukcesu Node.js jako standardu serwera WWW, chociaż zawiera on również zależność od Pythona. Prawie 10 lat później Dahl zdekonstruował błędy nadal występujące w Node.js, aby ponownie uruchomić nową platformę napisaną w Rust / Go, która współpracuje z TypeScript & silnik wykonawczy Google V8 w bezpiecznym środowisku piaskownicy.

Deno 2018: eksperymentalne, rozwojowe, & Ograniczone do obsługi TypeScript

Pierwsze wydanie Deno w 2018 roku przyciągnęło wiele pozytywnej uwagi w społeczności programistów JavaScript, ponieważ zostało wymyślone przez pierwotnego twórcę Node.js. Dahl przedstawił seminarium na konwencji JSConf.EU JavaScript z 2018 r., Pod tytułem "10 rzeczy, których żałuję na temat Node.js". Dahl ubolewał nad tym, że wielu problemów strukturalnych, które znalazł w frameworku, nie można już zmienić, ponieważ tak wiele różnych projektów JavaScript jest opartych na fundamencie Node.js, jak jest obecnie zaprojektowany. Na podstawie tej podwójnej realizacji Dahl napisał wersję Deno w wersji beta.

“Korzystanie z Węzła jest dla mnie trochę jak paznokcie na tablicy. Widzę błędy, które wprowadziłem, które nie są’Naprawdę robią błędy w tym momencie oni’re, jak to działa, ale są to błędy i wystąpiły błędy projektowe, których po prostu nie można teraz naprawić, ponieważ tam są’tyle oprogramowania, które z niego korzysta.”

Dahl podobno spędził 2017 rok jako członek programu Google Brain Residency Program współpracując z TensorFlow i problemami związanymi z przetwarzaniem wideo. Aby zrozumieć zmianę perspektywy dotyczącą platformy Node.js, zaleca się porównanie dwóch filmów:

Ryan Dahl: Original Node.js Presentation (2009)

  • "…V8: Google
  • libev: biblioteka pętli zdarzeń
  • libeio: biblioteka puli wątków
  • parser http: parser HTTP ragel
  • evcom: biblioteka gniazd strumieniowych na libev
  • udns: nieblokujący resolver DNS…"

Dowiedz się więcej o projekcie oryginalnego serwera WWW Node.js.

10 rzeczy, których żałuję z powodu Node.js – Ryan Dahl – JSConf EU (2018)

  • "Obsługuje TypeScript po wyjęciu z pudełka.
  • Korzysta z najnowszej wersji V8.
  • Brak pakietu.json.
  • Brak npm.
  • Nie jest wyraźnie zgodny z Węzłem.
  • Importuje tylko referencyjne adresy URL kodów źródłowych.
  • System plików i dostęp do sieci mogą być kontrolowane w celu uruchomienia kodu w trybie piaskownicy.
  • Pojedynczy plik wykonywalny."

Dowiedz się więcej o Deno: Bezpieczne środowisko wykonawcze TypeScript oparte na V8.

Problemy w Node.js: Web Security, Modules, Index.js, & proces kompilacji

Przedstawiając Deno na imprezie JSConf.EU, Dahl stwierdził, że to odkrycie "JavaScript po stronie serwera wymaga powodzenia pętli zdarzeń" była największą częścią Node.js szeroko stosowaną w praktyce IT. Dahl opuścił projekt Node.js w 2012 roku po protokołach HTTP & Wsparcie SSL zostało ustanowione. W tym czasie Node.js miał mały rdzeń, obsługę Windows Server i stabilny system interfejsów API, a także rosnący ekosystem modułów zewnętrznych za pośrednictwem NPM. W ciągu ostatnich 6 miesięcy Dahl wznowił kodowanie na platformie z różnymi celami.

Jeśli chodzi o żal z powodu projektu serwera sieciowego Node.js, Dahl stwierdził:

  • żal: bez użycia obietnic dotyczących asynchronizacji / oczekiwania
  • żal: bezpieczeństwo sieciowe, uprawnienia do zapisu, & dostęp do pliku
  • żal: system kompilacji (GYP / GN / Python)
    —> lepiej byłby interfejs funkcji zagranicznej (FFI)
  • żal: JSON & Zależności centralnego repozytorium NPM
  • żal: node_modules za ciężki & często wymagane bez rozszerzenia
  • żal: Index.js komplikuje system ładowania modułu & nadmiernie "uroczy"

Ogólnie rzecz biorąc, Dahl przyznał, że nadal lubi Node.js, strukturę I / O, & programowanie na platformie, ale zbudowane środowisko uruchomieniowe Deno, aby zaspokoić te żale dzięki nowemu produktowi.

Zainstaluj Deno za pomocą Bash:

alias file_server ="deno \

https://deno.land/x/net/file_server.ts –allow-net"

Uaktualnij do najnowszej opublikowanej wersji Deno:

serwer_plików – przeładuj

Dowiedz się więcej o środowisku uruchomieniowym serwera WWW Deno dla TypeScript.

Deno: Najważniejsze informacje o produkcie dla Node.js, JavaScript, & Obsługa TypeScript

Deno wykorzystuje JavaScript jako bezpieczną piaskownicę i pozwala użytkownikom wybrać bezpieczną sieć w czasie wykonywania. Nie pozwala na powiązanie dowolnych funkcji natywnych z V8. Zamiast tego wszystkie wywołania systemowe są wykonywane przez przekazywanie wiadomości. Deno nie obsługuje obecnie kompatybilności z innymi modułami Node.js, skupiając się wyłącznie na obsłudze TypeScript. Wszystkie importowane pliki muszą wymagać rozszerzenia pliku & użyj migawek V8, aby skrócić czas uruchamiania podczas kompilacji. Dahl programuje obecnie Deno w C ++, Go, & Rdza. Wiele postępów & zmiany wprowadzone przez Deno mają dobrą szansę na ponowne włączenie do projektu Node.js. Deno to ważny projekt, na który należy zwrócić uwagę w przyszłości JavaScript, TypeScript, & Rozwój Node.js.

Węzeł EventMachine :: run (): "Jako środowisko wykonawcze JavaScript sterowane zdarzeniami asynchronicznymi, Node jest zaprojektowany do budowania skalowalnych aplikacji sieciowych … W przeciwieństwie do dzisiejszego bardziej powszechnego modelu współbieżności, w którym stosowane są wątki systemu operacyjnego. Sieci oparte na wątkach są stosunkowo nieefektywne i bardzo trudne w użyciu. Ponadto użytkownicy Node są wolni od martwienia się o całkowite zablokowanie procesu, ponieważ nie ma blokad. Prawie żadna funkcja w węźle nie wykonuje bezpośrednio operacji we / wy, więc proces nigdy się nie blokuje. Ponieważ nic nie blokuje, skalowalne systemy są bardzo rozsądne do opracowania w węźle … Węzeł jest podobny do projektu i pod wpływem takich systemów, jak Ruby’s Event Machine lub Python’s Twisted. Węzeł posuwa model zdarzeń nieco dalej. Prezentuje pętlę zdarzeń jako konstrukcję środowiska wykonawczego zamiast biblioteki." Dowiedz się więcej o Node.js.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me