Javascript
কিংবদন্তি নেটস্কেপ নেভিগেটর ওয়েব ব্রাউজারের নির্মাতা ব্রেন্ডন আইচ ১৯৯৫ সালে জাভাস্ক্রিপ্ট তৈরি করেছিলেন।
javascript কী?
জাভাস্ক্রিপ্ট এর যদি ফর্মাল ডেফিনেশন দিতে চাই তাহলে উইকিপেডিয়া এর সংজ্ঞাটাই মেনশন করি -
“ JavaScript often abbreviated as JS is a programming language that conforms to the ECMAScript specification.JavaScript is high-level, often just-in-time compiled, and multi-paradigm. It has curly-bracket syntax, dynamic typing, prototype-based object-orientation, and first-class functions.” -উইকিপেডিয়া
কী !!!? মাথার উপর দেয়া গেলো বুঝি ? চলুন সহজ ভাবে বুঝা যাক। কিছু গুরুত্বপূর্ণ পয়েন্ট তুলে ধরি আপনাদের মাঝে।
*** প্রথম কথা হচ্ছে javascript একটি programming language এইটা নেয়া কারো সন্দেহ নাই। কিন্তু জাভাস্ক্রিপ্ট অন্য programming language এর মতো নয়। এটি এমন একটি programming language যার মাদ্ধমে আমরা web application বানাতে পারি। সোজা কোথায় website , webApp এর প্রাণ হলো জাভাস্ক্রিপ্ট।
*** এর মাদ্ধমে আমরা খুব সহজেই আমরা html , Css এর code update করতে পাই। এর মানে হলো আমরা চাইলে জাভাস্ক্রিপ্ট এর মাদ্ধমেই dynamically html , css এর কোড অ্যাড অথবা রিমুভ করতে পারি।
*** এর বাইরে as a programming language , জাভাস্ক্রিপ্ট এর মাদ্ধমে আমরা calculate , manipulate তো করতেই পারি।
*** তবে জাভাস্ক্রিপ্ট এর মাদ্ধমে আমরা এক্সট্রা আরো একটা কাজ করতে পারি সেটা হলো validate।
যেমন আপনারা যদি বিভিন্ন ওয়েবসাইট এর লগইন ফর্ম fillup করে থাকেন, তাহলে খেয়াল করে থাকবেন আপনি যদি email এর input field এ কোনো ইনভ্যালিড ইমেইল দিয়ে থাকেন তাহলে আপনাকে একটা error message শো করা। এই কাজ তা কে করে জানেন? এই জাভাস্ক্রিপ্ট
*** Javascript এর অন্য আরেকটি পরিচয় আছে। সেটা হলো -”javascript একটি ক্লায়েন্ট সাইড language “- তবে জাভাস্ক্রিপ্ট এখন শুধু client side এ সীমাবদ্ধ নয়। এটি এখন backend server eo রান করানো যায় node js এর মাদ্ধমে।
*** Wikipedia তে javascript এর definition এ শুরুতেই বলা আছে -”JavaScript often abbreviated as JS is a programming language that conforms to the ECMAScript specification “
এই ECMAScript specification তা কী আসলে ? সহজ ভাষায় বললে বলতে হয় এইটা মূল কিছু rules and regulation এর সমন্বয় যেইটা ফলো করে মূলত javascript কোড লেখা হয়।
Javascript একটি web এপ্লিকেশন এ কিভাবে রান হয় ?
javascript মূলত browser এই রান হয়। প্রত্যেকটা browser এই একটি করে javascript engine থাকে। আর তার মাদ্ধমেই javascript easily run হতে পারে। তো এতে সুবিধা তা কী আসলে ? — -
চলুন তার আগে জেনে আসি একটা ওয়েবসাইট আমাদের ব্রাউজার এ কিভাবে শো করে। আমরা যখন আমাদের ব্রাউজার এর একটা tab ওপেন করে সেখানে কোনো একটা সাইট এর url লিখে সার্চ করি , তখন ওই সাইট তা যে server এ রাখা আছে সেখানে একটা কল যায়। তারপর সেখান থেকে website এর ফাইল গুলা আমাদের ব্রাউজার এ আসতে থাকে। যেমন html , css। এগুলা কিন্তু ডাইরেক্টলি আমাদের ব্রাউজার এ রান হয় না। প্রথমে এগুলা আমাদের সার্ভার থেকে ডেকে আন্তে হয়।
কিন্তু জাভাস্ক্রিপ্ট ইঞ্জিন থাকায় javascript এর জন্যে কাজ টি খুবই সহজ। javascript কে রান করতে সার্ভার এর রেসপন্স লাগেনা। প্রতিটা ব্রাউজার এ যে জাভাস্ক্রিপ্ট ইঞ্জিন আছে তার মাদ্ধমে ইনস্টেন্টলি রান হতে পারে। এজন্যে wikipedia এর definition এ বলা আছে — “Javascript is just-in-time compiled language “ -
এই javascript engine যার মাদ্ধমে javascript এর নতুন দুয়ার উন্মোচন হয় তার সম্পর্কে কিছু না বললেই নয়। সর্ব প্রথম জাভাস্ক্রিপ্ট ইঞ্জিনটি 1995 সালে ব্রেন্ডন আইচ তৈরি করেছিলে। প্রতিটি ব্রাউজার এ জন্যে স্পেসিফিক javascript engine আছে। যেমন -
Google Chrome এর js engine এর নাম V8 engine
Firefox এর js engine এর নাম SpiderMonkey
যেখানে v8 ইঞ্জিন high level language C ++ দিয়ে লেখা। একটা web application যখন ব্রাউজার এ load হয় তখন সাথে সাথেই এই ইঞ্জিন এর মাদ্ধমে ওই ওয়েব এপ্লিকেশন এর সব জাভাস্ক্রিপ্ট কোড রান হয়ে যায়। তো এভৱেই ক্লায়েন্ট সাইট এ দারুন ভাবে কাজ করতে থাকে জাভাস্ক্রিপ্ট।
পরবর্তীতে Ryan Dahl ২০০৯ সালে v8 ইঞ্জিন কে NODE JS এর সাথে এডজাস্ট করে ফেলে। এর ফলে নতুন এক বিপ্লব ঘটে জাভাস্ক্রিপ্ট এর লাইফ এ। Node Js আসার ফলে খুব সহজেই আমরা file system এবং backend সার্ভার নিয়ে কাজ করতে পারি।
তবে Javascirpt v8 ইঞ্জিন নিয়ে আরেকদিন বিস্তারিত আলোচনা করবো আরেকটি আর্টিকেল এ।
যায় হোক , এতক্ষন আমরা javascript সম্পর্কে কিছু basic information জানলাম। এখন প্রশ্ন হচ্ছে আমরা আসলে কোনো জাভাস্ক্রিপ্ট শিখবো ?
১ . Javascript একটি beginner friendly language। খুব অল্প স্বল্প কোড এই আপনি অনেক কিছু করতে পারবেন
২ . Javscript web application এ খুব interactive ওয়ে তে কাজ করে, যেইটা সত্যিই খুব মজাদার। যেমন — অনেক ওয়েবসাইট এ আপনারা কিছু অ্যানিমেশন দেখতে পারবেন। কিছু slider দেখবেন নিজ থেকে এদিক ওদিক যাতায়াত করছে। তো এগুলা মূলত জাভাস্ক্রিপ্ট এর মাদ্ধমেই করা হয়। এই ধরণের অ্যানিমেশন যখন আপনি নিজেই বানাবেন feeilngs তাই অন্যরকম পাবেন একদম।
৩ . দুনিয়াতে ৬০০ এর বেশি programming language আছে। কিন্তু এর মধ্যে Javscript এর কমিউনিটি সবচেয়ে বড়। stacoverflow তে javscript এর কমিউনিটি তাই highest লেভেল এ আছে।
এখন আপনি বলতে পারেন কমিউনিটি দিয়ে কী করবো আমি। সত্যি বলতে একজন ভালো মানের developer হতে আপনাকে অবশ্যই কমিউনিটি এর সাথে interelated থাকতে হবে। যেখানে অনেক question answer easily পেয়ে যাবেন। কোনো প্রব্লেম ফেস করলে খুব সহজেই আপনি তার সমাধান পেয়ে যাবেন কমিউনিটি থেকে।
৪ . এতদিন আমরা শুনে আসছি এক ঢিলে ২ পাখি মারার ডায়ালগ। এখন শুনবো এক ঢিলে ৩ পাখি মারার ডায়ালগ। হা ঠিক শুনতেছে আপনি। আপনি যদি শুধু javascript ভালোভাবে আয়ত্তে আন্তে পারেন , তাহলে এই একটা ল্যাঙ্গুয়েজে দিয়েই আপনি একটা ওয়েব এপ্লিকেশন এর frontend , backend এবং database এই তিনটা সাইট নিয়েই কাজ করতে পারবেন।
৫ . Careear oppurtunity। একটা ভালো ক্যারিয়ার কে না চাই বলুন। আপনি শুধু একটু indeed ওর linkedin এ javscript developer job লিখে সার্চ দেন। বাকি answer গুলা ওখানেই পেয়ে যাবেন। তবে শুধু এইটুকুই বলবো যে, আপনি যদি একজন ভালো senior javascript developer হন তাহলে শুধু মাত্র USA তেই average $7000 ++ এর জব ও আপনি পেয়ে যাবেন।
Asif Ur Rahman
Campus Ambassador at Programming Hero
EEE At University Of Chittagong, Bangladesh