লাঞ্চ এন্ড লার্ন - জাভা ৯

লাঞ্চ এন্ড লার্ন - জাভা ৯
নভেম্বর ১০, শুক্রবার, ২০১৭

আমেরিকাতে আমার কাজের অভিজ্ঞতার মধ্যে এই একটা জিনিস আমার খুব প্রিয় - লাঞ্চ এন্ড লার্ন। কোম্পানির খরচে দুপুরে খাবার বা লাঞ্চের আয়োজন করা হবে (সাধারণত পিৎজা আর সফ্ট ডিংক্স) আর তাতে কোনো একটা টপিক নিয়ে কেউ একজন একটা টক্ বা প্রেজেন্টেশন দিবে। উদ্দেশ্য হচ্ছে বাকিরা বক্তার কাছ থেকে নতুন কিছু একটা শিখবেন। তেমনই একটা লাঞ্চ এন্ড লার্নে জাভা ৯ সম্পর্কে নতুন কিছু জিনিস জানলাম, আর তা শেয়ার করার জন্যই লিখছি।

বলে নেই, সব সময়ই যে লাঞ্চ-এর আয়োজন থাকে, তা কিন্তু না।  কোনো কোনো সময় আবার সবাই যে যার লাঞ্চ সাথে নিয়ে এসে লেকচার শুনে যায়।  এই কায়দাকে আবার এরা "ব্রাউন ব্যাগ" বলে।  ব্রাউন ব্যাগ বলার কারণ আবার ইন্টারেষ্টিং। সাধারণত বাইরের দোকান থেকে ব্রাউন ব্যাগ বা খয়েরি রঙের ঠোঙ্গায় করে সবাই যার যার লাঞ্চ কিনে এনে  হাজির হয় বলেই এর নাম ব্রাউন ব্যাগ!!

