আসুন শিখি পরিপূর্ণ জাভা [পর্ব-১] :: java কি? আসুন জানি জাভার ইতিহাস

বিসমিল্লাহির রহমানির রহিম

আস সালামু আলাইকুম, আশা করি সবাই ভাল আছেন। আলহামদুলিল্লাহ আমিও ভাল আছি। আর তাই  আজ আপনাদের সামনে হাজির হলাম এমন একটি চেইন টিউন নিয়ে যেটা খুবই গুরুত্বপূর্ণ। যারা প্রোগ্রামিং শিখতে আগ্রহী কিন্তু জাভার তেমন বাংলা ভাল কোনো বই খুঁজে পাচ্ছে না বা বই পড়েও অনেক কিছু বুঝতে পারতেছে না আমার মনে হয় তাদের জন্য এই টিউনগুলি খুবই উপকারী হবে। অনেকেই কোর্স করতে চায় জাভার। কিন্তু সামর্থ্য না থাকার কারণে সেটাও হয় না। আবার দেখবেন যে, বেশ কিছু ওয়েবসাইটে জাভার অনেক টিউন বা টিউটোরিয়াল আছে। তবে সেগুলো পরিপূর্ণ না। তাই আমি চাচ্ছি সবাই পরিপূর্ণভাবে জাভাকে জানুক।  যাইহোক, আমি যে জাভার বস, কিংবা জাভা এক্সপার্ট তা কিন্তু নয়। আমিও আপনার মত জাভা শিখতেছি। এমনকি একটা কোর্স ও করতেছি। তাহলে কেন লিখতে আসলাম? আসলে আমি চাই আমি যা শিখতেছি তা যেন সবাই শিখতে পারে। আমি যা বুঝতেছি তা যেন সবাই বুঝতে পারে। আসলে আমি মনে করি আমরা সবাই ভাই ভাই। আর আমরা সবাই এক ফ্যামিলির সন্তান। কারণ আমরা সবাই টেকনোলজিকে ভালবাসি। তাই আমি যেটুকু জানি আমি চেষ্টা করবো আমার জ্ঞানের সবটুকু দিয়ে আপনাদেরকে বিষয়গুলো বুঝাতে। যদি না বুঝেন তাহলে টিউমেন্ট বক্স তো আছেই। কোনো প্রশ্নের উত্তর যদি আমি না জানি তাহলে আমি কখনই আপনাদেরকে ভুল রিপ্লাই দিবো না। বরং বিভিন্ন সোর্স থেকে সেই বিষয়ে জেনে আপনাদেরকে জানানোর চেষ্টা করবো। আর আমি জানি এমন অনেক প্রশ্ন হতে পারে যেটার উত্তর হয়ত আমার জানা নাও থাকতে পারে। তো সে ক্ষেত্রে যারা জানেন তারা উত্তর টা দিয়ে দিবেন বলে আশা করি। কারণ আমি মনে করি আপনি আমার থেকেও ভাল জানেন। যাইহোক, তো চলুন আমরা আজকের টপিক্সে চলে যাই...

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

জাভা কি ?

জাভা প্র্যাক্টিস করতে এসেছি। এখন যদি আপনাকে কেউ প্রশ্ন করে যে জাভা কি? তাহলে আপনি কি উত্তর দিবেন? আমি জানি আপনি হয়ত উত্তরটা জানেন। তবে আরেকবার জেনে নিলে দোষ কোথায়?

আসলে জাভা হচ্ছে একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং একটা প্ল্যাটফর্ম। জাভা একটি উচ্চ লেভেলের, অত্যন্ত শক্তিশালী, সিকিউর এবং অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ।

প্রোগ্রামিং ল্যাঙ্গুয়েজ বুঝলাম। কিন্তু প্লাটফর্ম জিনিসটা কি সেটা তো বুঝলাম না ? 

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

আসলে যেকোনো হার্ডওয়্যার বা সফটওয়্যার এনভায়রনমেন্ট যেখানে প্রোগ্রাম রান করা যায় সেটাকেই প্লাটফর্ম বলা হয়। যেহেতু জাভার নিজস্ব রান টাইম এনভায়রনমেন্ট JRE এবং এপিআই রয়েছে তাই এটাকেও প্লাটফর্ম বলা হয়।

আসুন দেখে নেই জাভা আসলে দেখতে কেমন

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

 

class Simple{
public static void main(String args[]){
System.out.println("Hello Java");
}
}

কিভাবে কি হল সেটা পরে বুঝাবো। যাদের দেখতে মন চেয়েছে শুধু তাদেরকে দেখালাম।

আচ্ছা, একটা প্রশ্ন করি আপনাকে? আপনি জাভা কেন শিখবেন?

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

কেন শিখবেন জাভা? কোথায় এর ব্যবহার ?

 

আপনার যেকোনো জিনিস শেখার আগে ভাবতে হবে যে আসলে আপনি কেন সেই জিনিসটা শিখবেন। যদি কোনো জিনিসের ব্যবহার না থাকে তাহলে সেগুলো শেখারই দরকার নাই। মনে করেন সেই শিক্ষাটা হবে এমন যে, আপনি বাংলাদেশ থেকে পানি নিয়ে মরুভুমিকে ঠান্ডা করার জন্য পানি ঢালছেন আর ঢালছেন। কিন্তু পরিশেষে, কোনো লাভই হবে না। আচ্ছা, চলুন জেনে নিই কোথায় এর ব্যবহার হয়। সানের দেয়া তথ্য অনুযায়ী ৩বিলিয়ন ডিভাইসে এখন জাভা রান হচ্ছে। কি বুঝলেন? এটা কি আপনার শেখা দরকার। আচ্ছা চলুন জেনে নেয়া যাক বর্তমানে কোন কোন ক্ষেত্রে জাভা ব্যবহার করা হয়েছে তা কয়েকটি সম্পর্কে...

  • ডেক্সটপ অ্যাপ্লিকেশন যেমন, ধরেন acrobat reader, media player, antivirus ইত্যাদি ক্ষেত্রে।
  • ওয়েব অ্যাপ্লিকেশন এর ক্ষেত্রে যেমন, ধরেন irctc.co.in এর মত বিভিন্ন ওয়েবসাইটে
  • ব্যাংকিং অ্যাপ্লিকেশন এর মত এন্টারপ্রাইজ অ্যাপ্লিকেশন এর ক্ষেত্রে।
  • মোবাইল ডিভাইসের ক্ষেত্রে
  • এম্বেডেড সিস্টেমে
  • স্মার্ট কার্ডে
  • রোবোটিক্স এ
  • গেমস তৈরিতে
  • ইত্যাদি ইত্যাদি। সব কথা বলে না হৃদয়, কিছু কথা বুঝে নিতে হয়। মানে এর ব্যবহারের ক্ষেত্র অনেক ব্যাপক।তাই আপনি চাইলে এই ল্যাংগুয়েজ শিখতে পারেন।

উপরে তো অনেক কথাই বললাম। জানি অনেকের মনে কিছু প্রশ্ন আছে। কি আছে সেটা বললাম না।তবে এটা বলতে পারি নিচের অংশটুকু পড়লে আর সেই প্রশ্নগুলো থাকবে না।

জাভা অ্যাপ্লিকেশন কত প্রকার?

মূলত জাভা অ্যাপ্লিকেশন ৪প্রকার যেগুলো জাভা প্রোগ্রামিং দিয়ে তৈরি করা।

১। Standalone application

এগুলোকে এক কথায় বলতে গেলে ডেক্সটপ অ্যাপ্লিকেশন বা উইন্ডোজ বেইজড অ্যাপ্লিকেশন বলা যায়। যেমন ধরুন, মিডিয়া প্লেয়ার এন্টিভাইরাস ইত্যাদি। AWT এবং swing ব্যবহার করা হয় standalone অ্যাপ্লিকেশন তৈরি করতে।

২। web application

যেই সফটওয়ারগুলো সার্ভার সাইডে এবং ডায়নামিক পেইজ তৈরিতে ব্যবহৃত হয় তাদেরকে ওয়েব অ্যাপ্লিকেশন বলা হয়। বর্তমানে servlet,jsp,struts, jsf ইত্যাদি টেকনোলজি ব্যবহৃত হয় জাভা দিয়ে ওয়েব অ্যাপ্লিকেশন তৈরিতে।

৩। Enterprise Application

এটা একটি আলাদা ধরণের অ্যাপ্লিকেশন যেমন ধরুন ব্যাংকিং এর এপ্লিকেশন। এছাড়া বাংলালিংক বা গ্রামীনফোন যেই সফটওয়্যার এর মাধ্যমে তাদের লেনদেন কাজ করে থাকে সেটাও এন্টারপ্রাইজ সফটওয়্যার। এধরণের সফটওয়্যার উচ্চ সিকিউরিটী সম্পন্ন, অধিক লোড এর ব্যালেন্স  করতে পারে।

৪। Mobile Application

বর্তমানে মোবাইল অ্যাপ্লিকেশন তৈরিতেও জাভা ব্যবহৃত হচ্ছে।

এছাড়া এর বিভিন্ন প্লাটফর্ম বা ইডিশন আছে যেগুলো সময় পেলে পরবর্তী টিউনে আলোচনা করবো। আশা করি বুঝতে পেরেছেন আপনি কেন জাভা শিখবেন।

জাভা শিখার জন্য পূর্বশর্তঃ

অবশ্যই সি/সি++ প্রোগ্রামিং ল্যাংগুয়েজ সম্পর্কে বেসিক ধারণা থাকতে হবে। ধারনা না থাকলে যে, একেবারেই পারবেন না তা কিন্তু না। তবে ধারণা থাকলে আপনার বুঝতে সহজ হবে।

আপনারা জানেন চেইন টিউনে আমার প্রথম টিউনটা একটু বেশি বড় হয়। কিন্তু আপনি যদি কষ্ট করে পড়েন তাহলে অনেক কিছুই জানতে পারবেন।

জাভার ইতিহাস

জাভার ইতিহাস সত্যিই অনেক মজার। জাভার ইতিহাস শুরু হয় সেই গ্রীন টিম থেকে। আমি কিন্তু সবুজ গাছ বা অন্যকিছুর কথা বলতেছি না। জাভার টিম মেম্বাররা গ্রীন টিম নামে পরিচিত ছিল। তারা একটা বৈপ্লবিক উদ্যোগ নিল যে, তারা একটি ল্যাঙ্গুয়েজ ডেভেলপ করবে টেলিভিশন,সেট টেপ বক্স ইত্যাদি ডিজিটাল ডিভাইসের জন্য।

কিন্তু গ্রীন টিমের কনসেপ্ট সব সময় ছিল উচ্চমানের। তাই তারা যে প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করলো দেখা গেল সেটা ইন্টারনেট প্রোগ্রামিং এ ব্যবহার করলে বেশি ভাল হবে। পরে জাভা টেকনোলজি নেটস্ক্যাপ এর অন্তর্ভুক্ত হল।   বর্তমানে এটা ইন্টারনেট প্রোগ্রামিং থেকে শুরু করে, মোবাইল ডিভাইস, গেমস, ই-বিজনেস সলুশন ইত্যাদিতে ব্যবহৃত হচ্ছে।

James Gosling - founder of java

  • জেমস গসলিং, মাইক শেরিডান এবং পেট্রিক ন্যাঘটন জাভা ল্যাংগুয়ে প্রজেক্ট শুরু করেন ১৯৯১ সালের জুন মাসে। সান ইঞ্জিনিয়ারস এর এই চোট্ট টিমকেই বলা হত গ্রীন টিম।
  • এটা মূলত ডিজাইন করা হয়েছিল সেট টপ বক্সের মত ছোট্ট ইলেকট্রনিক্স যন্ত্রপাতিগুলোর এম্বেডেড সিস্টেম ডিজাইনের জন্য।
  • প্রথম দিকে একে গ্রীন টক বলা হত আর এর প্রবক্তা ছিলেন জেমস গসলিং এবং এর ফাইল এক্সটেনশন ছিল .gt
  • এরপর এই গ্রীন প্রজেক্টের নাম করণ করা হয় Oak নামে।

  • কেন Oak নামকরণ করা হয়েছে

