Java এর Generics কনসেপ্টের ইতিহাস

Java Generics এর পরিচিতি - জাভা জেনেরিক্স (Java Generics) - Java Technologies

299

Java Generics একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা Java 5.0 সংস্করণে যুক্ত করা হয়েছিল। Generics প্রোগ্রামারদের একটি টাইপ-সেফ উপায়ে কোড লেখার সুযোগ দেয়, যেখানে ডেটার টাইপ কম্পাইল টাইমেই যাচাই করা হয়। Generics ব্যবহার করলে টাইপ ক্যাস্টিংয়ের প্রয়োজন হয় না এবং এটি রuntime টাইপ-রিলেটেড ত্রুটিগুলি এড়াতে সাহায্য করে।

Generics-এর ইতিহাস:

Java Generics-এর ধারণার উৎপত্তি এবং বিকাশের প্রক্রিয়া বেশ দীর্ঘ। নিচে এর ইতিহাস সংক্ষেপে তুলে ধরা হলো:

1. শুরু ও প্রয়োজনীয়তা:

  • প্রাথমিক Java সংস্করণগুলিতে, Collections API টাইপ-সেফ ছিল না। ফলে ডেটা ম্যানিপুলেশনের সময় অনেক টাইপ-ক্যাস্টিং করতে হত।
  • উদাহরণস্বরূপ:

    List list = new ArrayList();
    list.add("Hello");
    String str = (String) list.get(0);
    

    এই টাইপ-ক্যাস্টিংয়ে ত্রুটির ঝুঁকি ছিল।

2. Generic Programming-এর ধারণা:

  • অন্যান্য প্রোগ্রামিং ভাষা যেমন C++ এবং Ada-তে "Generic Programming"-এর ধারণা আগে থেকেই প্রচলিত ছিল। Java-তেও এই ধারণা প্রয়োগ করার চেষ্টা শুরু হয়।

3. Java Community Process (JCP):

  • Generics বাস্তবায়নের জন্য Java Community Process (JCP) প্রকল্প তৈরি হয়।
  • Sun Microsystems 1998 সালে Generics যুক্ত করার জন্য একাধিক প্রস্তাব বিবেচনা করে।

4. Gilad Bracha ও Martin Odersky-এর ভূমিকা:

  • Gilad Bracha এবং Martin Odersky মিলে GJ (Generic Java) নামে একটি প্রস্তাবনা তৈরি করেন, যা Generics যুক্ত করার ভিত্তি হিসেবে কাজ করে।
  • GJ-এর বেশিরভাগ ধারণা পরবর্তীতে Java 5.0-এ অন্তর্ভুক্ত হয়।

5. Java 5.0-এ Generics চালু:

  • Java 5.0 (2004 সালে মুক্তি পায়) এ Generics যুক্ত করা হয়। এটি Collections Framework-এ বড় পরিবর্তন আনে। উদাহরণ:

    List<String> list = new ArrayList<>();
    list.add("Hello");
    String str = list.get(0); // টাইপ-ক্যাস্টিং ছাড়াই কাজ করে
    

6. Backward Compatibility:

  • Java-এর Generics ব্যবহার করেও পূর্বের non-generic কোডের সাথে সামঞ্জস্য বজায় রাখা সম্ভব। এটি raw types ব্যবহার করে অর্জিত হয়:

    List list = new ArrayList(); // Raw type
    

7. Wildcards, Bounded Types, এবং Type Erasure:

  • Java Generics-এর আরও শক্তিশালী বৈশিষ্ট্যগুলির মধ্যে রয়েছে:
    • Wildcard Types: List<?>
    • Bounded Type Parameters: <T extends Number>
    • Type Erasure: কম্পাইল টাইমে টাইপ তথ্য সরিয়ে ফেলতে Generics কাজ করে, যাতে Java Runtime-এর backward compatibility বজায় থাকে।

Generics-এর সুবিধা:

  1. টাইপ-সেফটি: টাইপ-রিলেটেড ত্রুটি কম্পাইল টাইমে শনাক্ত হয়।
  2. কোডের রিডেবিলিটি: কোড সহজে পড়া ও বোঝা যায়।
  3. টাইপ-ক্যাস্টিং থেকে মুক্তি: টাইপ-ক্যাস্টিংয়ের প্রয়োজনীয়তা দূর করে।
  4. Reusable কোড: Generics reusable এবং ফ্লেক্সিবল কোড লেখার সুযোগ দেয়।

Generics-এর ভবিষ্যৎ:

Java Generics ক্রমাগত উন্নত হচ্ছে। Project Valhalla এবং Java-এর অন্যান্য ভবিষ্যৎ আপডেটে Generics-এর আরও শক্তিশালী ফিচার আসার সম্ভাবনা রয়েছে।

Content added By
Promotion

Are you sure to start over?

Loading...