گو پروگرامنگ لینگویج کی ریلیز 1.16

Go 1.16 پروگرامنگ لینگویج کی ریلیز پیش کی گئی ہے، جسے گوگل نے کمیونٹی کی شراکت سے ایک ہائبرڈ حل کے طور پر تیار کیا ہے جو کہ مرتب شدہ زبانوں کی اعلیٰ کارکردگی کو اسکرپٹنگ زبانوں کے ایسے فوائد کے ساتھ جوڑتا ہے جیسے کوڈ لکھنے میں آسانی۔ ، ترقی کی رفتار اور غلطی سے تحفظ۔ پروجیکٹ کوڈ BSD لائسنس کے تحت تقسیم کیا جاتا ہے۔

گو کا نحو C زبان کے مانوس عناصر پر مبنی ہے جس میں ازگر کی زبان سے کچھ ادھار لیا گیا ہے۔ زبان کافی جامع ہے، لیکن کوڈ پڑھنے اور سمجھنے میں آسان ہے۔ گو کوڈ کو اسٹینڈ اکیلے بائنری ایگزیکیوٹیبل فائلوں میں مرتب کیا گیا ہے جو ورچوئل مشین کا استعمال کیے بغیر مقامی طور پر چلتی ہیں (پروفائلنگ، ڈیبگنگ ماڈیولز، اور دیگر رن ٹائم مسئلہ کا پتہ لگانے والے سب سسٹمز کو رن ٹائم اجزاء کے طور پر مربوط کیا جاتا ہے)، جو سی پروگراموں کے مقابلے کارکردگی کی اجازت دیتا ہے۔

اس پروجیکٹ کو ابتدائی طور پر ملٹی تھریڈڈ پروگرامنگ اور ملٹی کور سسٹمز پر موثر آپریشن پر نظر رکھتے ہوئے تیار کیا گیا ہے، جس میں متوازی کمپیوٹنگ کو منظم کرنے اور متوازی عمل شدہ طریقوں کے درمیان تعامل کے لیے آپریٹر کی سطح کے ذرائع فراہم کرنا شامل ہے۔ زبان زیادہ مختص میموری بلاکس کے خلاف بلٹ ان تحفظ بھی فراہم کرتی ہے اور کوڑا اٹھانے والے کو استعمال کرنے کی صلاحیت فراہم کرتی ہے۔

Go 1.16 میں متعارف کرائی گئی اہم نئی خصوصیات:

  • ایمبیڈ پیکیج کو شامل کیا گیا، جو پروگرام میں صوابدیدی فائلوں اور ڈائریکٹریوں کو سرایت کرنے کے لیے ٹولز فراہم کرتا ہے۔ ایک نئی "//go:embed" ہدایت فراہم کی گئی ہے تاکہ فائلوں کو مرتب کرنے کے وقت ایمبیڈ کیا جائے۔ مثال کے طور پر، کوڈ تبصرے میں "//go:embed test.txt" کی وضاحت کرنا اور پھر متغیر "var f embed.FS" کا اعلان کرنا test.txt فائل کی سرایت اور اس تک رسائی کی صلاحیت کا باعث بنے گا۔ f" وضاحت کنندہ۔ اسی طرح، آپ کام کے لیے ضروری وسائل یا کسی خاص قسم کی انفرادی اقدار کے ساتھ فائلوں کو ایمبیڈ کر سکتے ہیں، مثال کے طور پر version.txt فائل سے سٹرنگ ویری ایبل "s" حاصل کرنے کے لیے، آپ یہ بتا سکتے ہیں: import _ "embed ” //go:embed version.txt var s سٹرنگ پرنٹ (s)
  • پہلے سے طے شدہ طور پر، اب مربوط ورژننگ سپورٹ کے ساتھ نئے ماڈیول سسٹم کی ضرورت ہے، GOPATH پر مبنی انحصار کے انتظام کی جگہ لے کر۔ GO111MODULE ماحولیاتی متغیر اب ڈیفالٹ کے طور پر "آن" پر سیٹ ہے اور ماڈیول موڈ استعمال کیا جاتا ہے قطع نظر اس کے کہ ورکنگ یا پیرنٹ ڈائرکٹری میں go.mod فائل کی موجودگی ہو۔ نئے موڈ میں، بلڈ کمانڈز جیسے کہ "گو بلڈ" اور "گو ٹیسٹ" go.mod اور go.sum کے مواد کو تبدیل نہیں کرتے ہیں، اور "go install" کمانڈ ورژن آرگیومینٹس پر کارروائی کرتی ہے ("go install example.com/[ای میل محفوظ]")۔ پرانے رویے کو واپس کرنے کے لیے، GO111MODULE کو "آٹو" میں تبدیل کریں۔ واضح رہے کہ 96% ڈویلپرز پہلے ہی نئے ماڈیول سسٹم میں تبدیل ہو چکے ہیں۔
  • لنکر کو بہتر بنایا گیا ہے۔ بڑے پروجیکٹس کے لیے، لے آؤٹ اب 20-25% تیز ہے اور 5-15% کم میموری کی ضرورت ہے۔
  • کمپائلر نے فنکشنز کی ان لائن توسیع کے لیے معاونت شامل کی ہے جس میں "فور" لوپس، میتھڈ ویلیوز اور 'ٹائپ سوئچ' کنسٹرکٹس کی مختصر تعریف ہے۔
  • نئی Apple M1 ARM چپ سے لیس ایپل سسٹمز کے لیے سپورٹ شامل کی گئی۔ 64-bit ARM پر NetBSD اور MIPS64 سسٹمز پر OpenBSD کے لیے تعاون کے ساتھ netbsd/arm64 اور openbsd/mips64 بندرگاہیں شامل کی گئیں۔ linux/riscv64 پورٹ میں cgo اور "-buildmode=pie" موڈ کے لیے تعاون شامل کر دیا گیا۔
  • x87 کمپائلیشن موڈ کے لیے سپورٹ کو بند کر دیا گیا ہے (GO386=387)۔ SSE2 بغیر انسٹرکشن لیس پروسیسرز کے لیے سپورٹ اب "GO386=softfloat" سافٹ ویئر موڈ کے ذریعے دستیاب ہے۔

مزید برآں، ہم ڈارٹ 2.12 زبان کے بیٹا ریلیز کی جانچ کے آغاز کو نوٹ کر سکتے ہیں، جس میں "نول" ویلیو (نول سیفٹی) کو استعمال کرنے کے لیے محفوظ موڈ کو مستحکم کر دیا گیا ہے، جو متغیرات کو استعمال کرنے کی کوششوں کی وجہ سے ہونے والے کریشوں سے بچنے میں مدد کرے گا۔ قدر غیر متعین ہے اور "نال" پر سیٹ ہے۔ موڈ کا مطلب یہ ہے کہ متغیرات میں null قدریں نہیں ہوسکتی ہیں جب تک کہ انہیں واضح طور پر ویلیو null تفویض نہ کیا جائے۔ موڈ متغیر کی قسموں کا سختی سے احترام کرتا ہے، جو کمپائلر کو اضافی اصلاح کو لاگو کرنے کی اجازت دیتا ہے۔ ٹائپ کمپلائنس کو کمپائل کے وقت چیک کیا جاتا ہے، مثال کے طور پر، اگر آپ کسی قسم کے متغیر کو "Null" کی قدر تفویض کرنے کی کوشش کرتے ہیں جو غیر متعینہ حالت کا مطلب نہیں ہے، جیسے "int"، تو ایک خرابی ظاہر ہوگی۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں