জাভাস্ক্রিপ্টের যত গুন ! জাভাস্ক্রিপ্ট হতে পারে নতুনদের জন্যে একটা ভালো শুরু

পড়তে সময় লাগবেঃ 11 মিনিট | তারিখঃ 01/07/2020

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

মোবাইল অ্যাপলিকেশনঃ ক্রস – প্লাটফর্ম (Android+IOS) মোবাইল অ্যাপলিকেশনের একটা বড় জায়গা দখল করে আছে জাভাস্ক্রিপ্ট । React Native, Vue Native দিয়ে যথেষ্ট ভালো মানের মোবাইল অ্যাপলিকেশন বানানো যায়। বিশেষ করে React Native এর কথাই যদি বলি-সেক্ষেত্রে React native এর পার্ফরমেন্স Java/Kotlin কিংবা Swift  দিয়ে বানানো নেটিভ অ্যাপলিকেশনের মতই। React Native আসলেই নেটিভ, একটা নেটিভ অ্যাপলিকেশনে যা যা থাকা দরকার, তার সবি পেয়ে যাবেন React –Native প্লাটফর্মে। Uber, Food panda, Facebook, Instagram  থেকে শুরু করে, এরকম আরো অনেক জনপ্রিয়  মোবাইল অ্যাপলিকেশন আছে যে গুলো React Native দিয়ে বানানো। ক্রস- প্লাটফর্ম মোবাইল অ্যাপলিকেশনের চাহিদা, সাধারন নেটিভ অ্যাপলিকেশনের চাইতে অনেক বেশি। সে ক্ষেত্রে React Native হতে পারে, আপনার ক্যারিয়ারের অনত্যম টার্নিং পয়েন্ট।

অন্যদিকে Phongap, Cordova, Ionic এরকম আরো বেশ কিছু জাভাস্ক্রিপ্ট নির্ভর মোবাইল অ্যাপলিকেশন আছে, যে গুলো WebView  টেকনিকে চলে। WebView   টেকনিকে রান হয়, এরকম জাভাস্ক্রিপ্ট মোবাইল অ্যাপলিকেশন ফ্রেমওয়ার্ক /লাইব্রেরী থেকে ১০০ হাত দূরে থাকবেন । এই গুলো সাময়িক ভাবে আপনাকে অতি উৎসাহী করে তুললেও, শুধু শুধু সময় নষ্ট হবে- এই ধরনের টেকনলজি দিয়ে ক্যারিয়ার সম্ভব নয়।

ডেক্সটপ অ্যাপলিকেশনঃ এ জন্যে অবশ্যই Electron JS এর কথাই বলবো। এটি হচ্ছে ক্রস প্লাটফর্ম ডেক্সটপ অ্যাপলিকেশন ডেভেলপ করার জন্যে জাভাস্ক্রিপ্টের একটি ওপেন সোর্স ফ্রেমওয়ার্ক , গিটহাব যেটা ডেভেলপ এবং মেইনটেইন করেছে । Electron JS প্লাটফর্মে আপনি HTML,CSS, JS ব্যাবহার করে খুব সহজে ভালো মানের ডেক্সটপ অ্যাপলিকেশন বানাতে পারেন।  Electron js এর ভেতরে Chromium rendering engine এবং  Node.js এর অসাধারণ সমন্বয় আছে, যেটার মধ্যেই মুলত ওয়েব টেকনলজি গুলো রান হয়।  এখন আপনারা অবশ্যই জানতে চাইবেন- সে আবার কেমন সফটওয়্যার? কেমন হবে সেটা? পারফর্মেন্স ভালো হবে তো ভাই? উত্তরে আমি বলবো, সব দিক থেকেই ভালো হবে চিন্তার কোনো কারন নাই। উদাহরণ হিসবে বলতে পারি- Visual Studio Code, Atom Code Editor, Skype Desktop, GitHub Desktop, Whats app Dekstop এরকম অসংখ্য ভালো মানের ডেক্সটপ সফটওয়্যার আছে যে গুলো Electron js দিয়ে বানানো।

এখন শুধু Electron JS দিয়েই যে পুরোটা হয়ে যাবে বিষয়টা তেমন নয়। Electron JS শুধু মাত্র ডেক্সটপ অ্যাপলিকেশনের জন্যে আপনাকে একটা প্লাটফর্ম দিচ্ছে। পুরোটার জন্যে এর সাথে Jquery/React/Vue কিংবা অন্য যে কোনো জাভাস্ক্রিপ্ট ফ্রেমোয়ার্ক কিংবা লাইব্রেরী ব্যাবহার করতে পারেন। অনেকেই Electron js এর বিষয়ে আপনাকে নেগেটিভ রিভিউ দিলেও, আমি দিচ্ছি না। নিজে Electron js ট্রাই করে দেখুন, নিজের রিভিউটাই সব থেকে বড়।

ওয়েব অ্যাপলিকেশনঃ এখানেই জাভাস্ক্রিপ্টের ব্যাবহারটা সব থেকে বেশি। সার্ভার সাইট থেকে ক্লাইন্ট সাইট সব কিছুই হ্যান্ডেল করা যায় জাভাস্ক্রিপ্ট দিয়ে। সার্ভার সাইডের জন্যে আপনি Node.js, Express.js, Deno ব্যাবহার করতে পারেন। এছাড়া ওয়েব অটোমেশন একটা বিশাল জায়গা দখল করে আছে, যদিও এটা বিগিনার কিংবা মিড লেভেলের বিষয় নয়। ধারাই যায় এক্সপার্ট লেভেলে গিয়ে ওয়েব অটোমেশনের বিষয় গুলো আসে। সেক্ষেত্রে আপনি Js puppeteer ব্যাবহার করতে পারেন। এছাড়া আপনি ক্লায়েন্ট সাইটের জন্যে JQuery, React js, Vue js, Angular js এই লাইব্রেরী গুলি ব্যাবহার করতে পারেন। 

রিয়েল টাইম কমিউনিকেশনঃ এটা হচ্ছে ওয়েব অ্যাপলিকেশনের সব থেকে টপ লেভেল। রিয়েল টাইম চ্যাটিং, কিংবা ওয়েব পেজে ডাটা চেঞ্জ করার জন্যে WS Protocol  প্রয়োজন। সাধারণ Http/Https Protocol  দিয়ে নির্বিচ্ছিন্ন ভাবে রিয়েল টাইম ডেটা আদান-প্রদান সম্ভব নয়। সে ক্ষেত্রে জাভাস্ক্রিপ্টের Socket.IO , Pusher  ব্যাবহার করতে পারেন । এছাড়া আপনি আডিও ভিডিও কলিং এর জন্যে WebRTC ব্যাবহার করতে পারেন।

সর্বস্বত্ব রাব্বিল হাসান দ্বারা সংরক্ষিত; ২০১৯-২০২০