DEV Community

Cover image for What is wrong with NodeJs and Js? Why Deno and Ts?
xe-non
xe-non

Posted on

What is wrong with NodeJs and Js? Why Deno and Ts?

Java script කියන්නේ මොනවද?

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 කියන්නේ මොකක්ද?

TypeScript Introduction
TypeScript කියන්නේ open-sourceprogramming language develop හා maintain by Microsoft කරන. static typing තියෙන JavaScript වල superset විදියට හදුන්වන්න පුලුවම්.

Java script vs True script

Typescript vs Javascript: Difference You Should Know

JavaScript + more features = TypeScript

කියන features ටික මුලික වශයෙන් වලට JavaScript එකතු කරලා තමයි TypeScript හදලා තියෙන්නේ. ඊට අමතරව maintain හා debug කරන්න ලේසි Ts Js වඩා.

NodeJs කියන්නේ මොකක්ද?

File:Node.js logo.svg - Wikimedia Commons
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 කියන්නේ මොකක්ද?

File:Deno.svg - Wikipedia
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";
Enter fullscreen mode Exit fullscreen mode

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.


References

https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript
https://en.wikipedia.org/wiki/JavaScript
https://en.wikipedia.org/wiki/TypeScript
https://stackify.com/typescript-vs-javascript-migrate/
https://hackr.io/blog/typescript-vs-javascript
https://en.wikipedia.org/wiki/Node.js
https://en.wikipedia.org/wiki/Deno_(software)
https://medium.com/@imior/10-things-i-regret-about-node-js-ryan-dahl-2ba71ff6b4dc
https://deno.land/std/manual.md

Top comments (0)