آیا Deno جایگزین Node.js خواهد شد؟

Deno چیست و چقدر با Node js متفاوت است؟ شرق وب

Deno مدیریت بسته ها را ندارد که باعث کاهش احتمال دانلود برنامه‌های مخرب می‌شود. این ویژگی مثبت Deno است که امکان وقوع حملات امنیتی را کاهش می‌دهد. به نظر من معرفی Deno باعث از بین رفتن Node.js یا مدیر بسته آن نمی‌شود. دلیل این امر آن است که بیش از یک دهه می‌باشد که از Node.js و NPM در بسیاری از برنامه‌ها استفاده می‌شود. اکوسیستم Node.js آنقدری بزرگ است که جایگزین ندارد و تا زمانی که Deno صد درصد سازگاری Node.js را نداشته باشد، نمی‌توانیم برای استفاده از آن به هر برنامه‌ای مهاجرت کنیم. هیچ‌کدام از زبان‌های PHP یا پایتون و روبی (چه رسد به جاوا و .NET) هیچ‌کدارم با JavaScript قابل مقایسه نبودند.

موارد زیر فقط برای خواندن پوشه node_modules محدود شده است. هنگامی که برنامه را شروع کردید، Deno همه ماژول‌ها را بارگیری کرده و آنها را ذخیره می‌کند. با این حال اگر شما نیاز به بارگیری مجدد ماژول‌ها داشته باشید، باید صریحا با استفاده از فلگ --reload آن را درخواست کنید. Deno یک برنامه زمان اجرا (runtime) ساده، مدرن و ایمن برای JavaScript و TypeScript است که از موتور V8 استفاده می‌کند و توسط Rust ساخته شده است. در دنو مانند ساختاری که در مرورگرها وجود دارد (CDN) فقط ماژول ها را می توانید از طریق urlهای مرتبط با هر ماژول داخل پروژه import کنید و شاید این مسئله کمی کیج کننده باشد اما بسیار معقول است. ما فقط در مورد runtime جدید JavaScript صحبت نمی‌کنیم که با Node.js فعلی کاملاً سازگار می‌باشد، در عوض، رایان از این فرصت استفاده کرد که بعضی از چیزها را در Deno ایجاد کند که به‌نظرش از آفرینش قبلی او گم شده بود.

با اینکه می‌توان از Deno در برنامه‌های جدید استفاده کرد. به دلیل ماهیت ایمن و سایر مزایای آن احتمالا در بین کاربران برای کاربردهای جدید محبوب خواهد بود. برخی از برنامه‌های قدیمی هم حتی ممکن است در برخی موارد استفاده از Deno را شروع کنند. اما به نظر من Deno جای Node.js را نمی‌گیرد و NPM را به طور کامل از بین نمی‌برد. با توجه به استفاده زیاد و اکوسیستم گسترده، می‌توانیم انتظار داشته باشیم که Node.js و NPM در آینده به مدت طولانی همراه ما باقی بمانند. این بدان معنی است که Deno به طور مستقیم از ماژول‌های NPM پشتیبانی نمی‌کند.

همچنین کد در اولین باری که اسکریپت را اجرا کنید کش شده و تا زمانی که با دستور reload– آن را دوباره اجرا کنید، حفظ می‌شود. جاوا اسکریپت یک زبان برنامه نویسی همه فن حریف برای برنامه نویسی وبسایت، اپلیکیشن، هوش مصنوعی، ربات تلگرام، فیلترنویسی اینستاگرام و حتی بازی سازی استفاده میشه. وبسایت MEGAJS اولین مرجع تخصصی آموزش جاوااسکریپت، کتابخونه ها و فریمورک های JavaScript به زبان فارسی هست. یعنی در تیرماه ۹۹ که دارم این مقاله رو مینویسم، میگم Deno یاد نگیرید. اما اگه تازه میخوای بک اند شروع کنی پیشنهاد میکنم Node یاد بگیر تا زمانی که دینو جا بیوفته و براش کتابخونه های مورد نیاز بیاد و باگ های احتمالی بر طرف بشه. بنابراین، Deno ابزارها و روش‌های نوینی برای مدیریت بسته‌ها ارائه می‌دهد که به توسعه‌دهندگان کمک می‌کند تا به سادگی و با اطمینان بیشتری برنامه‌های خود را توسعه دهند.

