অত্যন্ত প্রত্যাশিত Go 1.18 প্রোগ্রামিং ল্যাঙ্গুয়েজ অবশেষে একটি প্রোডাকশন রিলিজ হিসাবে চালু করা হয়েছে, যার গ্রাউন্ডব্রেকিং জেনেরিক ক্ষমতা রয়েছে। এটি 2012 সালে Go 1.0-এর প্রাথমিক লঞ্চের পর থেকে Go প্রোগ্রামিং ভাষার সবচেয়ে উল্লেখযোগ্য পরিবর্তন চিহ্নিত করে৷ Go 1.18 15 মার্চ থেকে go.dev থেকে ডাউনলোড করা যেতে পারে৷
জেনেরিক হল গো প্রোগ্রামারদের দ্বারা সর্বাধিক অনুরোধ করা বৈশিষ্ট্য, যা প্যারামিটারাইজড ধরনের ব্যবহার করে জেনেরিক কোডের জন্য সমর্থন প্রদান করে। পরবর্তী প্রকাশগুলি আরও জটিল জেনেরিক ব্যবহারের ক্ষেত্রে আরও সহায়তা প্রদানের জন্য নির্ধারিত হয়। ব্যবহারকারীরা জেনেরিক টিউটোরিয়াল এবং রিলিজ নোটের মাধ্যমে এই বৈশিষ্ট্যের তথ্য অ্যাক্সেস করতে পারেন।
গো ল্যাঙ্গুয়েজ সার্ভার, গোপলস, ভিজ্যুয়াল স্টুডিও কোড গো এক্সটেনশন সহ, এখন জেনেরিক সমর্থন করে। জেনেরিক সহ গোপলস ইনস্টল করার নির্দেশাবলীর জন্য, ডকুমেন্টেশন পড়ুন।
Go 1.18 প্রোডাকশন রিলিজ এর বিটা এবং রিলিজ প্রার্থীর পর্যায়গুলিকে অনুসরণ করে। প্রাথমিক রিলিজ ফেব্রুয়ারি 2022 এর জন্য প্রত্যাশিত ছিল কিন্তু মার্চের মাঝামাঝি পর্যন্ত বিলম্বিত হয়েছিল। Go 1.18 Beta 1, যা 14 ডিসেম্বর আত্মপ্রকাশ করেছিল, এটি ছিল প্যারামিটারাইজড ধরনের ব্যবহার করে জেনেরিক কোড সমর্থন করার জন্য Google-উন্নত ওপেন-সোর্স ভাষার সর্বাগ্রে প্রিভিউ রিলিজ। এই বিটা সংস্করণটি সর্বকালের সবচেয়ে বেশি ডাউনলোড করা গো বিটাও ছিল, আগের যেকোনো বিটা রিলিজের তুলনায় দ্বিগুণ ডাউনলোড হয়েছে।
জেনেরিক প্রোগ্রামিং হল একটি বর্ধিতকরণ যা ফাংশন এবং ডেটা স্ট্রাকচারগুলিকে জেনেরিক আকারে উপস্থাপন করতে দেয় এবং প্রকারগুলিকে ফ্যাক্টর করা হয়। এটি কোড ভাগ করে নেওয়ার সুবিধা দেয় এবং প্রোগ্রামের নির্মাণকে সহজ করে।
গো টিম নতুন জেনেরিক ক্ষমতাগুলির কাছে যাওয়ার সময় সতর্কতার পরামর্শ দিয়েছে, কারণ নতুন বাগগুলি কোনও উল্লেখযোগ্য নতুন বৈশিষ্ট্যের সাথে দেখা দিতে পারে। উপরন্তু, নির্দিষ্ট সূক্ষ্ম ক্ষেত্রে সমর্থন, যেমন নির্দিষ্ট ধরণের পুনরাবৃত্তিমূলক জেনেরিক প্রকার, ভবিষ্যতে প্রকাশের জন্য স্থগিত করা হয়েছে।
এই সতর্কতা সত্ত্বেও, প্রাথমিক গ্রহণকারীরা নতুন বৈশিষ্ট্যের সাথে সন্তুষ্ট হয়েছেন বলে জানা গেছে। জেনেরিক দিয়ে শুরু করার একটি সংক্ষিপ্ত টিউটোরিয়াল এখানে প্রকাশিত হয়েছে। যদিও গো-তে ইন্টারফেসের ধরন ছিল, যা জেনেরিক প্রোগ্রামিংয়ের একটি রূপ, এটিতে কিছু নির্দিষ্ট দিক নেই যা Go বিকাশকারীরা জেনেরিক থেকে চেয়েছিলেন, যেমনটি জুলাই 2019 ব্লগ পোস্টে রিপোর্ট করা হয়েছে। উদাহরণস্বরূপ, গো জেনেরিক প্রবক্তারা একটি স্লাইসের উপাদান প্রকারের জন্য উদ্বেগ ছাড়াই বিপরীতের মতো ফাংশন চেয়েছিলেন।
Go 1.18 এর জন্য প্রকাশিত নোটগুলি এর অন্যান্য মূল বৈশিষ্ট্যগুলিও হাইলাইট করে, যেমন:
- একটি প্রোগ্রাম ক্র্যাশ বা অবৈধ উত্তর ফিরিয়ে দেওয়ার জন্য ইনপুট সনাক্ত করতে অস্পষ্ট-ভিত্তিক পরীক্ষা লেখার জন্য অন্তর্নির্মিত সমর্থন। এই বৈশিষ্ট্যটি Go 1.18-এ পরীক্ষামূলক।
- একটি গো ওয়ার্কস্পেস মোড ডেভেলপারদের একই সাথে একাধিক Go মডিউলের সাথে কাজ করতে সক্ষম করে, আরও বিস্তৃত প্রকল্পের জন্য অপরিহার্য।
- একটি বর্ধিত গো সংস্করণ -m কমান্ড যা এখন বিল্ডের বিবরণ রেকর্ড করে, যেমন কম্পাইলার পতাকা।
- একটি GOAMD64 পরিবেশ পরিবর্তনশীল যা ব্যবহারকারীদের AMD64 আর্কিটেকচারের চারটি সংস্করণ থেকে বেছে নিতে দেয়।
- Apple M1, ARM64, এবং PowerPC64-এ CPU পারফরম্যান্সে 20% পর্যন্ত উন্নতি হয়েছে, যা Go 1.17 রেজিস্টার ABI কলিং কনভেনশনের এই আর্কিটেকচারে সম্প্রসারণের জন্য দায়ী।
- Windows/Arm এবং Windows/Arm64 পোর্টগুলি এখন নন-কোঅপারেটিভ প্রি-এম্পশন সমর্থন করে, এই ক্ষমতাটি চারটি উইন্ডোজ পোর্টের জন্য উপলব্ধ করে এবং Win32 ফাংশনগুলিতে কল করার সময় সম্ভাব্য সূক্ষ্ম বাগগুলিকে মোকাবেলা করে যা বর্ধিত সময়ের জন্য ব্লক করে।
- আবর্জনা সংগ্রহের ফ্রিকোয়েন্সি নির্ধারণ করার সময় এই উত্সগুলির অন্তর্ভুক্তির কারণে GC কাজের নন-হিপ উত্সগুলি উল্লেখযোগ্য হলে ওভারহেডের আন্দাজযোগ্য আবর্জনা সংগ্রহ।
Go 1.17 মুক্তি পেয়েছে আগস্টে। গো ডকার কন্টেইনার সিস্টেমের বিকাশে এটির ব্যবহারের জন্য সবচেয়ে বেশি পরিচিত এবং এটি একটি সহজ, সহজে শেখার প্রোগ্রামিং ভাষা হিসাবে ডিজাইন করা হয়েছিল যাতে একযোগে শক্তিশালী সমর্থন রয়েছে। ডেভেলপারদের জন্য যারা no-code সমাধানগুলি অন্বেষণ করতে চান, যেমন AppMaster প্ল্যাটফর্ম, ওয়েব, মোবাইল এবং ব্যাকএন্ড অ্যাপ্লিকেশন তৈরি করতে, এটি প্রযুক্তিগত ঋণ দূর করার সময় অ্যাপ্লিকেশন বিকাশের গতি বাড়াতে এবং খরচ কমাতে সাহায্য করতে পারে।