Deno, JavaScript와 TypeScript를 위한 Secure Runtime
(docs.google.com)- Ryan Dahl 이 Deno의 현재에 대해서 OpenJS World 2020 에서 발표한 슬라이드 & 동영상 [12장, 27분]
- C++, Rust, Go가 컴파일 언어들을 향상시키고 있지만,
ㅤ근래의 많은 소프트웨어 작업들은 Python, Ruby, JavaScript 같은 동적 언어들에 의해서 진행되어 왔음.
- Node.js 가 JavaScript 를 서버에서 가능하게 했음
ㅤ→ 2010년대의 PHP
ㅤ→ 여러 클라우드 벤더들이 지원
ㅤ→ 모든 프론트엔드 프레임워크들(React, Vue, Angular)이 Node를 이용해서 번들링
- JS Ecosystem의 큰 변화
ㅤ→ ArrayBuffer, async / await , ES Modules, WASM, TypeScript
- Deno
ㅤ→ Node 처럼, JavaScript를 브라우저 밖에서 실행 가능하게 함
ㅤ→ Node 처럼, 크롬의 V8 JavaScript VM을 이용
ㅤ→ Node 처럼, 오픈소스이고 MIT 라이센스
ㅤ→ C++ 대신 Rust로 작성됨
ㅤ→ Testing, Linting, Formatting, 문서 생성등 도구를 내장
ㅤ→ 다른 소프트웨어에 임베드 가능 : deno_core , rusty_v8
ㅤ→ 웹 표준 API를 이용해서 가장 많은 수의 개발자들이 이용할수 있도록 타겟하여 설계됨
- Deno 는 커맨드 라인 스크립트를 위한 브라우저
ㅤ→ 인터넷에서 코드를 직접 임포트 하고 실행할수 있게 하여 프로그래밍을 쉽게 만들어 줌
ㅤㅤㅤimport { serve } from "https://deno.land/std@0.56.0/http/server.ts";
ㅤ→ Deno는 사용자 동의하에서만 OS에 접근할수 있는 안전한 샌드박스
- Deno 임베드 하기 : deno_core
ㅤ→ 스탠드얼론 실행파일로 릴리즈 되었지만, Rust Crate 로 임베드도 가능
ㅤ→ 가능한 유스케이스
ㅤㅤ- DB가 Map Reduce 함수를 위해 JavaScript 를 사용
ㅤㅤ- Lambda@Edge 나 Cloudflare Workers 등의 서버리스 제품군
ㅤㅤ- Electron 스타일의 GUI 어플리케이션 등
- Roadmap
ㅤ→ 버그 픽스, 버그 픽스, 버그 픽스
ㅤ→ Deno API 안정화
ㅤ→ 미래 작업들
ㅤㅤ→ deno_core 를 좀더 유용하게 만들기
ㅤㅤ→ GPU API 를 지원해서 머신러닝 지원
ㅤㅤ→ deno compile 을 통해서 JS를 binary executable 로 만들기
Deno 1.0 릴리즈 - https://news.hada.io/topic?id=2075
Deno의 오픈소스 개발과정 비주얼라이제이션 - https://news.hada.io/topic?id=361
From Node to Deno - https://news.hada.io/topic?id=2103