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

বস্তুমুখী প্রোগ্রামিং ভাষা
(Java (programming language) থেকে পুনর্নির্দেশিত)

জাভা একটি প্রোগ্রামিং ভাষাসান মাইক্রোসিস্টেম ৯০এর দশকের গোড়ার দিকে জাভা ডিজাইন করার পরে এটি অতি দ্রুত বিশ্বের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষার একটিতে পরিণত হয়। জাভা'র এই জনপ্রিয়তার মূল কারণ এর বহনযোগ্যতা (portability), নিরাপত্তা, এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ও ওয়েব প্রোগ্রামিং এর প্রতি পরিপূর্ণ সাপোর্ট।

জাভা
জাভা প্রোগ্রামিং ভাষার লোগো.png
প্যারাডাইমঅবজেক্ট ওরিয়েন্টেড, স্ট্রাকচার্ড, ইমপেরাটিভ
নকশাকারজেমস গসলিং (James Gosling)
বিকাশকারীসান মাইক্রোসিস্টেম্‌স বর্তমানে যার স্বত্বাধীকারী ওরাকল কর্পোরেশন
প্রথম প্রদর্শিত১৯৯৫ (1995)[১]
স্থিতিশীল সংস্করণ
জাভা স্ট্যান্ডার্ড সংস্করণ ৯.০.১ বিল্ড ১১ (৯.০.১+১১) / ১৭ অক্টোবর ২০১৭; ৫ বছর আগে (2017-10-17)
ধরণের শৃঙ্খলাস্ট্যাটিক, নিরাপদ, শক্তিশালী, নমিনেটিভ
ওএসআন্ত-প্লাটফর্ম
লাইসেন্সগনু জেনারেল পাবলিক লাইসেন্স / জাভা কমিউনিটি প্রোসেস
ওয়েবসাইটhttp://java.sun.com/
মুখ্য বাস্তবায়নসমূহ
অসংখ্য
যার দ্বারা প্রভাবিত
অবজেক্টিভ-সি, সি++, স্মলটক, আইফেল,[২] সি#[৩]
যাকে প্রভাবিত করেছে
সি#, ডি, জে#, আডা ২০০৫, ইসিএমএস্ক্রিপ্ট, স্ক্যালা
জেমস গসলিং, জাভা প্রোগ্রামিং ভাষার জনক

ইতিহাসসম্পাদনা

 
ডিওক, জাভা মাসকট

James Gosling, Mike Sheridan, এবং Patrick Naughton ১৯৯১ সালের জুনে জাভা ল্যাঙ্গুয়েজ প্রোজেক্ট শুরু করেন। প্রাথমিকদিকে জাভা ল্যাঙ্গুয়েজকে "ওক"(Oak) বলা হত। জেমস গসলিং এর অফিসের বাহিরের ওক গাছের সাথে মিল রেখে এই নাম রাখা হয়। এরপর এর নাম রাখা হয় "গ্রীন"। তারপর একদিন তাঁরা একটি কফিশপে বসে আড্ডা দিচ্ছিলেন, ঐ তখনই কফির কাপটি দেখে ধোঁয়াতোলা কফির কাপের সাথে মিল রেখে লোগো তৈরি এবং এর নাম পরিবর্তন করে "জাভা" নামকরণের পরিকল্পনা করলেন। ১৯৯৫ সালে সান মাইক্রোসিস্টেমস জাভা-১.০ প্রকাশ করেন। তাদের মূলনীতি ছিল "একবার লিখুন, যে কোনো জায়গায় চালান (Write Once, Run Anywhere or WORA)"। জাভার উল্লেখযোগ্য সংস্করণের মধ্যে অন্যতম হল -

  • জেডিকে ১.০ (জানুয়ারী ২১, ১৯৯৬)
  • জেডিকে ১.১ (ফেব্রুয়ারি ১৯, ১৯৯৭)
  • জে২এসই ১.২ (ডিসেম্বর ৮, ১৯৯৮)
  • জে২এসই ১.৩ (মে ৮, ২০০০)
  • জে২এসই ১.৪ (ফেব্রুয়ারি ৬, ২০০২)
  • জে২এসই ৫.০ (সেপ্টেম্বর ৩০, ২০০৪)
  • জাভা এসই ৬ (ডিসেম্বর ১১, ২০০৬)
  • জাভা এসই ৭ (জুলাই ২৮, ২০১১)
  • জাভা এসই ৮ (মার্চ ১৮, ২০১৪)
  • জাভা এসই ৯ (সেপ্টেম্বর ২১,২০১৭)
  • জাভা এসই ১০ (মার্চ ২০,২০১৮)
  • জাভা এসই ১১ (সেপ্টেম্বর ২৫,২০১৮)[৪]
  • জাভা এসই ১২ (মার্চ ১৯, ২০১৯)
  • জাভা এসই ১৩ (মার্চ ১৭, ২০১৯)
  • জাভা এসই ১৪ (মার্চ ১৭, ২০২০)

জাভা'র গুরুত্বপূর্ণ দিকগুলোসম্পাদনা

বহনযোগ্যতাসম্পাদনা

