জাভা (প্রোগ্রামিং ভাষা)
জাভা একটি প্রোগ্রামিং ভাষা। সান মাইক্রোসিস্টেম ৯০এর দশকের গোড়ার দিকে জাভা ডিজাইন করার পরে এটি অতি দ্রুত বিশ্বের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষার একটিতে পরিণত হয়। জাভা'র এই জনপ্রিয়তার মূল কারণ এর বহনযোগ্যতা (portability), নিরাপত্তা, এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ও ওয়েব প্রোগ্রামিং এর প্রতি পরিপূর্ণ সাপোর্ট।
প্যারাডাইম | অবজেক্ট ওরিয়েন্টেড, স্ট্রাকচার্ড, ইমপেরাটিভ |
---|---|
নকশাকার | জেমস গসলিং (James Gosling) |
বিকাশকারী | সান মাইক্রোসিস্টেম্স বর্তমানে যার স্বত্বাধীকারী ওরাকল কর্পোরেশন |
প্রথম প্রদর্শিত | ১৯৯৫[1] |
স্থিতিশীল সংস্করণ | জাভা স্ট্যান্ডার্ড সংস্করণ ৯.০.১ বিল্ড ১১ (৯.০.১+১১)
/ ১৭ অক্টোবর ২০১৭ |
ধরণের শৃঙ্খলা | স্ট্যাটিক, নিরাপদ, শক্তিশালী, নমিনেটিভ |
ওএস | আন্ত-প্লাটফর্ম |
লাইসেন্স | গনু জেনারেল পাবলিক লাইসেন্স / জাভা কমিউনিটি প্রোসেস |
ওয়েবসাইট | http://java.sun.com/ |
মুখ্য বাস্তবায়নসমূহ | |
অসংখ্য | |
যার দ্বারা প্রভাবিত | |
অবজেক্টিভ-সি, সি++, স্মলটক, আইফেল,[2] সি#[3] | |
যাকে প্রভাবিত করেছে | |
সি#, ডি, জে#, আডা ২০০৫, ইসিএমএস্ক্রিপ্ট, স্ক্যালা |
ইতিহাস
James Gosling, Mike Sheridan, এবং Patrick Naughton ১৯৯১ সালের জুনে জাভা ল্যাঙ্গুয়েজ প্রোজেক্ট শুরু করেন। প্রাথমিকদিকে জাভা ল্যাঙ্গুয়েজকে "ওক"(Oak) বলা হত। জেমস গসলিং এর অফিসের বাহিরের ওক গাছের সাথে মিল রেখে এই নাম রাখা হয়। এরপর এর নাম রাখা হয় "গ্রীন"। তারপর একদিন তাঁরা একটি কফিশপে বসে আড্ডা দিচ্ছিলেন, ঐ তখনই কফির কাপটি দেখে ধোঁয়াতোলা কফির কাপের সাথে মিল রেখে লোগো তৈরি এবং এর নাম পরিবর্তন করে "জাভা" নামকরণের পরিকল্পনা করলেন। ১৯৯৫ সালে সান মাইক্রোসিস্টেমস জাভা-১.০ প্রকাশ করেন। তাদের মূলনীতি ছিল "একবার লিখুন, যে কোনো জায়গায় চালান (Write Once, Run Anywhere or WORA)"। জাভার উল্লেখযোগ্য সংস্করণের মধ্যে অন্যতম হল -
- জেডিকে ১.০ (জানুয়ারী ২১, ১৯৯৬)
- জেডিকে ১.১ (ফেব্রুয়ারি ১৯, ১৯৯৭)
- জে২এসই ১.২ (ডিসেম্বর ৮, ১৯৯৮)
- জে২এসই ১.৩ (মে ৮, ২০০০)
- জে২এসই ১.৪ (ফেব্রুয়ারি ৬, ২০০২)
- জে২এসই ৫.০ (সেপ্টেম্বর ৩০, ২০০৪)
- জাভা এসই ৬ (ডিসেম্বর ১১, ২০০৬)
- জাভা এসই ৭ (জুলাই ২৮, ২০১১)
- জাভা এসই ৮ (মার্চ ১৮, ২০১৪)
- জাভা এসই ৯ (সেপ্টেম্বর ২১,২০১৭)
- জাভা এসই ১০ (মার্চ ২০,২০১৮)
- জাভা এসই ১১ (সেপ্টেম্বর ২৫,২০১৮)[4]
- জাভা এসই ১২ (মার্চ ১৯, ২০১৯)
- জাভা এসই ১৩ (মার্চ ১৭, ২০১৯)
- জাভা এসই ১৪ (মার্চ ১৭, ২০২০)
জাভা'র গুরুত্বপূর্ণ দিকগুলো
বহনযোগ্যতা
জাভা'র পূর্বতন প্রোগ্রামিং ভাষাগুলিতে সাধারণত এক অপারেটিং সিস্টেমের জন্য লেখা প্রোগ্রাম অন্য অপারেটিং সিস্টেম এ চালানো যেত না। জাভায় লেখা প্রোগ্রাম যেকোন অপারেটিং সিস্টেমে চালানো যায় শুধু যদি সেই অপারেটিং সিস্টেমের জন্য একটি জাভা রানটাইম এনভায়রনমেন্ট(জাভা ভার্চুয়াল মেশিন)থেকে থাকে। এই সুবিধা জাভাকে একটি অনন্য প্ল্যাটফর্মে পরিণত করে। বিশেষ করে ইন্টারনেটে, যেখানে অসংখ্য কম্পিউটার যুক্ত থাকে এবং কম্পিউটারগুলো বিভিন্ন অপারেটিং সিস্টেম ব্যবহার করে থাকে সেখানে জাভায় লেখা অ্যাপলেট গুলো সকল কম্পিউটারে চলতে পারে এবং এর জন্য কোন বিশেষ ব্যবস্থা নিতে হয় না। জাভা'র এই সুবিধাকে বলা হয় বহনযোগ্যতা।
অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং জাভা'র খুবই গুরুত্বপূর্ণ দিক। প্রোগ্রামিং জগতে মূলত সিমূলা৬৭ (প্রোগ্রামিং ভাষা) এবং স্মলটক (প্রোগ্রামিং ভাষা) এর মাধ্যমে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর সূচনা হলেও, জাভা'র মাধ্যমেই এটি পরিপূর্ণভাবে বিকশিত হতে পেরেছে। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর কারণে জাভায় অতিদীর্ঘ প্রোগ্রাম লেখা এবং ত্রুটিমুক্ত(debug) করা অনেক সহজ হয়েছে।
মূলনীতি
১. এটি হবে সরল, অবজেক্ট ওরিয়েন্টেড এবং পরিচিত।
২. এটি হবে শক্তিশালী এবং সুরক্ষিত।
৩. এটি কোন নির্দিষ্ট প্লাটফর্মের উপর নির্ভর করবে না আর এর থাকবে বহনযোগ্যতা।
৪. এটি অনেক উচ্চ কার্যশীলতাসম্পন্ন হবে।
৫. এটি হবে ইন্টারপ্রিটেড, থ্রেডেড এবং ডাইনামিক।
জাভা প্রোগ্রাম কীভাবে কাজ করে
জাভাতে লেখা কোড কম্পাইল হয়ে সরাসরি মেশিন কোড-এ রূপান্তরিত হয় না। বরং তা বাইট কোড নামক বিশেষ একটি মধ্যবর্তি অবস্থায় আসে যা .class ফাইলে থাকে। এই ক্লাস ফাইল সরাসরি চলতে পারে না। একে চালাতে গেলে জাভা ভার্চুয়াল মেশিন এর মাধ্যমে চালাতে হয়। কারণ বাইট কোড কেবলমাত্র জাভা ভার্চুয়াল মেশিন বুঝতে পারে ।
বাক্যরীতি
জাভার বাক্যরীতি মূলত সি++ থেকে নেওয়া। সি++ এর মত এতে বাক্যরীতি রয়েছে স্ট্রাকচারড, জেনেরিক এবং অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর জন্য। তবে সি++ বিশুদ্ধ অবজেক্ট অরিয়েন্টেড না হলেও জাভা বিশুদ্ধ অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ভাষা।
ডাটা কাঠামো/স্ট্রাকচার
জাভাতে এগুলোর জন্য আলাদা বাক্যরীতি রয়েছে। উল্লেখ্য, এরে এবং স্ট্রিং সাধারণ/primitive ডাটা টাইপ নয়, তারা reference ডাটা টাইপ এবং তাদের কে java.lang.Object থেকে আনা হয়।
সাধারণ/মৌলিক ডাটা টাইপগুলো
Integer টাইপগুলো | |
---|---|
byte | ৮-বিট |
short | ১৬-বিট |
int | ৩২-বিট |
long | ৬৪-বিট |
Floating-point টাইপগুলো | |
---|---|
float | ৩২-বিট |
double | ৬৪-বিট |
Characters | |
---|---|
char | ১৬-বিট ইউনিকোড |
Boolean | |
---|---|
boolean | true বা false |
প্রযুক্তিসমূহ
তৃতীয় পক্ষের প্রধান প্রযুক্তিসমূহ
- নেটবিনস – সমন্বিত বিকাশ কাঠামো
- এক্লিপস – সমন্বিত বিকাশ কাঠামো
- গুগল ওয়েব টুলকিট – সম্মুখ প্রান্ত টুল
- হাইবারনেট – অবজেক্ট-রিলেশনাল ম্যাপিং টুল
- স্প্রিং কাঠামো – অ্যাপ্লিকেশন ফ্রেমওয়ার্ক
- অ্যাপাচি স্ট্রাটস - অ্যাপ্লিকেশন ফ্রেমওয়ার্ক
- ওরাকল টপলিংক - অবজেক্ট-রিলেশনাল ম্যাপিং টুল
- ওয়াইল্ডফ্লাই - এপ্লিকেশন সার্ভার
আরো দেখুন
তথ্যসূত্র
- "The History of Java Technology"। সংগ্রহের তারিখ অক্টোবর ৬, ২০১২।
- Gosling and McGilton (মে ১৯৯৬)। "The Java Language Environment"।
- 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.
- "Introducing Java SE 11"। অজানা প্যারামিটার
|সংরগ্রহের-তারিখ=
উপেক্ষা করা হয়েছে (সাহায্য)
বহিঃসংযোগ
- Sun Microsystems: Java home page
- Sun Microsystems: Developer Resources for Java Technology.
- Chamber of Chartered Java Professionals International: Professionalism for Java Technology.
- Sun Microsystems: Java Language Specification 3rd Edition.
- টেমপ্লেট:Javadoc:SE
- A Brief History of the Green Project
- Michael O'Connell: Java: The Inside Story, SunWord, July 1995.
- Patrick Naughton: Java Was Strongly Influenced by Objective-C (no date).
- David Bank: The Java Saga, Wired Issue 3.12 (December 1995).
- Shahrooz Feizabadi: A history of Java in: Marc Abrams, ed., World Wide Web – Beyond the Basics, Prentice Hall, 1998.
- Patrick Naughton: The Long Strange Trip to Java, March 18, 1996.
- Open University (UK): M254 Java Everywhere (free open content documents).
- is-research GmbH: List of programming languages for a Java Virtual Machine.
- How Java's Floating-Point Hurts Everyone Everywhere, by W. Kahan and Joseph D. Darcy, University of California, Berkeley.