ডেনো এবং নোড জেএস এর মধ্যকার গুরত্তপুর্ন পার্থক্য

ডেনো এবং নোড জেএস এর মধ্যকার গুরত্তপুর্ন পার্থক্য

 জাভাস্ক্রিপ্ট কি কাজে লাগে? আপনি হয়ত বলবেন এখন তো জাভাস্ক্রিপ্ট ভাই ওয়ান ম্যান আর্মি। ফ্রন্টেন্ড এবং ব্যাকেন্ড উভয় দুনিয়া যেভাবে কাঁপিয়ে বেড়াচ্ছে তাতে আর সন্দেহ নেই যে জাভাস্ক্রিপ্ট সকল ওয়েব কাজের কাজি। কিন্তু জাভাস্ক্রিপ্ট কে এই এত শক্তি কে দিল? তখন স্বভাবতই নাম চলে আসে নোড এর।

নোড মূলত একটা রানটাইম। যার কাজ হচ্ছে জাভাস্ক্রিপ্ট কে শুধুমাত্র ব্রাউজার এর মধ্যে থেকে বাইরে এনে যেকোন প্লাটফর্ম এ ব্যবহার উপযোগী করে তোলা। আর সেই কাজে নোড একদম পারফেক্ট সল্যুশন দিয়েছে সেটা আর বলার অপেক্ষা রাখেনা। কিন্তু তাই বলে কী নোড জে এস একদম পারফেক্ট? উহু, নোড এর স্রষ্টাই নোড প্রোজেক্ট এর কিছু ভুলের জন্য রিগ্রেট করে ডেনো এনেছেন। অর্থাৎ নোড এর মতোই পাওারফুল কিন্তু নোড এর থেকেও ম্যাচিউর আর এডভান্স।

ডেনো এবং নোড জেএস এর মধ্যকার গুরত্তপুর্ন পার্থক্য
ডেনো এবং নোড জেএস এর মধ্যকার গুরত্তপুর্ন পার্থক্য

ডেনো কি নতুন নোড জেএস? নাকি ডেনো নোড জেএস এর অনেক ভালো একটা অল্টারনেটিভ? এই আর্টিকেল এ আমরা নোড জেএস এবং ডেনোর মধ্যকার সবথেকে গুরত্তপুর্ন পার্থক্য গুলো এবং তাদের ফিচার নিয়ে কথা বলব।

সবচেয়ে বড় পার্থক্য গুলো

  • ডেনো তৈরিতে ব্যবহৃত হয়েছে রাস্ট এবং জাভাস্ক্রিপ্ট এঞ্জিন হিসেবে গুগলের v8 এঞ্জিন। নোড জেএস, ক্রোম ব্রাউজার ও এই v8 এঞ্জিন ই ব্যবহার করে।
  • ডেনো নোড জেএস এর মতো NPM প্যাকেজ সাপোর্ট করেনা। তেমনি node_modules এর মতো ডিরেক্টরি ও সাপোর্ট করেনা। ইউআরএল এর মাধ্যমে মূলত লাইব্রেরি গুলো ইম্পোর্ট করা হয়।
  • ডেনো কোন সমস্যা ছাড়াই টাইপস্ক্রিপ্ট এবং জাভাস্ক্রিপ্ট উভয় সাপোর্ট করে।
  • ডেনো কোড এক্সিকিউট হবার জন্য পারমিশন সিস্টেম ব্যবহার করে।
  • ব্যাকেন্ড কোড লেখার সময়তেও ডেনো window অবজেক্ট সাপোর্ট করে।

ডেনোর ইতিহাস এবং পেছনের গল্প

নোড এবং ডেনোর মধ্যে সবথেকে বড় মিল হচ্ছে Ryan Dahl । Dahl ২০০৯ সাল অবধি নোড প্রোজেক্ট এ কাজ করে এবং তারপরে সেখান থেকে ফিরে এসে। ২০১৮ সালে 10 Things I Regret About Node.js এই শিরোনামে একটা বক্তব্যে তিনি এনাউন্স করেন ডেনো। নতুন জাভাস্ক্রিপ্ট এবং টাইপস্ক্রিপ্ট রানটাইম।

মজার বিষয়ঃঃ “Deno” শব্দটা “Node” শব্দটির এনাগ্রাম।

কিন্তু এর মানে কি এই জে নোড জেএস ডেনোর কাছে রিপ্লেসড হয়ে যাবে?

এর উত্তর হবে “না”। Ryan Dahl এর নিজের বক্তব্য অনুযায়ী ই ডেনো এখনো নতুন এবং নোড এর মত একই পারপোজে ডেনো তৈরি। তাই আপনি এখনো নিশ্চিন্তে নোড জেএস ব্যবহার করতে পারবেন।

তবে কয়েক বছর পরে পরিস্থিতি কি হবে সেটা কেউই সহজে বলতে পারবেন না। আর তাছাড়া নোড এর যে সাপোর্ট বেজ তাকে সহজেই হারিয়ে ডেনো যে জায়গা দখল করবে সেটা বলাও সমীচীন হয় না। তাই ডেনো এসেছে বলেই যে নোড বাতিল সেটা বলা মস্ত ভুল হবে। তবে একে নোড এর তুলনায় এডভান্স আপনি বলতে বাধ্য।

নোড এবং ডেনো আন্ডার দা হুড

