लो-कोड और नो-कोड (एलसी/एनसी) टूल निर्माताओं को लोगों, विशेष रूप से पेशेवर डेवलपर्स को अपने टूल और प्लेटफॉर्म का उपयोग करने या यहां तक कि कोशिश करने के लिए मनाने की कोशिश में एक कठिन लड़ाई का सामना करना पड़ रहा है। कुछ प्लेटफार्मों ने इस बाजार में प्रवेश किया है, लेकिन अधिकांश सॉफ्टवेयर विकास निस्संदेह अभी भी कोड लिखने वाले पेशेवरों द्वारा किया जाता है।
उपकरण निर्माताओं के दृष्टिकोण से, रुचि की कमी हैरान करने वाली लगती है। तेजी से विकास, कम लागत, कम बग, आसान तैनाती, प्रबंधित वातावरण - कोई भी इन यूटोपियन विज़न टूल निर्माताओं को क्यों अस्वीकार करना चाहेगा? क्यों इतने सारे लोग कठिन भाषाओं, जटिल बग ट्रेसिंग और अस्पष्ट पर्यावरण व्यवस्थाओं के साथ अपनी लड़ाई जारी रखते हैं?
मैं इन सवालों के जवाब पाने के लिए डेवलपर्स से बात कर रहा हूं, लेख पढ़ रहा हूं, और चर्चा मंचों को आगे बढ़ा रहा हूं और आगे लाए गए कुछ कारणों को समेटा हूं।
कम-कोड वाले उपकरणों को सीखने में समय और प्रयास के एक महत्वपूर्ण निवेश की आवश्यकता हो सकती है, लेकिन एक विशिष्ट एलसी/एनसी उपकरण सीखने में बहुत कम पेशेवर मूल्य है। यहां तक कि दुर्लभ घटना में भी कि एक सॉफ्टवेयर डेवलपमेंट हाउस एलसी / एनसी टूल का उपयोग करता है, एक कर्मचारी डेवलपर उस टूल को सीखकर जो कौशल हासिल करता है, उसकी सबसे अधिक संभावना अगले नियोक्ता को नहीं होगी।
अधिकांश विकास कार्य व्यापक रूप से उपयोग की जाने वाली भाषाओं और ढांचे के साथ गहन ज्ञान और अनुभव की मांग करते हैं और कोई भी कम-कोड उपकरण व्यापक रूप से रिएक्ट, एंगुलर, पायथन, जावा या सी # के रूप में उपयोग नहीं किया जाता है।
बहुत कम विकास कार्यों के लिए एलसी/एनसी टूल के ज्ञान की आवश्यकता होती है और एलसी/एनसी टूल को जानकर डेवलपर को बेहतर नौकरी मिलने या अधिक पैसा कमाने की संभावना बहुत कम है। इसलिए, डेवलपर्स बेहतर तरीके से सीखने और कौशल, ढांचे और भाषाओं के असंख्यों में से एक को पूरा करने में समय व्यतीत कर रहे हैं जो नौकरी बाजार में उच्च मांग में हैं।
लगभग 70% डेवलपर जिन्होंने इसका जवाब दिया
यदि एलसी/एनसी उपकरण वास्तव में वे जो वादा करते हैं उसे पूरा करते हैं, तो भविष्य में एप्लिकेशन बनाने के लिए कोड लिखने की आवश्यकता नहीं होगी। प्रोग्रामिंग अमूर्तता के उच्च स्तर पर चली जाएगी और अनुप्रयोगों को कोडित करने के बजाय मौजूदा घटकों से इकट्ठा किया जाएगा। इसलिए, प्रोग्रामर अनिवार्य रूप से एलसी / एनसी टूल के बढ़ते उपयोग का उपयोग और समर्थन करके अपनी मेहनत से अर्जित कौशल को बेमानी बनाने की धमकी देते हैं। इसलिए यह वास्तव में उनके हित में है कि एलसी/एनसी उपकरण सफल न हों।
जब डेवलपर्स सॉफ्टवेयर हाउस के लिए काम करते हैं, तो उन्हें विशिष्ट विशेषताओं वाले कोड देने के लिए भुगतान मिलता है। इनमें पढ़ने में आसान, परीक्षण योग्य, अच्छी तरह से संरचित, विश्वसनीय, कुशल, निम्नलिखित मानकों आदि शामिल हैं। डेवलपर्स जो मामूली रूप से जटिल अनुप्रयोगों को बनाए रखते हैं, वे इस बात की सराहना करेंगे कि यह सुनिश्चित करना कितना महत्वपूर्ण है कि कोड यथासंभव सरल और आसानी से समझने योग्य है। कोड को बनाए रखने योग्य होने के लिए ये गुण आवश्यक हैं।
कोड की समीक्षा आमतौर पर एक अधिक वरिष्ठ प्रोग्रामर द्वारा की जाती है जो इन गुणों की भी परवाह करता है और उन पर जोर देता है। डेवलपर की तुलना में चीजों को जल्दी करने में उनकी अधिक रुचि हो सकती है, लेकिन वे जानते हैं कि कोड जो छोटी गाड़ी, अक्षम, गुप्त रूप से लिखा गया है, और विस्तार करने में कठिन है उसे बनाए रखना मुश्किल है।
यह खराब कोड बहुत परेशानी का कारण बन सकता है और लाइन के नीचे बहुत महंगा हो सकता है। जबकि जिस गति से कोड वितरित किया जाता है वह प्रासंगिक होता है, जिस तरह से कोड को व्यवस्थित और लिखा जाता है वह आमतौर पर उस गति पर पूर्वता लेता है जिस पर इसे वितरित किया गया था।
इसलिए, डेवलपर्स के लिए एलसी/एनसी टूल्स के विकास की गति का विपणन वास्तव में अनुमानित प्रभाव नहीं हो सकता है।
लोग अस्पष्ट और भावुक होते हैं। उनकी परस्पर विरोधी प्राथमिकताएँ होती हैं, वे अक्सर अनिश्चित, गलत और झूठ होते हैं। अक्सर उन्हें यह भी नहीं पता होता है कि वे क्या कर रहे हैं और क्यों कर रहे हैं। लोग बहुत भ्रमित हो सकते हैं। कंप्यूटर बहुत सरल हैं। कंप्यूटर केवल प्रोग्रामर द्वारा दिए गए निर्देशों का पालन करता है और यदि वे निर्देश गलत हैं, तो प्रोग्राम विफल हो जाता है। कार्यों के एक सेट को परिभाषित करने और उन्हें तुरंत और सटीक रूप से देखने में सटीकता कई लोगों को सुरक्षा और खुशी की भावना देती है।
कोडिंग में एक रचनात्मक तत्व है जिसका कई डेवलपर्स वास्तव में आनंद लेते हैं। प्रोग्रामिंग एक बहुत ही जटिल पहेली है, जो दिमाग के टीज़र से भरी हुई है, जिसमें दर्जनों मॉड्यूल, कई परतें और कोड की हजारों लाइनें फैली हुई हैं। एक एकल वेब एप्लिकेशन में एक साथ काम करने वाली पांच या अधिक विभिन्न भाषाओं को आसानी से शामिल किया जा सकता है (जैसे HTML, JS, CSS, C#, SQL)। इंटरलॉकिंग चलती भागों की जटिल वस्तुओं का फैशन बनाना, और उन्हें सूक्ष्म चक्रों में काम करते हुए देखना, क्योंकि वे उनमें निर्मित तर्क के परिणामों को निभाते हैं, आकर्षक हो सकते हैं, और सिद्धि की एक मजबूत भावना ला सकते हैं।
सॉफ्टवेयर के मौजूद होने का कारण जीवन को आसान बनाना है और हम लोगों को चीजों को बेहतर तरीके से करने में मदद करने के लिए मौलिक रूप से सॉफ्टवेयर का निर्माण करते हैं। एक बार जब आप कोड लिखना जानते हैं - किसी भी भाषा में - आप कुछ भी बना सकते हैं जिसकी आप कल्पना कर सकते हैं। किसी चीज की कल्पना करने और फिर उसे शून्य से बनाने में खुशी होती है, खासकर जब वह दूसरों के लिए उपयोगी हो और उन्हें खुश करती हो।
एक डेवलपर जितना अधिक समय तक किसी प्रोजेक्ट पर टिका रहता है, उतना ही उन्हें एप्लिकेशन का विस्तार करने में मदद मिलती है और वे समस्याओं को खोजने और ठीक करने में उतने ही कुशल होते जाते हैं। जब डेवलपर्स अपनी नौकरी छोड़ देते हैं, तो वे अक्सर उनके साथ आवेदनों के जटिल विवरण के बारे में गहन ज्ञान लेते हैं। इस ज्ञान को पुनः प्राप्त करना बहुत कठिन है और जब ऐसे कर्मचारियों को प्रतिस्थापित किया जाता है, तो वे जिन अनुप्रयोगों का समर्थन करते हैं वे अक्सर अस्थिरता और कभी-कभी अराजकता के चरण में प्रवेश करते हैं। इसलिए, जबकि सॉफ्टवेयर हाउस स्थिरता में रुचि रखते हैं, सॉफ्टवेयर डेवलपर्स अक्सर कुछ वर्षों के लिए केवल एक नियोक्ता के साथ रहते हैं।
एक रणनीति सॉफ्टवेयर हाउस ज्ञान के नुकसान को कम करने के लिए नियोजित तकनीकों का उपयोग करना है जो व्यापक रूप से उपयोग की जाती हैं और डेवलपर समुदाय में अच्छी तरह से जानी जाती हैं। प्रसिद्ध स्टैक का उपयोग करने से कुशल लोगों को रोजगार मिलना आसान हो जाता है। यह उन लोगों को उनके साथ बनाए गए एप्लिकेशन के ins और outs सीखने में भी मदद करता है। किसी परियोजना के लिए कौन सी तकनीकों का उपयोग करना है, इसके निर्णय में डेवलपर्स प्रभावित हो सकते हैं, लेकिन यह आमतौर पर वरिष्ठ इंजीनियर या प्रबंधन भी होते हैं जो इन मानदंडों का उपयोग करके ढेर पर निर्णय लेते हैं। डेवलपर्स को मार्केटिंग एलसी/एनसी टूल्स इसलिए निशान से चूक सकते हैं।
ग्राहकों को यह बताने में कठिनाई होती है कि वे भविष्य में आवेदन कहाँ ले सकते हैं। यह समझ में आता है क्योंकि भविष्य की भविष्यवाणी करना बहुत कठिन है। इसलिए, एप्लिकेशन के मालिकों को किसी एप्लिकेशन की व्यावसायिक सफलता सुनिश्चित करने के लिए बदलती जरूरतों के अनुकूल होने की आवश्यकता है। इसका अर्थ अक्सर व्यवसाय मॉडल में संशोधन करना और ऐसे मॉडलों को सक्षम करने वाली तकनीकों को बदलना है। अनुभवी डेवलपर्स इसे जानते हैं और खुली प्रणालियों का निर्माण करना पसंद करते हैं जिन्हें भविष्य में बदलती जरूरतों के अनुकूल बनाया जा सकता है। ऐसी अनुकूलनीय प्रणालियों को बनाने का सबसे अच्छा तरीका है कि उन्हें अच्छी तरह से समर्थित भाषाओं और रूपरेखाओं का उपयोग करके कोडित किया जाए।
कई एलसी/एनसी उपकरण नए, अपरिपक्व हैं, और महत्वपूर्ण तकनीकी सीमाओं के साथ आते हैं। इन सीमाओं को आमतौर पर विज्ञापित नहीं किया जाता है और अक्सर केवल कम ही प्रलेखित किया जाता है। जिस तरह से सॉफ्टवेयर हाउस वास्तव में इन सीमाओं का पता लगा सकते हैं, वह है एक टूल को आज़माना और एक वास्तविक एप्लिकेशन बनाना। अधिकांश सीमाएं समय और प्रयास के महत्वपूर्ण निवेश के बाद ही स्पष्ट होंगी। सॉफ्टवेयर विकास महंगा और जोखिम भरा है और ये अज्ञात डेवलपर्स, सॉफ्टवेयर हाउस और उनके ग्राहकों के लिए जोखिम को और भी बढ़ा देते हैं।
कई प्लेटफ़ॉर्म उस प्लेटफ़ॉर्म में निर्मित एप्लिकेशन को सामान्य, संपादन योग्य स्वरूपों में निर्यात करने की अनुमति नहीं देते हैं। वे एप्लिकेशन को लॉक कर देते हैं, जिससे या तो डेवलपर को प्लेटफॉर्म से बांध दिया जाता है या उन्हें स्क्रैच से अपने एप्लिकेशन को फिर से बनाने की आवश्यकता होती है। यह देखते हुए कि भविष्य की आवश्यकताएं अनिश्चित हैं और एलसी/एनसी टूल्स की सीमाएं अक्सर परियोजना में देर तक छिपी रहती हैं, यह आश्चर्य की बात नहीं है कि डेवलपर्स लॉक होने से बेहद सावधान हो सकते हैं।
दृश्य विकास उपकरण नए नहीं हैं। नेत्रहीन विकास के शुरुआती प्रयास 50 साल पहले ही किए जा चुके थे। तब से कई अच्छे और बुरे दृश्य विकास वातावरण और प्लेटफॉर्म आए और गए और उनमें से किसी ने भी अनुप्रयोगों के निर्माण के तरीके में महत्वपूर्ण अंतर नहीं डाला।
जो कोई भी इनमें से किसी भी उपकरण पर दांव लगाता है, उन्हें सीखने में समय और ऊर्जा लगाता है, और ग्राहकों को उनमें से किसी में भी अपनी परियोजनाओं का निर्माण करने के लिए राजी करता है, वह दांव हार जाता है। यह इतिहास बताता है कि यह संभावना नहीं है कि आज हमारे सामने आने वाला कोई भी उपकरण अब से लगभग एक दशक बाद भी होगा। कई डेवलपर्स इन तथ्यों पर ध्यान से विचार कर सकते हैं और निर्णय ले सकते हैं कि एलसी/एनसी एक मृत अंत है।
तो, क्या एलसी/एनसी एक खोया हुआ कारण है, और क्या गंभीर सॉफ्टवेयर विकास की दुनिया में एलसी/एनसी के लिए कोई जगह नहीं है? क्या एलसी/एनसी उपकरण निर्माता किसी तरह इन बाधाओं को दूर कर सकते हैं और अधिक डेवलपर्स को एलसी/एनसी उत्पादों का उपयोग करने के लिए प्रेरित कर सकते हैं?
कई डेवलपर्स एलसी/एनसी टूल्स में विश्वास की कमी और उन्हें विज्ञापित करने वाले मार्केटिंग संचार के कारण कोड पसंद करते हैं। किसी भी पेशेवर को एलसी/एनसी प्लेटफॉर्म का उपयोग करने के लिए मनाने के लिए, प्लेटफॉर्म निर्माताओं को डेवलपर्स को उन पर भरोसा करने की आवश्यकता होती है। इस विश्वास का निर्माण करने के लिए, टूल निर्माता अच्छी तरह से डेवलपर्स और सॉफ़्टवेयर हाउसों की चिंताओं को सुनेंगे और प्लेटफ़ॉर्म सुविधाओं की योजना बनाते समय और लक्षित समूहों के साथ संचार करते समय उन्हें ध्यान में रखेंगे।
कार्यात्मक सीमाओं का ईमानदार और सच्चा प्रकटीकरण, सीमाओं को दूर करने के तरीकों का प्रकाशन, प्लेटफार्मों के लिए सीखने की अवस्था को समतल करना, और संपादन योग्य प्रारूपों के लिए अनुप्रयोगों के निर्यात की अनुमति देना, जबकि वे सभी डेवलपर्स को सही दिशा में कदम नहीं उठा सकते हैं।