সরাসরি প্রধান সামগ্রীতে চলে যান

JavaOne-এ জাভা ল্যাঙ্গুয়েজের ভবিষ্যৎ এবং প্রজেক্ট আম্বার নিয়ে আড্ডা

Introduction

এই ভিডিওতে ওরাকলের জাভা ল্যাঙ্গুয়েজ আর্কিটেক্ট ব্রায়ান গেটস (Brian Goetz) এবং উপস্থাপক জাভা ওয়ান (JavaOne) কনফারেন্সের ঠিক আগে একটি অনানুষ্ঠানিক পরিবেশে বসে জাভার বর্তমান এবং ভবিষ্যৎ নিয়ে আলোচনা করেছেন। মূল আলোচনাটি আবর্তিত হয়েছে Project Amber-কে ঘিরে, যা জাভা প্রোগ্রামারদের কাজের গতি বাড়াতে এবং কোডকে আরও সহজ করতে কাজ করে যাচ্ছে। বিশেষ করে 'Records' এবং নতুন 'Carrier Classes'-এর ধারণা নিয়ে এখানে বিস্তারিত কথা বলা হয়েছে।


প্রজেক্ট আম্বার (Project Amber) এর ভূমিকা

[01:24] ব্রায়ান গেটস ব্যাখ্যা করেছেন যে, Project Amber হলো জাভার একটি বিশেষ প্রজেক্ট যার লক্ষ্য হলো ছোট ছোট ফিচারের মাধ্যমে ডেভেলপারদের উৎপাদনশীলতা (Productivity) বাড়ানো।

সহজ ব্যাখ্যা: সহজ কথায়, জাভাকে আরও আধুনিক এবং সহজ করার জন্য যে ছোট ছোট পরিবর্তনগুলো আনা হয় (যেমন: Text Blocks, Records), সেগুলোই এই প্রজেক্টের অংশ। এটি বড় কোনো পরিবর্তন (যেমন জেনেরিক্স) নয়, বরং কোড লেখা যাতে আরও আনন্দদায়ক হয় সেই চেষ্টা করে।

  • বিগিনার টিপস: * Productivity: সহজ কথায়, কম সময়ে বা কম পরিশ্রমে বেশি কাজ করার ক্ষমতা।

    • Boilerplate Code: এমন কোড যা বারবার লিখতে হয় কিন্তু সেটির মূল লজিকের সাথে সরাসরি সম্পর্ক কম (যেমন: Getter, Setter)। প্রজেক্ট আম্বার এগুলো কমানোর চেষ্টা করে।

রেকর্ডস (Records) এবং তার সীমাবদ্ধতা

[02:51] ভিডিওতে বলা হয়েছে যে, জাভা ১৬-তে আসা 'Records' ফিচারের মাধ্যমে ডেটা হ্যান্ডলিং অনেক সহজ হয়েছে। কিন্তু রেকর্ডসের একটি সীমাবদ্ধতা আছে—এটি একটি "সংকীর্ণ বাক্সের" মতো। আপনি যদি এর বাইরে একটুও যেতে চান, তবে আপনাকে আবার সেই পুরনো বড় বড় বয়লারপ্লেট কোড (Boilerplate) লিখতে হয়।

ব্রায়ানের ভাবনা: রেকর্ডস আসলে কতগুলো ফিচারের একটি প্যাকেজ (Combo Pack)। এখন তারা চেষ্টা করছেন এই প্যাকেজের ফিচারগুলোকে আলাদা আলাদা করে অন্যান্য ক্লাসের জন্যও সহজলভ্য করতে।

  • সহজ ব্যাখ্যা (Records): মনে করুন একটি বক্স, যেখানে আপনি শুধু কিছু ডেটা রাখবেন। আগে এই বক্সটি বানাতে অনেক কোড লাগত, এখন জাভা রেকর্ডস-এর মাধ্যমে এক লাইনেই তা সম্ভব।

ক্যারিয়ার ক্লাসেস (Carrier Classes) এর প্রস্তাবনা

[07:27] ব্রায়ান এখানে 'Carrier Classes' বা 'Component Classes' সম্পর্কে তার প্রথম ও দ্বিতীয় প্রস্তাবনা নিয়ে আলোচনা করেছেন। এটি এমন এক পদ্ধতি যা সাধারণ ক্লাসকেও রেকর্ডসের মতো কিছু সুবিধা দেবে।