নোড জেএস c++ এর উপর বেজ করে তৈরি এবং গুগলের v8 এঞ্জিন ব্যবহার করে জাভাস্ক্রিপ্ট কোড এক্সিকিউট করে। v8 এঞ্জিন মূলত তৈরি হয়েছিল গুগল ক্রোম এর জন্য, যেন সহজেই জাভাস্ক্রিপ্ট কোড এক্সিকিউট করা যায়। নতুন মাইক্রোসফট এজ ব্রাউজার ও একই এঞ্জিন এর উপর বেজ করে তৈরি। এছাড়া v8 এঞ্জিন তার পারফরম্যান্স এবং স্মুথ স্ট্যাবিলিটির জন্য সকল স্থানে সমান ভাবে সমাদৃত।

ডেনো ও একই এঞ্জিন ব্যবহার করলেও নোড এর মতো c++ ব্যবহার না করে বরং রাস্ট ব্যবহার করে। রাস্ট c++ এর মতো একই ডেলিভার সিস্টেম এর ল্যাঙ্গুয়েজ হলে সিকিউরিটি, মেমোরি ম্যানেজমেন্ট, বাফার ওভারফ্লো বেশি ভালো কাজ করে।

সিকিউরিটির বিষয়ে নোড জেএস এর ক্ষেত্রে সবথেকে বড় সমস্যা চাইলেই নোড এপ ফাইল সিস্টেম এর এক্সেস নিতে পারে।

অপর পক্ষে ডেনো এই সমস্যা সমাধান করে এখন পারমিশন গ্রহণ করে তারপরেই কেবল এক্সেস নেই। অর্থাৎ এডমিন পারমিশন ছাড়া কোন কিছু ইম্পর্ট যেমন করেনা তেমনি ফাইল সিস্টেম এর এক্সেস ও নিবে না।

গুডবাই NPM এবং হেলো ES6 Import

NPM এর মাধ্যমে প্যাকেজ ইম্পোর্ট করলে হিউজ সাইজের যে node_modules ফোল্ডার তৈরি হয় সেটাকে বিদায় জানাতে এবং সিকিউরিটি ব্যবস্থায় ডেনো সম্পুর্ন ভিন্ন। NPM দিয়ে প্যাকেজ ইম্পোর্ট করলে অনেক সময় সিকিউরিটি ল্যাক থেকে যায়। এবং এরকম ঘটনা একবার ঘটেওছিল যেখানে NPM প্যাকেজ এর মাধ্যমে ইউজার ডেটা চুরি করা হয়েছিল।

এত কিছুর পরে ডেনো আর NPM এর আশায় না থেকে বরং ইউআরএল বেজড import সিস্টেম নিয়ে আসে। সহজ এবং সিকিউর এই সিস্টেম এর প্রশংসা আসছে সব মহল থেকেই।

উইন্ডো অবজেক্ট – ব্রাউজারের বাইরেও

window অবজেক্ট হচ্ছে ব্রাউজার এর প্যারেন্ট অবজেক্ট যেখানে থেকে জাভাস্ক্রিপ্ট এর অতি প্রয়োজনীয় কিছু ফাংশন কাজ করে। যেমন fetch এইভাবে কাজ করে। কিন্তু আপনি চাইলে অল্টারনেটিভ প্যাকেজ যেমন Axios নোড এর মধ্যে ব্যবহার করতে পারবেন না। কিন্তু ডেনো তে সেই সমস্যা নেই।

কারণ ডেনোতে এই window অবজেক্ট এভেইলেভল। তাদের ডকুমেন্টেশন এ বিস্তারিত দেখতে চাইলে : https://deno.land/typedoc/interfaces/window.html

টাইপস্ক্রিপ্ট সাপোর্ট

টাইপস্ক্রিপ্ট নিয়ে অনেকের অনেক রকম মতামত। তবে ডেনো উভয় গ্রুপ এর জন্যই রেখেছে সুবিধা। আপনি যেমন টাইপস্ক্রিপ্ট সাপোর্ট পাবেন ঠিক তেমনি ক্লাসিক জাভাস্ক্রিপ্ট ও পাবেন ব্যবহার করতে।

টাইপস্ক্রিপ্ট ব্যবহার এর সুযোগ ডেনোতে থাকলেও নোড এ না থাকায় আপনি টাইপস্ক্রিপ্ট এর এডভান্স ফিচার এবং পারফরম্যান্স কাজে লাগাতে পারবেন না। তাই এই দিক দিয়ে ডেনো এগিয়ে আছে অনেক অনেক দূরত্বে।

পরিশেষে

আপনি ডেনো নিয়ে কি ভাবছেন? সত্যি বলতে ডেনো যে হাইপ তৈরি করেছে তাতে যেকেউ ডেনো শিখতে আগ্রহী হবে। কিন্তু তার মানে এই না যে নোড শেষ হয়ে গেছে। আর নোড এর যে কমিউনিটি সাপোর্ট তাতে বলাই বাহুল্য যে ডেনো অত দ্রুত নোড কে হঠাতে পারবেনা। অন্তত বাংলাদেশের কথা বললে বলতেই হবে যে নোড জেএস এতটা জনপ্রিয় যে আপনি ডেনো শিখে তেমন ফিল্ড ই পাবেন না প্রয়োগ করার। তাই সবথেকে বেস্ট ডিসিশন হবে নোড এর সঙ্গে সঙ্গে ডেনোর জগতটাও এক্সপ্লোর করে দেখা।

 

You Might Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *