VisualWorks
ویژول ورکس (سابقہ آبجیکٹ ورکس، بعد میں سن کام سمال ٹاک) سمال ٹاک زبان کا ایک کراس پلیٹ فارم نفاذ ہے۔ اسے تصاویر پر مبنی ایک ترقیاتی نظام کے طور پر نافذ کیا جاتا ہے، جو سافٹ ویئر آبجیکٹ کے متحرک مجموعے ہوتے ہیں، جن میں سے ہر ایک سسٹم امیج میں موجود ہوتا ہے۔ ویژول ورکس کا نسب زیروکس پی اے آر سی کے پہلے سمال ٹاک-80 کے نفاذ سے ملتا ہے۔ 1980 کی دہائی کے آخر میں، سمال ٹاک-80 ڈویلپرز کے ایک گروپ نے ایک تجارتی پروڈکٹ کے طور پر سمال ٹاک-80 کو مزید ترقی دینے کے لیے پارک پلیس سسٹمز کو شروع کیا۔ تجارتی مصنوعات کو ابتدائی طور پر آبجیکٹ ورکس اور پھر ویژول ورکس کا نام دیا گیا تھا۔ 31 اگست 1999 کو ویژول ورکس پروڈکٹ سن کام سسٹمز کو فروخت کر دیا گیا۔ ویژول ورکس بہت سے آپریٹنگ سسٹمز کے تحت چلتا ہے، بشمول ونڈوز، میک او ایس، لینکس، اور کئی یونکس ورژن۔ ویژول ورکس اپنے بلٹ ان ملٹی پلیٹ فارم خصوصیات کی وجہ سے کراس پلیٹ فارم ڈویلپمنٹ پروجیکٹس کی حمایت کرتا ہے۔ مثال کے طور پر، ایک گرافیکل یوزر انٹرفیس (جی یو آئی) ایپلی کیشن کو صرف ایک بار تیار کرنے کی ضرورت ہوتی ہے، اور پھر اسے مختلف ویجیٹ اسٹائل میں تبدیل کیا جا سکتا ہے۔ ویژول ورکس ایپلی کیشن کو تمام معاون پلیٹ فارمز پر بغیر کسی ترمیم کے چلایا جا سکتا ہے۔ صرف ورچوئل مشین پلیٹ فارم پر منحصر ہے۔ فوائد اور خرابیاں ویژول ورکس بہت تیزی سے ایپلی کیشن کی ترقی کی اجازت دیتا ہے، کیونکہ انفرادی طریقوں کو اس وقت بھی مرتب کیا جا سکتا ہے جب تیار کیا جانے والا پروگرام چل رہا ہو۔ سمال ٹاک طریقہ کو مرتب کرنے میں عام طور پر ایک سیکنڈ سے بھی کم وقت لگتا ہے، جبکہ سی + + پروجیکٹ کے لیے ایسا کرنے میں اکثر ایک منٹ یا اس سے زیادہ وقت لگتا ہے، اور عمل کو دوبارہ شروع کیے بغیر آسانی سے نہیں کیا جا سکتا۔ ویژول ورکس کے مختلف کوڈ براؤزر ڈویلپر کو کسی کلاس یا دلچسپی کے طریقہ کار کو جلدی سے تلاش کرنے میں مدد کرتے ہیں۔ سمال ٹاک پروگراموں کی کارکردگی اور تھرو پٹ سی + +، فورٹرن، پاسکل، یا اڈا جیسی جامد زبانوں کی کارکردگی تک رسائی حاصل کر سکتی ہے جس میں جسٹ ان ٹائم کمپائلر کا استعمال کرتے ہوئے مشین کوڈ تیار کیا جاتا ہے جو اکثر استعمال ہونے والی اقسام کے لیے خاص ہوتا ہے، لیکن عددی پروسیسنگ اور پروگرام جو عین مطابق میموری ترتیب سے فائدہ اٹھاتے ہیں وہ اب بھی آہستہ چل سکتے ہیں۔ نسل در نسل کچرا جمع کرنے والا جمع کرنے کے زیادہ تر وقفوں کو کم کرتا ہے، لیکن مشکل حقیقی وقت اور عزم کی ضروریات کے لیے موزوں نہیں ہو سکتا، جب تک کہ مکمل جمع ہو سکتا ہے، جو ڈھیر کے سائز کے متناسب دنیا کو دسیوں سے سینکڑوں ملی سیکنڈ تک روک سکتا ہے۔ تاہم، آبجیکٹ پر مبنی زبان میں دستی میموری مینجمنٹ کے مقابلے میں کچرا اکٹھا کرنا بہتر ہے، اور پروگرامر کب اور کتنی دیر تک کچرا اکٹھا ہوتا ہے اس پر قابو پانے کے لیے مختلف اقدامات کر سکتا ہے ؛ لہذا زیادہ تر حالات میں، کچرا اکٹھا کرنا کوئی تشویش کی بات نہیں ہے۔ انسٹالیشن ویژول ورکس سسٹم کے تمام اجزاء ونڈوز 7 یا اس کے بعد کے پروگرام فائلوں\سن کام ڈائرکٹری میں انسٹال کیے جاتے ہیں جس کا نام انسٹال شدہ سسٹم کے ورژن نمبر کے نام پر رکھا گیا ہے-مثال کے طور پر، vw7.5nc۔ اس ڈائرکٹری میں کئی ذیلی ڈائریکٹریز شامل ہیں جن میں بن، ڈاک، مثالیں اور بہت سی دیگر شامل ہیں۔ ماؤس کے بٹن اور مینو ویژول ورکس تین بٹن والے ماؤس کو فرض کرتے ہیں جس کے منطقی نام <منتخب کریں>، <چلائیں>، اور <ونڈو> ہوتے ہیں۔ اگرچہ، ایک یا دو بٹن والے ماؤس کو سی ٹی آر ایل، آپشن، یا کمانڈ کیز کے ساتھ استعمال کیا جا سکتا ہے۔ <منتخب کریں> کسی بھی انٹرفیس آبجیکٹ کو منتخب کرتا ہے۔ <آپریٹ> موجودہ ویو/سلیکشن کے لیے کارروائیوں کا ایک مینو لاتا ہے۔ <ونڈو> بصری ورکس ونڈوز پر اقدامات (منتقل، بند) شروع کرتا ہے۔ فائل-ان فارمیٹ کلاسوں کو ٹیکسٹ فائلوں کے طور پر پیش کرنے کے لیے اصل سمال ٹاک فارمیٹ ہے۔ انہیں ویژول ورکس آئی ڈی ای میں "فائل ان" کیا جا سکتا ہے تاکہ کوئی بھی کلاس تیار کی جا سکے جو پہلے سے سمال ٹاک امیج میں موجود نہیں ہے۔ ہر فائل میں موجود دستاویز ایک ٹیکسٹ فائل میں ایک سمال ٹاک کلاس، یا کلاس کی سادہ متن کی نمائندگی فراہم کرتا ہے جس کا لاحقہ. st ہوتا ہے۔ اسے اب بھی ویژول ورکس میں سپورٹ کیا جاتا ہے، لیکن اسے پارسل میکانزم نے ختم کر دیا ہے۔ ذیلی ڈائرکٹری کی مثالوں میں فائل ان فارمیٹ میں مثالیں موجود ہیں۔ پارسل پیکجوں کی بیرونی فائل کی نمائندگی ہیں۔ ایک مثال براؤزر مثالوں کی ڈائرکٹری میں پارسل کے طور پر فراہم کیا گیا ہے۔ امیج اسٹارٹ اپ پر پارسل لوڈنگ کی وضاحت کے لیے امیج لیول کے کئی سوئچ دستیاب ہیں۔ پارسل کا راستہ ڈائریکٹریز کی فہرست ہے جہاں ویژول ورکس پارسل تلاش کرتا ہے۔ اسے سسٹم سیٹنگز ٹول کا استعمال کرتے ہوئے سیٹ کیا جا سکتا ہے۔ پارسل بصری ورکس کے لیے اجزاء کی ٹیکنالوجی فراہم کرتے ہیں۔ پیکیجز اور بنڈل کوڈ کو منظم کرتے ہیں اور پارسل کے مندرجات کا نمونہ بناتے ہیں۔ پارسل پیکیج/بنڈل شائع کر کے بنائے جاتے ہیں۔ بصری ورکس کے دائرے میں اجزاء کی اصطلاح پارسل، پیکجوں اور بنڈلوں کا حوالہ دینے کے لیے استعمال ہوتی ہے جب مخصوص ہونا ضروری نہیں ہوتا ہے۔ لوڈنگ پر پارسل کوڈ کی تنظیم کا تعین اس کی تخلیق سے ہوتا ہے۔ اگر یہ کسی پیکیج کو شائع کرکے بنایا گیا تھا، تو اسے اسی پیکیج میں لوڈ کیا جاتا ہے۔ اگر کسی بنڈل سے بنایا گیا ہے، تو اسے بنڈل کے طور پر یا ایک پیکیج کے طور پر دوبارہ لوڈ کیا جا سکتا ہے۔ پیکیج کے لیے لوڈ کی ترتیب یہ ہے: کسی بھی ضروری اجزاء کو لوڈ کیا جاتا ہے۔ کوئی بھی متعین پری لوڈ ایکشن انجام دیا جاتا ہے (جیسے۔ غیر اعلانیہ متغیرات شروع کیے گئے)۔ پیکیج میں موجود اشیاء نصب ہیں۔ پارسل میں موجود ہر کلاس کو لوڈ: پیکیج، اور کسی بھی عمل کو انجام دینے کے بعد پیغام بھیجا جاتا ہے۔ یہ اکثر ایک ایپلیکیشن لانچ ہوتا ہے۔ پارسل مینیجر پارسل کے راستے پر موجود تمام پارسل کو لوڈ اور ان لوڈ کرنے کے لیے استعمال ہوتا ہے۔ تجاویز کا نظارہ کلیدی اضافی پارسل پر مشتمل زمرہ جات کی فہرست بناتا ہے-زمرہ منتخب کرنے سے آپ کو تجویز کردہ پارسل کی فہرست مل جاتی ہے۔ مثال کے طور پر، UI پینٹر لازمی زمرے میں واقع ہے۔ تجاویز کے منظر سے باہر پارسل تلاش کرنے کے لیے پارسل کے راستے کا ڈائرکٹری ٹری ویو بھی ہے۔ ایک لوڈ شدہ منظر تصویر میں پہلے سے موجود تمام پارسل کی فہرست دیتا ہے۔ صرف بھری ہوئی پارسل کو براؤز کیا جا سکتا ہے۔ ایک سپورٹڈ ویژول ورکس پروڈکٹ پارسل کی نمائندگی ایک آئکن کے ذریعے کی جاتی ہے جو پارسل کی طرح لگتا ہے۔ دوسرے دکانداروں کے پارسل شاپنگ بیگ کی طرح نظر آتے ہیں۔ سمال ٹاک کلاس کی ترقی کی پیچیدہ تاریخ کی وجہ سے یہ بہت مفید ثابت ہو سکتا ہے۔ مثال کے طور پر، ایک پارسل آئیکن اس بات کی نشاندہی کرتا ہے کہ آربر ہائپر ٹیکسٹ سسٹم اب ویژول ورکس سپورٹڈ ہے۔ کوئی بھی ایپلیکیشن سے پروگرام کے طور پر پارسل لوڈ اور ان لوڈ بھی کر سکتا ہے۔ پیکجز جب کسی پارسل کو لوڈ کیا جاتا ہے تو اسے پیکیج، یا پیکجوں کے بنڈل کے طور پر منظم کیا جاتا ہے۔ پارسل سے لوڈ شدہ کوڈ کی تلاش کرتے وقت، سسٹم براؤزر میں اسی نام کے بنڈل یا پیکیج کا پتہ لگایا جا سکتا ہے۔ پیکیجز وہ زمرے ہیں جو اجزاء کے مطابق متعلقہ گروپوں میں کلاسوں کو منظم کرتے ہیں۔ پیکجوں کو بنڈلوں میں تقسیم کیا جا سکتا ہے۔ پیکجوں اور بنڈلوں کو پارسل کے طور پر محفوظ (شائع) کیا جا سکتا ہے، یا سورس کوڈ کے ذخیرے میں محفوظ کیا جا سکتا ہے۔ کوڈ لائبریریاں لوڈ کرنا ابتدائی visual.im تصویر میں بنیادی کلاس لائبریریوں کا استعمال کرتے ہوئے کم سے کم ترقیاتی سہولیات موجود ہیں۔ اضافی کلاس لائبریریاں بصری ورکس یا تھرڈ پارٹی وینڈرز کے ذریعہ فراہم کی جاتی ہیں، عام طور پر پارسل فائلوں کے طور پر۔ زیادہ تر غیر چھوٹے ٹاک کے ترقیاتی ماحول کے لیے، کوڈ لائبریریوں کو مرتب کرنے کے وقت درآمد کیا جاتا ہے، ایک شامل کمانڈ کا استعمال کرتے ہوئے۔ سمال ٹاک میں، کوڈ لائبریریوں کو رننگ سسٹم میں لوڈ کیا جاتا ہے، اور ماحول کا حصہ بن جاتا ہے۔ مثال کے طور پر، یو آئی پینٹر کو پارسل کے طور پر لوڈ کیا جاتا ہے۔ ویژول ورکس لانچر ویژول ورکس لانچر، جسے عام طور پر صرف لانچر کہا جاتا ہے، ویژول ورکس سسٹم کا کنٹرول سینٹر ہے۔ یہ تمام بڑے آلات کے لیے لانچنگ پیڈ ہے۔ سمال ٹاک ایک خالص آبجیکٹ پر مبنی پروگرامنگ زبان ہے، جس کا مطلب ہے کہ سمال ٹاک کے اندر کچھ ہونے کا واحد طریقہ اشیاء کو پیغامات بھیجنا ہے۔ ویژول ورکس اسمال ٹاک-80 زبان کو معیاری طور پر استعمال کرتا ہے، لیکن کلاسوں اور طریقوں کے اپنے سیٹ کے ساتھ آتا ہے۔ لہذا یہاں تک کہ بنیادی کلاسیں، جیسے آبجیکٹ، دوسرے سمال ٹاک-80 آئی ڈی ایز جیسے سکویک اور ڈولفن سمال ٹاک سے مختلف ہیں۔ یہاں مثالی مثالیں ویژول ورکس سمال ٹاک میں کام کرتی ہیں، لیکن ہو سکتا ہے کہ دیگر سمال ٹاک میں کام نہ کریں کیونکہ کلاسیں اور/یا طریقے مختلف ہو سکتے ہیں۔ براؤزنگ اور سمال ٹاک کوڈ میں ترمیم روایتی آبجیکٹ پر مبنی پروگرامنگ ماحول میں ایک ڈویلپر براہ راست کلاس اور طریقہ کار کی تعریفوں پر مشتمل سادہ ٹیکسٹ سورس کوڈ فائل میں ترمیم کرتا ہے۔ ویژول ورکس میں، تمام چھوٹی کہانیوں کی طرح، ہر چیز ایک عمل درآمد کرنے والا آبجیکٹ ہے، بشمول کلاسیں۔ براؤزنگ سمال ٹاک کلاسوں میں ڈویلپر اشیاء کو انجام دینے سے تعریفیں بیان کرتا ہے۔ ویژول ورکس میں مرکزی براؤزر/ایڈیٹر سسٹم براؤزر ہے۔ یہ ڈویلپر کو کلاسوں کو براؤز کرنے کی اجازت دیتا ہے یا تو مجموعی کلاس کے درجہ بندی میں یا ان کے پیکجوں کے ذریعے۔ اسے ویژول ورکس لانچر سے لانچ کیا گیا ہے۔ سسٹم براؤزر میں لسٹ پین ڈویلپرز کو کلاس اور طریقہ کار کی تعریفوں پر جانے کی اجازت دیتے ہیں۔ اس کے بعد انہیں کوڈ ویو میں دیکھا یا ترمیم کیا جا سکتا ہے، یا نئی تعریفوں کے ساتھ ان میں ترمیم کی جا سکتی ہے۔ غیر اعلانیہ متغیرات جب کسی متغیر کو حذف کر دیا جاتا ہے جب کہ اس کے حوالے اب بھی موجود ہوتے ہیں، یا کسی پارسل کے ذریعے لوڈ کیا جاتا ہے لیکن کبھی اعلان نہیں کیا جاتا ہے، تو اس کا نام غیر اعلانیہ نام کی جگہ میں داخل ہوتا ہے۔ غیر اعلانیہ متغیرات بعض پروگرام کی غلطیوں کا سبب بن سکتے ہیں۔ ویژول ورکس پر سٹرنگ اور فائلیں سن کام کا پہلا ٹیوٹوریل اس بات کی وضاحت کرتا ہے کہ کس طرح ویژول ورکس کو سرور لاگ فائلوں میں ہیرا پھیری کے لیے استعمال کیا جا سکتا ہے۔ یہ اس بات کی وضاحت کرتا ہے کہ کس طرح سٹرنگ اور فائلوں جیسی چیزوں کو ویژول ورکس کے اندر آبجیکٹ ڈھانچے میں آسانی سے شامل کیا جا سکتا ہے۔ سمال ٹاک کے اظہار پر غور کریں: 'ws000101.log' بطور فائل نام ترمیم کوئی بھی آپریٹ مینو میں ایک کمانڈ کا استعمال کرتے ہوئے اس اظہار کا اندازہ ویژول ورکس ورک اسپیس میں کر سکتا ہے۔ یہ تخلیق کرتا ہے: کلاس بائٹ سٹرنگ کا ایک آبجیکٹ جس میں سٹرنگ (بطور بائٹس) اور اسے جوڑنے کے طریقے ؛ کلاس این ٹی ایف ایس فائل نام کا ایک آبجیکٹ (ونڈوز ایکس پی میں) ؛ اور ایک ایڈیٹر آبجیکٹ۔ مؤخر الذکر ایک سادہ نوٹ بک جیسا ایڈیٹر ہے جس میں فائل کے مندرجات ہوتے ہیں۔ یعنی، تشخیص نے فائل ws000101.log کے گیٹ وے کے طور پر ایک فائل نام آبجیکٹ بنایا اور اس پر ایک ایڈیٹر کھولا۔ ایڈیٹر خود ایک آبجیکٹ ہے، جیسا کہ اس کے تمام اجزاء ہیں (نیچے اور اس کے مینو میں حروف بھی شامل ہیں)۔ سورس کوڈ ان تمام اشیاء کے لیے دستیاب ہے، اور ویژول ورکس میں انسپکٹرز، براؤزرز، اور دیگر ٹولز کی بھرمار ہے جو کسی کے لیے بھی جامد یا متحرک موڈ میں کوڈ کا جائزہ لینے اور معائنہ کرنے کے لیے ہیں۔ ٹیوٹوریلز اکثر سن کام سمال ٹاک کے لیے تیار کیے جاتے ہیں، اور ایک سی سائیڈ ٹیوٹوریل موجود ہے۔ حوالہ جات بیرونی لنکس، سن کام ویژول ورکس ویکی UIUC پر آرکائیو شدہ archive.org انٹیگریٹڈ ڈویلپمنٹ انوائرمنٹ سمال ٹاک پروگرامنگ لینگویج فیملی