विजुअलवर्क्स

विज़ुअलवर्क्स (पूर्व में ऑब्जेक्टवर्क्स, बाद में सिनकॉम स्मॉलटाक) स्मॉलटाक भाषा का एक क्रॉस-प्लेटफ़ॉर्म कार्यान्वयन है। इसे 'छवियों' पर आधारित एक विकास प्रणाली के रूप में लागू किया गया है, जो सॉफ्टवेयर ऑब्जेक्ट्स का गतिशील संग्रह है, प्रत्येक सिस्टम छवि में निहित है।

विज़ुअलवर्क्स की वंशावली PARC (कंपनी) द्वारा पहले स्मॉलटॉक-80 कार्यान्वयन पर वापस जाती है। 1980 के दशक के अंत में, स्मॉलटाक-80 डेवलपर्स के एक समूह ने स्मॉलटॉक-80 को एक वाणिज्यिक उत्पाद के रूप में और विकसित करने के लिए ParcPlace Systems को अलग कर दिया। वाणिज्यिक उत्पाद को शुरू में ऑब्जेक्टवर्क्स और फिर विजुअलवर्क्स नाम दिया गया था। 31 अगस्त 1999 को VisualWorks उत्पाद को Cincom Systems को बेच दिया गया था। VisualWorks Microsoft Windows, macOS, Linux, और कई Unix संस्करणों सहित कई ऑपरेटिंग सिस्टम के अंतर्गत चलता है।

VisualWorks क्रॉस-प्लेटफ़ॉर्म विकास परियोजनाओं का समर्थन करता है, इसकी अंतर्निहित बहु-प्लेटफ़ॉर्म सुविधाओं के कारण। उदाहरण के लिए, एक ग्राफिकल यूज़र इंटरफ़ेस (GUI) एप्लिकेशन को केवल एक बार विकसित करने की आवश्यकता होती है, और फिर इसे विभिन्न विजेट शैलियों में स्विच किया जा सकता है। VisualWorks एप्लिकेशन को बिना किसी संशोधन के सभी समर्थित प्लेटफॉर्म पर चलाया जा सकता है। केवल आभासी मशीन ही प्लेटफॉर्म पर निर्भर है।

लाभ और कमियां
VisualWorks बहुत तेजी से अनुप्रयोग विकास की अनुमति देता है, क्योंकि विकसित किए जाने वाले प्रोग्राम के चलने के दौरान भी अलग-अलग तरीकों को संकलित किया जा सकता है। स्मॉलटाक विधि को संकलित करने में आमतौर पर एक सेकंड से भी कम समय लगता है, जबकि सी ++ प्रोजेक्ट के लिए ऐसा करने में अक्सर एक मिनट या अधिक समय लगता है, और प्रक्रिया को फिर से शुरू किए बिना आसानी से नहीं किया जा सकता है। विज़ुअलवर्क्स के विभिन्न कोड ब्राउज़र डेवलपर को एक वर्ग या रुचि की विधि का शीघ्रता से पता लगाने में मदद करते हैं।

स्मॉलटाक कार्यक्रमों का प्रदर्शन और थ्रूपुट स्थिर भाषाओं जैसे सी ++, फोरट्रान, पास्कल (प्रोग्रामिंग भाषा), या एडा (प्रोग्रामिंग भाषा) के प्रदर्शन को समय-समय पर संकलन का उपयोग कर सकते हैं। मशीन उत्पन्न करके बस-इन-टाइम कंपाइलर कोड जो अक्सर उपयोग किए जाने वाले प्रकारों के लिए विशिष्ट है, लेकिन संख्यात्मक प्रसंस्करण और प्रोग्राम जो सटीक मेमोरी लेआउट से लाभान्वित होते हैं, अभी भी धीमी गति से चल सकते हैं। जेनरेशनल गारबेज कलेक्शन (कंप्यूटर साइंस) अधिकांश संग्रह ठहराव को कम करता है, लेकिन कठिन वास्तविक समय और नियतत्ववाद आवश्यकताओं के लिए उपयुक्त नहीं हो सकता है, क्योंकि लंबे समय तक पूर्ण संग्रह हो सकता है, जो दुनिया को दसियों से सैकड़ों मिलीसेकंड तक रोक सकता है, ढेर के आकार के अनुपात में. हालांकि, कचरा संग्रह (कंप्यूटर विज्ञान) भाषा में मैन्युअल मेमोरी प्रबंधन पर बेहतर होता है, और कचरा संग्रह कब और कितने समय के लिए होता है, इसे नियंत्रित करने के लिए प्रोग्रामर विभिन्न क्रियाएं कर सकता है; इसलिए ज्यादातर परिस्थितियों में, कचरा संग्रहण चिंता का विषय नहीं है।