زمانی که شما به یادگیری اختصاص دادید برای ما اهمیت بسیار بالایی داره و به همین دلیل سعی میکنیم متحوای تولید شده، غنی، پر بار و در راستای نیاز های بازار کار باشه. Deno به صورت آماده مجهز به ابزارهایی است که به متن ترمینال رنگ می‌دهند، می‌توان با ساختمان‌های داده اکسترنال (مانند باینری، CSV ،YAML و غیره) کار کرد، UUID-ها را تولید کرد و حتی وب‌سوکت نوشت. برخی ماژول‌های ابتدایی دیگر مانند دسترسی به سیستم فایل، تابع‌های کمکی داده‌‌ها، تابع‌های مرتبط با http و موارد دیگر نیز وجود دارند. برای تغییر نسخه ماژول‌ها فقط نیاز به تغییر آدرس URL است. به‌‌هر‌حال، اولین بار که کدهای شما اجرا می‌شوند، تا زمانی که دوباره با پرچم (Flag)، --reload آنها را اجرا کنید، مواردی که import شده‌اند، کش (cache) می‌شوند. همین رویکرد یک گام ضروری برای آزاد کردن جاوا اسکریپت از پکیج متمرکز رجیستری یا همان npm است.

علاوه بر این، Deno همچنین استانداردهای فعلی وب را با ترکیب ابزارهای داخلی مانند واکشی برای شبکه، همسویی با نحوه مدیریت مرورگرها با جاوا اسکریپت و ارائه یک تجربه کدنویسی منسجمتر انجام می دهد. روی  آن موتور جاوا اسکریپت V8 گوگل کروم اجرا می شود و عملکردی سریع و بسیار مطمئن را تضمین می کند. یکی از سودمندترین جنبه های Node.js حلقه رویداد یا event loop است. در deno کتابخانه‌هایی وجود دارند که می‌توان به کمک آن‌ها، محیط ترمینال را شخصی‌سازی کرد و برای مثال، رنگ متن در آن را تغییر داد. علاوه بر این، توابعی برای کار با ساختمان داده‌های خارجی مانند اکسل، کار با http و حتی سوکت نویسی نیز در نظر گرفته شده است. در این روش جدید، ماژول‌ها دوباره اکسپورت می‌شوند و در صورت تغییر نسخه‌ی هر کتابخانه کافی است آدرس را به همان ترتیب عوض کنید.

نکته بعدی اینه که میلیون ها پکیج و کتابحونه برای Nodejs وجود داره اما هیچ کدوم برای استفاده از دینو استاندارد نشدن و شاید بیشتر از ۱ سال زمان نیاز داره تا این اتفاق بیوفته. آقا یعنی بجای node از Deno استفاده کنیم؟ خب طبق گفته های جناب رایان دال در کنفرانس باید این اتفاق بیوفته. خب چرا؟ چون زمانی که nodejs ساخته شد در سال ۲۰۰۹ هنوز چیزی به اسم اکما اسکریپت ۶ یا ۲۰۱۵ درست نشده بود. پس در nodejs خبری از Promise ها نبود و nodejs یک پلتفرم callback محور بود. البته الان میشه با promise ها و async و await هم در nodejs کار کرد بواسطه کتابخانه های موجود در NPM.