বিস্তারিত আলোচনা: ১. প্রথম প্রস্তাবনা: এটি কিছুটা জটিল ছিল কারণ এতে অনেক বেশি 'ম্যাজিক' বা অটোমেশন করার চেষ্টা করা হয়েছিল। ২. দ্বিতীয় প্রস্তাবনা: তারা বুঝতে পেরেছেন যে 'Deconstruction' (একটি অবজেক্ট থেকে তার ভেতরের ডেটা বের করে আনা) ফিচারটি ক্লাসের জন্য সবচেয়ে জরুরি।

  • কঠিন শব্দ (Deconstruction): মনে করুন আপনার কাছে একটি 'বই' (Object) আছে। সেই বই থেকে 'লেখকের নাম' এবং 'দাম' আলাদা করে বের করে নেওয়াকেই সহজ ভাষায় ডিকনস্ট্রাকশন বলে।

কোডিং উদাহরণ (সহজ ধারণা)

যদিও ভিডিওতে সরাসরি কোড লেখা হয়নি, তবে ব্রায়ান যে 'Imperative Pattern Matching' বা 'Enhanced Local Variable Declaration' এর কথা বলেছেন, তা অনেকটা নিচের মতো হতে পারে:

Java

// ধরি একটি রেকর্ড বা ক্যারিয়ার ক্লাস আছে Point(int x, int y)
// পুরাতন পদ্ধতি:
Point p = getPoint();
int x = p.x();
int y = p.y();

// নতুন প্রস্তাবিত পদ্ধতি (সহজ ও সরাসরি):
Point(var x, var y) = getPoint(); 
// এখানে এক লাইনেই p অবজেক্ট থেকে x এবং y বের হয়ে আসছে। 

এই কোড থেকে আমরা কী পাচ্ছি? এটি কোডকে আরও পরিষ্কার করে। আমাদের আলাদা করে অবজেক্ট তৈরি করে তার থেকে একটা একটা করে মান বের করার দরকার পড়ছে না। একেই ব্রায়ান 'প্যাটার্ন ম্যাচিং' এর পরবর্তী ধাপ বলছেন।


বিশ্লেষণ ও ব্রায়ানের দৃষ্টিভঙ্গি

[28:34] ভিডিওর শেষে ব্রায়ান একটি খুব গুরুত্বপূর্ণ বিষয় শেয়ার করেছেন—কেন তিনি সিনট্যাক্স (Syntax) নিয়ে তর্কে বিরক্ত হন?

ব্রায়ানের ভাবনা ও বাস্তবতা:

  • সিনট্যাক্স বনাম কনসেপ্ট: মানুষ কোনো ফিচারের মূল কনসেপ্ট বোঝার আগেই সেটি দেখতে কেমন হবে (Syntax) তা নিয়ে ঝগড়া শুরু করে। কিন্তু ব্রায়ান মনে করেন, আগে কনসেপ্ট ঠিক করতে হয়, সিনট্যাক্স পরে এমনিতেই চলে আসে।

  • প্রতিক্রিয়া (Feedback): তিনি ডেভেলপারদের উদ্দেশ্যে বলেছেন, শুধু সিনট্যাক্স নিয়ে কথা না বলে ফিচারের গভীরে গিয়ে প্রশ্ন করতে এবং বাস্তব প্রজেক্টে এগুলো ট্রাই করে মতামত দিতে।

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

পরামর্শ: নতুন জাভা ফিচারগুলো (যেমন Preview Features) সরাসরি প্রোডাকশনে ব্যবহার না করলেও, নিজের ছোট প্রজেক্টে ব্যবহার করে দেখা উচিত। এতে ল্যাঙ্গুয়েজটি যেদিকে যাচ্ছে তার সাথে আপনি তাল মেলাতে পারবেন।

ভিডিওটির মূল কথা হলো—জাভা আরও আধুনিক হচ্ছে এবং বয়লারপ্লেট কোড কমিয়ে ডেভেলপারদের কাজকে সহজ করাই এর মূল লক্ষ্য।

[ভিডিও রেফারেন্স: https://youtu.be/b6cXuA84c9g?t=0]

[

Carrier Classes & Discussing Syntax - Inside Java Podcast 52

Java · 3K views

](http://www.youtube.com/watch?v=b6cXuA84c9g)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...