জাভা 8 বনাম জাভা 9

Java8 Vs Java9



জাভা 8 বনাম জাভা 9: জাভা 9 এর উন্নতি যা আপনার জানা দরকার

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

তবুও, জাভা বছরের পর বছর ধরে বৃদ্ধি এবং বিকাশ অব্যাহত রেখেছে। 1995 সালে সান মাইক্রোসিস্টেমস দ্বারা তৈরি , জাভা তার নির্ভরযোগ্যতা প্রমাণ করে চলেছে। জাভার পূর্ববর্তী বিল্ড যা 18 মার্চ, 2014 থেকে ব্যবহার করা হচ্ছে, সেটি ছিল জাভা এসই 8। এখন ব্লকে একটি নতুন বাচ্চা আছে। তাজা টুকরো করা জাভা 9 অবশেষে এখানে। সেপ্টেম্বর 21, 2017 উন্মোচন , জাভা এসই 9 আমরা যেভাবে কাজ করি এবং ডেভেলপাররা যেভাবে অ্যাপ্লিকেশন তৈরি করে তা নাড়া দেবে বলে আশা করা হচ্ছে।







জাভা 8 এর অবিশ্বাস্য চটপটেতা এবং বহুমুখীতার কারণে, ব্যবসায়গুলি স্বাস্থ্যসেবা, ফিনটেক এবং অন্যান্য প্রধান সেক্টরের মতো শিল্পের জন্য অবিশ্বাস্য সমাধান তৈরি করেছে। অন্যদিকে, জাভা 9, এটি তৈরি করার এবং বিকাশকারীদের কাছে সম্পূর্ণ নতুন কার্যকারিতা সরবরাহ করার প্রতিশ্রুতি দিয়েছে।



সুতরাং, আসুন জাভা 9 এ নতুন কী রয়েছে তা একবার দেখে নেওয়া যাক।



প্রকল্প জিগস

এটি জাভা of -এর অন্যতম আকর্ষণ মডুলারাইজেশন জাভার। যেহেতু জিগস টুকরো টুকরো টুকরো টুকরো হয়ে এক বড় ছবি তৈরি করে, তেমনি জাভা of এর মডুলারিটিও হয়। এর মানে হল যে কোডগুলি কার্য সম্পাদন করার জন্য বা কার্যকারিতার কারণে অংশে (মডিউল) বিভক্ত হয়ে গেছে। এটি একটি বিশাল ধাপ এগিয়ে কারণ মডুলারাইজেশন কেবল কোডের পুনরায় ব্যবহারযোগ্যতাকে অনেক বেশি আরামদায়ক করে না, বরং পরিচালনা এবং ডিবাগিংও সহজবোধ্য। এই কারণে, আমরা দেখতে পাই যে ডেভেলপাররা আগের যেকোনো বিল্ডের তুলনায় জাভা 9 দিয়ে অ্যাপ্লিকেশন তৈরি করতে সহজ সময় পাবে।





মডুলারাইজেশনের আরেকটি সুবিধা হল যে ডেভেলপাররা এখন লাইটওয়েট, স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে পারেন। বিশেষ করে ইন্টারনেট অব থিংসের ক্রমবর্ধমান ক্রমবিকাশের সাথে, আমরা জাভাতে লিখিত এই ধরনের আরো অনেক অ্যাপ খুঁজে পাব।

JEP 222: jshell : জাভা শেল

জাভা 9-এ নতুন রিড-ইভাল-প্রিন্ট লুপ (REPL) টুল রয়েছে। এর অধীনে এর উন্নয়নমূলক পর্যায়ে থাকার পর প্রকল্প অধিকার এই বৈশিষ্ট্যটি অবশেষে জনসাধারণের জন্য উন্মুক্ত করা হয়েছে। এই নতুন বৈশিষ্ট্যটি একটি ইন্টারেক্টিভ টুল যা জাভাতে লেখা এক্সপ্রেশন, স্টেটমেন্ট এবং ডিক্লারেশন পরীক্ষা করতে ব্যবহৃত হয়। JShell API এবং টুলের মূল লক্ষ্য হল ডেভেলপারকে শেল অবস্থায় উল্লিখিত বৈশিষ্ট্যগুলি পরীক্ষা করার সুযোগ দেওয়া। এটি প্রাথমিকভাবে দ্রুত কোডিং এবং তদন্ত, যার ফলে অভিব্যক্তি এবং বিবৃতিগুলি একটি পদ্ধতি এবং পদ্ধতির মধ্যে থাকার প্রয়োজন হয় না, একটি শ্রেণীর ভিতরে থাকতে হবে না। এইভাবে একজন ডেভেলপার দ্রুত কোডের টুকরা বিশ্লেষণ করতে পারেন এবং দেখতে পারেন যে তারা কাঙ্ক্ষিত প্রভাব আনবে কিনা।