اگر برنامه‌ای را با استفاده از Node.js اجرا کنید، دسترسی مستقیم برنامه به متغیرهای شبکه، سیستم‌عامل، تماس‌های سیستمی، سیستم فایل و محیط شما امکان پذیر است. اما با Deno همه این دسترسی‌های مستقیم از بین می‌رود. این سطح از امنیت با اجرای Deno روی سندباکس حاصل می‌شود. اگر برنامه به سطوح دسترسی خاصی نیاز داشته باشد، باید آنها را صریحا مشخص کنید و با استفاده از فلگ‌ها اجازه دسترسی دهید. جاوا اسکریپت نسبت به نسخه اول Node کتابخانه استاندارد خود را به میزان زیادی بهبود بخشیده است، اما در قیاس با زبان‌های دیگر همچنان بسیار عقب است. اگرچه به‌عنوان یک توسعه‌دهنده دسترسی به‌این نوع قابلیت‌ها سودمند است، اما اگر در هنگام نوشتن کد خود مراقب نباشید، خطرهای امنیتی را نیز ایجاد می‌کند.

برای مثال در اندروید نیز باید اجازه‌ی دسترسی به سیستم‌های مختلف ( ارتباطات الکترونیکی، تماس‌های تلفنی، پوشه‌ها و غیره ) را درون گوشی فعال کنید. در Deno js نیازی به Node_modules و Package.json ندارید! میتونید کتابخانه هارو به صورت مستفیم از سرور با URL بگیرید. که روی کامپیوترتون Cache میشه و سرعت کامپایل شدیدا افزایش پیدا میکنه. Deno به صورت پیش فرض اجازه دسترسی به هیچ چیزی ندارد و مثلا حتی موقع راه انداختن سرور از شما اجازه میخواد. دقیقا مثل اپلیکیشن هایی که شما در  اندروید نصب میکنید و از شما اجازه میخواد تا به دوربین و مخاطبین دسترسی پیدا کنه.

اولین سوالی که به ذهن مخاطبین می آید این است که آیا باید Node.js را کنار بگذاریم؟ خیر! Node.js توسط بسیاری از کمپانی های بسیار بزرگ استفاده می شود و به هیچ عنوان زبانی نیست که بخواهد در چند سال آینده از صحنه وب حذف شود. خود آقای Ryan Dahl نیز در مصاحبه خودشان توضیح دادند که Node.js حالا حالا ها بر سر کار خواهد ماند. بنابراین Deno.js روش دیگری است که اگر به طبع شما خوش بیاید می توانید از آن استفاده کنید. Deno از مدل امنیتی sandboxed استفاده می‌کند که امنیت برنامه های شما را تامین میکند. بدون دسترسی غیرمجاز به فایل‌ها، شبکه یا محیط مگر اینکه صریحا فعال باشد.

برای افرادی که نمی‌دانند Deno چیست باید بگوییم که Deno از سوی «رایان دال» (Ryan Dahl) ساخته شده است که خالق NodeJS نیز است. البته این بدان معنی نیست که Deno به صورت خودکار به عنوان جایگزین NodeJS مطرح می‌شود. Deno کَش را در دایرکتوریِ اختصاص داده‌شده در داخل متغیر محیطیِ $DENO_DIR ذخیره می‌کند. اگر خودمان متغیر را تنظیم نکنیم؛ در کَش دایرکتوری پیش‌فرض سیستم تنظیم می‌شود. ما می‌توانیم $DENO_DIR را درجایی در مخزن محلی خودمان تنظیم کنیم و از طریق سیستم کنترل ورژن آن را بررسی کنیم. مسئله‌ی عجیبی که با ایمپورت کردن پکیج‌ها از طریق URL آن‌ها به وجود می‌آید چیست؟ جواب این سؤال ساده است.

به طور مثال زمانی که از ES استفاده می کنید دیگر نیازی به استفاده از ابزارهایی مانند webpack ندارید تا بتوانید برنامه تان را با مروگر sync کنید. یکی از اهداف deno ایجاد سازگاری بیشتر برنامه با مرورگر است. برای مثال زمانی که از ES استفاده می‌کنید، دیگر نیازی به استفاده از ابزارهایی مانند webpack نیست و برنامه به صورت خودکار با مروگر sync می‌شود. علاوه بر آن، ابزارهایی مانند babel نیز وجود دارند که کد شما را به نسخه‌های ES5 تبدیل می‌کنند. همچنین می‌توانید برنامه‌ی خود را برای مرورگرهایی آماده کنید که از نسخه‌های جدید جاوا اسکریپت پشتیبانی نمی‌کنند. البته توجه داشته باشید که این کار باعث می‌شود که حجم کدهایی که قرار است بنویسید، افزایش پیدا کند.

