क्या कोई उच्च स्तरीय भाषाएं हैं? [बन्द है]


20

ऐतिहासिक रूप से एक एचएलएल कुछ सी, फोरट्रान या पास्कल की तरह है और एक वीएचएलएल रूबी या पायथन की तरह है। मैं 4GL, 5GL, DSL और LOP की शर्तों से परिचित हूं, और जिन्हें परिभाषाओं के लिए विकिपीडिया नहीं पढ़ना चाहिए। मुझे UHLLs की तलाश है।

मेरा सवाल यह है कि क्या कोई कंप्यूटर भाषाएं हैं जो परिमाण के एक और क्रम में अधिक उत्पादक हैं, और क्या कोई उन पर काम कर रहा है?

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

मुख्य डोमेन जो मेरी रुचि है, सामान्य-उद्देश्य वाले व्यवसाय और उपभोक्ता अनुप्रयोग हैं, जिसमें GUI या ब्राउज़र फ्रंट एंड, डेटा दृढ़ता और अन्य प्रणालियों जैसे कि मुद्रण और ईमेल के कनेक्शन शामिल हैं। अन्य लोग अच्छी तरह से अन्य जगहों पर ध्यान केंद्रित कर सकते हैं।

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

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

मैं कुछ विशेषताओं को जानता हूं जो VHLL के साथ सादृश्य द्वारा UHLL में हो सकते हैं। मैं निम्नलिखित में से एक या अधिक खोजने की उम्मीद करूंगा (और सूची में जोड़ने के लिए स्वतंत्र महसूस करूंगा):

  • GUI फॉर्म की एक ड्राइंग GUI फॉर्म के लिए प्रोग्राम है
  • पंक्तियों, स्तंभों और शीर्षों वाली एक तालिका एक डेटाबेस में एक तालिका के लिए कार्यक्रम है
  • डिक्लेरेटिव लॉजिक कहता है कि क्या करना चाहिए और कब, बिना आईएफ स्टेटमेंट के
  • डेटा के सेट पर संचालन, बिना किसी छोरों के
  • गैर-अनुक्रमिक निष्पादन जैसे डेटा संचालित, पैटर्न मिलान, पेड़ चलना

प्रश्न के लिए प्रेरणा यह है कि मैं कंप्यूटर की जो आवश्यकता या आवश्यकता है, उसे पूरा करने के लिए अपेक्षाकृत सरल व्यावसायिक आवश्यकताओं को बड़ी मात्रा में अनुवाद करने की सरासर मेहनत से तंग आ गया हूं। सवाल वास्तव में दूसरों को खोजने के बारे में है जो मेरे दर्द को साझा करते हैं और भाषाओं के स्तर को बढ़ाने और कंप्यूटर को अधिक परिश्रम करने के लिए काम कर रहे हैं। यह 1970 -80 के दशक में एक प्रमुख फोकस था, लेकिन क्या अब भी ऐसा हो रहा है?

ये मेरे प्रश्न के कुछ सुझाए गए उत्तर हैं, जो मुझे उन भाषाओं को संक्षेप में प्रस्तुत करने के लिए प्रदान किए गए हैं या जिनके बारे में मुझे पता है, और जो मेरे विचार में कम हैं।

कई भाषाएं हैं जो एचएलएल या वीएचएलएल हैं और इसमें व्यक्तिगत विशेषताएं हैं जो उच्च स्तर से संबंधित हैं। मैंने उनमें से अधिकांश का उपयोग किया है (अक्सर बुरी तरह से)। उनमे शामिल है

  • लिस्प, अपने मैक्रोज़ और आत्म-संशोधित करने की क्षमता के साथ
  • हास्केल, डेटा निर्भरता और पैटर्न मिलान के साथ
  • एसक्यूएल, जो पंक्तियों और तालिकाओं में काम करता है
  • Rebol, जो चालाक लगता है, लेकिन मैं वास्तव में यह नहीं मिलता है
  • एपीएल (और जे), इसके बहुआयामी सरणियों और अल्ट्रा-कॉम्पैक्ट ऑपरेटरों के साथ
  • LINQ के साथ C #
  • AWK / पर्ल / पायथन / रूबी अद्भुत संग्रह और निर्मित रेगीक्स के साथ

इन भाषाओं में UHLL होने के लिए बहुत कम स्तर की विशेषताएं हैं। प्रोग्रामर को अभी भी किसी भी उपयोगी कार्यक्रम के लिए कई निम्न स्तर के निर्माणों को लिखना है।

