What is wrong with NodeJs and Js? Why Deno and Ts?
![What is wrong with NodeJs and Js? Why Deno and Ts?](/content/images/size/w1200/2020/05/ry-deno_0-android-wedakarayo.png)
Java script කියන්නේ
![](https://backend.androidwedakarayo.com/content/images/2020/04/image-19.png)
JavaScript කියන්නේ scripting හෝ programming language web complex features එකතු කරන්න පාවිච්චි කරන. ECMAScript specification අනුකුලව නිර්මාණය කරමපු programming language විදියටත් හදුන්වා දෙන්න පුලුවම්. JavaScript high-level, often just-in-time compiled, හා multi-paradigm වෙනවා . Js වලට තියෙනවා curly-bracket syntax, dynamic typing, prototype-basedobject-orientation හා first-class functions තියෙනවා.
True Script කියන්නේ මොකක්ද?
![](https://backend.androidwedakarayo.com/content/images/2020/04/image-20.png)
TypeScript කියන්නේ open-sourceprogramming language develop හා maintain by Microsoft කරන. static typing තියෙන JavaScript වල superset විදියට හදුන්වන්න පුලුවම්.
Java script vs True script
![](https://backend.androidwedakarayo.com/content/images/2020/04/image-21.png)
JavaScript + more features = TypeScript
කියන features ටික මුලික වශයෙන් වලට JavaScript එකතු කරලා තමයි TypeScript හදලා තියෙන්නේ. ඊට අමතරව maintain හා debug කරන්න ලේසි Ts Js වඩා.
NodeJs කියන්නේ මොකක්ද?
![](https://backend.androidwedakarayo.com/content/images/2020/04/image-22.png)
Node.js කියන්නේ open-source, cross-platform, JavaScript runtime environment JavaScript code web browser පිටතින් executes කරන්න හදපු. Node.js ගන්නේ මුලිකවම command line tools හා for server-side scripting වලට. 2009 දී Ryan Dahl තමයි Node.js ලියන්නේ.
Deno කියන්නේ මොකක්ද?
![](https://backend.androidwedakarayo.com/content/images/2020/04/image-24.png)
deno කියන්නේ runtime JavaScript හා TypeScript වල V8 JavaScript ජින්ජිම base කරන් Rust (මගේ Rust serie කියවන්න අමතක කරන්න එපා) වලින් ලියපු. May , 2018 මැයි 13 Ryan Dahl deno ලියන්න පන්ගන්නවා. ඔව් ඔව් Node.js ලියපු කෙනාම තමයි.
NodeJs vs deno
10 Things I Regret About Node.js
package.json
- NPM ඇතුළුව Node distribution standard Node විසින්ම නිර්මාණය කිරීම.
- modules සදහා Centralized (privately controlled) repository යොදාගැනීම.
require(“sommodule”)
මේවා සදහා නිශ්චිත: package.json, local node_modules folder, NPM ලගේ database.- files directory ලෙස “module” යන සංකල්පය ඉහළ නැංවීමට අනවශ්ය වියුක්ත කිරීමක් සිදු කිරීම. web නොපවතින.
- license, repository වැනි අනවශ්ය තොරතුරු ඇතුළත් වේ.
node_modules
- Module resolution algorithm අතිශයින්ම සංකීර්ණයි.
- Vendored-by-default හොද intentions තිබුනත් $NODE_PATH ක්රියා කරීම.
- browserයෙන් බැහැර වීම.
Require without the extension
- අනවශ්ය ලෙස explicit අඩු වීම.
- browser ක්රියා කරන ආකාරය නොවීම.
- module loader guess කිරීමට සිදිවිම.
index.js
- module loading system අනවශ්ය ලෙස සංකීර්ණ වීම.
- package.json සහාය ලබාගැනීමෙන් පසු කොහෙත්ම අවශ්ය නොවීම.
Project Status / Disclaimer
Philosophy
Deno වල අරමුණ modern programmer ලාට productive හා secure scripting environment ලබාදීමය.
Deno සෑම විටම single executable ලෙස distribut කරයි. Deno program URL දුනහම, ඒක run කරන්න පුලුවම් ~15 megabyte වඩා අඩු zipped executable. Deno runtime හා package manager යන දෙයාකාරයෙන්ම ක්රියා කරයි. modules load: URLs කරන්න එය standard browser-compatible protocol භාවිතා කරයි.
Deno යනු ඓතිහාසිකව bash හෝ python වලින් ලියා ඇති utility scripts සඳහා හොඳ ආදේශනයකි.
Goals
- single executable (deno) පමණක් ලබා දේ.
- Secure Defaultම ලබා දේ.
- විශේෂයෙන් අවසර දී නොමැති විට, scripts වලට files, environment, හෝ network ප්රවේශ වෙන්න බෑ.
- Browser compatible: Deno programs වල subset (හෝ ඒ සඳහා feature test) JavaScript වලින් සම්පූර්ණයෙන්ම ලියා ඇත්තේ global Deno namespace භාවිතා නොකරය , වෙනසක් කරන්නේ නැතුව web browser වල run කරන්න පුලුවම්.
- developer experience වැඩි කරන්න unit testing, code formatting, and linting වගේ built-in tooling සපයයි.
- V8 concepts user land leak නොකරයි.
- HTTP efficiently serve කරන්න පුලුවම්.
Comparison to Node.js
- Deno npm භාවිතා නොකරයි
- URLs හෝ file paths විදියට දීල තියෙන modules එක පාවිච්චි පාවිච්චි කරන්නේ.
- Deno module resolution algorithm package.json පාවිච්චි කරන්නේ නෑ.
- Deno වල හැම async actions promise return කරනවා. මේ අනුව Deno Node වලට වඩා වෙනස් APIs දෙන්නේ.
- Deno වලට file, network, හා environment access වලට explicit permissions තියෙන්න ඕනි.
- Deno හැම වෙලාවේම වැඩ කරන්නේ නැතුව යන්නේ uncaught errors වලදී (විතරයි).
"ES Modules" ගන්නේ, require() support කරන්නේ නෑ. Third party modules URL හරහා import කරන්නේ.
import * as log from "https://deno.land/std/log/mod.ts";
Other key behaviors
- first execution දී Remote code අරන් cached කර ගන්නවා
--reload flag
දාල code run වෙනකම් update වෙන්නේ නෑ. (ඉතින්, මේකට plane උනත් වැඩ කරන්න පුලුවම්.) - remote URL වලින් load කරපු Modules/files immutable වෙනවා වගේම cache කරනවා.
>> Don't forget to say hello to the search box for further details.