Deno با TypeScript به عنوان یک زبان درجه یک رفتار می کند، درست مانند JavaScript یا WebAssembly. تایپ اسکریپت (و همچنین TSX و JSX) را با استفاده از ترکیبی از کامپایلر TypeScript که در Deno تعبیه شده است و یک کتابخانه Rust به نام swc به جاوا اسکریپت تبدیل می کند. هنگامی که کد تایپ شده (اگر بررسی فعال باشد) و تبدیل شد، در یک کش ذخیره می شود. به عبارت دیگر، برخلاف Node.js یا یک مرورگر، نیازی نیست که TypeScript خود را برای Deno به صورت دستی با کامپایلر tsc ترجمه کنید. ادغام TypeScript در Deno یکی از مزایای Deno نسبت به Node.

همچنین در نظر داشته باشید که ما به‌جای استفاده از ماژولِ FS، در حال استفاده از فضای نامِ (Namespace) Deno هستیم. فضای نامِ Deno توابعِ کمکیِ اساسیِ زیادی را در اختیار ما قرار می‌دهد. ما با استفاده کردن از فضایِ نام، سازگاری مرورگر را از دست می‌دهیم. در این مقاله، با Node.js و Deno، تفاوت‌های بین ماژول‌های CommonJS و ECMAScript، استفاده از TypeScript با Deno، و استقرار سریع‌تر با Deno Deploy آشنا می‌شوید. ما با یادداشت‌هایی به پایان می‌رسیم تا به شما کمک کند بین استفاده از Node.js یا Deno برای پروژه توسعه بعدی خود تصمیم بگیرید.

بخش Runtime شامل تمامی API‌های جاوااسکریپتی Deno و پیاده‌سازی‌های سطح پایین آن‌ها (ops) است. استفاده از Rust در این بخش می‌تواند بهبود قابلیت‌های سیستمی Deno را فراهم کند و از امکانات ایمنی و کارایی Rust بهره برد. امکان اجرای TypeScript در Deno یکی از ویژگی‌های مهم این برنامه است. اما باید توجه داشت که V8 (موتور JS استفاده‌شده‌ توسط Deno) قادر به اجرای TypeScript نیست. بنابراین تمام کدهای TS باید به جاوااسکریپت ترجمه شوند تا بتوانند اجرا شوند.

Deno تایپ اسکریپت را به عنوان یک زبان اولیه مورد استفاده قرار می‌دهد. این به این معنی است که می‌توان تایپ اسکریپت را بدون نیاز به نصب هر چیزی به جز Deno CLI اجرا یا وارد کرد. البته می توانید از هاست نود جی اس بهینه استفاده کنید تا سرعت سریع تری داشته باشید. Deno نیز تفاوتی ندارد و در حال حاضر صرفاً حاصل دو سال کار روی یک ایده است. این محیط زمان اجرا هنوز تست نشده است و در سیستم‌های پروداکشن مورد استفاده قرار نگرفته است. Deno هنوز مورد بررسی عملی قرار نگرفته است و در موقعیت‌های عجیب و ناخواسته قرار نگرفته است تا شرایط مدیریت اوضاع مرزی از سوی آن بررسی شود.