आरएडी / 4 जीएल पैकेज हैं। मैंने कुछ का उपयोग किया है:

  • dBase / Foxpro
  • डाटाफ्लेक्स / पावरफ्लेक्स (मेरा उत्पाद)
  • पहुंच
  • PowerBuilder

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

कच्चे ढांचे / पुस्तकालय हैं। मैंने कुछ उपयोग किया है:

  • रेल
  • जावा जगा और स्विंग
  • .NET विंडोज फॉर्म, WPF और ASP.NET।

ये वर्तमान में कला की स्थिति हैं। वे प्रोग्रामर को हर मोड़ पर जटिलता से निपटने के लिए कार्यान्वयन की भाषा में फंस गए। यह UHLL नहीं है, लेकिन इनमें से किसी एक के ऊपर UHLL का निर्माण किया जा सकता है।

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

इसलिए सभी दावेदारों को हटाकर मैं सोच सकता हूं, मुझे उम्मीद है कि कोई और बेहतर उम्मीदवार प्रदान कर सकता है।

लेट एडिट: मुझे लगता है कि मेरे पास एक जवाब है: वोल्फ्राम लैंग्वेज। http://www.wolfram.com/wolfram-language/


2
@ घोषी - अंतिम तीन बिंदु एसक्यूएल द्वारा भी कवर किए गए हैं। बस एक DWIM में नहीं है (मेरा मतलब क्या है)।
kdgregory

10
GUI फॉर्म की एक ड्राइंग GUI फॉर्म के लिए प्रोग्राम ज़रूर है, लेकिन वह कोड कहाँ है जो बटन क्लिक, UI रिफ्रेश आदि को हैंडल करता है ...? क्या आपने कभी विजुअल स्टूडियो के फॉर्म डिजाइनरों के साथ काम किया है? वे अभी भी कवर के तहत कोड लिखते हैं, लेकिन आमतौर पर डेवलपर को इसे देखने की आवश्यकता नहीं है। वे सिर्फ "नेत्रहीन" रूप विकसित करते हैं। ईवेंट हैंडलर की बॉडी जैसे कस्टम कोड को छोड़कर ... एक तालिका जिसमें पंक्तियाँ, कॉलम और हेडर होते हैं, डेटाबेस में एक टेबल के लिए प्रोग्राम होता है डेटाबेस टेबल पर सभी ट्रिगर्स, सूचकांकों और बाधाओं के बारे में क्या?
FrustratedWithFormsDesigner

3
@FrustratedWithFormsDesigner: और फिर भी आप ... निराश हैं।
रॉबर्ट हार्वे

4
@ रोबर्टहेयर: हाँ। लेकिन उतना निराश नहीं हुआ, जितना मुझे खुद सारे कोड लिखना था। ;)
फ्रस्ट्रेटेडविथफॉर्म्सडिजेनर

7
एक विशेष समस्या डोमेन के लिए एक डीएसएल के अनुरूप एक उच्च स्तरीय भाषा ("सबसे सार" के रूप में) क्या हो सकती है? और, ज़ाहिर है, वहाँ कुछ भाषाएँ हैं जो विशेष रूप से ऐसे DSLs को कुशलतापूर्वक बनाने के लिए डिज़ाइन की गई थीं।
एसके-तर्क

जवाबों:


33

आपके द्वारा सूचीबद्ध लगभग सभी मानदंड ऐसी चीजें हैं जो पहले से ही 4G एक्सेस / MS टूल्स जैसे MS Access, Sybase Power Builder, Oracle Forms, Ruby-on-Rails (वेब ​​ऐप्स के लिए अधिक आधुनिक नमूने के रूप में) में आजमाई जा चुकी हैं, और कई और अधिक ( विकिपीडिया के लिए देखें) विक्रेताओं की बहुत लंबी सूची)। और वास्तव में, कुछ प्रकार के कार्यक्रम में अपेक्षाकृत सरल व्यावसायिक आवश्यकताओं का अनुवाद करना इन उपकरणों के साथ बहुत जल्दी प्राप्त किया जा सकता है। यही कारण है कि राड उपकरणों के अधिकांश विक्रेता अपने उत्पादों को इस तरह से विज्ञापित करते हैं कि हर किसी को यह सोचना चाहिए कि उन्होंने आपके अर्थ में एक यूएचएलएल का आविष्कार किया है।

