Per il versionamento dei moduli impiegati, c'è la sfumatura impiegata nello statement d'import
import { serve } from 'https://deno.land/[email protected]/http/server.ts'
@v0.42.0
Questo permette di fissare la versione da impiegare nel proprio progetto, anche se a volte durante gli aggiornamenti di deno, è necessario rivedere queste (come si fa con node d'altronde).
I moduli pubblici, a differenza di node, anziché essere salvati nella cartella locale al progetto './node_modules', vanno direttamente nella cache dell'installazione locale di deno. Si tratta solo di una diversa collocazione che ha comunque dei vantaggi.
Per i moduli (package) privati, si usa il file locale
import { serve } from './privatelibrary/http/server.ts'
Questa pratica ovviamente è necessaria anche per organizzare un progetto
import { user } from './model/user.ts'
import { getUser, updateUser, newUser, deleteUser } from './controller/user.ts'
...
Per i vantaggi rispetto ad altri linguaggi, difficile rispondere perché è anche un fatto di abitudini e preferenze e la comprensione delle logiche dell'architettura offerta che fa sempre da ostacolo perché è necessario studiarla e dedicare diverso tempo.
Ancora oggi mi trovo meglio col PHP perché sequenziale, fa uso di paradigmi tradizionali ben assimilati e non ho abbastanza allenamento nell'uso delle logiche async del JS.
E' anche per quello che guardo con attenzione 'deno', più per l'uso del TypeScript che non del JavaScript che mi sembra più affine ad i linguaggi tradizionali a classi dove invece riscontro difficoltà con 'node', o volendo usare TypeScript, nella configurazione di un progetto 'node'.
Decollerà nel momento che viene usato per progetti importanti, le premesse ci sono, per l'adozione solo il tempo potrà dare una risposta.