گفتن حقیقت کمی ترسناک است اما اگر بخواهیم صادق باشیم، دلیل اصلی استفاده از NodeJs به‌دلیل نبود چیزی مشابه آن بود. وقتی ما برنامه را اجرا می‌کنیم؛ Deno همه‌ی ماژول‌های ایمپورت شده را دانلود کرده و آن‌ها را کَش (Cache) می‌کند. وقتی آن‌ها کَش شدند؛ Deno دیگر آن‌ها را مجدداً دانلود نخواهد کرد. تا زمانی که ما به‌طور خاص با استفاده از –reload از Deno بخواهیم که این کار را انجام دهد. Flag ای که در کد بالا مشاهده کردید ( --allow-write ) مربوط به دادن دسترسی مربوط به فایل سیستم بود. Flagهای  –allow-net و  –allow-env و  –allow-run به ترتیب مربوط به تقاضاهای دسترسی به شبکه، محیط و اجرای زیر پردازش‌ها است.

می توانید اسکریپت خود را به صورت محلی با استفاده از Deno CLI توسعه دهید، و سپس آن را در کمتر از یک ثانیه در زیرساخت مدیریت شده Deno Deploy مستقر کنید، بدون نیاز به پیکربندی چیزی. پلت فرم Node.js مبتنی بر جاوا اسکریپت توسط رایان دال در سال ۲۰۰۹ معرفی شد. این پلتفرم به عنوان جایگزین مقیاس پذیرتر برای سرور HTTP Apache برای لینوکس و MacOS توسعه یافت. Node.js یک محیط زمان اجرا جاوا اسکریپت چند پلتفرمی است که هم برای سرورها و هم برای برنامه های دسکتاپ مفید است. این یک حلقه رویداد تک رشته ای را اجرا می کند که در سیستم ثبت شده است تا اتصالات را مدیریت کند و هر اتصال جدید باعث فعال شدن یک تابع فراخوانی جاوا اسکریپت می شود. عملکرد برگشت به تماس می‌تواند درخواست‌ها را با تماس‌های ورودی/خروجی غیرمسدود رسیدگی کند.

اما برخی شواهد وجود دارند که برای تصمیم‌گیری در خصوص پاسخ این سؤال نقشی تعیین‌‌کننده دارند. بااین‌حال، ابزارهایی مانند Babel، کدها را به ورژنِ ES5 از جاوا اسکریپت قابل‌انتقال می‌کنند. درنتیجه، کد موردنظر حتی در مرورگرهای قدیمی‌تر که از امکانات جدید این زبان پشتیبانی نمی‌کنند هم قابل‌اجرا خواهد بود. باید مقدار زیادی از کدهای غیرضروری را در فایل نهایی قرار دهیم که باعث پرحجم شدن فایل خروجی نهایی خواهد شد. اول از همه، استفاده از بسته‌های Node از Deno به دفعات کار می‌کند. حتی بهتر از آن، راه‌حل‌هایی برای بسیاری از موانع رایج وجود دارد.

بارگذار CommonJS نمی توان برای بارگیری ماژول های ECMAScript استفاده کرد. مسئول رسیدگی به عبارات import و عبارات import() است. پوشه ها را به عنوان ماژول پشتیبانی نمی کند (شاخص های دایرکتوری مانند ./startup/index.js باید به طور کامل مشخص شوند). ماژول های ES می توانند برای بارگیری ماژول های JavaScript CommonJS استفاده شوند. Deno یک محیط ران تایم  جاوا اسکریپت و تایپ اسکریپت در حال ظهور است که در تلاش است تا برخی از کاستی‌های Node.js را برطرف کند.

اگر با node کار کرده باشید، می‌دانید که هنگام نصب یک پکیج، فایل‌های جدید مربوط به آن در یک پوشه با نام نود ماژول (node module) قرار می‌گیرند. هر کتابخانه‌ی مورد نیاز در برنامه باید در این پوشه قرار گیرد. در زمان اجرا نیز تمامی وابستگی‌های لازم از این پوشه خوانده شده و باعث دردسرهای زیادی برای برنامه نویسان می‌شود، به خصوص افرادی که به صورت گروهی کار می‌کنند. چه یک توسعه دهنده با تجربه Node.js باشید و چه به تازگی سفر خود را در توسعه جاوا اسکریپت شروع کرده اید، Deno می تواند فرصت های جدیدی را برای پروژه های شما ایجاد کند. Node بیشتر به دلیل داشتن اکوسیستم وسیع و استفاده از جاوا اسکریپت در نوع خودش بسیار خوب است.