Jshell টুলে নিম্নলিখিত বৈশিষ্ট্যগুলির সাথে একটি কমান্ড লাইন ইন্টারফেস থাকবে:

  • কনফিগারযোগ্য পূর্বনির্ধারিত সংজ্ঞা এবং আমদানি।
  • সম্পাদনার ক্ষমতা সহ একটি ইতিহাস
  • প্রয়োজনীয় টার্মিনাল সেমিকোলনগুলির স্বয়ংক্রিয় সংযোজন

কম্পাইলার উন্নতি

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

পূর্বদৃষ্টিতে, জাভা 8 জাস্ট-ইন-টাইম (জেআইটি) কম্পাইলার ব্যবহার করে। এই কম্পাইলারগুলি দ্রুত কিন্তু উষ্ণ হওয়ার আগে একটু বেশি সময় নেয়। এটি ছোট প্রোগ্রাম বা অ্যাপ্লিকেশনের জন্য অসঙ্গত হতে পারে কারণ কম্পাইল করার জন্য অনেক কোড নেই। যাইহোক, বৃহত্তর অ্যাপ্লিকেশনের জন্য, আখ্যান সম্পূর্ণ ভিন্ন। ওয়ার্ম-আপ একটি ঠিক সময়ে কম্পাইলার প্রয়োজন, মানে কিছু পদ্ধতি কম্পাইল করা হয় না এইভাবে অ্যাপ্লিকেশন কর্মক্ষমতা দুর্বল।

স্মার্ট কম্পাইলেশন স্থাপনের দ্বিতীয় ধাপ হল জাভাক টুলের বহনযোগ্যতা এবং স্থিতিশীলতার উন্নতি। এই টুলটি উন্নত করলে এটি সরাসরি JVM (জাভা ভার্চুয়াল মেশিন) এ ডিফল্ট সেটিং হিসেবে ব্যবহার করতে সক্ষম হয়। তা ছাড়া, টুলটি এমনভাবে সাধারণীকরণ করা হয়েছে যা ডেভেলপারদের JDK পরিবেশের বাইরেও এটি ব্যবহার করতে দেয়। ডেভেলপারদের জন্য এটি একটি বড় চুক্তি যেহেতু জাভা বৃহত্তর প্রকল্পে ব্যবহার করা যেতে পারে যা সামঞ্জস্যতা সম্পর্কে চিন্তা না করে সহজেই স্থানান্তরিত হতে পারে। আরেকটি গুরুত্বপূর্ণ আপডেট হল জাভ্যাক কম্পাইলারের পিছনের সামঞ্জস্য যার একমাত্র কাজ হল পুরানো জাভা সংস্করণগুলিতে চালানোর জন্য জাভা 9 ব্যবহার করে তৈরি অ্যাপস এবং প্রোগ্রামগুলি কম্পাইল করা।

উন্নত জাভাস্ক্রিপ্ট ব্যাকিং

যেহেতু জাভাস্ক্রিপ্ট গতি অর্জন করতে থাকে এবং অনেকের কাছে প্রিয় হয়ে ওঠে, JDK 9 জাভা অ্যাপে জাভাস্ক্রিপ্ট এম্বেড করা সম্ভব করেছে। এই সব সাহায্যে করা হয় প্রকল্প গণ্ডার যার প্রধান লক্ষ্য ছিল জাভাতে হাই পারফরম্যান্স অথচ লাইটওয়েট জাভাস্ক্রিপ্ট রানটাইম তৈরি করা। এটি অবশ্যই বিতরণ করা হয়েছিল যখন তারা JDK সংস্করণ Java -এ একটি জাভাস্ক্রিপ্ট ইঞ্জিন সরবরাহ করেছিল। এই API যা করে তা হল প্রকল্প ন্যাশর্নের অভ্যন্তরীণ বাস্তবায়ন ক্লাসের উপর নির্ভর না করে সার্ভার-সাইড ফ্রেমওয়ার্ক এবং IDE দ্বারা ECMAScript কোড বিশ্লেষণ সক্ষম করা।

G1 আবর্জনা সংগ্রাহক হিসাবে

জনপ্রিয় বিশ্বাসের বিপরীতে, জাভাতে একটি নয়, চারটি আবর্জনা সংগ্রহকারী রয়েছে। এই আবর্জনা সংগ্রহকারীরা সমানভাবে তৈরি করা হয় না এবং এইভাবে, ভুলটি বেছে নেওয়ার অর্থ অ্যাপ্লিকেশনটিতে পারফরম্যান্সের সমস্যা থাকা। জাভা 8 -এ, ডিফল্ট আবর্জনা সংগ্রাহক ছিলেন সমান্তরাল / থ্রুপুট কালেক্টর। এই আবর্জনা সংগ্রহকারীকে তার পূর্বসূরী গারবেজ-ফার্স্ট কালেক্টর (G1) দ্বারা প্রতিস্থাপিত করা হয়েছে। যেহেতু G1 কালেক্টর 4GB এর চেয়ে বড় গাদা সাপোর্ট করার জন্য ডিজাইন করা হয়েছে, তাই এটি ছোট এবং বড় উভয় ধরনের অ্যাপ্লিকেশনের জন্য নিখুঁত আবর্জনা সংগ্রাহক।