যাই হোক, জাভা ৯ নিয়ে লেখার আগে বরাবরের মতো বলে নেই, আমি মোটেও জাভা ৯ এক্সপার্ট না। নিজে ব্যবহারও করি নাই এখনো। নতুন জানা বিষয় গুলোই শুধু জানাচ্ছি।
  • প্রথম কথা হচ্ছে জাভা ৮ কিন্তু আদতে জাভা ১.৮ ছিল।  কিন্তু জাভা ৯ কিন্তু  জাভা ১.৯ না।  আসলেই জাভা ৯।  এইটা জানা প্রয়োজন কারণ অনেকেই কোডে জাভা ভার্সন নম্বর চেক করে, আর ধরেই নেয় এর ভার্সন ১.X  হবে। জাভা ৯ সে হিসাবে আলাদা। 
  • জাভা ৯ -এর পরের ভার্সন হবে জাভা ১৮! জাভার মালিক ওরাকল ঠিক করেছে যে এখন থেকে নতুন জাভার ভার্সন রিলিজ করার সময় যেই বছরে তা রিলিজ হচ্ছে সেই বছরের সংখ্যা, আর মাসের সংখ্যা দিয়েই এর নামকরণ করবে।  ২০১৮ সালের মার্চে নতুন রিলিজ আসার কথা, আসলে সেটার নাম হবে জাভা ১৮.৩।  আর এখন থেকে ওরা প্রতি ৬ মাস পর পর জাভার নতুন ভার্সন রিলিজ দেয়ার চেষ্টা করবে।  সব ঠিক থাকলে তাই জাভা ১৮.৩ -এর পরের ভার্সন হবে জাভা ১৮.৯। 
  • জাভা ৯ -এ সবচেয়ে বড় সংযোজন হচ্ছে "মডুলারিটি" ফিচার । মডুলারিটি কী সেটা বোঝার জন্য আমাদের  লাঞ্চ-এন্ড-লার্নের বক্তা ক্লার্ক যেই ছবিটা ব্যবহার করেছিলেন, আমিও সেরকম একটা ছবি নিচে দিচ্ছি।  ছবিটা ইন্টারন্যাশনাল স্পেস স্টেশন (ISS)-এর বিভিন্ন মডুলের (আমেরিকায় এরা মডিউল কে মডুল উচ্চারণ করে, আমিও তাই লিখছি এখানে)। 

  • একেক মডুলের তৈরিকারক একেক দেশ।  যেটা লক্ষণীয় সেটা হচ্ছে, প্রত্যেকটা মডুল অন্য কোন কোন মডুলের সাথে, কিভাবে যোগাযোগ করবে, কে কার উপর নির্ভরশীল ইত্যাদি খুবই 'ডিফাইনড' বা পূর্ব নির্ধারিত। আর সে কারণেই এর একেকটা মডুল একেকটা দেশ আলাদা ভাবে তৈরি করতে পেরেছে। কোনো একটা মডুলে সমস্যা দেখা দিলে সেই মডুল ঠিক করলেই হয়।  তাতে করে পুরো স্পেস স্টেশনের অন্য মডুলের ভেঙে পড়ার কারণ নেই - যাকে সেপারেশন অফ কনসার্ন (Separation of concern) বলা যায়।   জাভাতে এই ব্যাপারটা আগে ছিল না। একটা ক্লাস একটা প্যাকেজের ভেতর প্রাইভেট, পাবলিক, প্রোটেক্টেড বা প্যাকেজ প্রোটেক্টেড ইত্যাদি একসেস কন্ট্রোল মডিফায়ার ব্যবহার করে 'ভিসিবিলিটি' ঠিক করতে পারতো ঠিকই কিন্তু আসলে মডুলারিটি আনতে পারতো না। একটা পাবলিক ক্লাস কিন্তু সবার কাছেই পাবলিক - অর্থাৎ আগে থেকে ঠিক করার উপায় নাই যে কে কে একে দেখতে বা ব্যবহার করতে পারবে। ভেবে দেখুন, ক্লাস গুলো "জার" করে রিলিজ দিয়ে দিলে কিন্তু আর ফিরিয়ে আনার উপায় নাই।  কোনো ক্লাসে কোনো কিছু ইচ্ছামতো যোগ বা পরিবর্তন করলে অন্য কোন জায়গায় যে আরেক কোড ভেঙে পড়বে না -তার নিশ্চয়তা নাই, কারণ আপনার রিলিজ দেয়া জার ফাইলটা যে কে কোন জায়গায় ব্যবহার করছে - তার ঠিক নাই।  
  • জাভার এই মডুলারিটি ফিচারের অভাব অনেক দিনের।  ১৯৯৯ সালে প্রথম জাভা ডেভেলপাররা এই ফিচারের প্রয়োজনীয়তার কথা বলে ছিলেন। তার প্রায় ১৮ বছর পর অবশেষে প্রজেক্ট জিগসো  নামের একটা প্রজেক্টের মাধ্যমে জাভা ৯ -এ এই ফিচার যোগ হলো।  দেরি হবার মূল কারণ হলো জাভার নিজের  JDK -টাই মডুলারাইজ করতেই তাঁদের অনেক কষ্ট হয়েছে, সময় লেগেছে!
  • ধারণা করা হচ্ছে, জাভা ৯ -এর মডুলারিটি ফিচারের প্রচুর ব্যবহার হবে। একটা জাভা প্রজেক্টের আকার যত বড় হবে, ততই এর ব্যবহারের প্রয়োজনীয়তা আর সম্ভাবনা বাড়বে। কাজেই এখন থেকেই জাভার কোর্সের সিলেবাসে এর অন্তর্ভুক্তি প্রয়োজন।  এবছর (২১ সেপ্টেম্বরে, ২০১৭) বের হওয়া জাভা ৯ -এর উপর এখন পর্যন্ত কিছু বই আর ব্লগে লেখালেখি হচ্ছে।  এখন পর্যন্ত অনলাইনে কোনো জাভার কোর্স মডুলারিটি শেখানো হয় বলে আমার জানা নেই।  কেউ জানলে অবশ্যই কমেন্টে জানাবেন, কৃতজ্ঞ হবো।  
সবশেষে সম্পূর্ণ ভিন্ন একটা ব্যাপার বলছি। আমি ISS -র যেই ছবিটা এখানে ব্যবহার করেছি তা ব্যবহার করার অনুমতি আছে।  গুগলে কোনো image সার্চ করে আপনি চাইলেই কিন্তু তা ব্যবহার করতে পারেন না, তাতে কপিরাইট ভঙ্গ হতে পারে। আবার অনেক ছবি পুনঃব্যবহারের অনুমতি আগেই দেয়া থাকে, যেমন আমার ব্যবহার করা ISS -র ছবিটা। এরকম ছবি খুঁজতে হলে আপনাকে গুগল ইমেজ -এ গিয়ে Tools -এ ক্লিক করে "Labeled for resue"  অথবা আপনি ছবি এডিট করতে চাইলে  "Labeled for reuse with modification"  অপশন সিলেক্ট করে ছবি খুঁজতে পারেন।  নিচে স্ক্রিনশট দিয়ে দিলাম।  ব্যাপারটা দারুণ না?!



ধন্যবাদ, 
--ইশতিয়াক 


No comments:

Post a Comment

কাজের জায়গায় ভুল থেকে শেখা: regex 'র একটা খুব কমন বিষয় যেটা এতদিন ভুল জানতাম

কাজের জায়গায় ভুল থেকে শেখা: regex 'র একটা খুব কমন বিষয় যেটা এতদিন ভুল জানতাম  ৩ ফেব্রুয়ারি, শনিবার, ২০২৪ রেগুলার এক্সপ্রেশন (Regular Exp...