این روش تا حدودی سازگاری با Node.js و NPM را فراهم می‌کند. همچنین برای حداکثر استفاده مجدد از کد، همکاری در کامپوننت‌های مستقل و ساخت برنامه‌هایی با مقیاس بالا مورد استفاده قرار می‌گیرد. اگر فایل بالا را local-test-utils.ts بنامیم برای اینکه مجددا به test و یا assertEquals دسترسی داشته باشید تنها کافی است از روش زیر برای فراخوانی آنها استفاده کنید. پیکربندی پیش‌فرض از حالت Strict استفاده می‌کند، ‌بنابراین هم رویه‌های کدنویسی نادرست بی‌درنگ هشدار دریافت می‌کنند. اما مراقب خطرهای این‌کار هم باشید، استفاده از منابع شخص ثالثی که شما به‌آنها کنترلی ندارید شما را در معرض خطر قرار می‌دهد. یکی از شایع‌ترین چیزهایی که همه از اشکال‌های آن صحبت می‌کردند، مدیریت وابستگی‌ها بود.

در ضمن تا دینو جا بیوفته و بشه اعتماد کرد شاید خیلی طول بکشه و تا اون موقع شما میمونی و دست های خالی. و هیچ وقت از نسخه های اول هیچ پلتفرمی برای پروژه هاتون استفاده نکیند. پس اینکه بگیم Denojs جایگزین Node میشه شاید بیشتر از یکسال زمان ببره تا همه انتظارات node در deno براورده بشه. البته همه این ها حدس و احتمال بنده هست و سرعت تکنولوژی خیلی خیلی بیشتر از این حرفاست. در Deno، تایپ اسکریپت (همراه با TSX و JSX) به جاوااسکریپت تبدیل می‌شود و در یک حافظه نهان ذخیره می‌شود تا برای اجرای بعدی نیاز به تبدیل آن به جاوااسکریپت دوباره نباشد.

این پروژه هنوز مورد بررسی قرار نگرفته و مورد استفاده‌های عجیب و غریب قرار نگرفته است تا ببینند که چگونه با آن شرایط برخورد می‎کند. و تا زمان انجام این ارزیابی‌ها، فقط یک اسباب بازی برای پذیرندگان اولیه خواهد بود که با آن بازی کنند. شاید طی سال اول، شرکت‌هایی تجربه‌های خود را به‌اشتراک بگذارند، و ما از فراز و نشیب‌های این تکنولوژی جدید بشنویم. مطمئنا انجمن پشتیبان، این تکنولوژی را با نیازها تطبیق خواهد داد. صادقانه بررسی کنیم، این عنوان برای جذب مخاطبان استفاده شده است. برخی از ما استفاده از Node.js را از روزی که حدود نسخه 0.10 بود شروع کردیم و بیشتر برنامه‌ها را با آن توسعه دادیم!

Node.js پرکاربردترین محیط ران تایم  جاوا اسکریپت برای توسعه سمت سرور است. ساخت APIهای مدرن مبتنی بر جاوا اسکریپت نسبتاً ساده است. می‌توانید از کتابخانه‌هایی مانند Express.js استفاده کنید و یک API فعال را در عرض چند دقیقه بسازید . اما چالش برانگیزترین بخش در حال حاضر انتخاب موتور جاوا اسکریپت مناسب است. خب طبق استدلال های پاراگراف بالا Deno js جایگزین بهتر، قوی تر و کامل تر برای Nodejs هست با امنیت بسیار بالاتر. اما چون Deno js تازه معرفی شده و نسخه رسمیش کمتر از ۱ ماه هست که اومده برای اثبات خودش نیاز به گذر زمان داره و این مواردی که گفته شد بر اساس مستندات و گفته های توسعه دهندگانش هست.

