یه برنامه نویس معمولی لینوکس کار
Deno.js یک راه جدید در جاوا اسکریپت

مقالات زیادی در مورد جاوا اسکریپت میخواستم بنویسم . از OCaml تا ReasonML و ReasonReact که خوب هر کدوم به دلیل مشغله زیادم و اینکه باید توضیحات و مثال های مفصلی بدم ، فعلا ننوشتم و به زودی استارت چند رویداد جدید رو میزنم و یک سری کارها در این زمینه با کمک شما انجام میدم .
اما چیزی که امروز میخوام بگم ، یک تحول بزرگ در دنیای js .
همونطور که میدونید ، بزرگترین تحول در جاوا اسکریپت با پیدایش node.js بر روی موتور V8 گوگل بود . خیلی اتفاقات خوبی پشت سرش رخ داد و الان شاهد انقالاب بزرگش هستیم .
رایان دال ، که خالق node.js بود امروز به یک دنیای بازتری از جاوا اسکریپت رسید به اسم Deno.js . همون حروف رو توی اسم به کار برد . اما تفاوت هایی که داره خیلی زیادن .
دنو در واقع اینطور تعریف میشه :
A secure runtime for JavaScript and TypeScript built with V8, Rust, and Tokio
چیزی که میشه گفت اینه که پس زمینه ، از سی پلاس پلاس ، به Rustتغییر کرد . البته شروع ماجرا این نبود . یک بحث بزرگی داخل گیت دنو شروع شد و در اوایل کارش ( اواخر سال 2018 ) تصیم گرفتن که با goLang کار رو شروع کنن و شروع هم کردن . بعد از کلی بررسی ها داخل ایشو ، تصمیم گرفتن که کار رو به Rust ببرن و تغییر بزرگی داخل کد ها به وجود بیارن .
خوب برای کسانی مثل من که typeScript رو قبول ندارن کمی جای فکر داره که باید چی کار کنیم .
خوبی دنو اینه که هنوز مالکیت انحصاری به یک شرکت ( مثل joyent ) رو نداره و مالک اون رایان دال هست . این خیلی خوبه که منو متقاعد کنه پشت این سیستم ، یک شرکت مثل مایکروسافت نیست و من راحتتر میتونم از این نسخه استفاده کنم .
اما چرا از دنو استفاده نکنیم
به گفته سایت دنو لند ، دنو هنوز به شدت تحت develop هست و اصلا برای کارهای تجاری مناسب نیست
دلیل بعدی اینکه هیچ پشتیبانی برای دنو وجود نداره و هیچ شرکتی هنوز تولیدی خاصی برای دنو منتشر نکرده
مزایا نسبت به نود
دنو اومد که اشتباهات نود رو پوشش بده و یک سیستم از اول طراحی کنه تا اتفاقات بدی که داخل نود بود ، تکرار نشه . رایان دال از اینکه نود رو نوشته بود چندین بار متاسف شد و در رسانه ها گفت اشتباه کرده .
اما همونظور که میدونین نود پشتوانه های قوی مثل اکسپرس ، سایلون ، آدونیس ، مونگوس ، پی ام ۲ و... داره که منطق رو به این سمت راهی میکنه .
دنو سعی کرد تغییرات زیر رو ایجاد کنه و برتری خودش رو ثابت کنه :
- هر برنامه ای داخل یک sandbox امن کار میکنه و بدون نیاز به دسترسی نوشتاری شبکه ، میتونه فعالیت داشته باشه
- کاربر میتونه سرویس های نا امن رو مثل لایتنر ، اجرا کنه و مشکل امنیتی نخواهد داشت ( این یک ادعای ثابت نشده ) . به دلیل سندباکس امن
- قابلیت دیباگ و audit راحتر و پیشرفته تر
- ایمپورت ، داخل دنو ، فقط به سروس اصلی مسیر دسترسی داره . این به این معنیه که برای ایمپورت کردن ، تمام فایل و زیر مجموعه ها ایمپورت نمیشن و فقط مسیر قرار داره .
- به علت استفاده از راست ، هم از نظر سرعت و هم از نظر دسترسی به توابع high-level سادهتر و بهتر شد .
- نیازی به package.json دیده نمیشه
- نیازی به npm دیده نمیشه
- نیازی به node هم نداره
نصب و راه اندازی :
دنو مثل RUST و GoLang یک فایل اجرایی داره. که دانلود و نصب میشه . من نحوه نصب در لینوکس رو میگم :
curl -fsSL https://deno.land/x/install/install.sh | shحالا برای مثال این دستور رو اجرا کنین :
deno https://deno.land/welcome.tsمحتوایت فایل بالا به شکل زیر است :
console.log("Welcome to Deno ?");خوب حالا یک مثال میسازیم . فایل به اسم hello.ts بسازید و داخل اون فایل کد زیر رو بزارید :
import { serve } from "https://deno.land/std@v0.3.2/http/server.ts";
async function main() {
const body = new TextEncoder().encode("Hello World\n");
for await (const req of serve(":8000")) {
req.respond({ body });
}
}
main();حالا دستور :
deno hello.ts میبینیم که روی پورت 8000 میتونیم Hello World رو ببینیم .
میتونین به سایت و گیت دنو برید و اطلاعات باحالتری کسب کنین
مطلبی دیگر از این انتشارات
آینده وب اپلیکیشن ها با PWA
مطلبی دیگر از این انتشارات
تغییرناپذیر (Immutable) کردن آبجکتها در جاوااسکریپت
مطلبی دیگر از این انتشارات
ترندهای توسعه رابطکاربری در سال 2018