स्थापना
VisualWorks सिस्टम के सभी घटक Windows 7 पर या बाद में प्रोग्राम Files\Cincom Directory (फ़ाइल सिस्टम) में इंस्टॉल किए गए सिस्टम के सॉफ़्टवेयर संस्करण के नाम पर स्थापित हैं - उदाहरण के लिए,. इस निर्देशिका में कई /var/run|उपनिर्देशिकाएं हैं जिनमें बिन, डॉक्टर, उदाहरण और कई अन्य शामिल हैं।

माउस बटन और मेनू
VisualWorks तार्किक नाम वाले बटन वाले तीन-बटन वाले माउस को मानता है,  , और. हालाँकि, नियंत्रण कुंजी, विकल्प कुंजी या कमांड कुंजी कुंजियों के साथ एक या दो बटन वाले माउस का उपयोग किया जा सकता है।  किसी इंटरफ़ेस ऑब्जेक्ट का चयन करता है।   वर्तमान दृश्य/चयन के लिए संचालन का एक मेनू लाता है।   VisualWorks विंडो पर कार्रवाई (स्थानांतरित करें, बंद करें...) प्रारंभ करता है.

फ़ाइल-इन प्रारूप
फ़ाइल-इन स्वरूप पाठ फ़ाइलों के रूप में कक्षा (कंप्यूटर विज्ञान) का प्रतिनिधित्व करने के लिए मूल स्मॉलटाक प्रारूप है। इन्हें स्मॉलटॉक सिस्टम छवि में पहले से शामिल नहीं किए गए किसी भी वर्ग को उत्पन्न करने के लिए विजुअलवर्क्स एकीकृत विकास पर्यावरण में दायर किया जा सकता है। प्रत्येक फ़ाइल-इन दस्तावेज़ टेक्स्ट फ़ाइल में एक स्मॉलटॉक क्लास, या कक्षाओं का एक सरल टेक्स्टुअल प्रतिनिधित्व प्रदान करता है  प्रत्यय। यह अभी भी VisualWorks में समर्थित है, लेकिन पार्सल तंत्र द्वारा इसे हटा दिया गया है। उदाहरण उपनिर्देशिका में फ़ाइल-इन प्रारूप में उदाहरण हैं।

पार्सल
पार्सल संकुल के बाहरी फ़ाइल प्रतिनिधित्व हैं।

एक उदाहरण ब्राउज़र को उदाहरण निर्देशिका में पार्सल के रूप में प्रदान किया जाता है। इमेज स्टार्टअप पर पार्सल लोडिंग निर्दिष्ट करने के लिए कई इमेज लेवल स्विच उपलब्ध हैं। पार्सल पथ उन निर्देशिकाओं की सूची है जहाँ VisualWorks पार्सल की तलाश करता है। इसे सिस्टम सेटिंग्स टूल का उपयोग करके सेट किया जा सकता है।

पार्सल VisualWorks के लिए घटक तकनीक प्रदान करते हैं। पैकेज और बंडल कोड को व्यवस्थित करते हैं और पार्सल की सामग्री को मॉडल करते हैं। पैकेज/बंडल प्रकाशित करके पार्सल बनाए जाते हैं। VisualWorks क्षेत्र में घटक शब्द का उपयोग पार्सल, पैकेज और बंडलों को संदर्भित करने के लिए किया जाता है, जब विशिष्ट होना आवश्यक नहीं होता है।

लोडिंग पर पार्सल कोड का संगठन इसके निर्माण से निर्धारित होता है। यदि इसे किसी पैकेज को प्रकाशित करके बनाया गया था, तो इसे उसी पैकेज में लोड किया जाता है। यदि एक बंडल से बनाया गया है, तो इसे बंडल या एक पैकेज के रूप में पुनः लोड किया जा सकता है।

पैकेज के लिए लोड अनुक्रम है:


 * 1) कोई भी पूर्वापेक्षित घटक लोड किए गए हैं।
 * 2) कोई भी परिभाषित प्री-लोड क्रिया की जाती है (उदाहरण के लिए अघोषित चर आरंभीकृत)।
 * 3) पैकेज में ऑब्जेक्ट इंस्टॉल किए गए हैं।
 * 4) पार्सल में प्रत्येक वर्ग को संदेश पोस्ट लोड: पैकेज, और निष्पादित किसी भी कार्रवाई के बाद भेजा जाता है। यह अक्सर एक एप्लिकेशन लॉन्च होता है।