API আপডেট

জাভা ডেভেলপমেন্ট কিটের এই নতুন সংস্করণে, এপিআইগুলিতে বেশ কয়েকটি আপডেট করা হয়েছে এবং আমরা সবচেয়ে উল্লেখযোগ্য আলোচনা করব।

প্রথমটি হল জাভা 9 কনকুরেন্সি আপডেট যা Java.util.concurrent.Flow এবং CompletableFuture আছে। পিছনের চাপের সমস্যা সমাধানের লক্ষ্যে। প্রবাহ হল জাভা এর বাস্তবায়ন প্রতিক্রিয়াশীল প্রবাহ API যা মূলত ব্যাকপ্রেসার সমস্যা সমাধানের লক্ষ্য। ব্যাক প্রেসার হল ডেটা তৈরি করা যা তখন হয় যখন ইনকামিং রিকোয়েস্টের হার অ্যাপ্লিকেশনের প্রসেসিং ক্ষমতার চেয়ে বেশি হয়। দীর্ঘমেয়াদে, এটি একটি সমস্যা কারণ অ্যাপ্লিকেশনটি প্রক্রিয়াহীন ডেটার বাফারের সাথে শেষ হয়। এই আপডেটের অর্থ সময়সীমা, বিলম্ব এবং সাবক্লাসিংয়ের আরও ভালভাবে পরিচালনা করা।

নিরাপত্তা জাভার মূল পরিচয়ের অংশ। যেমন, নতুন অনুমোদিত জন্য সমর্থন HTTP 2.0 RFC একটি বিশাল প্লাস। HTTP 2.0 RFC এর উপরে নির্মিত হয়েছিল গুগলের SPDY অ্যালগরিদম যা ইতিমধ্যেই পূর্ববর্তী HTTP 1.1 থেকে 11.81% থেকে 47.7% পর্যন্ত গতির উন্নতি সহ ফল দিতে শুরু করেছে। এই ক্লায়েন্ট এপিআই হল মূল HTTP প্রোটোকল এবং HttpURLConnection API- এর একটি আপগ্রেড যা সমস্যাযুক্ত, কমপক্ষে বলতে গেলে এটি HTTP 1 এর আগেও তৈরি করা হয়েছিল।

বছরের পর বছর ধরে অ্যাপ্লিকেশনগুলিকে দ্রুত এবং মসৃণ করার জন্য কোড ক্যাশিং সবসময়ই একটি কৌশল হিসেবে ব্যবহৃত হয়। যাইহোক, এটি তার সীমাবদ্ধতা ছাড়া নয়, এবং এটি নজরে পড়েনি। জাভা 9 -তে একটি আপডেট স্পষ্টভাবে দেখায় যে জেডিকে 9 ক্যাশেড কোডগুলিকে ছোট অংশে ভাগ করে এইভাবে সামগ্রিক কর্মক্ষমতা উন্নত করে। JDK 9 নন-মেথড কোড এড়িয়ে যাওয়ার জন্য বিশেষ ইটারেটর ব্যবহার করে; প্রোফাইলযুক্ত, নন-প্রোফাইল এবং নন-মেথড কোড আলাদা করতে; এবং কার্যকর করার সময়ের জন্য কিছু মানদণ্ড উন্নত করা।

জাভা 9 এর সুবিধা

অনেক ব্যবসার মালিকদের কাছে, জাভা 8 এবং 9 এর মধ্যে কোন পার্থক্য নেই। জাভা এসই 9 এর পূর্বসূরীদের উপর এই সুবিধাগুলি রয়েছে।

  • উন্নয়নের গতি উল্লেখযোগ্যভাবে বৃদ্ধি পাবে মডিউলগুলির সিস্টেমের জন্য ধন্যবাদ যা কেবল পরিচালনা এবং ডিবাগ করা সহজ নয়, আবার পুনableব্যবহারযোগ্য মানে আপনাকে পুরো কোডটি স্ক্র্যাচ থেকে লিখতে হবে না।
  • মডুলারাইজেশন থেকে অ্যাপ্লিকেশনের জন্য রিসোর্স কার্যকারিতা বাড়ানো এবং রিসোর্স টানকে সহজতর করা যেহেতু ডেভেলপাররা সম্পূর্ণ জেআরই এর পরিবর্তে প্রয়োজনীয় মডিউলগুলি গ্রহণ করবে।
  • কোডের স্নিপেটের রিয়েল-টাইম বিশ্লেষণ যেমন মাইক্রো বেঞ্চমার্ক কোডের ছোট টুকরাগুলির কার্যকারিতা দেখার জন্য ব্যবহৃত হয়।

সূত্র

http://openjdk.java.net/jeps/251
https://www.romexsoft.com/blog/java-8-vs-java-9/
https://blogs.oracle.com/java/features-in-java-8-and-9
https://dzone.com/articles/5-features-in-java-9-that-will-change-how-you-deve

গ্রহন জাভা টিউটোরিয়াল