আপনার সন্তানের নাম আপনি যা ইচ্ছা তাই রাখতে পারেন। অবশ্যই ভাল কোনো নাম চয়েজ করবেন। ঠিক তেমনই Oak হচ্ছে শক্তিমত্তার একটি চিহ্ন। তাই ওনেক দেশ এটা কে জাতীয় বৃক্ষের মর্যাদা দিয়েছে। যেমন, u.s.a, france, germany,romania ইত্যাদি দেশের জাতীয় বৃক্ষ অক।

  • ১৯৯৫ সালে এর নাম পরিবর্তন করে রাখা হয় java কারণ ইতমধ্যে ট্রেড মার্ক করা একটি কোম্পানি ছিল যার নাম ছিল ওক টেকনোলজিস।
  • কিন্তু জাভা ই বা কেন? পৃথিবীতে তো আরও অনেক নাম আছে তাই না? 

আসলে তাদের oak টিম যখন নাম সিলেক্ট করার জন্য একত্রিত হল তখন অনেকগুলো নাম তারা সবাই সাজেস্ট করতে থাকলো... কেউ Dynamic, কেউ বা revolutionary, কেউ silk, jolt, dna ইত্যাদি সাজেস্ট করলো। তারা এমন একটি নাম চাচ্ছিল যেটা টেকনোলজি রিলেটেড আর যেগুলোর স্পেলিং খুব সহজ আর মজা করে বলা যায়। আর নামটা হতে হবে খুবই ইউনিক।

তো জেমস গসলিং জাভা আর সিল্ক এই দুইটা নামকে সিলেক্ট করলেন। এরপর জাভা যেহেতু খুবই ইউনিক একটা নাম তাই অধিকাংশ মেম্বারের মতামতের ভিত্তিতে এটিই সিলেক্ট করা হয়েছিল।

  • জাভা হচ্ছে ইন্দোনেশিয়ার একটি দ্বীপের নাম যেখানে প্রথম কফি উৎপাদন হতো। আর ঐ কফিকেও বলা হত জাভা কফি।
  • মনে রাখবেন জাভা শুধু একটা নাম। একটা অন্য কোনো শব্দের আদ্যক্ষর দারা গঠিত শব্দ নয়।
  • অরিজিনালি এটা ডেভেলপ করেছেন জেমস গসলিং সান মাইক্রোসিস্টেমস এ যেটা এখন অরাকল কর্পোরেশন এর সহযোগী আর এটা রিলিজ হয় ১৯৯৫ সালে।
  • ১৯৯৫ টাইম ম্যাগাজিনে জাভাকে ১৯৯৫ সালের  ১০টি বেস্ট প্রোডাক্টস এর মধ্যে একটি বলে ঘোষনা করা হয়।
  • jdk 1.0 (java development kit) প্রথম রিলিজ হয় ২৩জানুয়ারি ১৯৯৬ সালে।

আসুন জাভার ভার্শন হিস্টোরিটাও জেনে নিই

  1. JDK Alpha and Beta (১৯৯৫)
  2. JDK 1.0 (২৩জানুঃ ১৯৯৬)
  3. JDK 1.1 (১৯শে ফেব্রুয়ারি ১৯৯৭)
  4. J2SE 1.2 (৮ই ডিসেম্বর ১৯৯৮)
  5. J2SE 1.3 (৮ই মে ২০০০)
  6. J2SE 1.4 (৬ই ফেব্রুয়ারি ২০০২)
  7. J2SE 5.0 (৩০শে সেপ্টেম্বর ২০০৪)
  8. Java SE 6 (১১ই ডিসেম্বর ২০০৬)
  9. Java SE 7 (২৮শে জুলাই ২০১১)
  10. Java SE 8 (১৮ই মার্চ ২০১৪)

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

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

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

আল্লাহ হাফিজ

ফেসবুকে আমি 

Level 1

আমি মোঃ আশিকুর রহমান সরল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 8 বছর 1 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 83 টি টিউন ও 102 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 12 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

আমি একজন প্রযুক্তি প্রেমী।কম্পিউটার ইঞ্জিনিয়ারিং এ লেখাপড়া করছি।পৃথিবীকে নতুন কিছু করে দেখাতে চাই। My Website


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস