জাভাস্ক্রিপ্ট কী, কেন,শিখবেন?
জাভাস্ক্রিপ্ট! জাভাস্ক্রিপ্ট কী? জাভাস্ক্রিপ্ট একটা প্রোগ্রামিং ল্যাংগুয়েজ। হাই লেভেল প্রোগ্রামিং ল্যাংগুয়েজ। হাই লেভেল ল্যাংগুয়েজ মানে? হাই লেভেল ল্যাংগুয়েজ মানে এই ল্যাংগুয়েজ অনেকটা সফটলি কোডেড। আপনাকে আপনার মেশিন সম্পর্কে খুব বেশি কিছু জানতে হবে না এর জন্য। যেমন সি প্রোগ্রামিং ল্যাংগুয়েজ ব্যবহার করতে গেলে আপনাকে মেশিন কীভাবে কাজ করে, কীভাবে কোড কম্পাইল করে, কীভাবে রান করে, মেমোরি কতটুকু নেবে এগুলো ভাবতে হয়। হাই লেভেল ল্যাংগুয়েজে এত কিছু ভাবতে হয় না।
এখানে ল্যাংগুয়েজই আপনার হয়ে অনেক কাজ করে দেবে। এতে সুবিধা কী? হ্যাঁ, সুবিধা হলো আপনি একটা জটিল অ্যাপ বানাবেন, এখন আপনাকে অ্যাপের ফাংশানিলিটি নিয়ে না ভেবে, সেগুলো নিয়ে কাজ না করে যদি একদম গোড়া থেকে শুরু করেন, কোন টাইপের ডেটা নেবেন, মেমোরি কতটুকু যাবে, এগুলো নিয়েই ভাবতে হয়, সময় দিতে হয় তাহলে দেখা যাবে আপনার অ্যাপের ব্যাকবোনই বানাতে বানাতে হয় আপনার বাজেট শেষ, নয়তো আপনি মোটিভেশন হারিয়ে ফেলেছেন। সে ক্ষেত্রে জাভাস্ক্রিপ্টের মতো হাই লেভেল ল্যাংগুয়েজ ফ্লেক্সিবল হওয়ায় আপনি বিহ্যাইন্ড দ্য সিনে কী হচ্ছে না হচ্ছে এত কিছু না ভেবেও আপনার আসল কাজ শুরু করতে পারবেন।
আপনার অ্যাপের আসল ফাংশানিলিটিতে মন, সময় দুইটাই দিতে পারবেন। তাই জাভাস্ক্রিপ্টকে ল্যাংগুয়েজ হিসেবে বাছাই করা এই সময়ে যথোপযুক্ত সিদ্ধান্ত বলে আমি মনে করি। কিন্তু তারপরও আরও প্রশ্ন থেকে যায়। কেন জাভাস্ক্রিপ্ট? হ্যাঁ, আমরা তো জাভাস্ক্রিপ্টকে আগে শুধু ডম ম্যানিপুলেশনের কিছু একটা বলেই ভাবতাম। ডম ম্যানিপুলেশন মানে একটা ওয়েব পেজে কিছু ইভেন্ট লাগানো, বাটনে ক্লিক করলে এই হবে, সেই হবে।
কম্পিউটার রক্ষনাবেক্ষন করবেন কিভাবে জেনে নিন
কিভাবে নিবেন চুলের যত্ন
হৃদ রোগের ঝুকি কমান সুস্থ্য থাকুন
তারপর লোগো পরিবর্তন করা, কালার পরিবর্তন করাসহ অ্যানিমেশন পর্যন্ত বড়জোর জাভাস্ক্রিপ্টের ক্ষমতা ছিল। কিন্তু আধুনিক জাভাস্ক্রিপ্টের ক্ষমতা এখন আরও বেশি। এখন জাভাস্ক্রিপ্ট শুধু ডম ম্যানিপুলেশনের জন্যই ব্যবহার হয় না, বরং জাভাস্ক্রিপ্ট এখন জটিল জটিল ক্রস প্ল্যাটফর্ম ওয়েব অ্যাপ্লিকেশন বানাতে ব্যবহার করা হয়। একই সঙ্গে মোবাইল অ্যাপ বা আরও অনেক কিছুতেও জাভাস্ক্রিপ্ট ব্যবহার করা যায়।কোথায় এবং কীভাবে ব্যবহার করা হয়? ওয়েব (Web) এ সবচেয়ে ব্যবহৃত এবং জনপ্রিয় তিনটা টেকনোলজি হচ্ছে:
১। এইচ.টি.এম.এল (HTML)
২। সি.এস.এস (CSS)
৩। জাভাস্ক্রিপ্ট (JavaScript)
সব ওয়েবসাইট আর ওয়েব অ্যাপ্লিকেশনে এই তিনটা থাকবেই। মানে বলা চলে এগুলো ওয়েবের আসল শক্তি। যদিও জাভাস্ক্রিপ্ট ছাড়াও সম্পূর্ণ ওয়েবসাইট হতে পারে,কিন্তু এ রকম ওয়েবসাইট দেখা যায় না, যেখানে জাভাস্ক্রিপ্ট নেই । আর ভালো ইউজার এক্সপেরিয়েন্সের (User Experience) জন্য জাভাস্ক্রিপ্ট গুরুত্বপূর্ণ। জাভাস্ক্রিপ্টে বিশাল লাইব্রেরি আর ফ্রেমওয়ার্কের সমাহার থাকায় সব ধরনের কাজই করা যায় এর মাধ্যমে। প্রধানত দুইভাবে জাভাস্ক্রিপ্টকে ওয়েবে ব্যবহার করা হয়:
ক্লাইন্ট সাইড: শুধু ব্রাউজারে চলে
সার্ভার সাইড: সার্ভারে চলে, সাধারণত সার্ভার থেকেই কোড প্রসেস হয় (যেমন নোড জেএস) জাভাস্ক্রিপ্ট অনেক লাইটওয়েট, ক্রস প্ল্যাটফর্ম এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাংগুয়েজ।
লাইটওয়েট: জাভাস্ক্রিপ্ট মেশিনে খুব বেশি লোড নেয় না, আবার অনেক টেকনিকের কারণে অন্যান্য ল্যাংগুয়েজ থেকে বেশ ফাস্ট এক্সিকিউট হয়। ক্রস প্ল্যাটফর্ম কি আপনাকে শুধু একবার অ্যাপ্লিকেশন বানালেই চলবে। এর জন্য আপনাকে কোনো অপারেটিং সিস্টেম, ম্যাক না উইন্ডোজ না লিনাক্স না অন্য কিছুতে আপনার অ্যাপ্লিকেশন চলবে, সেটা ভাবার দরকার নেই। আমরা যেমন সব ওয়েবসাইটই সব অপারেটিং সিস্টেম থেকে অ্যাকসেস করতে পারি, তেমনি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনও। সব অপারেটিং সিস্টেমে চলবে। খুব বেশি মডিফাই বা একেকটা অপারেটিং সিস্টেমের জন্য একেকবার ডেভেলপ করার দরকার নেই।
অবজেক্ট ওরিয়েন্টেড:
জাভাস্ক্রিপ্টে বলতে গেলে সবকিছুই অবজেক্ট । যদিও জাভাস্ক্রিপ্টের অবজেক্ট মডেল একটু অন্য রকম। তবে এটাও অবজেক্ট ওরিয়েন্টেড। এ নিয়ে পরে বিস্তারিত আলোচনা করা হবে। আমরা অনেকেই জানি জাভাস্ক্রিপ্টে আছে বিশাল ফ্রেমওয়ার্ক আর লাইব্রেরির সমাহার। যেটা অবশ্যই ভালো কথা, কিন্তু আবার চিন্তারও কথা। তবে এটা নিয়ে চিন্তার কোনো দরকার নেই। বলতে গেলে বেশির ভাগ ফ্রেমওয়ার্ক বা লাইব্রেরিই একেকটা একেক কাজের জন্যে। তাই আপনি যা করতে চাচ্ছেন, সেটার সঙ্গে যে ফ্রেমওয়ার্ক বা লাইব্রেরি বেশি কাজে দেবে, সেটাই শেখা শুরু করুন।
আর এই ফ্রেমওয়ার্ক বা লাইব্রেরি কয়েক দিন পরপর আপডেট হয় বা আউটডেটেড হয় এমন কিন্তু না। ভালো করে খেয়াল করলে দেখবেন, পপুলার ফ্রেমওয়ার্কগুলো মার্কেটে অনেক দিন ধরেই আছে এবং থাকবে। আর না থাকলেও বা সমস্যা কই। আপনার কাজ হচ্ছে প্রথম জাভাস্ক্রিপ্ট শেখা শেষ করা তারপর আপনি যেকোনো ফ্রেমওয়ার্ক বা লাইব্রেরি শিখতে পারবেন সহজেই। আর আমি আগেও বলেছি, এখানে মূলত আসল কনসেপ্টগুলো একই থাকে। তাই ফ্রেমওয়ার্ক সুইচ করতেও বেশি সময় লাগে না বা তাতে সমস্যা হয় না।
তাই আপনার জন্য ভালো হবে কোনটা ধরব, কোনটা ধরব না ভেবে সোজা যেকোনো একটা দিয়ে শুরু করা। কিন্তু জাভাস্ক্রিপ্ট শিখব, আবার ফ্রেমওয়ার্ক শিখতে হবে কেন? হ্যাঁ, এটাও একটা ভালো প্রশ্ন মনে জাগতে পারে। সে জন্য আমাদের আগে জানতে হবে এই ফ্রেমওয়ার্ক বা লাইব্রেরি ব্যবহার করার সুবিধাটা কী। হ্যাঁ, জাভাস্ক্রিপ্টের ফ্রেমওয়ার্ক বা লাইব্রেরি ব্যবহার করে অনেক কাজ করা যায়, তবে সেইম কাজটা আপনি পিউর জাভাস্ক্রিপ্ট দিয়েও করতে পারতেন। কিন্তু তারপরও সবাই পিউর জাভাস্ক্রিপ্ট দিয়ে না করে ফ্রেমওয়ার্ক বা লাইব্রেরির সাহায্য নেয়। কারণ, এর অনেক দিক আছে, যে কারণে আপনিও ফ্রেমওয়ার্ক বা লাইব্রেরি ব্যবহার করবেন।
১। সহজ: আপনার যে কাজ করতে বছর থেকে বছর চলে যেতে পারে, সেগুলো ফ্রেমওয়ার্ক গুছিয়ে সহজ করে দেয়। সে ক্ষেত্রে আপনার বিহ্যাইন্ড দ্য সিনের অনেক কাজ করা লাগে না। অনেক কিছু রেডিমেট পাওয়া যায়।
২। সেইফ: ডেভেলপার কমিউনিটি অনেক বিশাল হওয়ায় সব ধরনের বাগই বলতে গেলে ধরা পড়ে এবং ফিক্স করা হয়ে যায়। তাই পপুলার ফ্রেমওয়ার্ক বা লাইব্রেরিগুলো
অনেকটাই সেইফ। কারণ, এরা লাখ লাখ ডেভেলপারদের দ্বারা, এমননি হ্যাকারদের দ্বারাও পরীক্ষিত।
৩। ওপেন সোর্স: সবচেয়ে বড় কথা হলো, বেশির ভাগ ফ্রেমওয়ার্ক বা লাইব্রেরিই একদম ওপেন সোর্স। তাই এর জন্য অতিরিক্ত কোনো খরচ করতে হয় না বা আপনার
অ্যাপ্লিকেশন সম্পূর্ণ আপনারই থাকে।জাভাস্ক্রিপ্ট এর জনপ্রিয় ফ্রেমওয়ার্ক এখনকার সময়ে অনেক ফ্রেমওয়ার্ক বা লাইব্রেরি বেশ পপুলার। আমি কয়েকটা নিয়ে নিচে আলোচনা করব:
১। নোড জেএস: জাভাস্ক্রিপ্টের সবচেয়ে পপুলার রানটাইম এনভারোমেন্ট এবং সবচেয়ে বেশি ব্যবহৃত। এটা সাধারণত সার্ভার সাইডে ব্যবহার করা হয়। নোড নিয়ে লিখতে গেলে আরও আলাদা কয়েকটা বই হয়ে যাবে। তবে আপনি জাভাস্ক্রিপ্ট শেখার পর ব্যাক- এন্ডে কাজ করতে চাইলে নোড জেএস আলাদা করে শেখা শুরু করতে পারেন।
২। রিঅ্যাক্ট জেএস: ফেসবুকের ডেভেলপারদের দ্বারা দেখাশোনা করা হয়। আসল কাজ ফ্রন্ট-এন্ড ডেভেলপমেন্ট। কম্পোনেন্ট বেইজ, লাইট, ঝামেলা কম, আলট্রা ফার্স্ট পারফরম্যান্স। অ্যাপিআই খুবই ছোট আর তাই তাড়াতাড়ি শেখা যায় এবং কাজও করা যায়।
৩। ভ্যু জেএস: ভ্যু জেমসও বেশ ভালো অবস্থাতে আছে। আসলে এটাও ফ্রন্ট-এন্ড ডেভেলপমেন্টে ব্যবহার করা হয়। শুরুতে সহজে শেখা যায় এবং শেষ কয়েক বছরে অনেক ব্যবহার হচ্ছে এই ভ্যু জেএস।
৪। অ্যাঙ্গুলার জেএস: গুগুল থেকে মেইনটেইন করা হয়। কয়েকটা ভার্সন আছে। প্রধানত ব্যবহার করা হয় ফ্রন্ট- এন্ড ডেভেলপমেন্টে।
৫। মেটেরর জেএস: মেটেওর ব্যবহার করে ক্লাইন্ট সাইডের সঙ্গে সার্ভার সাইডেও কাজ করা যায়। এর জন্য আপনাকে অন্য কোনো ল্যাংগুয়েজ (পিএচপি/রুবি/পাইথন)
ব্যবহার করতে হবে না। জাভাস্ক্রিপ্ট দিয়েই সার্ভার সাইডেও সেইম ফাংশানালিটি আর পারফরম্যান্সে কাজ করতে পারবেন।
৬। এম্বার জেএস: এটাও বেসিক্যালি এক-পেজের অ্যাপ্লিকেশন তৈরিতে ব্যবহার হয়।
৭। রিঅ্যাক্ট নেটিভ: জাভাস্ক্রিপ্ট আর রিঅ্যাক্ট ব্যবহার করে মোবাইল অ্যাপ বানাতে চান? হ্যাঁ, তাহলে রিঅ্যাক্ট নেটিভ আছে আপনার জন্য । রিঅ্যাক্ট নেটিভ দিয়ে পুরোপুরি নেটিভ এবং ক্রস প্ল্যাটফর্ম মোবাইল অ্যাপ বানাতে পারবেন।
৮। ব্যাবেল: ব্যাবেল সাধারণত ব্যবহার করা হয় ES6 কোড বা জাভাস্ক্রিপ্টের নতুন ভার্সনের কোডকে ES5 এ কনভার্ট করার জন্য । ES6 (এটা নিয়ে পরে আলোচনা করা হবে)
বিল গেটস এর জিবনী
ঘরে বসে মেয়েদের সহজে ইনকাম করার উপায়
ক্রোম ফ্ল্যাগস এর উপকারী ফিচার
ক্রোম ডেভেলপার কনসোল (Console)
জাভাস্ক্রিপ্টে কোড লেখার আগে ক্রোমের ডেভেলপার কনসোলের সঙ্গে সবাইকে পরিচয় করিয়ে দেব। ক্রোমের ডেভেলপার কনসোল আসলে অনেক পাওয়ারফুল। এর
অনেক কাজের মধ্যে জাভাস্ক্রিপ্ট কোড রান করাটাও একটা কাজ। ক্রোমের কনসোলের সাহায্যে সহজেই আমরা লাইন বাই লাইন কোড লিখে লিখে রান করতে পারি,যেটা আমরা প্রথমেই জেনেছি। যদিও আমরা নোড জেএস ব্যবহার করে কোড রান করাতে পারি, কিন্তু আমি রিকোমেন্ড করব জাভাস্ক্রিপ্ট শেখার সময় প্রথমে ক্রোমের কনসোল দিয়েই শুরু করুন। এটার বেশ কিছু সুবিধা রয়েছে, যেগুলো পরে আস্তে আস্তে আমরা দেখব। আর সে জন্যই এটার সাহায্যেই জাভাস্ক্রিপ্ট শেখাটা অপেক্ষাকৃত সহজ। আর আমরাও এই বইয়ে ক্রোমের ডেভেলপার কনসোল ব্যবহার করেই কাজ করব। কিন্তু আপনি চাইলেই সেইম জিনিস নোড জেএস ব্যবহার করেও করতে পারবেন।
ভ্যারিয়েবল এবং ডেটা টাইপ
ভ্যারিয়েবল হচ্ছে একটা পাত্রের মতো, যেখানে আপনি ‘কিছু’ রাখতে পারবেন। জাভাস্ক্রিপ্টে ‘কিছু’ বলতে অনেক কিছু। আপনি চাইলে নম্বর থেকে শুরু করে স্ট্রিং, অবজেক্ট, এমনকি ফাংশনও ভ্যারিয়েবলের মধ্যে সেভ করে রাখতে পারবেন। ভ্যারিয়েবল হলো ধরুন আপনি কথা বলছেন: ‘আব্দুল করিম সাহেব অনেক ভালো মানুষ,উনি অমুক কোম্পানিতে জব করেন।' এখন এখানে দেখুন: আপনি প্রথম ‘আব্দুল করিম সাহেব’-এর নাম বলছেন, কিন্তু দ্বতীয়বার কিন্তু বলেননি । দ্বিতীয়বার আব্দুল করিম হয়ে গেলেন ‘উনি’ । হ্যাঁ ভ্যারিয়েবল ও অনেকটা এ রকম । ধরুন:
a = Zonayed
a is from Bangladesh
ডেটা টাইপ:
জাভাস্ক্রিপ্টে প্রধানত দুই ধরনের ডেটা টাইপ আছে:
প্রিমিটিভ ডেটা টাইপ (Primitive Data Type)
নন-প্রিমিটিভ/রেফারেন্স ডেটা টাইপ