কোন কিছু পড়ার বা শেখার আগে সেই বিষয়ের ইতিহাস পড়তে আমার খুব ভালো লাগে। আমার কাছে মনে হয় এটা খুবই ভালো অভ্যাস। কেননা যখন একটা বিষয়ের ইতিহাস কিংবা শুরুর গল্পটা জানা থাকে তখন বিষয়টি সম্পর্কে আগ্রহ আরো বেশি পাওয়া যায়। যখন জাভা প্রোগ্রামিং ভাষা শিখতে শুরু করলাম তখনই আমি ইন্টারনেট থেকে এই ভাষায় সৃষ্টি সম্পর্কে ইতিহাস জেনে নিলাম।
আহা ! কিভাবে আজ থেকে ২৫ বছর আগে ভাষা প্রোগ্রামিং ভাষা তৈরি হয়েছিল? এই ভাষা ব্যবহার করে বর্তমানে ১৫ বিলিয়নের বেশি যন্ত্র চলছে।
খুব ভয়ংকর সময় পার করছে পুরো পৃথিবী। কারোনার কারণে বিশ্ব থমকে আছে। বাংলাদেশে চলছে ১০ দিনের লকডাউন। আমি বাসায় বসে আছি। ভাবলাম এই সময়টা জাভা প্রোগ্রামিং ভাষাটা শিখে ফেলি। সেই ভাবনা সেই কাজ। গত ৭ দিন ধরে একের পর এক জাভার বেসিক বিষয়গুলো সম্পর্কে পড়ছি ও শিখছি।

বহুদিন আগে জাভা পড়েছিলাম, প্রায় সব ভুলে গিয়েছিলাম। বিষয়গুলো নতুন করে জ্বালাই করে নিচ্ছি। ভাবলাম আমি যা পড়ছি বিষয়গুলো টেক কাল্টে লিখি রাখি। হয়ত অনেকেই উপকার হবে আর আমার একটা রিভিশন হয়ে যাবে। পরবর্তীতে ভিডিও তৈরি করার ইচ্ছা আছে। টেক কাল্ট এর ইউটিউব চ্যানেলটি সাবস্ক্রাইব করে রাখতে পারেন।
সেই ভাবনা থেকে জাভা নিয়ে সিরিজি লেখা শুরু করলাম। এটি প্রথম পর্ব। সেখানে জাভার ইতিহাস সম্পর্কে তুলে লিখব। তো আজাইরা কথা বাদ দিয়ে এবার শুরু করে মূল বিষয়।
এক নজরে সূচী
শুরুর কথা
আমার জন্মের আগের ঘটনা। সাল হলো ১৯৯০। সেই সময় প্রযুক্তি প্রতিষ্ঠান সান মাইক্রোসিস্টেম খুব ঝামেলায় পরলো। প্রতিষ্ঠানটির কর্মকতার দেখলো তাদের বেশিভাগ সিস্টেমে ব্যবহার করা হয়েছে সি প্রোগ্রামিং ভাষায়। কিন্তু সেই সময় সি++ এর জয়জয়কার। সিতে কিছু লিমিটেশন থাকায় প্রতিষ্ঠানটির হার্ডওয়্যাড সিস্টেমে সমস্যা দেখা দিলো।
সেই সময় সান মাইক্রোসিস্টেমে কাজ করতেন প্যাট্রিক নটন নামে এক প্রকৌশলী। ভালো কাজের জন্য তার নামডাক ছিল। কোম্পানির খারাপ অবস্থা দেখে তিনি সিন্ধান্ত নিলেন চাকরি ছেড়ে দিবেন।