पकड़ है, जैसे ही आप आवश्यकताओं की जमीन को " अपेक्षाकृत सरल " छोड़ते हैं , और जैसे ही आपको इन वातावरणों के साथ लिखे गए कार्यक्रमों को बनाए रखना और विकसित करना होगा, आप देखेंगे कि आप आसानी से सीमा तक पहुंच जाते हैं और उनकी कमियां नोटिस करते हैं। , या कि उनके साथ आवश्यकताओं को लागू करने के लिए किसी भी अन्य "वीएचएलएल" के साथ तुलना में सरल नहीं है जो आपके पास है। IMHO एक अच्छा मौका है कि ये आपके प्रोग्राम के 1.1, 1.2 और 1.3 के संस्करण में आगे जाने पर संस्करण 1.0 में आपके द्वारा किए गए किसी भी दक्षता सुधार को मार देते हैं।

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


9
के लिए +1 relatively simple। वास्तविक व्यापार तर्क बहुत तेजी से स्पेगेटी को चालू करता है।
बोबसन

1
जमीन से बाहर निकलते ही +1। मेरे लिए वे अक्सर बहुत पसंद हैं "5 मिनट में (कोड लिखे बिना) ब्लॉग बनाएँ!" विज्ञापन टाइप करें। यह बहुत अच्छा है, जब तक कि आपको वास्तविक कार्यक्रम जैसा दिखने वाला कुछ लागू नहीं करना है, और फिर अचानक जो आपने सोचा वह एक साधारण बात होनी चाहिए। हो सकता है कि वे महान हों और मैं उन्हें समझ नहीं पा रहा हूं - लेकिन मार्केटिंग वास्तव में यह विश्वास करना कठिन बना देती है कि यह आपके लिए बहुत बड़ी गड़बड़ नहीं है।
ब्रायन एचएच

हाँ मैं जानता हूँ। मैंने उन 4 जीएलएस और कई अन्य में कोड लिखा है। मैंने जिन लोगों का उपयोग किया है, वे बड़े पैमाने पर करते हैं, लेकिन वे ऐसा इसलिए करते हैं क्योंकि उनमें एक एम्बेडेड नहीं-बहुत अच्छा HLL होता है, जैसे VBA। और सभी की सीमाएं हैं और बंद उत्पाद होने के कारण आप उन सीमाओं को नहीं बदल सकते। हां, फ्रेड ब्रूक्स सही है, इसलिए एक यूएचएलएल को गोलियों के पूरे शस्त्रागार की आवश्यकता होगी।
david.pfx

मैं इसे "ड्रीमविवर प्रभाव" कहता हूं। UHLL सिर्फ अल्ट्रा-लीकी एब्स्ट्रक्शन हैं
चार्ल्स साल्विया

14

उच्चतम स्तरीय प्रोग्रामिंग भाषा जो मुझे पता है, वह एपीएल है । इसमें सभी आवश्यक प्रतीकों का प्रतिनिधित्व करने के लिए एक विशेष कीबोर्ड की आवश्यकता होती है। की जाँच करें इस वीडियो को , जिसमें लेखक में जीवन के कोनवे के खेल की एक पूरी कार्यान्वयन लिखते सात मिनट के बारे में।

असली सवाल, ज़ाहिर है, "क्या यह व्यावहारिक है?" क्या मुझे इस तरह से व्यवसाय बनाए रखने के लिए दुनिया में पर्याप्त एपीएल प्रोग्रामर मिल सकते हैं? क्या एपीएल फोन और टैबलेट पर चलेगा? क्या मुझे वास्तव में अपने सभी सॉफ्टवेयर डेवलपर्स नए कीबोर्ड खरीदने की आवश्यकता है?

यदि आप वास्तव में उत्पादकता को बढ़ावा देना चाहते हैं, तो आपका सबसे अच्छा शर्त शायद कुछ लिस्प संस्करण है। क्लोजर JVM पर चलता है, और इसका .NET पोर्ट है। मैं यह कहता हूं क्योंकि लोग पहले ही कर चुके हैं; ऑर्बिट्ज़ खोज इंजन लिस्प पर चलता है, और पॉल ग्राहम ने लिस्प का उपयोग करके एक संपूर्ण व्यवसाय चलाया, यह दावा करते हुए कि इसने उन्हें अपने प्रतिद्वंद्वियों (जो सभी जावा का उपयोग कर रहे थे) पर एक महत्वपूर्ण लाभ दिया।

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

और अभी भी भाषा में छपे डेवलपर्स के एक महत्वपूर्ण द्रव्यमान होने की बात है। अपने सभी मौसा के बावजूद, आपको जावा प्रोग्रामर खोजने में कोई समस्या नहीं होगी।


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

इसके अलावा पढ़ना
पिटाई


लाइनक मेरा मतलब है कि कोड का एक उत्कृष्ट उदाहरण है। मुझे व्हाट्स और लूप्स लिखना पसंद है, जो कि एक लाइन में है। ऐसा कोई अन्य उदाहरण?
david.pfx

1
@ david.pfx: C # उस पार्टी के लिए देर से है और मुझे लगता है कि यह सिंटैक्स पीछे की ओर है (यह SQL कीवर्ड्स का उपयोग करता है, लेकिन ऑर्डर अलग है जहां हर कोई SQL ऑर्डर और सरल कीवर्ड / प्रतीकों का उपयोग करता है)। जिस तरह से वे इसे एसक्यूएल के लिए संकलित कर सकते हैं, हालांकि यह सबसे बेहतर है कि अधिकांश भाषाएं क्या कर सकती हैं।
Jan Hudec

4
@ david.pfx: किसी भी कार्यात्मक भाषा की सूची बोध के साथ बहुत कुछ वह कर सकता है जो लिनक करता है।
रॉबर्ट हार्वे

7

मुझे लगता है कि आपने एक क्रॉस-ओवर बिंदु पर संकेत दिया है जो अल्ट्रा हाई लेवल भाषाओं के अस्तित्व को सीमित करता है - कुछ बिंदु पर हम उन्हें प्रोग्रामिंग भाषाओं के रूप में पहचान नहीं करते हैं।

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

मैं व्यक्तिगत रूप से यहां आईबीएम के तर्कसंगत सॉफ्टवेयर आर्किटेक्ट की बात करूंगा , जो वास्तव में अल्ट्रा हाई लेवल डेवलपमेंट की अनुमति देने का प्रयास है। लक्ष्य यह है कि आप एक ऑब्जेक्ट के रूप में दार्शनिक व्यवसाय की अवधारणा बनाने में सक्षम हैं, जैसे कि अभिनेता या वर्ग, संस्थाओं को विशेषता देते हैं, कनेक्शन परिभाषित करते हैं, परिभाषित करते हैं कि सिस्टम के माध्यम से जानकारी कैसे प्रवाहित हो सकती है क्योंकि यह काम किया जा रहा है, और ऐसा करें सभी एक जीयूआई के साथ।

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

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

यह सब कुछ है जो आप चाहते हैं, और अधिक, और आप विनिमय में कुछ भी नहीं छोड़ते हैं! सही?

हर कोई इसका इस्तेमाल क्यों नहीं करता है!?!

... अच्छा, देखो, वह बात है। जो आप वास्तव में समाप्त करते हैं वह एक अखंड उपक्रम है, सब कुछ में बहुत सारे चलती भागों और जादू शामिल हैं, सब कुछ है - या कभी-कभी - कई अलग-अलग स्थानों में परिवर्तन से प्रभावित नहीं होता है (जीयूआई, एक्सएमएल, निचले स्तर पर) कोड, यूएमएल मॉडल जो स्वयं निर्मित / परिभाषित / कई अलग-अलग मॉडल स्तरों में बनाए हुए हैं)।

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

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

मेरा अनुभव था कि यह मचान बनाने के लिए एक अविश्वसनीय रूप से जटिल तरीका था। यह शायद ऐसी क्रूर बात है जिसे मैं कभी भी इस तरह के तकनीकी उपक्रम के बारे में कहूंगा, लेकिन मुझे यही मिला है।

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

शायद यह अनुचित है, और जब आप इसे सही करते हैं तो यह काम करता है। हो सकता है, लेकिन मैंने जिन सलाहकारों और प्रोफेसरों से बात की है, उन्होंने दावा किया है कि उन्होंने सिस्टम को सीखने के लिए विशेष बहु-सप्ताह विकास कार्यशालाओं में कई घंटे बिताए हैं, और अधिक प्रशिक्षण के लिए वापस जा रहे हैं, और इसे बनाने के लिए सीखने के लिए काफी समय खर्च कर रहे हैं। काम और क्या जाता है।

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

लेकिन ... मुझे लगता है कि इसमें कुछ सच्चाई हो सकती है, फिर भी मुझे लगता है कि यह वास्तव में ठीक से काम नहीं करता है। मुझे लगता है कि यह कुछ ऐसा है जो वास्तव में इतना कठिन नहीं है कि अधिकांश समय (कंप्यूटर प्रोग्रामिंग), और यह इस बिंदु पर भी कठिन हो जाता है कि अगर यह काम करता है तो यह बहुत अच्छा होगा, लेकिन पवित्र बकवास आपके पास लंबे समय तक कुछ भी नहीं है यह वहाँ पाने के लिए दिखाओ!

