জাভা প্রোগ্রামিং (Java Programming)

জাভা হচ্ছে এক ধরনের প্রোগ্রামিং ভাষা। এটি একটি higher level language বা উচ্চ স্তরের প্রোগ্রামিং ভাষা, তাই এই প্রোগ্রামকে আমরা মানুষেরা সহজেই বুঝতে পারি। জেমস গোসলিং কে জাভা প্রোগ্রামের জনক বলা হয়। C এবং C++ প্রোগ্রামিং ভাষা ব্যবহারে কিছু অসুবিধা থাকায় জাভা প্রোগ্রামিং ভাষাকে তৈরি করা হয়েছিলো। জাভা প্রোগ্রামিং এর একটা বড় সুবিধা হচ্ছে এটিকে যেকোনো অপারেটিং সিস্টেম দিয়ে চালানো যায়। অর্থাৎ আমরা যদি একটা অপারেটিং সিস্টেমে জাভা প্রোগ্রামকে লিখি, তবে অন্য অপারেটিং সিস্টেমে সেই প্রোগ্রামটা সহজেই সাপোর্ট করবে।

কেনো জাভা প্রোগ্রামকে ব্যবহার করা হয়?

  • এটি খুব সহজে বুঝা যায়। যেকোনো প্রোগ্রামার খুব সহজেই একটি জাভা-ফাইল দেখে বুঝতে পারবে আসলে এখানে কি কি জিনিস লেখা আছে।
  • C কিংবা C++ নিয়ে কোড করার সময় আমাদের Linking, Optimization, Memory Allocation, Memory de-allocation ইত্যাদি জিনিসগুলো নিয়ে ভাবতে হয়। কিন্তু জাভার ক্ষেত্রে এগুলো ভাবা লাগে না। জাভাতে যে কম্পাইলার কাজ করে সেটি নিজে নিজেই এই কাজগুলো করে ফেলে।
  • এটি খুব ভালো পারফরমেন্স দেখায়।
  • ইন্ডাস্ট্রি কিংবা বড় বড় এন্টারপ্রাইজের অ্যাপ গুলো জাভা দিয়ে লেখা হয়।
  • এটি পৃথিবীতে দ্বিতীয় জনপ্রিয় ল্যাংগুয়েজ
  • জাভা প্রোগ্রামের সাথে আরও অনেকগুলো ল্যাংগুয়েজ যেমন- গ্রুভি, স্ক্যালা ইত্যাদি কাজ করতে পারে।
  • এটি একটি Object Oriented Type প্রোগ্রামিং ল্যাংগুয়েজ।
 

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

C কিংবা C++ প্রোগ্রামিং ভাষাগুলোকে যখন একটা নির্দিষ্ট অপারেটিং সিস্টেমে নিয়ে লেখা হয় তখন সেটা ঐ অপারেটিং সিস্টেমের মধ্যেই রান করে বা কাজ করে। কিন্তু সেই প্রোগ্রামকে যদি অন্য অপারেটিং সিস্টেমে নিয়ে রান করানো হয় তবে সেটা চলবে না। C এবং C++ প্রোগ্রামের একটা বড় অসুবিধা হচ্ছে এটি। কিন্তু Java প্রোগ্রামে একটা আলাদা অপশন থাকে যার নাম – Java Virtual Machine (JVM). এটি যেকোনো অপারেটিং সিস্টেমে থাকা অবস্থায় জাভা প্রোগ্রামকে নিয়ে নেয় এবং সেই অপারেটিং সিস্টেমে কাজ করার জন্য জাভা প্রোগ্রামকে প্রস্তুত করে। কাজেই Windows, Linux এবং MAC যেকোনো অপারেটিং সিস্টেমের জন্য একই ধরনের জাভা প্রোগ্রাম JVM এর সাহায্যে রান করবে।

যেকোনো অপারেটিং সিস্টেমে JVM ব্যবহারের মাধ্যমে জাভা প্রোগ্রাম কাজ করে বলে একে Platform Independent Program বলা হয়।