পরের দিন যথারীতি প্যাট্রিক অফিসে আসলেন। অফিস কর্তৃপক্ষ হঠাৎ জরুরি সভা ডাকলো। সেখানে প্যাট্রিককে গোপন একটি প্রজেক্টের দায়িত্ব দেয়া হয়। প্যাট্রিক নতুন যে কোন চ্যালেঞ্জিং প্রজেক্টে কাজ করতে খুবই আগ্রহী। খুশি মনে গোপন প্রজেক্টটির দায়িত্ব নিলেন।
গোপন প্রজেক্টের প্রধান উদ্দেশ্য ছিলো সি++ থেকে শতগুন ভালো একটি প্রোগ্রামিং ভাষা তৈরি করা, যা হবে দ্রুত এবং শক্তিশালী।
পরবর্তীতে এই প্রজেক্টে যোগ করা হয় জেমস গসলিং, ত্রিস ওয়ার্থ, এড ফ্রাঙ্ক ও মাইক শেরিডানকে। ১৩জন কর্মীকে দায়িত্ব দেয়া হয় এই প্রজেক্টের।

শুরু হলো কাজ
১৩ জন ইঞ্জিনিয়ার দিন রাত পরিশ্রম শুরু করেন। এমনও হয়েছে সারাদিন কাজ করে রাতে ২-৩ ঘন্টা ঘুমিয়ে পারেদিন সবাই আবার কাজে লেগে পরেছিল। সবাই ভিন্ন ভিন্ন মতামত দিতে থাকে। ১৩ জন ইঞ্জিনিয়ার প্রথমদিকে নাম দেয়া হয় ‘গ্রিন প্রজেক্ট। পরে নাম বদলে দেয়া হয় ‘গ্রিন টিম’।
এর মাঝে জেমস গসলিং সরাসরি কাজ করছিলেন একদম সি++ নিয়ে। তিনি ঐ ভাষাতে কিছু নতুন সুযোগ সুবিধা যুক্ত করলেন আর কিছু বদলে দিলেন বা মুছে ফেললেন। এই মুছে ফেলা আর যোগ করার জন্য তিনি এর নেম দেন “সি++ ++ –।
একটি প্রোগ্রামিং ভাষায় নাম যদি সি++– হয় তাহলে শুনতে মন্দ শোনায়। এছাড়া উচ্চারণ করাটাও কঠিন হয়ে পারে। কি নাম দেয়া যায় তা নিয়ে ইঞ্জিনিয়াররা চিন্তা করতে থাকেন।
জেমস গসলিংয়ের অফিসের ডেস্কটা জানালারা পাশে। কাজ করতে কারতে যখন তিনি কান্ত হয়ে যেতো তখন জানালা দিয়ে বাহিরে তাকিয়ে থাকতো। জানালা দিয়ে বাহিরে তাকলেই একটু ওক গাছ দেখা যায়।

‘ওক’ নামটা সুন্দর এবং ছোট। গসলিংয়ের মনে হলো সি++– না রেখা নতুন প্রোগ্রামিং ভাষার নামটা ওক রাখলে মন্দ হয় না।
বাকি ইঞ্জিনিয়ারদের ডেকে ‘ওক’ নামের কথা জানানলো গসলিং। নামটা সবার পছন্দ হলো। তারপর নতুন প্রোগ্রামিং নামকরন করা হলো ‘ওক’ নামে।
এলো সফলতা
জেমস গসলিং ও তার দল ওক নিয়েও বেশ ভালো রকম এগিয়ে গেছেন। এদিকে সানের হর্তাকর্তারা ভাবলেন গ্রিন টিম কেমন করছে তার পরীক্ষা হয়ে যাক। এম্বেডেড সিস্টেমের সমস্যা সমাধানে তাদের ডাক পড়ে। মূলত এম্বেডেড সিস্টেমে কত মেমোরিতে অধিক প্রসেসিং সিস্টেম নিয়ে কাজ করতে বলা হয়েছিল ওক দিয়ে। কিন্তু এম্বেডেড সিস্টেমের সমস্যা সমাধানে ব্যর্থ হয় ওক।
পুরো টিমের মন খারাপ। তবুও কাজ থেমে রাখেন নি গসলিং। কিন্তু নানা পরীক্ষা নিরীক্ষা করতে থাকে। কয়েকদিন পরে তিনি ভার্চুয়াল মেশিন (জেবিএম) ধরনা আবিষ্কার করেন।
যারা কম্পিউটার সায়েন্স পড়াশুনা করেছিলেন তারা হয়ত পরীক্ষায় একটি প্রশ্ন উত্তর দিয়েছিল সেটি হলো ভার্চুয়াল মেশিন কি এবং কিভাবে কাজ করে।

