Node.js

Node.js

XodiyevLutfulloxon

Avvalambor Assalomu alaykum barchaga. Bugungi postimizda Node.js nima va uning vazifasi nimalardan iborat degan savollarni to'liq yoritib berishga harakat qilaman.

Dasturlash tilidan yoki tillaridan ozgina bo'lsada xabari bo'lgan inson shuni bilishi mumkinki, kompyuter bizning tilimizga tushunmaydi. U ikkilik sanoq sistemasida ishlaydi. Ya'ni faqat 0 yoki 1 ni tushunishi mumkin. Biz dasturchilar uchun albatta bu qiyinchilik tug'diradi. Nimaga deysizmi? Chunki siz kompyuterda oddiygina amallarni bajarib natijani ko'rmoqchi bo'lsangiz sizga kompyuter bir dunyo nol va bir larni otib yuboradi. Buni albatta mag'zini chaqishingiz mumkin lekin kim ham dasturini ikkilik sanoq sistemasida yozishni xohlardi? Shuning uchun ham dasturlash tillarida keyinchalik kompilyator va interpretatorlar kashf etiladi. Ularning vazifasi siz o'zingiz bilgan dasturlash tilida kodingizni yozasiz ular kompyuter tushunadigan tilga converter qilib beradi.

Shu o'rinda Translyator, Kompilyator va Interpretator farqini tushuntirib aytib o'tmoqchiman.

Yuqori darajali (C, C++, Java, Phyton, …) yoki quyi darajali (assembly tillar) dasturlash tillarida yozilgan kodlarni mashina tiliga o'tkazish uchun ishlatiladigan programmalar —  translyatorlar deb ataladi.

Translyatorlarning 3 xil turi mavjud:

  • Assembler
  • Kompilyator
  • Interpretator

Assembler bu quyi darajali dasturlash tillarida yozilgan kodni mashina tiliga o'giruvchi translyatorlardir. Bu jarayonlar assmblatsiya (assembling) deb nomlanadi.

Kompilyator va interpretatorlar esa yuqori darajli dasturlash tillarida yozilgan kodlarni mashina tiliga o'giruvchi translyatorlardir. Bu jarayonlar kompilatsiya va interpretatsiya deb nomlanadi.

Kompilatsiya bu dasturlash tilida yozilgan kodni mashina tushunadigan tilga to'g'ridan-to'gri o'girish jarayoni. Mashina tiliga o'giruvchi programma esa kompilyator deb nomlanadi. Kompilyator butun kodni bir vaqtda skan qiladi va agar kodda xatoliklar bo'lsa koddagi barcha xatoliklarni ko'rsatadi, agar xatolik bo'lmasa uni ishga tushiradi. Kompilyatorga misollar: javac (Java kompilyatori), c (C kompilyatori), cpp (c++ kompilyatori)

Interpretatsiya jarayonida esa dasturlash tilida yozilgan kod mashina tiliga to'g'ridan-to'gri o'girilmaydi. Uning o'rniga boshqa bir programma kodni o'qiydi va uni ishga tushiradi. Ya'ni o'rtada bir boshqa programma vositachi bo'lib turadi. O'sha vositachi programmaga interpretator deyiladi. Misol uchun siz kodda «+» amalini bajarmoqchi bo'lsangiz, interpretator siz kodda yozgan «+» amalini o'zining versiyasi bilan almashtiradi va so'ngra uni mashina tiliga o'giradi. Interpretator kodni satrma-satr skanner qiladi va agar biror satrda xatolik bo'lsa darhol xatolikni ko'rsatadi va skan qilishni to'xtatadi, agar satrda xatolik bo'lmasa darhol usha satrdagi kodni ishga tushiradi. Interpretatorlarga misollar: Ruby, Phyton, Javascript.

— Ba'zi interpretatorlar o'zining vazifasini bajarish bilan birga kompilyator vazifasini ham bajarishi mumkin. Ya'ni, bir vaqtda ikkita ishni qilishi mumkin.
— Interpretator orqali erishilgan natijaga, kompilyator orqali ham erishish mumkin. Kompilyator orqali erishilgan natijaga, interpretator orqali ham erishish mumkin

Afzalliklari va kamchiliklari.

— Kompilatsiya jarayoni interpretatsiyaga nisbatan tezroq kechadi, chunki u to'g'ridan-tog'ri mashina tiliga o'giriladi.

