प्रोग्रामिंग भाषा सीखना विशेष रूप से उस कंपनी के लिए डिज़ाइन किया गया [बंद]


10

कोई व्यक्ति अपनी भाषा को केवल उस फर्म के अंदर उपयोग करने के लिए क्यों विकसित करेगा जब आपके पास XY अन्य भाषाएं हैं जो आपको उनके पुस्तकालयों, तर्क आदि के साथ मदद कर सकती हैं? क्या अपनी भाषा को विकसित करने के बजाय किसी अन्य चीज़ के साथ प्रवाह के साथ जाना बहुत सरल नहीं है?


6
बहुत सारी "नई" भाषाएं जो हमारे पास जंगली हैं उनमें "पुरानी" भाषाओं के लिए डिज़ाइन की गई पुस्तकालयों का उपयोग कर सकते हैं: उदाहरण के लिए: C ++ C libs, Scala Kotlin का उपयोग कर सकते हैं और अन्य JVM पर चलने वाले किसी भी lib का उपयोग कर सकते हैं। इसलिए एक नई भाषा होने से आर्थिक सहायता कम नहीं होती ...
टिमोथी ट्रोपले

3
आप ड्रैग रेसिंग बनाने के लिए ड्रैगस्टर का निर्माण क्यों करेंगे बल्कि मेक एक स्टॉक कार के साथ करते हैं?
कैंडिड_ऑरेंज

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

4
एरलैंग का जन्म भी इसी तरह से हुआ था: अगर मैं गलत नहीं हूं तो शुरू में इसे आंतरिक उपयोग के लिए एरिक्सन में विकसित किया गया था।
जियोर्जियो

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

जवाबों:


25

यह समझना बहुत आसान है जब आप महसूस करते हैं कि यह अक्सर लंबी प्रक्रिया का उत्पाद होता है और न कि कोई यह कहकर कि "हम नई भाषा बनाना चाहते हैं"।

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

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

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

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

कुछ भाषाओं कि यह विशिष्ट कंपनियों के लिए बाध्य नहीं कर रहे हैं की तरह विकसित कर रहे हैं खांसी जावास्क्रिप्ट खांसी पीएचपी खांसी


10
शानदार जवाब, और जबकि जावास्क्रिप्ट में इसकी समस्याएं हैं, मुझे नहीं लगता कि इसे PHP के समान वाक्य में रखना उचित है। यह कहने की तरह है, "हमें बिल और टेड को अपने पड़ोस से बाहर निकालने की जरूरत है, वे अपराधी हैं!" लेकिन, बिल (जावास्क्रिप्ट) एक jaywalker है, और टेड (PHP) एक सीरियल किलर है।
TheCatWhisperer

12
@ TheCatWhisperer मैं असहमत हूं। जावास्क्रिप्ट के रूप में बुरा है, या PHP के रूप में भी बदतर है। क्योंकि आपको जावास्क्रिप्ट का उपयोग करना है (या ट्रांसपाइल), जबकि PHP को सुरक्षित रूप से अनदेखा किया जा सकता है।
व्यंग्य

2
यह एक ज्यादातर मान्य बिंदु है।
TheCatWhisperer

1
@Euphoric हमें इंतजार के लिए चलो Wasm , हो सकता है दृश्य तो बदल जाएगा ...
Kroltan

WASM के लिए @Kroltan +1!
क्रेगआर 8806

15

क्या अपनी भाषा को विकसित करने के बजाय किसी अन्य चीज़ के साथ प्रवाह के साथ जाना बहुत सरल नहीं है?

यकीन है, लेकिन एक बेतुका अंत करने के लिए पालन करने के लिए, हम सभी को विधानसभा में सब कुछ लिखना होगा अगर कोई भी नई भाषा विकसित नहीं हुई है।

कभी-कभी कोई प्रवाह नहीं होता है। नई भाषाएं मौजूद हैं क्योंकि किसी के पास एक खरोंच है, चाहे वह भाषा का शौक हो जो सिर्फ कुछ नया या एक कंपनी का आविष्कार करना चाहता है जो पहले से मौजूद है।

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

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

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

मैंने 2003 और 2013 के बीच एक ऐसी कंपनी के लिए काम किया, जिसने एक उद्योग-विशिष्ट वातावरण का व्यापक उपयोग किया, जिसमें 1970 के दशक के अंत में अपनी भाषा शामिल थी। जबकि कुछ नई भाषाएं अधिक उपयुक्त प्रतिस्थापन हो सकती हैं (और उनके लिए हुक समय के साथ ग्राफ्ट हो गए थे), उस उद्योग में एक बड़ा पर्याप्त निवेश था और अच्छी तरह से सिद्ध कोड का एक विशाल निकाय था जो कि बस एक अच्छा व्यापार मामला नहीं था कुछ और करने के लिए स्विचन के लिए।


-1

मैंने इससे पहले देखा है। यह कभी भी अच्छा काम नहीं करता है। कुछ लोगों के पास "यहां आविष्कार नहीं किया गया" जटिल है। यह आमतौर पर एक कंपनी को पहिया को फिर से चलाने के लिए चारों ओर चलाने का कारण बनता है।

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

C / C ++ का उपयोग ऑपरेटिंग सिस्टम लिखने के लिए किया जाता है, जैसे कि, आप सभी जानते हैं। और फिर भी किसी को लगा कि उन्हें कुछ अलग करने की जरूरत है।


7
जाहिर तौर पर आपने कोटलिन को कभी नहीं देखा होगा। या जावास्क्रिप्ट या सी #, उस मामले के लिए। फॉग क्रीक सॉफ्टवेयर ने सालों तक वास्बी (वीबी पर आधारित) नामक अपनी प्रोग्रामिंग भाषा का इस्तेमाल किया (हालांकि माना जाता है कि तकनीकी कर्ज आखिरकार उनके साथ हो गया )। तो निश्चित रूप से ऐसे मामले हैं जहां यह काम करता है।
रॉबर्ट हार्वे

1
जहां तक ​​मुझे याद है, माइक्रोसॉफ्ट के गैर-अनुपालन जावा कार्यान्वयन को बनाने की कोशिश करने के बाद, C # का जन्म हुआ था, सन द्वारा मुकदमा किया गया था और हार गया था। cnet.com/news/sun-microsoft-settle-java-suit चूंकि वे इसे जावा को और अधिक नहीं कह सकते, इसलिए उन्होंने अपनी भाषा विकसित की, जो शुरू में, जावा के समान थी।
जियोर्जियो

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

16
कभी C के बारे में सुना है? यह केवल एक कंप्यूटर पर एकल ऑपरेटिंग सिस्टम के लिए कथित तौर पर घर में विकसित किया गया था। K & R ने केवल कुछ साबित करने के लिए उपयोग क्यों नहीं किया, जो पीएल / 1, बीसीपीएल या अल्गोल 68 जैसे ऑपरेटिंग सिस्टम को लिखने के लिए इस्तेमाल किया गया था?
17'17
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.