জাভা'র পূর্বতন প্রোগ্রামিং ভাষাগুলিতে সাধারণত এক অপারেটিং সিস্টেমের জন্য লেখা প্রোগ্রাম অন্য অপারেটিং সিস্টেম এ চালানো যেত না। জাভায় লেখা প্রোগ্রাম যেকোন অপারেটিং সিস্টেমে চালানো যায় শুধু যদি সেই অপারেটিং সিস্টেমের জন্য একটি জাভা রানটাইম এনভায়রনমেন্ট(জাভা ভার্চুয়াল মেশিন)থেকে থাকে। এই সুবিধা জাভাকে একটি অনন্য প্ল্যাটফর্মে পরিণত করে। বিশেষ করে ইন্টারনেটে, যেখানে অসংখ্য কম্পিউটার যুক্ত থাকে এবং কম্পিউটারগুলো বিভিন্ন অপারেটিং সিস্টেম ব্যবহার করে থাকে সেখানে জাভায় লেখা অ্যাপলেট গুলো সকল কম্পিউটারে চলতে পারে এবং এর জন্য কোন বিশেষ ব্যবস্থা নিতে হয় না। জাভা'র এই সুবিধাকে বলা হয় বহনযোগ্যতা।

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংসম্পাদনা

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং জাভা'র খুবই গুরুত্বপূর্ণ দিক। প্রোগ্রামিং জগতে মূলত সিমূলা৬৭ (প্রোগ্রামিং ভাষা) এবং স্মলটক (প্রোগ্রামিং ভাষা) এর মাধ্যমে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর সূচনা হলেও, জাভা'র মাধ্যমেই এটি পরিপূর্ণভাবে বিকশিত হতে পেরেছে। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর কারণে জাভায় অতিদীর্ঘ প্রোগ্রাম লেখা এবং ত্রুটিমুক্ত(debug) করা অনেক সহজ হয়েছে।

মূলনীতিসম্পাদনা

১. এটি হবে সরল, অবজেক্ট ওরিয়েন্টেড এবং পরিচিত।

২. এটি হবে শক্তিশালী এবং সুরক্ষিত।

৩. এটি কোন নির্দিষ্ট প্লাটফর্মের উপর নির্ভর করবে না আর এর থাকবে বহনযোগ্যতা।

৪. এটি অনেক উচ্চ কার্যশীলতাসম্পন্ন হবে।

৫. এটি হবে ইন্টারপ্রিটেড, থ্রেডেড এবং ডাইনামিক।

জাভা প্রোগ্রাম কীভাবে কাজ করেসম্পাদনা

জাভাতে লেখা কোড কম্পাইল হয়ে সরাসরি মেশিন কোড-এ রূপান্তরিত হয় না। বরং তা বাইট কোড নামক বিশেষ একটি মধ্যবর্তি অবস্থায় আসে যা .class ফাইলে থাকে। এই ক্লাস ফাইল সরাসরি চলতে পারে না। একে চালাতে গেলে জাভা ভার্চুয়াল মেশিন এর মাধ্যমে চালাতে হয়। কারণ বাইট কোড কেবলমাত্র জাভা ভার্চুয়াল মেশিন বুঝতে পারে ।

বাক্যরীতিসম্পাদনা

জাভার বাক্যরীতি মূলত সি++ থেকে নেওয়া। সি++ এর মত এতে বাক্যরীতি রয়েছে স্ট্রাকচারড, জেনেরিক এবং অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর জন্য। তবে সি++ বিশুদ্ধ অবজেক্ট অরিয়েন্টেড না হলেও জাভা বিশুদ্ধ অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ভাষা।

ডাটা কাঠামো/স্ট্রাকচারসম্পাদনা

জাভাতে এগুলোর জন্য আলাদা বাক্যরীতি রয়েছে। উল্লেখ্য, এরে এবং স্ট্রিং সাধারণ/primitive ডাটা টাইপ নয়, তারা reference ডাটা টাইপ এবং তাদের কে java.lang.Object থেকে আনা হয়।

সাধারণ/মৌলিক ডাটা টাইপগুলোসম্পাদনা

Integer টাইপগুলো
byte ৮-বিট
short ১৬-বিট
int ৩২-বিট
long ৬৪-বিট
Floating-point টাইপগুলো
float ৩২-বিট
double ৬৪-বিট
Characters
char ১৬-বিট ইউনিকোড
Boolean
boolean true বা false

প্রযুক্তিসমূহসম্পাদনা

ওরাকল দ্বারাসম্পাদনা

প্লাটফর্মসম্পাদনা

তৃতীয় পক্ষের প্রধান প্রযুক্তিসমূহসম্পাদনা

  • নেটবিনসসমন্বিত বিকাশ কাঠামো
  • এক্লিপসসমন্বিত বিকাশ কাঠামো
  • গুগল ওয়েব টুলকিটসম্মুখ প্রান্ত টুল
  • হাইবারনেটঅবজেক্ট-রিলেশনাল ম্যাপিং টুল
  • স্প্রিং কাঠামোঅ্যাপ্লিকেশন ফ্রেমওয়ার্ক
  • অ্যাপাচি স্ট্রাটস - অ্যাপ্লিকেশন ফ্রেমওয়ার্ক
  • ওরাকল টপলিংক - অবজেক্ট-রিলেশনাল ম্যাপিং টুল
  • ওয়াইল্ডফ্লাই - এপ্লিকেশন সার্ভার

আরো দেখুনসম্পাদনা

তথ্যসূত্রসম্পাদনা

  1. "The History of Java Technology"। সংগ্রহের তারিখ অক্টোবর ৬, ২০১২ 
  2. Gosling and McGilton (মে ১৯৯৬)। "The Java Language Environment" 
  3. Java 5.0 added several new language features (the enhanced for loop, autoboxing, varargs and annotations), after they were introduced in the similar (and competing) C# language. [১][২]
  4. "Introducing Java SE 11"  অজানা প্যারামিটার |সংরগ্রহের-তারিখ= উপেক্ষা করা হয়েছে (সাহায্য)

বহিঃসংযোগসম্পাদনা