Deno nad horyzontem

Dowiedziałem się, że oficjalnie wyszła wersja 1.0 i tak mnie natchnęło, żeby zasięgnąć opini tutaj. Jak myślicie, czy wygryzie Node’a i jeśli tak, to w jakim tempie? Z takich fajnych funkcji:

  • zintegrowany TypeScript
  • importy z dowolnego miejsca (np. prosto z repo na githubie)
  • trzymanie wszystkich zależności w pliku deps.ts, który ma strukturę:
export { assert } from "https://deno.land/std@v0.39.0/testing/asserts.ts";
export { green, bold } from "https://deno.land/std@v0.39.0/fmt/colors.ts";

Osobiście jestem bardzo ciekaw i będę śledził jak się to wszystko rozwinie.

2 Likes

Moim zdaniem deno jest projektem lepszym od node’a, ale obawiam się, że nie zdobędzie popularności. Node jest już znany i lubiany, ale zobaczymy, mam nadzieję, że się mylę.

2 Likes

Ja się jaram! To, że deno nie był stabilny był właściwie głównym stopperem dla mnie. Słyszałem o tym projekcie z 2 lata temu i cieszę się, że nie zapadł w niepamięć <3

Po gwiazdkach GH wnioskuję, że społeczność devowa ma wsparcie dla tego projektu:

Trzymam kciuki za ten projekt i z chęcią spróbuję go w najbliższym (może na wszelki wypadek niekomercyjnym) projekcie :muscle:

1 Like

Nie wiem czy dobrze rozumiem, ale akurat w node-dzie masz npm-a i instalujesz zależności z dowolnego repo nie tylko z npm repository.

O ile dobrze wiem to w deno możesz zaimportować dowolny plik z repo, nawet jeżeli nie ma tam package.json itp :thinking:

Tak nie potrzeba robić npm install to jest ta różnica.

Tutaj fajne porównanie

1 Like

Warto odnotować, że deno nie ma node’owego API. Np do filesystemu odwołujemy się w ten sposób:

https://deno.land/typedoc/index.html#copy

Ciekawe czy w prosty sposób można użyć node-owych paczek, sprawdziłem na szybko i chyba się nie da?

To chyba zależy od tego, czy te paczki korzystają z node’owego API, czy nie. Trochę jak to jest z paczkami React-owymi :thinking: Dotychczas nie postrzegałem node-a jako API, tylko jako czysty runtime. Teraz dotarło do mnie, że to jest także właśnie zestaw bibliotek

Trochę tego jest w deno, ale to tylko skrawek: https://deno.land/x/

Im większa adopcja TSa (a ta raczej wciąż rośnie) tym większa szansa dla tego projektu, o którym zresztą długo było cicho.
Jestem fanem twórcy Deno, bardzo podobał mi się talk, w którym przyznał co zostało skopane przy pracy nad nodem i tam zresztą też pierwszy raz (?) opowiedział o Deno:

Myślę, że Deno potrzebuje teraz jakichś success stories i zainteresowania JSowych influencerów, tak jak to miało miejsce chociażby w przypadku GraphQL.

Jeśli jednak spojrzeć na kontekst powstania Deno -> z tego co pamiętam Ryan odszedł od prac nad Nodem stwierdzając, że nie ma sensu go używać skoro jest Golang:
https://www.quora.com/Is-Node-js-still-worth-learning-in-2019-as-both-Ryan-Dahl-and-TJ-favors-Golang-over-Node-js

to stanie się jasne skąd wzięły się importy, o których piszesz :wink:

Myślę, że głównym selling point Deno ma być to, że można szybciej zacząć faktyczne “kodzenie” bez zabawy w konfiguracje, która w dzisiejszym
nowoczesnym projekcie TS/JSowym wygląda tak (jeśli robimy ją od zera, samemu):

  1. Konfiguracja TypeScripta (statyczne typy)
  2. Konfiguracja formattera (prettier)
  3. Konfiguracja bundlera (webpack, rollup)
  4. Konfiguracja głównego loadera bundlera (babel)
  5. Konfiguracja lintera skryptów (ESlint)
  6. Konfiguracja lintera styli (Stylelint) - dla FE
  7. Wyeliminowanie konfliktów pomiędzy konfiguracjami i testy na popularnych edytorach z ich rozszerzeniami

Koszmar, ale samo Deno to nie jest cure-all.
A dla porównania tak to wygląda w Golangu:

  1. Typy wbudowane, nie trzeba zewn. narzędzia
  2. Formatter wbudowany, nie trzeba zewn. narzędzia
  3. Wbudowany kompilator, bardzo szybkie kompilacje
  4. Nie dotyczy
  5. W VS Code zainstalowałem jedno rozszerzenie - Go. Linter, language server i reszta toolingu zostały zainstalowane i skonfigurowane automatycznie
    gdy po raz pierwszy odpaliłem w nim plik z rozszerzeniem .go.
  6. Nie dotyczy
  7. Nie dotyczy

Porównałem Deno do Golanga, bo główne benefity widzę jednak na BE.

Deno wydaje mi się spoko kompromisem, nie wymaga takiej zmiany mindsetu jak Go, język zostaje właściwie taki sam, tylko tooling wygodniejszy.

Poczekaj, jeszcze kiedyś zrobią deno w wasm na front-endzie :smiley:

1 Like

obraz

4 Likes