Tuesday, March 7, 2017

জাভাতে কালেকশন ফ্রেমওয়ার্ক কী এবং এর প্রয়োজনীয়তা কী?

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

একটা সময় ছিল যখন প্রোগ্রামারদেরকে বেসিক ডেটা স্ট্রাকচার তৈরি করতে এবং এদেরকে নিয়ে কাজ করানোর মতো অবস্থায় নিয়ে আসতে অনেক বেশি সময় ব্যয় করতে হতো। যেমন - যদি একটি সেট(Set) এর দরকার হয়, তাহলে স্ক্র্যাচ থেকে একটি সেট তৈরি করতে হতো। যদি একটি লিস্ট (List) বা ম্যাপ (Map) দরকার হতো, প্রচুর সময় এদের পেছনে ব্যয় করতো হতো। সবচেয়ে বড় সমস্যা ছিল যেটি ছিল যে- এগুলো সবসময় এররপ্রুন হতো। এতে করে একটি রিয়েল লাইফ সমস্যা সমাধান করতে গিয়ে প্রোগ্রামাদেরকে বেসিক সমস্যা নিয়ে বেশি মনযোগী হতে হতো।

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

আর এই কমন ক্লাসগুলো নিয়েই কালেকশন ফ্রেমওয়ার্ক।