জাভা কোনো কোডকে কম্পাইল করলে সেটি প্রথমে Intermediate language-এ রূপান্তরিত হয়। এটি মানুষ এবং কম্পিউটার কেউই পড়তে পারে না। এর নাম হচ্ছে বাইট কোড (Byte Code)। এই কোডকে শুধুমাত্র জাভা ভার্চুয়াল মেশিন (JVM) বুঝতে পারে। JVM এই বাইট কোডকে অনুবাদ করে মেশিন চাষায় কনভার্ট করে। তাহলে বলা যায়, জাভাতে লেখা কোডকে প্রথমে কম্পাইল করা হয়, তারপর সেই কম্পাইল করা আউটপুটকে interpreter বা অনুবাদ করা হয়। অর্থাৎ, Java একইসাথে Complied Language এবং Interpreted Language হিসেবে কাজ করে।

এবার আমরা জাভা প্রোগ্রামে কাজ করে এমন তিনটা জিনিস নিয়ে জানবো-

১. বাইট কোড এটি এক ধরণের instruction set, যেটিকে শুধুমাত্র জাভা ভার্চুয়াল মেশিন বুঝতে পারে। আমরা যে কোড গুলো জাভা প্রোগ্রামিং ভাষায় লিখবো সেগুলো কে জাভা কম্পাইলার দ্বারা কম্পাইল করলে বাইটকোড তৈরি হবে। এই বাইটকোড গুলো .class এক্সটেনশন যুক্ত ফাইলে স্টোর করতে হবে।

২. জাভা ভার্চুয়াল মেশিন (JVM) সোজা কথায় বলতে গেলে এটি একটা বাস্তব মেশিনের ভেতর একটা কাল্পনিক মেশিন। অর্থাৎ এটি একটি সফটওয়্যার যেটা বাইট কোড পড়ে এবং সেগুলোকে Machine Executable Code-এ কনভার্ট করতে পারে। JVM কে অনেকগুলা অপারেটিং সিস্টেমের জন্যে লেখা হয়েছে যেমন windows, MAC OS, Linux, IBM mainframes ইত্যাদি। এর ফলে, আমরা যদি কোনো জাভা প্রোগ্রাম লিখি, সেটি যেকোনো কম্পিউটারের অপারেটিং সিস্টেমে চালানো যাবে। যেহেতু সব অপারেটিং সিস্টেমের জন্যেই JVM আছে, তাই আমাদের কোড সব অপারেটিং সিস্টেমেই একই জাভা প্রোগ্রাম চলবে। তাই জাভা প্রোগ্রামকে – “Write once, run anywhere” বা WORA বলা হয়।

৩. জাস্ট ইন টাইম (JIT) কম্পাইলার – এটি হচ্ছে JVM এর একটা অংশ। আমরা যে জাভা কোড কম্পাইল করার সময় লিখি সেগুলো JIT কম্পাইলার প্রসেসিং করে। JIT কে dynamic translator-ও বলা হয়, কারণ এটি প্রোগ্রাম চলাকালীন সময়ে বাইটকোডকে প্রসেস করে।

কম্পিউটারে জাভা প্রোগ্রাম চালানোর জন্য দুটো বেসিক সফটওয়্যার দরকার হয়। এরা হচ্ছে-

  • JDK (Java Development Kit)
  • IDE (Independent Development Environment)

এই সফটওয়্যার গুলোতে কিভাবে জাভা প্রোগ্রাম লিখতে হয় সেগুলো আমরা পরবর্তীতে ধাপে ধাপে শিখবো।

পড়াশোনা সংক্রান্ত বিভিন্ন বিষয় নিয়ে শত শত ভিডিও ক্লাস বিনামূল্যে করতে জয়েন করুন আমাদের Youtube চ্যানেলে-

www.youtube.com/crushschool

ক্রাশ স্কুলের নোট গুলো পেতে চাইলে জয়েন করুন আমাদের ফেসবুক গ্রুপে-

www.facebook.com/groups/mycrushschool

Emtiaz Khan

A person who believes in simplicity. He encourages the people for smart education. He loves to write, design, teach & research about unknown information.