— Interpretatorlarni yaratish osonroq. Yaxshi kompilyator yaratish juda qiyin.

— Kompilyator katta hajm talab qiladi, interpretator esa kamroq.


Compiler-Process
Interpreter-Process


Kompilyator Interpretator

Kompilyator vs Interpretator

Yuqoridan bilib oldikki, biz qaysi dasturlash tilida ishlashimizdan qat'iy nazar bizga o'sha tilini mashina tiliga o'girib beradigan muhit kerak bo'ladi. Biz Browser bilan muloqot qilganimizda Javascript dasturlash tilida ishlaganimizda bizning kodlarimizni mashina tili tushunib olishi uchun bizga Javascript Engine lar yordamga keladi.

Browsers

Yuqorida rasmda ko'rib turganingizdek Edge uchun Chakra, Mozilla FireFox uchun SpiderMonkey va Chrome uchun V8 Engine lar ishlab chiqilgan. Bu Engine larning vazifasini ushbu rasm orqali tushunib olishingiz mumkin.

Javascript Engine

Oldin biz Javascript kodlarimizni Browserdan tashqarida ishlata olmasdik. Ishlatishimiz uchun bizga Kompilyator yoki Interpretator ga o'xshagan birortda dastur kerak edi.

Ryan Dahl ismli software engineer C/C++ dasturlash tillarida yozilgan Libuv (Libuv is a C library that provides the asynchronous I/O in Node. js) kutubxonasi va Google chrome'ning V8 engine ni birlashtiradi va uni Node deb ataydi. Node ni birinchi marta 2009-yil 27-may kuni ommaga tanishtirishadi.

Ryan Dahl

Pastdagi rasmlarda Chrome V8 Engine va C/C++ da yozilgan libuv library ning umumish ishlash yo'li ko'rsatib o'tilgan.

V8 vs libuv

V8 Engine communicate libuv library


Process


Process
Process

Node.js bu programming language, framework yoki tool emas. Node.js bu JavaScript kodlarini brauzerdan tashqarida ishlatish uchun kerak bo'ladigan ochiq manbali, kross-platformali runtime environment, ya'ni Javascript kodlaringizni mashina tiliga o'girib beradigan muhit. Node.js paydo bo'lgandan keyin Javascript top darajadagi dasturlash tillar ro'yxatidan joy oladi. Sababini quyidagi rasm orqali bilib olishingiz mumkin.Qaysi programming yo'nalishi bo'lmasin hammasida Javascript katta rol o'ynashiga Node.js yordam berdi deb bemalol aytishimiz mumkin. Hozirda Javascriptning kuchi yordamida xohlagan narsangizni qila olishingiz mumkin va shunga qo'shimcha qilib Frontend va Backendni ham o'zi yozadigan yagona til bu Javascript hisoblanadi.

Versatile Javascript

Node.js hali ham rivojlanishdan to'xtamadi, Node.js asosan server-side app yasash uchun ishlatiladi, Node.js ning Express, Koa, Sails, Meteor, Fastify, Nest istalgan frameworki orqali bu ish tez va oson bitadi.

Afzalliklari: O'rganishga oson, yengil va tez, katta community, ajoyib ekosistema, ochiq manbali, moslashuvchanlik.

Kamchiliklari: Node.js API larining barqaroq emasligi, CPU bilan bog'liq vazifalarni bajara olmaslik.

Kamchilik har qanday dasturlash tili yoki frameworkda mavjud bo'ladi, hamma narsa qila oladigan mukammal dasturlash tili mavjud emas, Node.jsning mashhurligi katta kompaniyalarning nazaridan chetda qolmagan desak adashmaymiz.

Meta, NASA, LinkedIn, Uber, Trello, Netflix, Paypal, eBay, Medium, Mozilla, Walmart, Groupon, GoDaddy, Yandex, Citibank, Yahoo. (Manba)

O'zbekistonda ham Node.js dasturchilarga talab yuqori, albatta o'z ishingizni ustasi bo'lsangiz, Epam, Exadel, Click, Payme, Apelsin va boshqa kompaniyalarda Node.js dasturchilarga yaxshi ish haqi taklif qilishyabdi.


Dasturlashga doir postlarimizdan xabardor bo'lib turishingiz uchun
@jstutorial telegram kanalimizga obuna bo'ling.













Report Page