History of Ruby
روبی پروگرامنگ زبان کی تاریخ اس وقت شروع ہوئی جب یوکیہیرو ماتسوموٹو نے پہلی بار 1993 میں اس زبان کا تصور کیا، پھر اسے 1995 میں جاری کیا۔ زبان کی سالانہ ریلیز اکثر کرسمس کے دن ہوتی ہیں۔ روبی آن ریلز فریم ورک کی وجہ سے 2005 کے آس پاس زبان میں دلچسپی بڑھ گئی۔ تصور روبی کے تخلیق کار یوکیہیرو ماتسوموٹو نے کہا ہے کہ روبی کا تصور 1993 میں ہوا تھا۔ روبی ٹاک میلنگ لسٹ میں 1999 کی ایک پوسٹ میں، انہوں نے زبان کے بارے میں اپنے کچھ ابتدائی خیالات بیان کیے ہیں: ماتسوموٹو نے روبی کے ڈیزائن کو اس کے مرکز میں ایک سادہ لیسپ زبان کی طرح بیان کیا ہے، جس میں سمال ٹاک جیسا آبجیکٹ سسٹم، ہائی آرڈر افعال سے متاثر بلاکس، اور پرل جیسی عملی افادیت ہے۔ "روبی" نام کی ابتدا 24 فروری 1993 کو متسوموتو اور کیجو اشٹسوکا کے درمیان ایک آن لائن چیٹ سیشن کے دوران ہوئی تھی، اس سے پہلے کہ اس زبان کے لیے کوئی کوڈ لکھا گیا ہو۔ ابتدائی طور پر دو نام تجویز کیے گئے تھے: "کورل" اور "روبی"۔ متسوموتو نے بعد میں اشیتسوکا کو ایک ای میل میں مؤخر الذکر کا انتخاب کیا۔ متسوموتو نے بعد میں "روبی" نام کے انتخاب میں ایک عنصر کا ذکر کیا-یہ ان کے ایک ساتھی کا پیدائشی پتھر تھا۔ پہلی اشاعت روبی 0.95 کی پہلی عوامی ریلیز کا اعلان 21 دسمبر 1995 کو جاپانی گھریلو نیوز گروپوں پر کیا گیا۔ اس کے بعد، روبی کے مزید تین ورژن دو دنوں میں جاری کیے گئے۔ یہ ریلیز جاپانی زبان کی روبی لسٹ میلنگ لسٹ کے آغاز کے ساتھ ہوئی، جو نئی زبان کی پہلی میلنگ لسٹ تھی۔ ترقی کے اس مرحلے پر پہلے سے موجود روبی کی بعد کی ریلیزز میں واقف بہت سی خصوصیات تھیں، جن میں آبجیکٹ پر مبنی ڈیزائن، وراثت کے ساتھ کلاسیں، مکسین، تکرار، بندش، مستثنی ہینڈلنگ اور کچرا جمع کرنا شامل ہیں۔ 1995 میں روبی 0.95 کی ریلیز کے بعد، روبی کے کئی مستحکم ورژن اگلے سالوں میں جاری کیے گئے: روبی 1: دسمبر 25، 1996 روبی 2: دسمبر 1998 روبی 4: اگست 1999 روبی 6: ستمبر 2000 1997 میں، روبی کے بارے میں پہلا مضمون ویب پر شائع ہوا۔ اسی سال، متسوموٹو کو netlab.jp نے روبی پر کل وقتی ڈویلپر کے طور پر کام کرنے کے لیے رکھا تھا۔ 1998 میں، روبی ایپلیکیشن آرکائیو کو ماتسوموٹو نے روبی کے لیے ایک سادہ انگریزی زبان کے ہوم پیج کے ساتھ لانچ کیا تھا۔ 1999 میں، انگریزی زبان کی پہلی میلنگ لسٹ روبی ٹاک شروع ہوئی، جس نے جاپان سے باہر کی زبان میں بڑھتی دلچسپی کا اشارہ کیا۔ اسی سال، ماتسوموتو اور کیجو اشٹسوکا نے روبی پر پہلی کتاب لکھی، آبجیکٹ پر مبنی اسکرپٹنگ لینگویج روبی، جو اکتوبر 1999 میں جاپان میں شائع ہوئی تھی۔ اس کے بعد 2000 کی دہائی کے اوائل میں جاپانی زبان میں روبی پر تقریبا 20 کتابیں شائع ہوئیں۔ 2000 تک، روبی جاپان میں ازگر سے زیادہ مقبول تھی۔ ستمبر 2000 میں، انگریزی زبان کی پہلی کتاب پروگرامنگ روبی چھپی، جسے بعد میں عوام کے لیے آزادانہ طور پر جاری کیا گیا، جس نے انگریزی بولنے والوں میں روبی کو اپنانے کو مزید وسیع کیا۔ 2002 کے اوائل میں، انگریزی زبان کی روبی ٹاک میلنگ لسٹ کو جاپانی زبان کی روبی لسٹ سے زیادہ پیغامات موصول ہو رہے تھے، جو غیر جاپانی بولنے والی دنیا میں روبی کی بڑھتی ہوئی مقبولیت کو ظاہر کرتا ہے۔ روبی 1.8 روبی 1.8 ابتدائی طور پر اگست 2003 میں ریلیز ہوئی تھی، طویل عرصے تک مستحکم تھی، اور جون 2013 میں ریٹائر ہوئی تھی۔ اگرچہ فرسودہ ہے، پھر بھی اس پر مبنی کوڈ موجود ہے۔ روبی 1.1 صرف جزوی طور پر روبی 1.1 کے ساتھ مطابقت رکھتا ہے۔ روبی 1.8 کئی صنعتی معیارات کا موضوع رہا ہے۔ روبی کے لیے زبان کی وضاحتیں انفارمیشن ٹیکنالوجی پروموشن ایجنسی (ایک جاپانی سرکاری ایجنسی) کے اوپن اسٹینڈرڈز پروموشن سینٹر نے جاپانی انڈسٹریل اسٹینڈرڈز کمیٹی (جے آئی ایس سی) اور پھر انٹرنیشنل آرگنائزیشن فار اسٹینڈرڈائزیشن (آئی ایس او) کو پیش کرنے کے لیے تیار کی تھیں۔ اسے 2011 میں جاپانی صنعتی معیار (جے آئی ایس ایکس 3017) اور 2012 میں بین الاقوامی معیار (آئی ایس او/آئی ای سی 30170) کے طور پر قبول کیا گیا تھا۔ 2005 کے آس پاس، روبی زبان میں دلچسپی روبی آن ریلز کے ساتھ مل کر بڑھ گئی، جو روبی میں لکھا گیا ایک ویب فریم ورک ہے۔ ریلز کو اکثر روبی کے بارے میں آگاہی بڑھانے کا سہرا دیا جاتا ہے۔ روبی 1.9 روبی 1.9 کو 2007 میں کرسمس کے دن ریلیز کیا گیا تھا۔ 31 اکتوبر 2011 کو ریلیز ہونے والی روبی 1.9.3 کے ساتھ مؤثر، روبی نے روبی لائسنس اور جی پی ایل کے تحت دوہری لائسنس یافتہ ہونے سے روبی لائسنس اور دو شقوں والے بی ایس ڈی لائسنس کے تحت دوہری لائسنس یافتہ ہونے کا رخ کیا۔ 1. 1 کو اپنانے کی رفتار 1.1 سے تبدیلیوں کی وجہ سے سست ہو گئی تھی جس کے لیے بہت سے مشہور تیسرے فریق کے جواہرات کو دوبارہ لکھنے کی ضرورت تھی۔ روبی 1.1 نے 1.1 سیریز میں بہت سی اہم تبدیلیاں متعارف کرائی ہیں۔ مثالوں میں شامل ہیں: مقامی متغیرات کو بلاک کریں (وہ متغیر جو اس بلاک کے مقامی ہیں جس میں ان کا اعلان کیا گیا ہے) ایک اضافی لیمبڈا نحو: علامت کی چابیاں کے لیے کولون کا استعمال کرتے ہوئے ایک اضافی ہیش لفظی نحو: فی سٹرنگ کیریکٹر انکوڈنگ کو نئے ساکٹ API (IPv6 سپورٹ) کی حمایت حاصل ہے۔ صارفین کو مشورہ دیا جاتا ہے کہ وہ تازہ ترین ورژن میں اپ گریڈ کریں۔ روبی 2 روبی 2 نے کئی نئی خصوصیات شامل کیں، جن میں شامل ہیں: کلیدی الفاظ کے دلائل کا طریقہ، کلاس کو بڑھانے کے لیے ایک نیا طریقہ، Module#prepend، علامتوں کی ایک صف بنانے کے لیے ایک نیا لفظی، عددی اشیا کی سست تشخیص کے لیے نیا API، اور اشیاء کو ہیش میں تبدیل کرنے کے لیے #to_h استعمال کرنے کا ایک نیا رواج۔ روبی 2 کا مقصد روبی 1.9.3 کے ساتھ مکمل طور پر پسماندہ ہم آہنگ ہونا تھا۔ 24 فروری 2013 کو باضابطہ 2.0.0 کی ریلیز کے مطابق، صرف پانچ معلوم (معمولی) مطابقت پذیری تھیں۔ روبی 2.0 24 فروری 2016 سے متروک ہے، اور اسے اب بگ اور سیکیورٹی فکسس موصول نہیں ہوں گے۔ صارفین کو مشورہ دیا جاتا ہے کہ وہ تازہ ترین ورژن میں اپ گریڈ کریں۔ روبی 2.1 روبی 2.1 کو 2013 میں کرسمس کے دن ریلیز کیا گیا تھا۔ ریلیز میں اسپیڈ اپس، بگ فکسس اور لائبریری اپ ڈیٹس شامل ہیں۔ 2. 1. 0 سے شروع کرتے ہوئے، روبی کی ورژننگ پالیسی بامعنی ورژننگ کی طرح ہے۔ اگرچہ اسی طرح، روبی کی ورژننگ پالیسی سیمنٹک ورژننگ کے ساتھ مطابقت نہیں رکھتی ہے: سیمنٹک ورژننگ ریلیز سے پہلے کے لیے اضافی لیبل بھی فراہم کرتی ہے اور بلڈ میٹا ڈیٹا MAJOR.MINOR.PATCH فارمیٹ میں ایکسٹینشن کے طور پر دستیاب ہیں، جو روبی پر دستیاب نہیں ہیں۔ روبی 2.1 یکم اپریل 2017 سے متروک ہے، اور اسے اب بگ اور سیکیورٹی فکسس موصول نہیں ہوں گے۔ صارفین کو مشورہ دیا جاتا ہے کہ وہ تازہ ترین ورژن میں اپ گریڈ کریں۔ روبی 2.2 روبی 2.2 کو 2014 میں کرسمس کے دن ریلیز کیا گیا تھا۔ ریلیز میں اسپیڈ اپس، بگ فکسس، اور لائبریری اپ ڈیٹس شامل ہیں اور کچھ فرسودہ API کو ہٹا دیتا ہے۔ خاص طور پر، روبی 2.2.0 ایک اضافی کچرا جمع کرنے والے کو سنبھالنے والی میموری میں تبدیلیاں، علامتوں کے کچرا جمع کرنے کے لیے سپورٹ اور براہ راست جیملوک کے خلاف مرتب کرنے کا آپشن متعارف کراتی ہے۔ اس میں ویفورک (2) کو سسٹم () اور اسپان () کے ساتھ استعمال کرنے کے لیے تجرباتی سپورٹ بھی شامل ہے، اور یونیکوڈ 7.0 کی تفصیلات کے لیے اضافی سپورٹ بھی شامل ہے۔ جن خصوصیات کو متروک یا ہٹا دیا گیا تھا ان میں کال سی سی، ڈی ایل لائبریری، ڈائجسٹ:: ایچ ایم اے سی، لب/عقلی. آر بی، لب/کمپلیکس. آر بی، جیسرور، لاگر:: ایپلی کیشن کے ساتھ ساتھ مختلف سی اے پی آئی افعال شامل ہیں۔ روبی 2.2 یکم اپریل 2018 سے متروک ہے، اور اسے اب بگ اور سیکیورٹی فکسس موصول نہیں ہوں گے۔ صارفین کو مشورہ دیا جاتا ہے کہ وہ تازہ ترین ورژن میں اپ گریڈ کریں۔ پاور پی سی 64 کی کارکردگی ورژن 2.1 کے بعد سے، پاور پی سی 64 پر روبی ایم آر آئی کی کارکردگی کو بہتر بنایا گیا تھا۔ روبی 2.3 روبی 3.3 کو 2015 میں کرسمس کے دن ریلیز کیا گیا تھا۔ چند قابل ذکر تبدیلیوں میں شامل ہیں: تمام سٹرنگ لیٹرلز کو ڈیفالٹ کے طور پر منجمد کے طور پر نشان زد کرنے کی صلاحیت جس کے نتیجے میں سٹرنگ آپریشنز میں بڑی کارکردگی میں اضافہ ہوتا ہے۔ صرف چابیاں کے بجائے کلیدی/قدر کے جوڑوں کی براہ راست جانچ کی اجازت دینے کے لیے ہیش موازنہ۔ ایک نیا محفوظ نیویگیشن آپریٹر &. جو نیل ہینڈلنگ کو آسان بنا سکتا ہے (مثال کے طور پر۔ اس کے بجائے، ہم استعمال کر سکتے ہیں اگر آبج &. فو &. بار)۔ کیا آپ کا مطلب منی اب پہلے سے طے شدہ طور پر بنڈل کیا گیا ہے اور اسٹارٹ اپ پر نیم ایرر یا نو میتھوڈ ایرر پر خود بخود اسی طرح کے نام کے میچ تجویز کرنے کی ضرورت ہے۔ Hash#dig اور Array#dig آسانی سے گہری گھونسلے والی اقدار کو نکالنے کے لیے (جیسے. دی گئی، قیمت فو باز کو اب profile.dig (: سماجی،: ویکیپیڈیا،: نام) کے ذریعے حاصل کیا جا سکتا ہے۔ . grep _ v (rgexp) جو دیگر نئی خصوصیات کے علاوہ دی گئی باقاعدہ اظہار کی تمام منفی مثالوں سے میل کھائے گا۔ 2. 3 برانچ میں کارکردگی میں بہت سی بہتری، اپ ڈیٹس، اور بگ فکسس بھی شامل ہیں جن میں Proc#call میں تبدیلیاں، رعایت والے مطلوبہ الفاظ کا ساکٹ اور IO استعمال، Thread#name ہینڈلنگ، ڈیفالٹ غیر فعال نیٹ:: FTP کنکشن، اور ایس ٹی ڈی ایل بی سے ریک کو ہٹانا شامل ہیں۔ روبی 2.4 روبی 2016 میں کرسمس کے دن ریلیز ہوئی تھی۔ چند قابل ذکر تبدیلیوں میں شامل ہیں: Binding#irb: REPL سیشن شروع کریں جیسا کہ binding.pry یونیفائی فکسنم اور بیگنیم کو انٹیجر کلاس میں اسٹرنگ یونیکوڈ کیس میپنگ کی حمایت کرتا ہے، نہ کہ صرف ASCII ایک نیا طریقہ، Regexp#match؟، جو کہ Regexp#match تھریڈ ڈیڈلاک کا پتہ لگانے کا ایک تیز بولین ورژن ہے، اب تھریڈز کو ان کے بیک ٹریس اور انحصار کے ساتھ دکھاتا ہے۔ روبی 2.5 روبی 2.5 2017 میں کرسمس کے دن ریلیز ہوئی تھی۔ چند قابل ذکر تبدیلیوں میں شامل ہیں: ریسکیو اور اس بات کو یقینی بنانا کہ بیانات خود بخود آس پاس کے ڈو اینڈ بلاک کا استعمال کرتے ہیں (اضافی اسٹارٹ اینڈ بلاکس کی کم ضرورت ہے) ییلڈ سیلف سپورٹ برانچ کوریج کے ساتھ میتھڈ چیننگ اور میتھڈ کوریج کی پیمائش Hash#slice اور Hash#transform_keys کے ساتھ آسان ہیش ٹرانسفارمیشن اس کے اوپر کارکردگی میں بہت ساری بہتری آتی ہے جیسے تیز بلاک پاسنگ (3 گنا تیز)، تیز میوٹیکس، تیز ای آر بی ٹیمپلیٹس اور کچھ کنکیٹی نیشن طریقوں میں بہتری۔ روبی 2.6 روبی 2.6 کو 2018 میں کرسمس کے دن ریلیز کیا گیا تھا۔ چند قابل ذکر تبدیلیوں میں شامل ہیں: جے آئی ٹی (تجرباتی) روبی وی ایم:: خلاصہ سنٹیکس ٹری (تجرباتی) روبی 2.7 روبی 2.7.0 کو 2019 میں کرسمس کے دن جاری کیا گیا تھا۔ کچھ قابل ذکر تبدیلیوں میں شامل ہیں: پیٹرن میچنگ (تجرباتی) آر ای پی ایل بہتری کمپکشن جی سی پوزیشنل اور مطلوبہ الفاظ کے دلائل کی علیحدگی روبی 3.0.0.2020 میں کرسمس کے دن جاری کی گئی تھی۔ اسے روبی 3x3 کے نام سے جانا جاتا ہے۔ اس کا ایک اہم مقصد پروگراموں کو تیز تر بنانے کے لیے مترجم کو جسٹ ان ٹائم مرتب میں تبدیل کرنا تھا۔ روبی 3.1 ورژن 3.1.0 2021 کے کرسمس پر جاری کیا گیا تھا۔ اس میں ایک خودکار خصوصیت شامل تھی۔ روبی 3.2 روبی 2022 کے کرسمس کے دن ریلیز ہوئی تھی۔ اس میں ویب اسمبلی کے لیے سپورٹ شامل ہے۔ ورژن کی میز حوالہ جات روبی (پروگرامنگ زبان)