VisualWorks
ভিজ্যুয়ালওয়ার্কস (পূর্বে অবজেক্টওয়ার্কস, পরে সিনকম স্মলটক) স্মলটক ভাষার একটি ক্রস-প্ল্যাটফর্ম বাস্তবায়ন। এটি চিত্রের উপর ভিত্তি করে একটি উন্নয়ন ব্যবস্থা হিসাবে প্রয়োগ করা হয়, যা সফ্টওয়্যার বস্তুর গতিশীল সংগ্রহ, প্রতিটি একটি সিস্টেম ছবিতে রয়েছে। ভিজ্যুয়ালওয়ার্কসের বংশটি জেরক্স পিএআরসি দ্বারা প্রথম স্মলটক-80 বাস্তবায়নে ফিরে যায়। 1980-এর দশকের শেষের দিকে, স্মলটক-80 ডেভেলপারদের একটি দল স্মলটক-80-কে বাণিজ্যিক পণ্য হিসাবে আরও উন্নত করার জন্য পার্কপ্লেস সিস্টেমগুলি চালু করে। বাণিজ্যিক পণ্যটির নাম ছিল প্রথমে অবজেক্টওয়ার্কস এবং তারপর ভিজ্যুয়ালওয়ার্কস। 1999 সালের 31শে আগস্ট, ভিজ্যুয়ালওয়ার্কস পণ্যটি সিনকম সিস্টেমের কাছে বিক্রি করা হয়। ভিজ্যুয়ালওয়ার্কস উইন্ডোজ, ম্যাকোস, লিনাক্স এবং বেশ কয়েকটি ইউনিক্স সংস্করণ সহ অনেক অপারেটিং সিস্টেমের অধীনে চলে। ভিজ্যুয়ালওয়ার্কস তার অন্তর্নির্মিত মাল্টি-প্ল্যাটফর্ম বৈশিষ্ট্যগুলির কারণে ক্রস-প্ল্যাটফর্ম উন্নয়ন প্রকল্পগুলিকে সমর্থন করে। উদাহরণস্বরূপ, একটি গ্রাফিকাল ইউজার ইন্টারফেস (জিইউআই) অ্যাপ্লিকেশন শুধুমাত্র একবার তৈরি করা প্রয়োজন, এবং তারপর বিভিন্ন উইজেট শৈলীতে পরিবর্তন করা যেতে পারে। একটি ভিজ্যুয়ালওয়ার্কস অ্যাপ্লিকেশন কোনও পরিবর্তন ছাড়াই সমস্ত সমর্থিত প্ল্যাটফর্মে চালানো যেতে পারে। শুধুমাত্র ভার্চ্যুয়াল মেশিন প্ল্যাটফর্ম-নির্ভর। সুবিধা এবং অসুবিধাগুলি ভিজ্যুয়ালওয়ার্কস খুব দ্রুত অ্যাপ্লিকেশন বিকাশের অনুমতি দেয়, কারণ তৈরি করা প্রোগ্রামটি চলার সময়ও পৃথক পদ্ধতিগুলি সংকলিত করা যেতে পারে। একটি স্মলটক পদ্ধতি সংকলন করতে সাধারণত এক সেকেন্ডেরও কম সময় লাগে, যখন একটি সি + + প্রকল্পের জন্য একই কাজ করতে প্রায়শই এক মিনিট বা তার বেশি সময় লাগে এবং প্রক্রিয়াটি পুনরায় চালু না করে সহজেই করা যায় না। ভিজ্যুয়ালওয়ার্কসের বিভিন্ন কোড ব্রাউজার ডেভেলপারকে একটি শ্রেণী বা আগ্রহের পদ্ধতি দ্রুত সনাক্ত করতে সহায়তা করে। স্মলটক প্রোগ্রামগুলির পারফরম্যান্স এবং থ্রুপুট সি + +, ফোরট্রান, পাস্কাল বা অ্যাডার মতো স্ট্যাটিক ভাষার পারফরম্যান্সের সাথে যোগাযোগ করতে পারে একটি জাস্ট-ইন-টাইম কম্পাইলার ব্যবহার করে মেশিন কোড তৈরি করে যা ঘন ঘন ব্যবহৃত প্রকারের জন্য বিশেষ, তবে সংখ্যাসূচক প্রক্রিয়াকরণ এবং প্রোগ্রামগুলি যা সুনির্দিষ্ট মেমরি বিন্যাস থেকে উপকৃত হয় তা এখনও ধীর গতিতে চলতে পারে। প্রজন্মের আবর্জনা সংগ্রহকারী বেশিরভাগ সংগ্রহের বিরতি কমিয়ে দেয়, তবে কঠিন রিয়েল-টাইম এবং নির্ধারণবাদের প্রয়োজনীয়তার জন্য উপযুক্ত নাও হতে পারে, যতক্ষণ না সম্পূর্ণ সংগ্রহ ঘটতে পারে, যা বিশ্বকে দশ থেকে শত শত মিলিসেকেন্ডের জন্য থামিয়ে দিতে পারে, যা স্তূপের আকারের আনুপাতিক। যাইহোক, একটি অবজেক্ট-ওরিয়েন্টেড ভাষায় ম্যানুয়াল মেমরি ম্যানেজমেন্টের চেয়ে আবর্জনা সংগ্রহ করা ভাল, এবং কখন এবং কতক্ষণ আবর্জনা সংগ্রহ করা হয় তা নিয়ন্ত্রণ করতে প্রোগ্রামার বিভিন্ন পদক্ষেপ নিতে পারেন; তাই বেশিরভাগ পরিস্থিতিতে, আবর্জনা সংগ্রহ কোনও উদ্বেগের বিষয় নয়। ইনস্টলেশন ভিজ্যুয়ালওয়ার্কস সিস্টেমের সমস্ত উপাদানগুলি উইন্ডোজ 7 বা তার পরে ইনস্টল করা সিস্টেমের সংস্করণ নম্বরের নামে একটি প্রোগ্রাম ফাইলস \সিঙ্কম ডিরেক্টরিতে ইনস্টল করা থাকে-উদাহরণস্বরূপ, vw7.5nc। এই ডিরেক্টরিতে বিন, ডক, উদাহরণ এবং আরও অনেকগুলি সহ বেশ কয়েকটি সাবডিরেক্টরি রয়েছে। মাউস বোতাম এবং মেনু ভিজ্যুয়ালওয়ার্কস একটি তিন-বোতামের মাউস ধরে নেয় যার বোতামগুলির যৌক্তিক নাম <নির্বাচন করুন>, <পরিচালনা করুন>, এবং <উইন্ডো> রয়েছে। যদিও, একটি বা দুটি বোতামের মাউস সি. টি. আর. এল, অপশন বা কমান্ড কী-এর সঙ্গে ব্যবহার করা যেতে পারে। <নির্বাচন করুন> যে কোনও ইন্টারফেস অবজেক্ট নির্বাচন করে। <অপারেট> বর্তমান ভিউ/নির্বাচনের জন্য ক্রিয়াকলাপের একটি মেনু নিয়ে আসে। <উইন্ডো> ভিজ্যুয়ালওয়ার্কস উইন্ডোতে ক্রিয়া শুরু করে (সরান, বন্ধ করুন।)। ফাইল-ইন ফরম্যাট ফাইল-ইন ফরম্যাট হল ক্লাসগুলিকে টেক্সট ফাইল হিসাবে উপস্থাপন করার জন্য মূল স্মলটক ফরম্যাট। স্মলটক ইমেজে ইতিমধ্যে অন্তর্ভুক্ত নয় এমন কোনও ক্লাস তৈরি করতে এগুলি ভিজ্যুয়ালওয়ার্কস আইডিই-তে "ফাইল" করা যেতে পারে। প্রতিটি ফাইল-ইন ডকুমেন্ট একটি. স্ট প্রত্যয় সহ একটি টেক্সট ফাইলে একটি স্মলটক ক্লাস বা ক্লাসের একটি সহজ পাঠ্য উপস্থাপনা প্রদান করে। এটি এখনও ভিজ্যুয়াল ওয়ার্কসে সমর্থিত, তবে একটি পার্সেল প্রক্রিয়া দ্বারা প্রতিস্থাপিত হয়েছে। উদাহরণস্বরূপ সাবডিরেক্টরিতে ফাইল-ইন ফরম্যাটের উদাহরণ রয়েছে। পার্সেল হল প্যাকেজগুলির বাহ্যিক ফাইল উপস্থাপনা। একটি উদাহরণ ব্রাউজার উদাহরণ ডিরেক্টরিতে একটি পার্সেল হিসাবে প্রদান করা হয়। ইমেজ স্টার্টআপে পার্সেল লোডিং নির্দিষ্ট করার জন্য বেশ কয়েকটি ইমেজ স্তরের সুইচ উপলব্ধ। পার্সেল পথ হল ডিরেক্টরিগুলির তালিকা যেখানে ভিজ্যুয়ালওয়ার্কস পার্সেলগুলি সন্ধান করে। এটি সিস্টেম সেটিংস টুল ব্যবহার করে সেট করা যেতে পারে। পার্সেলগুলি ভিজ্যুয়ালওয়ার্কসের জন্য উপাদান প্রযুক্তি সরবরাহ করে। প্যাকেজ এবং বান্ডিলগুলি কোডটি সংগঠিত করে এবং পার্সেলের বিষয়বস্তুগুলির মডেল তৈরি করে। প্যাকেজ/বান্ডিল প্রকাশ করে পার্সেল তৈরি করা হয়। ভিজ্যুয়ালওয়ার্কস ক্ষেত্রে উপাদান শব্দটি পার্সেল, প্যাকেজ এবং বান্ডিলগুলিকে বোঝাতে ব্যবহৃত হয় যখন নির্দিষ্ট হওয়ার প্রয়োজন হয় না। লোডের ক্ষেত্রে পার্সেল কোডের গঠন তার সৃষ্টির দ্বারা নির্ধারিত হয়। যদি এটি একটি প্যাকেজ প্রকাশ করে তৈরি করা হয়, তবে এটি একই প্যাকেজে লোড করা হয়। যদি বান্ডিল থেকে তৈরি করা হয়, তবে এটি বান্ডিল হিসাবে বা একটি প্যাকেজ হিসাবে পুনরায় লোড করা যেতে পারে। একটি প্যাকেজের লোড সিকোয়েন্স হলঃ যে কোনও পূর্বশর্ত উপাদান লোড করা হয়। যে কোনও নির্দিষ্ট প্রি-লোড ক্রিয়া সঞ্চালিত হয় (যেমন। অঘোষিত চলকগুলি আরম্ভ করা হয়েছে)। প্যাকেজের মধ্যে অবজেক্টগুলি ইনস্টল করা আছে। পার্সেলের প্রতিটি শ্রেণীকে লোডঃ প্যাকেজ এবং যে কোনও কাজ সম্পাদনের পরে বার্তা পাঠানো হয়। এটি প্রায়শই একটি অ্যাপ্লিকেশন লঞ্চ। পার্সেল ম্যানেজার পার্সেলের পথে সমস্ত পার্সেল লোড এবং আনলোড করতে ব্যবহৃত হয়। একটি পরামর্শের ভিউ মূল অ্যাড-ইন পার্সেলযুক্ত বিভাগগুলিকে তালিকাভুক্ত করে-একটি বিভাগ নির্বাচন করে, আপনি প্রস্তাবিত পার্সেলগুলির একটি তালিকা পাবেন। উদাহরণস্বরূপ, ইউ. আই পেইন্টার অপরিহার্য বিভাগে অবস্থিত। পার্সেল পথের একটি ডিরেক্টরি-ট্রি ভিউও রয়েছে, যা পরামর্শের ভিউয়ের বাইরে পার্সেলগুলি খুঁজে বের করার জন্য। একটি লোডেড ভিউ ছবিতে ইতিমধ্যে থাকা সমস্ত পার্সেল তালিকাভুক্ত করে। শুধুমাত্র লোড করা পার্সেলগুলি ব্রাউজ করা যায়। একটি সমর্থিত ভিজ্যুয়ালওয়ার্কস পণ্য পার্সেল একটি আইকন দ্বারা প্রতিনিধিত্ব করা হয় যা পার্সেলের মতো দেখায়। অন্যান্য বিক্রেতাদের পার্সেলগুলি কেনাকাটার বস্তার মতো দেখায়। স্মলটক শ্রেণীর বিকাশের জটিল ইতিহাসের কারণে এটি খুব কার্যকর হতে পারে। উদাহরণস্বরূপ, একটি পার্সেল আইকন নির্দেশ করে যে আর্বোর হাইপারটেক্সট সিস্টেমটি এখন ভিজ্যুয়ালওয়ার্কস সমর্থিত। কেউ অ্যাপ্লিকেশন থেকে প্রোগ্রামগতভাবে পার্সেলগুলি লোড এবং আনলোড করতে পারে। প্যাকেজগুলি যখন কোনও পার্সেল লোড করা হয় তখন এটি একটি প্যাকেজ বা প্যাকেজগুলির বান্ডিল হিসাবে সাজানো হয়। কোনও পার্সেল থেকে লোড করা কোড খুঁজতে গেলে, সিস্টেম ব্রাউজারে একই নামের বান্ডিল বা প্যাকেজটি খুঁজে পাওয়া যায়। প্যাকেজগুলি এমন বিভাগ যা উপাদান অনুসারে ক্লাসগুলিকে সম্পর্কিত গোষ্ঠীতে সংগঠিত করে। প্যাকেজগুলিকে বান্ডেলে ভাগ করা যেতে পারে। প্যাকেজ এবং বান্ডিলগুলি পার্সেল হিসাবে সংরক্ষণ করা যেতে পারে (প্রকাশিত), অথবা একটি সোর্স কোড সংগ্রহস্থলে সংরক্ষণ করা যেতে পারে। কোড লাইব্রেরি লোড করা প্রাথমিক visual.im ছবিতে মৌলিক শ্রেণীর লাইব্রেরি ব্যবহার করে ন্যূনতম উন্নয়ন সুবিধা রয়েছে। অতিরিক্ত শ্রেণীর গ্রন্থাগারগুলি ভিজ্যুয়ালওয়ার্কস বা তৃতীয় পক্ষের বিক্রেতাদের দ্বারা সরবরাহ করা হয়, সাধারণত পার্সেল ফাইল হিসাবে। বেশিরভাগ নন-স্মলটক ডেভেলপমেন্ট এনভায়রনমেন্টের জন্য, কোড লাইব্রেরিগুলি ইন্ক্লুড কমান্ড ব্যবহার করে সংকলন করার সময় আমদানি করা হয়। স্মলটক-এ, কোড লাইব্রেরিগুলি চলমান সিস্টেমে লোড করা হয় এবং পরিবেশের অংশ হয়ে ওঠে। উদাহরণস্বরূপ, ইউআই পেইন্টার একটি পার্সেল হিসাবে লোড করা হয়। ভিজ্যুয়াল ওয়ার্কস লঞ্চার হল ভিজ্যুয়াল ওয়ার্কস সিস্টেমের নিয়ন্ত্রণ কেন্দ্র। এটি সমস্ত প্রধান সরঞ্জামের জন্য লঞ্চিং প্যাড। স্মলটক একটি বিশুদ্ধ অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা, যার অর্থ স্মলটকের মধ্যে কিছু ঘটার একমাত্র উপায় হল বস্তুতে বার্তা পাঠানো। ভিজ্যুয়ালওয়ার্কস স্ট্যান্ডার্ড হিসাবে স্মলটক-80 ভাষা ব্যবহার করে, তবে এর নিজস্ব শ্রেণী এবং পদ্ধতি রয়েছে। তাই এমনকি অবজেক্টের মতো মৌলিক ক্লাসগুলিও অন্যান্য স্মলটক-80 আইডিই যেমন স্কুইক এবং ডলফিন স্মলটকের থেকে আলাদা। এখানে দৃষ্টান্তমূলক উদাহরণগুলি ভিজ্যুয়ালওয়ার্কস স্মলটক-এ কাজ করে, তবে অন্যান্য স্মলটক-এ কাজ নাও করতে পারে কারণ শ্রেণী এবং/অথবা পদ্ধতিগুলি ভিন্ন হতে পারে। স্মলটক কোড ব্রাউজ করা এবং সম্পাদনা করা ঐতিহ্যবাহী অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং পরিবেশে একজন ডেভেলপার সরাসরি ক্লাস এবং পদ্ধতির সংজ্ঞা সম্বলিত একটি প্লেইন টেক্সট সোর্স কোড ফাইল সম্পাদনা করেন। ভিজ্যুয়ালওয়ার্কসে, সমস্ত স্মলটকের মতো, ক্লাস সহ সবকিছুই একটি এক্সিকিউটিভ অবজেক্ট। স্মলটক ক্লাস ব্রাউজ করার সময় ডেভেলপাররা এক্সিকিউটিভ অবজেক্টের সংজ্ঞা দেয়। ভিজ্যুয়ালওয়ার্কসের প্রধান ব্রাউজার/সম্পাদক হল সিস্টেম ব্রাউজার। এটি ডেভেলপারকে সামগ্রিক শ্রেণীর শ্রেণিবিন্যাসে বা তাদের প্যাকেজগুলির মাধ্যমে ক্লাসগুলি ব্রাউজ করার অনুমতি দেয়। এটি ভিজ্যুয়ালওয়ার্কস লঞ্চার থেকে চালু করা হয়েছে। সিস্টেম ব্রাউজারের তালিকা প্যানগুলি ডেভেলপারদের শ্রেণী এবং পদ্ধতির সংজ্ঞায় নেভিগেট করার অনুমতি দেয়। তারপর এগুলি একটি কোড ভিউতে দেখা বা সম্পাদনা করা যেতে পারে, অথবা একটি নতুন সংজ্ঞা দিয়ে সংশোধন করা যেতে পারে। যখন একটি পরিবর্তনশীল মুছে ফেলা হয় যখন তার রেফারেন্স এখনও বিদ্যমান থাকে, বা একটি পার্সেলের মাধ্যমে লোড করা হয় কিন্তু কখনই ঘোষণা করা হয় না, তখন তার নাম অঘোষিত নাম স্থানে প্রবেশ করে। অঘোষিত চলকগুলি নির্দিষ্ট কিছু প্রোগ্রামের ত্রুটির কারণ হতে পারে। ভিজুয়ালওয়ার্কসের উপর সিনকমের প্রথম টিউটোরিয়াল স্ট্রিং এবং ফাইলগুলি দেখায় যে কীভাবে সার্ভার লগ ফাইলগুলি পরিচালনা করতে ভিজুয়ালওয়ার্কস ব্যবহার করা যেতে পারে। এটি ব্যাখ্যা করে যে কীভাবে স্ট্রিং এবং ফাইলের মতো জিনিসগুলি সহজেই ভিজ্যুয়ালওয়ার্কসের মধ্যে অবজেক্ট কাঠামোর মধ্যে অন্তর্ভুক্ত করা যেতে পারে। স্মলটক অভিব্যক্তিটি বিবেচনা করুনঃ 'ws000101.log' ফাইলনাম সম্পাদনা হিসাবে একজন এই অভিব্যক্তিটি মূল্যায়ন করতে পারেন যেমন-একটি ভিজ্যুয়ালওয়ার্কস কর্মক্ষেত্রে অপারেট মেনুতে একটি কমান্ড ব্যবহার করে। এটি তৈরি করেঃ শ্রেণী বাইটস্ট্রিং-এর একটি অবজেক্ট যার মধ্যে স্ট্রিং (বাইট হিসাবে) এবং এটি পরিচালনা করার পদ্ধতি রয়েছে; শ্রেণী এনটিএফএস ফাইলনামের একটি অবজেক্ট (উইন্ডোজ এক্সপি-তে); এবং একটি সম্পাদক অবজেক্ট। পরেরটি একটি সাধারণ নোটবুকের মতো সম্পাদক যা ফাইলের বিষয়বস্তু ধারণ করে। অর্থাৎ, মূল্যায়নটি ws000101.log ফাইলের প্রবেশদ্বার হিসাবে একটি ফাইলের নাম বস্তু তৈরি করে এবং এতে একটি সম্পাদক খোলে। সম্পাদক নিজেই একটি বস্তু, যেমন এর সমস্ত উপাদান (এর মেনুতে অক্ষরগুলি সহ)। সোর্স কোডটি এই সমস্ত বস্তুর জন্য উপলব্ধ, এবং ভিজ্যুয়ালওয়ার্কসে পরিদর্শক, ব্রাউজার এবং অন্যান্য সরঞ্জামের আধিক্য রয়েছে যাতে যে কেউ স্ট্যাটিক বা ডাইনামিক মোডে কোডটি মূল্যায়ন এবং পরিদর্শন করতে পারে। প্রায়শই সিনকম স্মলটকের জন্য টিউটোরিয়াল তৈরি করা হয় এবং একটি সমুদ্রের পাশের টিউটোরিয়াল রয়েছে। রেফারেন্স বাহ্যিক লিঙ্ক, সিনকম ভিজ্যুয়ালওয়ার্কস উইকি ইউআইইউসি-তে আর্কাইভ করা হয়েছে archive.org ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট স্মলটক প্রোগ্রামিং ল্যাঙ্গুয়েজ ফ্যামিলিতে।