शायद यह केवल हजार + आदमी टीमों के साथ एक उद्यम में काम करेगा, और शायद हम अभी तक वहाँ नहीं हैं।

मुझे नही पता।

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

या हो सकता है कि हमें सिर्फ 20-50 साल की मेहनत करनी पड़े। मैं अब आशावादी नहीं हूं कि एक प्रोग्रामिंग भाषा बाधा है, किसी भी अधिक।

और अगर प्रोग्रामिंग भाषाएं पहले बाधा थीं, तो इसीलिए सुधारों ने हमें परिमाण में सुधार के संभावित आदेश दिए। यदि वे इस तरह की अड़चन नहीं हैं, तो कोई भी नवाचार इस तरह के सुधार के आदेश प्रदान करने में असमर्थ होने की अधिक संभावना है। लेकिन मैं भविष्य नहीं बता सकता! तो मुझे लगता है कि बाकी "कार्यों" में नहीं है, लेकिन निश्चित रूप से "जल्द ही बताने के लिए"।


क्या आप वास्तव में कोडिंग को खत्म करने के बारे में सोचते हैं? मुझे व्यवसाय की आवश्यकताओं की कोई संभावना नहीं दिखती है, जब तक कि हम कंप्यूटर के रूप में कोड में सीधे अनुवाद न करें।
david.pfx

1
मुझे राप्सोडी के साथ काम करने का संदिग्ध आनंद मिला है (मुझे आश्चर्य है कि आईबीएम ने एक और समान उपकरण क्यों खरीदा और आईबीएम तर्कसंगत ब्रांड के तहत दो समान अनुप्रयोगों के सेट हैं) और मेरा अनुभव यह है कि यह पैमाने पर नहीं है। एक ही कोड पर काम करने वाले कई लोग एक अच्छी तरह से अध्ययन और हल की हुई समस्या है, लेकिन यूएमएल के एक ही टुकड़े पर काम करने वाले कई लोग सिर्फ काम नहीं करते हैं।
Jan Hudec

'हर कोई इसका उपयोग क्यों नहीं करता है?!? "- क्योंकि यह खराब परिणाम पैदा करता है। यह एक घोड़ा है जो अपने जीवन के एक इंच के भीतर भरा हुआ है। यूएमएल एक विफलता है।
duffymo

1

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

व्यक्तिगत रूप से, मैं यह समझने के लिए अधिक से अधिक शुरुआत कर रहा हूं कि संयोजकता का समाधान है - जो आप सहज महसूस कर सकते हैं उसके विपरीत - वस्तु-उन्मुख प्रोग्रामिंग में नहीं मिला। यह प्रतिमान, साथ ही साथ अनिवार्य प्रोग्रामिंग, प्रोग्रामरों को बहुत अधिक स्वतंत्रता प्रदान करता है जो बदले में कोड लिखना बहुत कठिन बनाता है जो पुन: उपयोग करना आसान है।

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

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


1
-1 को "हां / नहीं" सवाल का जवाब देने के लिए या तो हां या नहीं कहे बिना। (और ओपी के सवाल में विशिष्ट शब्दावली की अनदेखी।)
डग

वास्तव में, मुझे लगता है कि यह सही है। यूएचएलएल उन विशेषताओं को लागू करने के लिए नहीं है जो पहले से मौजूद हैं, लेकिन उन्हें उन तरीकों से जोड़ना जो निचले स्तर पर सोचने के लिए बहुत कठिन हैं। क्या तुम किसी को जानते हो? हास्केल यह नहीं है।
david.pfx

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

0

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

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

कोई भी वास्तव में रैंक और फाइल डेवलपर के लिए अधिक उत्पादकता के एक आदेश का उत्पादन करने के रूप में वादा कर रहे हैं ।


1
क्या यूएचएलएल की पहुंच के नीचे निम्न स्तर के विवरणों को कोड करने के लिए भाषा के रूप में बेहतर नहीं होगा?
david.pfx

0

मुझे लगता है कि REBOL आपके सभी मानदंडों में फिट हो सकता है। आप कोड के कई लाइनों में अपेक्षाकृत परिष्कृत जीयूआई ऐप बना सकते हैं - हालांकि इसकी "विशेषता" डीएसएल निर्माण है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.