image-ru-00-18

"হাই, অ্যামিগো। আমার নাম প্রফেসর হ্যান্স নুড্​লস। আমি এখানে গ্যালাক্টিক রাশের সায়েন্টিফিক কাউন্সিলের প্রধান। আমি তোমাকে জাভা প্রোগ্রামিং শেখানোর জন্য আমাদের প্রচেষ্টার তত্ত্বাবধানও করি।"

"হ্যালো, প্রফেসর নুড্​লস।"

"আমি তোমাকে ব্যাখ্যা করতে চাই, জাভা কেন এত ভাল প্রোগ্রামিং ল্যাঙ্গুয়েজ।"

"তুমি একাধিক বার শুনে থাকবে যে, জাভার অতুলনীয় সুবিধা হল এর প্ল্যাটফর্ম নিরপেক্ষতা। সেটা কী এবং কিসের জন্য, তুমি কি জানতে চাও? একটি পরোক্ষ পথ নেওয়া যাক।"

"কম্পিউটার শুধুমাত্র সহজতম সংখ্যাগত কম্যান্ড সম্পাদন করতে পারে। কুকুরদের প্রশিক্ষণ দেওয়ার সময় আমরা কুকুরকে দিয়ে যা কিছু করাতে চাই তা করাতে অনুসরণ করো', 'ঝাঁকাও' ইত্যাদি কম্যান্ড ব্যবহার করি।"

"কম্পিউটারের ক্ষেত্রে সংখ্যা এ ধরনের কম্যান্ডের ভূমিকা পালন করে। প্রতিটি কম্যান্ডকে কোনো নির্দিষ্ট সংখ্যা বা কোড দিয়ে উপস্থাপন করা হয় (কখনও কখনও মেশিন কোড বলা হয়)।"

"কিন্তু শুধু্মাত্র সংখ্যা ব্যবহার করে কোনো প্রোগ্রাম লেখা সত্যিই কঠিন, তাই মানুষ প্রোগ্রামিং ল্যাঙ্গুয়েজকম্পাইলার আবিষ্কার করেছে। মানুষ ও কম্পাইলার উভয়ই প্রোগ্রামিং ল্যাঙ্গুয়েজ বুঝতে পারে। কম্পাইলার হল একটি বিশেষ প্রোগ্রাম, যা কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজে লেখা প্রোগ্রামকে ধারাবাহিক মেশিন কোডে রূপান্তরিত করে।"

" প্রোগ্রামার সাধারণতঃ কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজে একটি প্রোগ্রাম লেখেন এবং তারপর কোনো কম্পাইলার চালান, যা প্রোগ্রামারের লিখিত প্রোগ্রাম কোড ফাইলগুলোকে মেশিন কোডসহ একটিমাত্র ফাইলে রূপান্তরিত করে - যা হল চূড়ান্ত (কম্পাইল করা) প্রোগ্রাম।"

  • C++ এ প্রোগ্রাম
  • কম্পাইলার
  • মেশিন কোড

"ফলস্বরূপ প্রোগ্রামকে অবিলম্বে কম্পিউটারে চালানো যায়। খারাপ খবর হল এই যে, প্রসেসর ও অপারেটিং সিস্টেমের ওপর চূড়ান্ত প্রোগ্রামের কোড দারুনভাবে নির্ভর করে। অর্থাৎ, উইন্ডোজ-এর জন্য কম্পাইল করা কোনো প্রোগ্রাম কোনো অ্যান্ড্রয়েড স্মার্টফোনে কাজ করবে না।"

"তাহলে আমি অ্যান্ড্রয়েডের জন্য কোনো প্রোগ্রাম লিখে তা কম্পাইল করলে সেটি উইন্ডোজ-এ কাজ করবে না?"

"একদম ঠিক।

"বুঝেছি।"

"তবে জাভা আরো অনেক বেশি উদ্ভাবনী একটি পন্থা ব্যবহার করে।"

  • জাভা য় প্রোগ্রাম
  • জাভা কম্পাইলার
  • বিশেষ প্ল্যাটফর্ম নিরপেক্ষ কোড (বাইটকোড)
  • JVM
  • মেশিন কোড