पार्सल मैनेजर
पार्सल प्रबंधक का उपयोग पार्सल पथ पर सभी पार्सलों को लोड और अनलोड करने के लिए किया जाता है। एक सुझाव दृश्य मुख्य ऐड-इन पार्सल वाली श्रेणियों को सूचीबद्ध करता है - एक श्रेणी का चयन करके, आपको अनुशंसित पार्सल की एक सूची मिलती है। उदाहरण के लिए, UI पेंटर आवश्यक श्रेणी में स्थित है। सुझाव दृश्य के बाहर पार्सल खोजने के लिए पार्सल पथ का एक निर्देशिका-वृक्ष दृश्य भी है। एक लोडेड दृश्य छवि में पहले से मौजूद सभी पार्सल को सूचीबद्ध करता है। केवल लोड किए गए पार्सल ही ब्राउज किए जा सकते हैं।

एक समर्थित VisualWorks उत्पाद पार्सल एक आइकन द्वारा दर्शाया जाता है जो पार्सल जैसा दिखता है। अन्य विक्रेताओं के पार्सल शॉपिंग बैग की तरह दिखते हैं। स्मॉलटॉक वर्ग के विकास के जटिल इतिहास के कारण यह बहुत उपयोगी हो सकता है। उदाहरण के लिए, एक पार्सल आइकन इंगित करता है कि आर्बर हाइपरटेक्स्ट सिस्टम अब विजुअलवर्क्स समर्थित है।

कोई भी एप्लिकेशन से प्रोग्रामेटिक रूप से पार्सल लोड और अनलोड कर सकता है।

संकुल
जब एक पार्सल लोड किया जाता है तो इसे एक पैकेज या पैकेज के बंडल के रूप में व्यवस्थित किया जाता है। पार्सल से लोड किए गए कोड की तलाश करते समय, सिस्टम ब्राउज़र में समान नाम वाले बंडल या पैकेज का पता लगा सकते हैं। संकुल वे श्रेणियां हैं जो कक्षाओं को घटक के अनुसार संबंधित समूहों में व्यवस्थित करती हैं। संकुल को बंडलों में बांटा जा सकता है। पैकेज और बंडल को पार्सल के रूप में सहेजा (प्रकाशित) किया जा सकता है, या स्रोत कोड रिपॉजिटरी में सहेजा जा सकता है।

लोड हो रहा है कोड पुस्तकालय
आरंभिक विज़ुअल.आईएम छवि में बेसिक कक्षा पुस्तकालय का उपयोग करते हुए न्यूनतम विकास सुविधाएं शामिल हैं। अतिरिक्त क्लास लाइब्रेरी VisualWorks या तीसरे पक्ष के विक्रेताओं द्वारा प्रदान की जाती हैं, आमतौर पर पार्सल फ़ाइलों के रूप में। अधिकांश गैर-स्मॉलटॉक विकास परिवेशों के लिए, हेडर फाइल कमांड का उपयोग करके कोड लाइब्रेरी को संकलन समय पर आयात किया जाता है। स्मॉलटाक में, कोड लाइब्रेरी को रनिंग सिस्टम में लोड किया जाता है, और पर्यावरण का हिस्सा बन जाता है। उदाहरण के लिए, UI पेंटर को पार्सल के रूप में लोड किया जाता है।

विजुअलवर्क्स लॉन्चर
विजुअलवर्क्स लॉन्चर, जिसे आमतौर पर केवल लॉन्चर कहा जाता है, विजुअलवर्क्स सिस्टम का नियंत्रण केंद्र है। यह सभी प्रमुख उपकरणों के लिए लॉन्चिंग पैड है।

स्मॉलटाक मूल बातें
स्मॉलटाक एक शुद्ध वस्तु उन्मुख प्रोग्रामिंग भाषा है, जिसका अर्थ है कि स्मॉलटाक के भीतर कुछ होने का एकमात्र तरीका वस्तुओं को संदेश भेजना है। विजुअलवर्क्स स्मॉलटॉक-80 भाषा को मानक के रूप में उपयोग करता है, लेकिन कक्षाओं और विधियों के अपने स्वयं के सेट के साथ आता है। इसलिए बुनियादी वर्ग, जैसे ऑब्जेक्ट, अन्य स्मॉलटाक -80 एकीकृत विकास वातावरण जैसे चीख़ और डॉल्फिन स्मॉलटॉक से भिन्न हैं। यहाँ दिए गए उदाहरण विज़ुअलवर्क्स स्मॉलटाक में काम करते हैं, लेकिन अन्य स्मॉलटाक में काम नहीं कर सकते हैं क्योंकि कक्षाएं और/या विधियाँ भिन्न हो सकती हैं।

