জাভাস্ক্রিপ্ট! জাভাস্ক্রিপ্ট কি? জাভাস্ক্রিপ্ট একটা প্রোগ্রামিং ল্যাংগুয়েজ। হাই লেভেল প্রোগ্রামিং ল্যাংগুয়েজ। হাই লেভেল ল্যাংগুয়েজ মানে? হাই লেভেল ল্যাংগুয়েজ মানে এই ল্যাংগুয়েজ অনেকটা সফটলি কোডেড। আপনাকে আপনার ম্যাশিন সম্পর্কে খুব বেশী কিছু জানতে হবে না এর জন্যে। যেমন সি ইউজ করতে গেলে আপনাকে ম্যাশিন কিভাবে কাজ করে, কিভাবে কোড কম্পাইল করে, কিভাবে রান করে, মেমোরি কতটুকু নিবে এগুলা ভাবতে হয়। হাই লেভেল ল্যাংগুয়েজে এতোকিছু ভাবতে হয় না। এখানে ল্যাংগুয়েজই আপনার হয়ে অনেক কাজ করে দিবে। এতে সুবিধা কি? হ্যা সুবিধা হলো আপনি একটা কপ্লেক্স অ্যাপ বানাবেন এখন আপনাকে অ্যাপের ফানশানিলিটি নিয়ে না ভেবে, সেগুলা নিয়া না কাজ করে যদি একদম রুট থেকে শুরু করেন, কোন টাইপের ডাটা নিবেন, মেমোরি কতটুকু যাবে এগুলা নিয়াই ভাবতে হয়, সময় দিতে হয় তাহলে দেখা যাবে আপনার অ্যাপের ব্যাকবোনই বানাতে বানাতে হয় আপনার বাজেট শেষ, নয়তো আপনি মোটিভেশন হারিয়ে ফেলছেন। সেক্ষেত্রে জাভাস্ক্রিপ্ট এর মতো হাই লেভেল ল্যাংগুয়েজ ফ্লেক্সিবল হওয়ায় আপনি বিহ্যাইন্ড দ্যা সীনে কি হচ্ছে না হচ্ছে এতোকিছু না ভেবেও আপনার মেইন কাজ স্টার্ট করতে পারবেন। আপনার অ্যাপেন মেইন ফানশানিলিটিতে মন সময় দুইটাই দিতে পারতছেন। তাই জাভাস্ক্রিপ্ট কে ল্যাংগুয়েজ হিসাবে বাছাই করা এই সময়ে যথোপযুক্ত সিদ্ধান্ত বলে আমি মনে করি।
কিন্তু তারপরেও আরো প্রশ্ন থেকে যায়। কেন জাভাস্ক্রিপ্ট? হ্যা, আমরা তো জাভাস্ক্রিপ্ট কে পূর্বে শুধুমাত্র ডম ম্যানিপুলেশনের কিছু একটা বলেই ভাবতাম। ডম ম্যানিপুলেশন মানে একটা ওয়েব পেজে কিছু ইভেন্ট লাগানো, বাটনে ক্লিক করলে এই হবে, সেই হবে। তারপর লোগো চ্যাঞ্জ করা, কালার চ্যাঞ্জ করাসহ অ্যানিমেশন পর্যন্ত বড়জোর জাভাস্ক্রিপ্ট এর ক্ষমতা ছিলো। কিন্তু আধুনিক জাভাস্ক্রিপ্ট এর ক্ষমতা এখন কল্পনার বাইরে। এখন জাভাস্ক্রিপ্ট জাস্ট ডম ম্যানিপুলেশনের জন্য ইউজ হয়না। বরং জাভাস্ক্রিপ্ট এখন জটিল জটিল ক্রস প্ল্যাটফর্ম ওয়েব অ্যাপ্লিকেশন বানাতে ব্যবহার করা হয় এবং সবচেয়ে জনপ্রিয় প্রোগ্রামিং ল্যাংগুয়েজ ২০১৮ তে। নোড জেএস দিয়ে ওয়েব সার্ভার থেকে, ওয়েব অ্যাপ্লিকেশন, ক্রস প্ল্যাটফর্ম অ্যাপ্লিকেশনও বানাতে পারবেন। রিয়েক্ট, অ্যাঙ্গুলার জেএস, ভু জেএস দিয়ে আপনি ইন্ট্যারেক্টিভ ইউজার ইন্টারফেস বানাতে পারবেন। আবার এগুলা একসাথে করে ফুল স্ট্যাক ডেভেলপমেন্ট করতে পারবেন। জাভাস্ক্রিপ্ট ফ্রন্ট ইন্ড এবং ব্যাকেন্ড দুইটাই হ্যান্ডেল করতে পারে। মানে এক ল্যাংগুয়েজ দিয়েই সব। মানে আল্টিমেট ল্যাংগুয়েজ!
এখন আরো প্রশ্ন আসে। এই ২০১৮ তে আরো প্রোগ্রামিং ল্যাংগুয়েজ ও তো আছে। কোনটা চুজ করবো? আজকে জাভাস্ক্রিপ্ট শিখলে কালকে যদি এটা মার্কেটে আর না থাকে? হ্যা এইটার একটা ভালো আন্সার আছে। যারা কম্পিউটার সাইন্সের স্টুডেন্ট তারা হয়তো জানেন এখানে প্রোগ্রামিং এর দুনিয়ায় সবগুলার কন্সেপ্টই অনেকটা এক। বলতে পারেন সব একই বেসের উপর তৈরী করা। তার মানে সামনে যে ল্যাংগুয়েজ আসবে বা অন্য কোনো টেকনোলিজি আসবে সেটার কন্সেপ্টও এগুলা থেকেই যাবে। মানে আপনি শিখলে ফালানো যাবে না কখনো। আমি কখনো বলবো না অনেক জব আছে জাভাস্ক্রিপ্ট এর উপর মার্কেটে, অনেক টাকা ইনকাম করা যায়। এগুলা তো সবাই জানে। কিন্তু আমি টেকনিকাল কারণগুলো বলবো কেন শিখবেন। আপনার সবকিছুর কন্সেপ্ট একই হওয়ায় আপনি ভালো করে একটা বুঝতে পারলেই পরে যেকোনোটায় সুইচ করে ফেলতে পারবেন। কোনো কোনো ল্যাঙ্গুয়েজে লাইব্রেরী বলে, কোনোটায় মডিউল বলে, কোনোটায় প্যাকেজ বলে। হয়তো একেকটায় একেক নামে ডাকা হয় কিন্তু মেইন আইডিয়া সবসময়ই সেইম। আর ল্যাংগুয়েজ সুইচে সবাই সবসময় আন ইজি ফীল করে। কিন্তু নতুন একটা ল্যাংগুয়েজ তৈরী হয় পুরোনোটার কিছু লিমিটেশনের জন্যই। মানে নতুন ল্যাংগুয়েজ হলেই বুঝবেন এটা আরো ফ্লেক্সিবল। আমি নিজের অভিজ্ঞতা থেকে বলতেছি কোনো জিনিস শিখতে কঠিন হলে সেটা নিয়া কাজ করা ইজি হয়। সেইম থিওরি অ্যাপ্লাই হবে ফ্রেমওয়ার্ক এর ক্ষেত্রেও। নতুন নতুন ফ্রেমওয়ার্ক আসে তার মানে এই না যে এইটা স্ট্যাবল না। অবশ্যই একেকটা ফ্রেমওয়ার্ক এর স্পেশালিটি একেক রকম আর মেইন কথা হলো পুরোনোটার কিছু লিমিটেশন কাটাতেই নতুনটা এসেছে। তাই ভয় করে বা না ভেবে আপনার কাজ সোজা শিখতে নেমে পড়ুন আর শিখা শুরু করেন। সেটা জাভাস্ক্রিপ্ট ই হউক আর পাইথনই হউক।
আমি প্ল্যান করেছি ৪ টা ভাবে জাভাস্ক্রিপ্ট এর উপর লিখবো। প্রত্যেকটা ভাগের উপর সিরিজ হবেঃ
০১। জাভাস্ক্রিপ্টঃ কি, কেন, কখন?
০২। জাভাস্ক্রিপ্টঃ কোথায় এবং কিভাবে ইউজ করা হয়?
০৩। জাভাস্ক্রিপ্টঃ ব্যাসিক ক্রোম ডেভেলপার কন্সোল
০৪। জাভাস্ক্রিপ্টঃ ভ্যারিয়েবল এবং ডাটা টাইপ
০৫। জাভাস্ক্রিপ্টঃ অপারেটর নিয়ে সবকিছু
০৬। জাভাস্ক্রিপ্টঃ কন্ডিশনাল স্টেটমেন্ট নিয়ে সবকিছু
০৭। জাভাস্ক্রিপ্টঃ লুপ নিয়ে সবকিছু
০৮। জাভাস্ক্রিপ্টঃ অ্যারে নিয়ে সবকিছু
০৯। জাভাস্ক্রিপ্টঃ ব্যাসিক অবজেক্ট
১০। জাভাস্ক্রিপ্টঃ ব্যাসিক ফাংশন
১১। জাভাস্ক্রিপ্টঃ স্ট্যাটমেন্ট আর এক্সপ্রেশন
১২। জাভাস্ক্রিপ্টঃ ড্রাই প্রিন্সিপ্যাল
১৩। জাভাস্ক্রিপ্টঃ নাকি ইকমাস্ক্রিপ্ট?
১৪। জাভাস্ক্রিপ্টঃ বিহ্যাইন্ড দ্যা সীন
১৫। জাভাস্ক্রিপ্টঃ হোইস্টিং নিয়ে সবকিছু
১৬। জাভাস্ক্রিপ্টঃ স্কোপ নিয়ে সবকিছু
১৭। জাভাস্ক্রিপ্টঃ ইফি
১৮। জাভাস্ক্রিপ্টঃ তারপরে কি?
সবশেষে আমার পরিচয় দিয়ে শেষ করি। আমি কে জাভাস্ক্রিপ্ট শিখানোর? হ্যা সেটাই। আমি নিজেও এখনো লার্নিং স্টেজে আছি। আমার কম্পিউটারের সাথে সম্পর্ক অনেক ছোটো থেকেই। যখন ক্লাশ থ্রীতে ছিলাম তখনি আমি কম্পিউটার হাতে পাই। যদিও তখন কোনো কাজে ইউজ করি নাই গান আর মুভি দেখা ছাড়া :P যাই হউক আমি ক্লাশ এইটে থাকার সময় গ্রাফিক্স ডিজাইনের সাথে পরিচিত হই, তারপর ওয়ার্ডপ্রেস(জাস্ট ইন্সটলেশন আর থিম কাস্টমাইজেশন) এর সাথে পরিচিত হই। তারপর ওয়েব ডিজাইন। জাভাস্ক্রিপ্ট আমার কাছে অনেকটা ত্ত্রাস ছিলো তখন থেকেই। কোনোরকম ইন্টারনেট থেকে কপি টপি করে জেকোয়েরী কোড সাইট ডিজাইন করতাম। পরে অবশ্য গ্রাফিকরিভারে কাজ শুরু করি, পাশাপাশি প্রোগ্রামিং এও যথেষ্ট ইন্টারেস্ট ছিলো। এর মধ্যেই ইউনিভার্সিটিতে আসি। আমি বর্তমানে কম্পিটার সাইন্স নিয়ে পড়াশোনা করতেছি। তাই আসলে আমি চাইবো জাভাস্ক্রিপ্ট কে আমার টেকনিকাল নলেজ দিয়ে ব্যাখ্যা করতে। আমি জাভাস্ক্রিপ্ট শিখা শুরু করি ডব্লিওথ্রী স্কুলস থেকে, তারপর মজিলা ওয়েব ডেভ, তারপর ইউডেমীর কয়েকটা কোর্স থেকে। কিন্তু আসলে শিখাই সব না, বা একটা মানুষ একাই সব জানতে পারে না। তবে প্র্যাক্টিস করতে থাকলে অভিজ্ঞতা হয়। আমার এই লেখাও আমার নলেজ বাড়ানোর উদ্দেশ্যই লেখা। যতটুকু লিখবো নির্ভুল্ভাবে লেখার চেষ্টা করবো আর ভুল-ভ্রান্তি পেলে অবশ্যই জানাবেন
…
হ্যাপী প্রোগ্রামিং!