"জাভা কম্পাইলার সবগুলো ক্লাসকে একটি মেশিন-কোড প্রোগ্রামে কম্পাইল করে না। এর পরিবর্তে এটি প্রতিটি ক্লাসকে স্বতন্ত্রভাবে কম্পাইল করে এবং মেশিন কোডে নয়, বরং বিশেষ এক মধ্যবর্তী কোডে (বাইটকোড) পরিণত করে। প্রোগ্রাম চালু করার পর বাইটকোডকে মেশিন কোডে কম্পাইল করা হয়।"

"তাহলে প্রোগ্রামটি চালানোর সময় কে সেটিকে মেশিন কোডে কম্পাইল করে?"

"জাভা ভার্চুয়াল মেশিন (JVM) নামে একটি বিশেষ প্রোগ্রাম আছে। তুমি কোনো বাইটকোড প্রোগ্রাম চালাতে চাইলে তোমাকে অবশ্যই প্রথমে এটা শুরু করতে হবে। প্রোগ্রামটি চালানোর আগে JVM বাইটকোডকে মেশিন কোডে কম্পাইল করবে।"

"আগ্রহজনক। এটি কেন প্রয়োজন হয়?"

"এটি খুবই শক্তিশালী পদ্ধতি এবং জাভার পূর্ণ আধিপত্যের অন্যতম কারণ।"

"এই পদ্ধতি জাভায় লেখা প্রোগ্রামগুলোকে প্রায় যে কোনো যন্ত্রেই চালানোর সুযোগ করে দেয়: কম্পিউটার, স্মার্টফোন, ATM, টোস্টার অথবা এমন কি ক্রেডিট কার্ডও!"

"দারুন!"

"এই পদ্ধতির অনেক সুবিধা আছে। এ কারণেই সব অ্যান্ড্রয়েড প্রোগ্রামও জাভায় লেখা হয়। মোবাইল ফোন শিল্পের দ্রুত প্রবৃদ্ধির কারণে নিচের ক্ষেত্রগুলোতে জাভা প্রোগ্রামিং আধিপত্য বিস্তার করছে:

1) এন্টারপ্রাইজ: ব্যাঙ্ক, কর্পোরেশন, বিনিয়োগ তহবিল ইত্যাদির জন্য ভারি সার্ভার-ভিত্তিক অ্যাপ্লিকেশন।

2) মোবাইল: অ্যান্ড্রয়েডের সৌজন্যে মোবাইলের বিকাশ (স্মার্টফোন, ট্যাবলেট)।

3) ওয়েব: PHP নেতৃত্বে রয়েছে, তবে জাভা বাজারের একটি বড় অংশ দখল করেছে।

4) বড় আকারের ডেটা: কয়েক হাজার সার্ভার নিয়ে গঠিত গুচ্ছ গণনা ব্যবস্থা।

5) স্মার্ট ডিভাইস: স্মার্ট বাড়ি, ইলেকট্রনিক যন্ত্র, IoT রেফ্রিজারেটর ইত্যাদির জন্য প্রোগ্রাম।"

"জাভা শুধু একটি ল্যাঙ্গুয়েজ নয়, বরং এক ধরনের ইকোসিস্টেম: লক্ষ লক্ষ তৈরি মডিউল যা তুমি তোমার প্রোগ্রামে ব্যবহার করতে পারো; কয়েক হাজার অনলাইন কমিউনিটি ও মেসেজ বোর্ড যেখানে তুমি সাহায্য বা পরামর্শ পেতে পারো।"

"তুমি জাভায় যত বেশি প্রোগ্রাম লিখবে, 'জাভা কেন?' প্রশ্নটির তত বেশি উত্তর খুঁজে পাবে। আজকের মত এটুকুই।"

"প্রফেসর, আপনাকে ধন্যবাদ। এটা সত্যিই আগ্রহজনক ও অনুপ্রেরণামূলক ছিল।"