स्मॉलटॉक कोड को ब्राउज़ करना और संपादित करना
पारंपरिक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग वातावरण में एक डेवलपर सीधे क्लास लाइब्रेरी और मेथड (कंप्यूटर साइंस) परिभाषाओं वाली एक सादा पाठ स्रोत कोड फ़ाइल संपादित करता है। विज़ुअलवर्क्स में, सभी स्मॉलटाक की तरह, सब कुछ निष्पादन योग्य है, जिसमें कक्षाएं भी शामिल हैं। स्मॉलटाक कक्षाओं को ब्राउज़ करने में डेवलपर वस्तुओं को क्रियान्वित करने से परिभाषाएँ बटोरता है। विजुअलवर्क्स में मुख्य ब्राउज़र/संपादक सिस्टम ब्राउज़र है। यह डेवलपर को समग्र श्रेणी पदानुक्रम में या उनके पैकेज के माध्यम से कक्षाओं को ब्राउज़ करने की अनुमति देता है। इसे VisualWorks Launcher से लॉन्च किया गया है।

सिस्टम ब्राउज़र में सूची फलक डेवलपर्स को कक्षा और विधि परिभाषाओं पर नेविगेट करने की अनुमति देते हैं। फिर उन्हें कोड व्यू में देखा या संपादित किया जा सकता है, या नई परिभाषाओं के साथ संशोधित किया जा सकता है।

अघोषित चर
जब एक चर हटा दिया जाता है, जबकि इसके संदर्भ अभी भी मौजूद हैं, या एक पार्सल के माध्यम से लोड किया गया है, लेकिन कभी भी घोषित नहीं किया गया है, इसका नाम अघोषित नाम स्थान में प्रवेश करता है। अघोषित चर कुछ कार्यक्रम त्रुटियों का कारण बन सकते हैं।

स्ट्रिंग और फ़ाइलें
VisualWorks पर Cincom का पहला ट्यूटोरियल दिखाता है कि कैसे VisualWorks का उपयोग सर्वर (कंप्यूटिंग) कंप्यूटर डेटा लॉगिंग में हेरफेर करने के लिए किया जा सकता है। यह दिखाता है कि कैसे स्ट्रिंग (कंप्यूटर विज्ञान) और कम्प्यूटर फाइल जैसी चीजें आसानी से VisualWorks के भीतर वस्तु संरचना में शामिल हो सकती हैं। स्मॉलटॉक अभिव्यक्ति (प्रोग्रामिंग) पर विचार करें:

'ws000101.log' asFilename संपादित करें

ऑपरेट मेनू में एक कमांड का उपयोग करके कोई भी इस अभिव्यक्ति का मूल्यांकन विजुअलवर्क्स वर्कस्पेस में कर सकता है। यह बनाता है:


 * 1) बाइटस्ट्रिंग वर्ग की एक वस्तु (कंप्यूटर विज्ञान) जिसमें स्ट्रिंग (बाइट्स के रूप में) और इसे हेरफेर करने की विधि (कंप्यूटर विज्ञान);
 * 2) वर्ग NTFSFilename (Windows XP में) का एक ऑब्जेक्ट; और
 * 3) एक संपादक वस्तु।

उत्तरार्द्ध एक साधारण स्मरण पुस्तक जैसा संपादक है जिसमें फ़ाइल की सामग्री होती है। यही है, मूल्यांकन ने फ़ाइल नाम ऑब्जेक्ट को फ़ाइल के प्रवेश द्वार के रूप में बनाया है  और उस पर एक संपादक खोला। संपादक स्वयं एक वस्तु है, जैसा कि इसके सभी घटक हैं (इसके मेनू में वर्णों सहित)। स्रोत कोड इन सभी वस्तुओं के लिए उपलब्ध है, और VisualWorks के पास स्थिर या गतिशील मोड में कोड का मूल्यांकन और निरीक्षण करने के लिए किसी के लिए निरीक्षकों, ब्राउज़रों और अन्य उपकरणों की अधिकता है।

ट्यूटोरियल
ट्यूटोरियल सिनकॉम स्मॉलटॉक के लिए अक्सर बनाए जाते हैं, और एक सीसाइड ट्यूटोरियल मौजूद है।

बाहरी संबंध

 * , Cincom
 * VisualWorks wiki at UIUC archived at archive.org