بسته‌های نرم‌افزاری یکی از مهمترین ابزارها برای توسعه‌دهندگان در زمینه برنامه‌نویسی است. Deno یک پلتفرم جدید برنامه‌نویسی است که قصد دارد تا راه‌حل‌هایی نوین برای مدیریت بسته‌ها ارائه دهد. از انعطاف بالایی برخوردار است که می‌تواند برای توسعه‌دهندگانی که به ساخت برنامه‌های تولیدی با Deno علاقه‌مند هستند، نگران‌کننده باشد. بخش Core در Deno مسئول ارائه مجموعه کوچکی از خدمات اصلی مانند پیوندهای V8، OPS dispatch و بارگذاری افزونه‌ها است. از آنجا که Rust یک زبان برنامه‌نویسی قدرتمند و ایمن است، استفاده از آن در این بخش می‌تواند باعث افزایش امنیت و کارایی سیستم شود.

از جنبه منفی، سیستم پلاگین Node با Deno ناسازگار است. حالت سازگاری Node Deno از TypeScript پشتیبانی نمی کند. و چند ماژول Node داخلی (مانند vm) با Deno ناسازگار هستند. Node.js بعدها این مشکل را برطرف کرد و promise ها را به این زبان اضافه کرد. در ماه های آینده تخصصی تر Deno js و Node js رو بررسی میکنیم که در چه مواردی کدوم قوی تر عمل میکنه. در صورت نیاز دسترسی Deno به شبکه، باید فلگ زیر به دستور اضافه شود.

این شباهت علاوه بر اینکه به سازنده‌ی یکسان آن‌ها نیز اشاره می‌کند، گواهی بر این مورد است که در آینده‌ای نه چندان دور، شاید deno ‌جایگزین node شود. پس توصیه می‌کنیم تا با node.js که فناوری اصلی این حوزه است نیز آشنا شوید. برای شروع می‌توانید مقاله‌ی "Node.js چیست و چه کاربردی دارد ؟" را مطالعه کنید. اگر به مباحث Node.js علاقه‌مندید پیشنهاد میکنیم به صفحه دوره آموزش node js سربزنید. با گسترش استفاده از زبان‌های برنامه‌نویسی JavaScript و TypeScript، Deno به عنوان یک روند جدید و نوآورانه مورد توجه قرار گرفته است.

استفاده از namespace دنو این امکان را می دهد به مجموعه گسترده ای از helper function ها دسترسی داشته باشید. وقتی از این namespace استفاده می کنیم سازگاری مرورگر را از دست می دهیم که البته مفصل درباره آن صحبت خواهیم کرد اما وقتی اسکریپت بالا را اجرا می کنیم چه اتفاقی می افتد صد در صد ارور خواهیم داشت . اگر یکی از طرفداران تایپ اسکریپت باشید، از شنیدن این خبر که Deno اینک از این زبان پشتیبانی می‌کند و نیازی به استفاده از ابزارهای خارجی ندارید خوشحال می‌شوید. کد تایپ اسکریپت در Deno به صورت داخلی به جاوا اسکریپت ترجمه می‌شود و دیگر لازم نیست در این مورد نگرانی داشته باشید. Deno به‌راحتی استفاده از TypeScript را بدون احتیاج به فایل پیکربندی ممکن می‌کند.

انتخاب صددرصد درستی وجود ندارد و  بستگی به اولویت های شما دارد. بنابراین، از این مقاله به عنوان پایه ای برای مقایسه این  محیط ران تایم  جاوا اسکریپت استفاده کنید. دستور بالا به شما اجازه می‌دهد که بتوانید در کد خود فایل‌های پوشه‌ی etc را بخوانید. برای دسترسی‌ به مواردی به جز این پوشه، هشدار امنیتی دریافت خواهید کرد. این عمل مشابه کنترل دسترسی در سیستم عامل‌های مختلف است.


برنامه نویسی زبان سی پلاس پلاس