generated at
Deno

発音は「でぃの」
作者はRyan Dahl
Ry氏によるNode.jsのつらみがあるのでDenoを作った
ロゴの由来 ref
雨の中、エンジニアリングの闇に立ち向かう恐竜

Slackもある
deno coreのトリセツ
coreの構成の話
APIの実装方法
記事とか
















動かす
helloworld
$ deno https://deno.land/std/examples/welcome.ts

Code Readingをする

構成
ユーザーが触れる部分
APIのインターフェース
ファイルシステムやネットワークへのアクセスはできない
TSコンパイラを含む
TS→JSにコンパイルしてV8で処理をする
V8はTSを実行できないのでmrsekut
FlatBuffersを用いてデータをTS側から受け取る
もう使われていないらしい ref
ファイルシステムやネットワークへのアクセスを行う
Privilegedなレイヤー
どゆいみ?
TokioのEvent Loop
Ryan Dahl氏の発表スライドの中に構成図が載っている ref
refが詳しい


oak





memo
TSファイルをそのまま実行できる
TSもJSもfirst class language
$ deno run hoge.ts
内部で同じことをしているわけだが、プログラマは自分でコンパイルしなくていい
ref p.11
V8のSnapshotsを使う
なんこれ
TSのモジュールを直接importできるというのはつまりどういうことだ?
今のnpmみたいに、(Deno用の)jsライブラリと別の型定義ファイルも使えるのか?
>Deno ships with integrated type definitions for itself
ってどういうこと?
Secure Modelである
OSのカーネルと同じように特権モードとユーザ空間を分けている
普通に $ deno で実行できるが、デフォルトでは以下のことなどができない ref
ファイル書き込み
環境変数参照
サブプロセスの起動
ネットワークアクセス
オプションを指定するこで、実行できる
ref p.8
module system
importは相対パスか絶対パスかURL
拡張子は必須
node.jsのモジュールは使えない(?)
ES Modulesを使ってモジュールローディングする ref
package.jsonは不要になる
import URL でやるから?mrsekut
versionの指定もURLに含まれる?
goもコレだっけ?mrsekut
ここに入れる
https://deno.land/x/hogehoge でimportできる
オフライン時もキャッシュで耐える
ビルドシステムはGYPではなくGNを使う
単一実行ファイル
軽量
他のライブラリから独立している
このファイル一つさえあれば実行できる
ランタイムが不要とか言う意味ではないよな?
Promiseがある
deno fmt
あるんか!
JS,TS,Rust,Wasmの移行をシームレスに行うVisionがある
つまりどういうことだってばよmrsekut
top level await実装済み
なにかわからん
deno bundleとは


denoコードをNode.jsコードに変換する




参考
がいよう
TS実装をやめて、JS実装にするらしい
2021