জাভা ভার্চুয়াল মেশিন বা JVM-কে বলা হয় একটি “ভার্চুয়াল” কম্পিউটার যা “বাস্তব” কম্পিউটারের সাথে অবস্থান করে একটি সফ্টওয়্যারের প্রক্রিয়া হিসাবে। এটি জাভা প্রোগ্রামকে দেয় প্ল্যাটফর্ম স্বাধীনতা এবং সব প্লাটফরম তথা সব অপারেটিং সিস্টেমে চলার স্বতঃস্ফূর্ততা।
জাভা কোড .জাভা ফাইলে লেখা হয়। এই কোডে জাভা ল্যাংগুয়েজ এর এক বা একাধিক বৈশিষ্ট্য যেমন ক্লাস,মেথড, ভ্যারিয়েবল,অবজেক্ট প্রভৃতি থাকে। জাভা কম্পাইলার এই কোড কম্পাইল করে .ক্লাস ফাইল তৈরি করে। এই .ক্লাস ফাইল বাইটকোড ধারণ করে। জাভা বাইটকোড জাভা ভার্চুয়াল মেশিনের এর একটি ইনপুট। JVM এই কোড পড়ে তারপর ইন্টারপ্রেট করে এবং সবশেষে প্রোগ্রাম রান করে। ভার্চুয়াল মেশিনের এই ধারণাই জাভাকে করেছে বিখ্যাত।
ওক থেকে জাভা নামকরণ
সফলতা আসার পরে গ্রিন টিমের দলের সদস্য চিন্তা করতেছিল ওক ভাষাকে উন্মুক্ত করে দিবে। কিন্তু একদিন সকালে এক আইনজীবী এসে জানায়, ওক নামটি ব্যবহার করতে পারবো না। কারণ সেটা ছিলো ওক টেকনোলজি এর ট্রেডমার্ক।
জেমস গসলিং ও দলের সবাই আবার নাম নিয়ে চিন্তায় পরে গেল। সবাই মিলে নতুন আরো নাম নিয়ে ভাবতে থাকেন। এক সভার কয়েকটি সম্ভাব্য নাম নিয়ে বসেন সবাই। সেই নামগুলো ছিল এমন : নিওন, সিল্ক , ডিএনএ,, রুবি, পেপার, নেটপ্রোস,, জাভা, লাইরিক ইত্যাদি। পরবীর্তে জাভা নামটি নির্ধারন করা হয়। কারণ এই নামটিই একমাত্র নাম ছিলো, যা নিয়ে ট্রেডমার্কজনিত কোনো সমস্যা হচ্ছিলো না।
জাভার বর্তমান ব্যবহৃত লোগোতেও এই কফির ধারণা পাওয়া যায়। কারণ জাভার লোগো খেয়াল করে দেখলে ঠিক যেন জেমস গসলিংয়ের টেবিলে থাকা একটি ধোঁয়া ওঠা গরম কফির কাপের প্রতিচ্ছবি ভেসে ওঠে।
১৯৯৫ সালের মে মাসে জাভার প্রথম সংস্করণ সবার জন্য উন্মুক্ত করা হয়। দুই যুগ পার হবার পরও আবেদন একবিন্দু কমেনি। পৃথিবীতে প্রায় ১৫ বিলিয়ন ডিভাইসে জাভা চলে। এছাড়া জাভা দিয়ে স্মার্টফোন থেকে শুরু করে সার্ভার, এটিএম মেশিন, মেডিকেল ডিভাইস, অটোমোবাইল এবং আরও অনেক কিছুতে প্রোগ্রাম করা যায়।
[…] আগে আমরা জেনে ছিলাম জাভার ইতিহাস সম্পর্কে। এই পর্বে জাভাতে প্রথম প্রোগ্রাম […]