पीडब्ल्यूसीटी

कोडिंग तकनीक के बिना प्रोग्रामिंग (पीडब्ल्यूसीटी) सॉफ्टवेयर विकास के लिए एक मुक्त स्त्रोत विजुअल प्रोग्रामिंग भाषा है।

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

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

इतिहास
* कोडिंग तकनीक के बिना प्रोग्रामिंग को दिसंबर 2005 में सोर्सफोर्ज पर पंजीकृत किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.0 को 18 अक्टूबर 2008 को जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.1 को 20 फरवरी 2009 को जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.2 को 4 मई 2009 को जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.3 को 30 मई 2009 को जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.4 को 28 अगस्त 2009 को जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.5 को 27 मार्च 2010 को जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.6 को 16 मई 2010 को जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.7 को 15 सितंबर 2010 को जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.8 18 अक्टूबर 2011 को (अंतिम अपडेट : 22 अप्रैल 2013) जारी किया गया था
 * कोडिंग तकनीक के बिना प्रोग्रामिंग 1.9 7 मई 2013 को  (नवीनतम अपडेट : 2 जनवरी 2021) जारी किया गया था

अवधारणा


कोडिंग तकनीक के बिना प्रोग्रामिंग संरचना में तीन मुख्य स्तर होते हैं:
 * वीपीएल स्तर जो एक विशिष्ट कार्य करने के लिए कार्यक्षमता प्रदान करती है।
 * मध्य स्तर जो पयोगकर्ता दृश्य और प्रणाली स्तर के बीच इंटरफेस प्रदान करती है।
 * प्रणाली स्तर जो विभिन्न भाषाओं में निष्पादन योग्य कोड उत्पन्न करती है।

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

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

प्रोग्रामर एक ही समय में चरणों/नोड्स के समूह पर एक संचालन करने के लिए आयाम (मूव अप / मूव डाउन / कट / कॉपी / डिलीट ) का उपयोग कर सकता है।

उपयोगकर्ता इंटरफ़ेस डिज़ाइन करने के लिए प्रोग्रामर प्रपत्र डिज़ाइनर का उपयोग कर सकता है।

प्रोग्रामर उस समय आयाम का उपयोग कर सकता है जहां वह जान सकता है कि प्रत्येक चरण (दिनांक और समय) कब बनाया गया है और विकास प्रक्रिया के समय किसी भी बिंदु पर केवल चरणों को देखने के लिए समय आयाम के साथ आगे बढ़ सकता है।

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

विशेषताएं

 * सामान्य-उद्देश्य।
 * विजुअल प्रोग्रामिंग (एक से अधिक आयाम, कोई सिंटैक्स त्रुटियां, समय आयाम और रंग)।
 * विज़ुअल एडिटर (कीबोर्ड शॉर्टकट, कस्टमाइज़ेशन, कट, कॉपी, पेस्ट, सर्च और रिप्लेस)
 * सिंटेक्स निर्देशित संपादक (त्रुटियों से बचें)।
 * मुक्त एडिटर और वीपीएल कंपाइलर।
 * प्रोग्रामर उत्पन्न स्रोत कोड को देख और संपादित कर सकता है।
 * प्रोग्रामर चरण का नाम और चरण रंग बदल सकता है।
 * C (प्रोग्रामिंग भाषा), पायथन (प्रोग्रामिंग भाषा), C# (प्रोग्रामिंग भाषा), हार्बर (प्रोग्रामिंग भाषा) और सुपरनोवा प्रोग्रामिंग भाषा में सहायक कोड उत्पादन।
 * प्रोग्रामर प्रोग्राम को चलचित्र के रूप में चला सकता है ताकि यह सीख सके कि प्रोग्राम को चरणबद्ध तरीके से कैसे बनाया जाए
 * प्रोग्रामिंग प्रतिमान को बाध्य न करें।
 * विस्तार (नए घटक बनाएँ)।
 * विकास प्रक्रिया के समय पूर्व में किसी भी समय प्रोग्राम संचालित करे।

विजुअल भाषाएँ
कोडिंग तकनीक के बिना प्रोग्रामिंग विजुअल प्रोग्रामिंग भाषा घटकों को अगली श्रेणियों में वर्गीकृत किया गया है
 * सीपीडब्ल्यूसीटी: विजुअल घटक जो C प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।
 * पायथनपीडब्ल्यूसीटी: विजुअल घटक जो पायथन प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।
 * हार्बरपीडब्ल्यूसीटी: विजुअल घटक जो हार्बर प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।
 * सुपरनोवा कोडिंग तकनीक के बिना प्रोग्रामिंग : विजुअल घटक जो सुपरनोवा प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।
 * C# कोडिंग तकनीक के बिना प्रोग्रामिंग : विजुअल घटक जो C# प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।

आलोचना

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

यह भी देखें

 * ऐलिस (सॉफ्टवेयर)
 * लैबव्यू
 * लावा (प्रोग्रामिंग भाषा)
 * प्रोग्राफ
 * स्क्रैच (प्रोग्रामिंग भाषा)
 * विजुअल प्रोग्रामिंग भाषा

अग्रिम पठन

 * Fayed, Al-Qurishi, Alamri, et al. (2020) कोडिंग तकनीक के बिना प्रोग्रामिंग : a novel general-purpose visual programming language in support of pervasive application development, Springer
 * Fayed, Al-Qurishi, Alamri, Aldariseh (2017) कोडिंग तकनीक के बिना प्रोग्रामिंग : visual language for IoT and cloud computing applications and systems, ACM
 * Fayed (2017) General-Purpose Visual Language and Information System with Case-Studies in Developing Business Applications, King Saud University
 * Fayed (2013) Using C#.NET through Programming Without Coding Technology, Code Project
 * Fayed (2013) Using Python inside Programming Without Coding Technology, Code Project
 * Fayed (2013) The Time Machine and the कोडिंग तकनीक के बिना प्रोग्रामिंग Visual Programming Language, Code Project