Deno
https://gyazo.com/4975b8c07c018c49b6ed2dcf60a728c0
発音は「でぃの」
作者はRyan Dahl
Ry氏によるNode.jsのつらみがあるのでDenoを作った
ロゴの由来 ref
雨の中、エンジニアリングの闇に立ち向かう恐竜
website
github
/deno-ja
Slackもある
A Guide to Deno Core - A Guide to Deno Core
deno coreのトリセツ
coreの構成の話
APIの実装方法
awesome-deno
記事とか
VSCode Extension
Denoの環境構築
#WIP
Deno v2
動かす
helloworld
$ deno https://deno.land/std/examples/welcome.ts
https://mizchi.dev/hello-deno-1
https://booth.pm/ja/items/1317172 を買う
https://qiita.com/koinori/items/456673d38034af8f09d8
https://qiita.com/erukiti/items/b3039a94efacd1fb51a6
https://blog.leko.jp/post/code-reading-of-deno-boot-process/
/uki00a/Deno
Code Readingをする
https://blog.bokuweb.me/entry/2019/01/11/102706
https://gist.github.com/mizchi/31e5628751330b624a0e8ada9e739b1e
『Denobook 02』
構成
TypeScript
ユーザーが触れる部分
APIのインターフェース
ファイルシステムやネットワークへのアクセスはできない
V8
TSコンパイラを含む
TS→JSにコンパイルしてV8で処理をする
V8はTSを実行できないのでmrsekut.icon
Rust
FlatBuffersを用いてデータをTS側から受け取る
もう使われていないらしい ref
ファイルシステムやネットワークへのアクセスを行う
Privilegedなレイヤー
どゆいみ?
TokioのEvent Loop
Ryan Dahl氏の発表スライドの中に構成図が載っている ref
refが詳しい
oak
https://github.com/oakserver/oak
memo
TSファイルをそのまま実行できる
TSもJSもfirst class language
$ deno run hoge.ts
ref
内部で同じことをしているわけだが、プログラマは自分でコンパイルしなくていい
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
https://twitter.com/ka2jun8/status/1200687541264908288
https://twitter.com/yosuke_furukawa/status/1200688193579806720
module system
importは相対パスか絶対パスかURL
拡張子は必須
node.jsのモジュールは使えない(?)
ES Modulesを使ってモジュールローディングする ref
package.jsonは不要になる
import URLでやるから?mrsekut.icon
versionの指定もURLに含まれる?
goもコレだっけ?mrsekut.icon
ここに入れる
github
https://deno.land/x/hogehogeでimportできる
オフライン時もキャッシュで耐える
https://twitter.com/webseals/status/1200687587473514497
https://twitter.com/mizchi/status/1200688163951300608
ビルドシステムはGYPではなくGNを使う
単一実行ファイル
軽量
他のライブラリから独立している
このファイル一つさえあれば実行できる
ランタイムが不要とか言う意味ではないよな?
Promiseがある
deno fmt
あるんか!
JS,TS,Rust,Wasmの移行をシームレスに行うVisionがある
つまりどういうことだってばよmrsekut.icon
https://twitter.com/webseals/status/1200686024952705024
top level await実装済み
なにかわからん
deno bundleとは
dnt
https://qiita.com/kt3k/items/8947fddc9f580ba32307
denoコードをNode.jsコードに変換する
参考
Node.js における設計ミス By Ryan Dahl - from scratch
Design Mistakes in Node & Deno #kng5 / deno - Speaker Deck
/keroxp/denoについて知っていること2019年1月編
がいよう
https://qiita.com/yamuuuuuun/items/e659e2c8079be68d989a
https://kt3k.github.io/deno_talk_ginza/#13
https://qiita.com/euxn23/items/f3b45e3c093e448acf9b
https://hashrock.hatenablog.com/entry/2018/12/04/004504
https://docs.google.com/presentation/d/1HtVc8fepsX6CoKqldGj7uXf5Fp7N4PcThqfiXGRxVAE/edit#slide=id.g7949837b44_0_87
https://qiita.com/kt3k/items/e1647683ad08ff6b6e95
https://blog.leko.jp/post/code-reading-of-deno-boot-process/
/keroxp/Denoの現状と展望
/keroxp/Denoと過ごした1年
https://blog.leko.jp/post/package-management-in-deno-with-import-map/
https://qiita.com/kt3k/items/0267c355997fc1a0539f
https://qiita.com/kt3k/items/87e931ecade61155c4ca
/keroxp/Servestで始めるDeno HTTPサーバー開発
https://qiita.com/kt3k/items/b56b7f357726edb4886a
https://blog.logrocket.com/deno-1-0-what-you-need-to-know/
https://qiita.com/so99ynoodles/items/c3ba2a528052827e3b3c
/keroxp/DenoとNode.jsの大きな違い
https://qiita.com/azukiazusa/items/8238c0c68ed525377883
https://startfunction.com/deno-will-stop-using-typescript/
TS実装をやめて、JS実装にするらしい
https://docs.google.com/document/d/1_WvwHl7BXUPmoiSeD8G83JmS8ypsTPqed4Btkqkn_-4/preview?pru=AAABcrrKL5k*nQ4LS569NsRRAce2BVanXw#
https://zenn.dev/uki00a/articles/frontend-development-in-deno-2021-spring
2021
https://zenn.dev/uki00a/books/effective-deno