(क्यों) क्या मुझे एक नई प्रोग्रामिंग भाषा सीखनी चाहिए? [बन्द है]


97

मैं जावा, सी / सी ++, जावास्क्रिप्ट / jQuery और काफी उद्देश्यपूर्ण सी के साथ काफी कुशल हूँ। मैं भाषाओं और उनकी संगत रूपरेखाओं के साथ काफी उत्पादक हूं और उद्यम स्तर प्रणालियों (और छोटे पैमाने पर भी) का उत्पादन पर्याप्त आसानी के साथ करता हूं, जबकि कोड 'क्लीन' और मेंटेनेंस योग्य रहता है (हां, मैं छह के बाद अपना कोड पढ़ सकता हूं महीने :)

जब तक मंच (iPhone, iPad, आदि) या ग्राहक / कार्यान्वयन संगठन द्वारा अनिवार्य नहीं किया जाता, तब तक मुझे "क्यों" मुझे एक नई प्रोग्रामिंग भाषा सीखनी चाहिए? सिर्फ मनोरंजन के लिए"? और अगर मैं इसके साथ कुछ भी सार्थक नहीं करने जा रहा हूं तो उस मज़े के साथ क्या करें?

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

तो एक 'आर्थिक' अर्थ से, क्या एक नई प्रोग्रामिंग भाषा सीखने में कोई लाभ है? यदि भाषा त्वरित और गंदे तरीके से सीखी जाती है, तो इसका उपयोग संभवतः त्वरित और गंदे प्रोटोटाइप / कार्यान्वयन के लिए भी किया जाएगा - लेकिन मैं समय / प्रयास के उचित निवेश के रूप में नहीं देखता हूं।

तो बस मुझे (या उस मामले के लिए किसी को) एक नई प्रोग्रामिंग भाषा क्यों सीखनी चाहिए "इसके अलावा यह मजेदार है तो चलो इसे आज़माएं" - अगर लंबे समय में निवेश का मूल्य इसके लायक नहीं हो सकता है?


6
programmers.stackexchange.com/questions/118338/… शायद आपको मेरे द्वारा दिए गए जवाब से दिलचस्पी होगी।
deadalnix

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

3
मैं पूछता हूँ कि मुझे नई भाषा क्यों नहीं सीखनी चाहिए?
उपयोगकर्ता

2
@ZacharyK यहां तक ​​कि अगर नौकरी एक जावा डेवलपर के लिए थी, और उम्मीदवार जावा में सुपरडुपर था। लगता है कि आप पैर में खुद को गोली मार सकते हैं।
निमछीप्स्की

2
वहाँ बहुत सारे सुपर जावा लोग हैं। मुझे इस बात में दिलचस्पी है कि आप 6 महीने में क्या जानेंगे जैसा कि आप अभी जानते हैं। (निश्चित रूप से मैं अपना सारा समय एर्लैंग, कॉफ़ीस्क्रिप्ट और पीएचपी में बिताता हूँ)
ज़ाचरी के

जवाबों:


178

से व्यावहारिक प्रोग्रामर , टिप # 8 "आपका ज्ञान पोर्टफोलियो में नियमित रूप से निवेश":

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

यह अगली "नई चीज" के बारे में नहीं है। यह आपके सामान्य विचार पैटर्न के बाहर अलग-अलग तरीकों से सोचने के बारे में है।

एक कहावत है, "जब आप एक हथौड़ा हो, तो सब कुछ एक नाखून की तरह दिखता है"। हो सकता है कि किसी अन्य तकनीक का उपयोग करके किसी समस्या को हल करने का एक बेहतर तरीका हो। यदि आप अन्वेषण नहीं करते हैं, तो आप यह नहीं जान सकते हैं कि यह उपलब्ध था।


बहुत बढ़िया बिंदु। इस सोच ने मुझे एक परियोजना पर रेवेनबेड की कोशिश करने के लिए प्रेरित किया, और मैंने SQL सर्वर रट में फंसने के वर्षों के बाद बहुत कुछ सीखा।
बॉब हॉर्न

52
मैंने सोचा था कि जब आपके पास एक हथौड़ा होता है तो सब कुछ आपके अंगूठे जैसा दिखता है
Zachary K

2
मैं पूरी तरह से सहमत। मैं यह भी जोड़ूंगा कि दूसरी भाषा सीखने से आपको उन भाषाओं के पहलुओं को बेहतर ढंग से समझने में मदद मिलती है जो आपने पहले सोचा था कि आप जानते हैं। यह यह समझने में भी मदद करता है कि "वास्तविक" प्रोग्रामिंग मौलिक अवधारणाएं / पैटर्न / सीमाएं क्या हैं, और आपके विशेष टूलसेट की कलाकृतियां क्या हैं। उदाहरण के लिए, यदि आप जानते हैं कि सभी भाषाएं कमजोर टाइप की हैं, तो आप कभी नहीं जान सकते हैं कि मजबूत टाइपिंग मौजूद है, और कभी आश्चर्य नहीं होता कि क्यों! नतीजतन, आपके उत्पादों को प्रदर्शन या सुरक्षा में नुकसान हो सकता है, भले ही वे समय-समय पर बाजार में उत्कृष्टता प्राप्त करें ;-)।
JJC

3
द प्रैजमैटिक प्रोग्रामर सबसे अच्छी प्रोग्रामिंग बुक में से एक है जिसे मैंने कभी पढ़ा है। वास्तव में अच्छा!
सोनर ग्नुएल

मैं वास्तव में "अपने सामान्य विचार पैटर्न के बाहर अलग-अलग तरीकों से सोचने के बारे में" सहमत हूं। जब मैंने पायथन सीखा, तो मुझे सोचने का एक नया तरीका मिला।
यू मात्सु

80

लोग माउंट क्यों चढ़ते हैं एवरेस्ट? या 24 घंटे में 100 मील दौड़ेंगे ? हम कोई चुनौती क्यों लेते हैं? क्योंकि यह वहाँ है। मुझे "अर्स ग्रैटिया आर्टिस" में कुछ भी गलत नहीं दिखता है। एक बिंदु आता है जहाँ सीखने के लिए सीखना स्वयं का प्रतिफल है। लेकिन अगर आप एक नई भाषा सीखने के लिए अधिक शक्तिशाली कारण चाहते हैं, तो कुछ हैं:

समस्याओं को हल करने के नए तरीके , एक नई भाषा सीखना, वास्तव में गोता लगाने के लिए समय लेना, आपको एक नौसिखिया के रूप में फिर से कार्यक्रम करने का मौका देता है। वह नया दृष्टिकोण आपको ऐसी तकनीकें सिखा सकता है जो पुरानी भाषा में ले जा सकती हैं। R.NET पर रूबी के प्रभाव के बारे में सोचें। ASP.NET MVC या जावा हाइबरनेट को C # पर पोर्ट किया गया था (साथ ही अनगिनत अन्य रूपरेखाएँ जो .NET विकास को प्रभावित करती हैं)। विभिन्न भाषाओं के लिए एक्सपोज़र आपको समस्याओं को दूर करने के नए तरीके सिखा सकता है।

सही काम के लिए सही उपकरण आपके द्वारा उल्लिखित सभी भाषाएँ OO / प्रक्रियात्मक संकर (या C के मामले में विशुद्ध रूप से प्रक्रियात्मक) हैं। एक कार्यात्मक भाषा या दो पर अपना हाथ आज़माएं। पुनरावृत्ति का उपयोग करके एरलांग में फैक्टरियल को लागू करने की कोशिश करें और अपने जबड़े को 20000 तक फर्श पर देखें! 5 सेकंड में रिटर्न (साइट में कोई स्टैक ओवरफ्लो नहीं)। फिर संख्या और पार्स प्रोटोकॉल के माध्यम से कम कोड के साथ अपने आवेदन को स्केल करने की शक्ति को देखें और कम समय में आरएमआई या एसओएपी के माध्यम से बात करने वाले एक जेवीएम के दो उदाहरण प्राप्त करने के लिए ले जाएगा। विशिष्ट समस्याओं को हल करने के लिए लक्षित अन्य भाषाओं / रूपरेखाओं को सीखना आपको अधिक उपकरण देगा।

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

नए अवसर एक नई भाषा को जानने से उस हॉट स्टार्टअप के साथ उस नौकरी को प्राप्त करने की संभावना बढ़ सकती है। "अगर मैं रूबी को जानता हूं तो यह काम सही होगा।" इसके अलावा, आप उस भाषा का पर्याप्त आनंद ले सकते हैं जिसे आप पथ स्विच करने का निर्णय लेते हैं।

इसे ताज़ा रखें दिन में एक ही चीज़ के साथ काम करना थकाऊ हो जाता है। एक अलग भाषा का उपयोग आपको दैनिक पीसने से छुट्टी दे सकता है और आपको अगले दिन ताज़ा करने की अनुमति दे सकता है।

क्योंकि यह वहाँ है एक नई भाषा सीखें क्योंकि आप चाहते हैं।


3
+1 जावास्क्रिप्ट कार्यात्मक हो सकता है, लेकिन यह निश्चित रूप से ओपी जैसा दिखता है कि शायद उनके टूलबॉक्स से कुछ प्रतिमान गायब हैं। और कार्यात्मक भाषाओं के साथ अधिक अनुभव उनकी मौजूदा भाषाओं जैसे C ++ टेम्पलेट
jk के

+1 इसे ताजा रखने के लिए, यह वास्तव में कुछ अलग काम करने में अच्छा महसूस करता है
मोना

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

1
LOL, हाँ यह वह नहीं है जो एरलांग को एक शुद्ध कार्यात्मक भाषा बनाता है, लेकिन यह परिप्रेक्ष्य में कुल परिवर्तन है। अनिवार्य भाषाओं में हमें सभी के लिए पुनरावृत्ति से बचने के लिए प्रोत्साहित किया जाता है लेकिन सबसे तुच्छ मामलों और कार्यात्मक भाषाओं की पुनरावृत्ति जीवन का एक तरीका है। यदि / अन्यथा या स्विच / केस के विपरीत पैटर्न मिलान बहुत अच्छा है।
माइकल ब्राउन

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

37

हम शब्दों से सोचते हैं। हम जिस भाषा का उपयोग करते हैं, उसे प्रभावित करते हैं। पिरहा भाषा के बारे में एक दिलचस्प मामला है - उस भाषा को बोलने वाले लोग जाहिरा तौर पर "सरल" या "सहज" संख्याओं के रूप में संभाल नहीं सकते हैं क्योंकि उन्हें जिस भाषा में लाया गया है, उसमें "विशिष्ट मात्रा" के लिए कोई शब्द नहीं है (यहां तक ​​कि "एक भी नहीं" " और बहुत")।

प्रोग्रामिंग भाषाओं के साथ ही है। एक नई प्रोग्रामिंग भाषा, प्रोग्रामिंग के कुछ पहलुओं के लिए आपके दिमाग को "खोल" सकती है।

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

यदि आप पहले घर पर कुछ अधिक महसूस करना चाहते हैं, तो पायथन या रूबी जैसी शक्तिशाली पटकथा भाषा का प्रयास करें।


22
+1। "एक भाषा जो आपके प्रोग्रामिंग के बारे में सोचने के तरीके को प्रभावित नहीं करती है, वह जानने लायक नहीं है।" - एलन पर्लिस
19

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

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

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

2
@evilcandybag: जैसा कि होता है, मैं वास्तव में एक स्रोत प्रदर्शित कर सकता हूं : sciencemag.org/content/306/5695/496 , sciencemag.org/content/suppl/2004/10/15/1094492.DC1/… (PDF)।
बरबाद

26

न केवल आप उन नई भाषाओं को सीखना चाहते हैं जो आप उन भाषाओं को सीखना चाहते हैं जो उन लोगों से अलग हैं जिन्हें आप पहले से जानते हैं। यदि आप जानते हैं कि जावा सीखना C # वास्तव में आपको चुनौती नहीं देगा, तो वे काफी हद तक समान हैं। आदर्श रूप से आपको एक ऐसी भाषा चुननी चाहिए जो आपको पता हो कि उससे बहुत अलग है। यदि आप जावा, जावास्क्रिप्ट और ऑब्जेक्टिव-सी जानते हैं तो आप कुछ अलग करना चाहते हैं

जैसे कि:

रूबी एक मज़ेदार टाइप ओ ओ लैंग्वेज

प्रस्तावना एक तर्क प्रोग्रामिंग भाषा बहुत अलग है

Erlang Concurrency और Fault Tolerance बहुत अच्छा किया

योजना गो SICP पढ़ें और ज्ञान तक पहुँचें

हास्केल दुनिया में सबसे शक्तिशाली प्रकार की प्रणालियों में से एक है यदि यह संकलित करता है कि यह संभवतः काम करेगा, तो आपको सभी प्रकार की अजीब त्रुटियों और बहुत कुछ करने से बचाएगा।

या सिर्फ सात सप्ताह में सेवन लैंग्वेज उठाएं जो शीर्षक के बारे में बताएगा कि यह क्या करेगा।


2
+1! एक व्यायाम जो मैं अभी कर रहा हूं, वह एक ही एल्गोरिदम (मर्ज सॉर्ट) को अलग-अलग भाषाओं में लागू करना है: यह वास्तव में मुझे यह महसूस कराता है कि एक ही गणना को व्यक्त करने के कितने तरीके हैं। मेरे पास पहले से ही C, C ++, पास्कल, जावा, स्काला और हास्केल संस्करण चल रहे हैं। पायथन, रूबी, मोडुला 2, योजना अपने रास्ते पर हैं। मुझे लगता है कि आप विभिन्न प्रोग्रामिंग भाषाओं को देखकर बहुत कुछ सीख सकते हैं! और एक भाषा में एक काम करने से मैं इस बारे में कई विचार प्राप्त कर सकता हूं कि इसे किसी अन्य भाषा में बेहतर तरीके से कैसे लागू किया जाए।
जियोर्जियो

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

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

3
मेरे अनुभव में @ डोनलफ्लो यदि आपको हास्केल में सही प्रकार मिलता है, तो बाकी कार्यक्रम खुद लिखने के लिए जाता है।
tobyodavies

1
"रूबी एक मज़ेदार टाइप ओ ओ लैंग्वेज": क्या रूबी वास्तव में कमजोर टाइप की हुई है या डायनामिक टाइप की हुई है?
जियोर्जियो

15

आपका प्रश्न इस तरह का एक अग्रणी है कि यह निम्नलिखित प्रश्न पूछने के लिए मुझसे भीख माँगता है:

यदि आप पेशे से प्रोग्रामर हैं, तो दुनिया में आप अपने पेशेवर अनुभव को जोड़ने के लिए कुछ नया क्यों नहीं सीखना चाहेंगे?

आपका प्रश्न मुझे बहुत अच्छा लगता है, जैसा कि मैंने एक बार एक छात्र के रवैये से किया था। Y2K के एक या दो साल पहले मैं एक कोबोल क्लास (ऐच्छिक के रूप में) पढ़ा रहा था, उस समय यूनिवर्सिटी में कैरियर सर्विसेज के निदेशक के अनुरोध पर जहाँ मैं पढ़ा रहा था। उनके पास कोबोल प्रोग्रामर के लिए नौकरी के अवसरों के साथ इतनी सारी कंपनियां थीं कि उन्हें लगा कि हम अपने छात्रों को कौशल सीखने और अपने कौशल सेट में जोड़ने का अवसर नहीं देकर एक असहमति का काम करेंगे।

मेरे पास एक छात्र था जो स्नातक करने के लिए अपने अंतिम ऐच्छिक वर्ग के रूप में कक्षा लेता था । वह उस समय सी प्रोग्रामर के रूप में भी काम कर रहे थे। उन्होंने कोबोल की क्लास ली क्योंकि उनके पास कोई और विकल्प नहीं था और वह डिग्री चाहते थे। इसलिए वह कंधे पर चिप लगाकर कक्षा में आया।

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

इसलिए मैंने उन्हें एक फाइल से डेटा पढ़ने के लिए एक प्रोग्राम लिखने के काम के साथ चुनौती दी, जिसमें इनपुट के प्रत्येक रिकॉर्ड के लिए एक विशिष्ट प्रारूप था (यानी प्रत्येक क्षेत्र में कितने वर्ण एक पंक्ति में थे, कौन सा क्षेत्र पहले, दूसरे, तीसरे, आदि पर आया था) ।)

उन्हें सी में अपना कार्यक्रम लिखना था, जो उन्होंने किया, और उन्होंने अपना कार्यक्रम मुझे दिखाया। उसी समय, मैंने उसे कार्यक्रम का अपना कोबोल संस्करण दिखाया।

फिर मैंने उसे एक कर्व बॉल फेंक दिया:

माना जाता है कि अंतिम उपयोगकर्ता कहीं और से डेटा प्राप्त कर रहा है। यह प्रत्येक रिकॉर्ड में समान फ़ील्ड्स है, लेकिन ऑर्डर और प्रति फ़ील्ड वर्णों की संख्या अलग-अलग है। मुझे दिखाएँ कि नए डेटा प्रारूप के साथ काम करने के लिए आपको अपने कार्यक्रम में क्या बदलाव करना होगा।

उन्होंने नए डेटा प्रारूप के साथ काम करने वाले कार्यक्रम का नया संस्करण बनाने के लिए एक दिन लिया। इसमें कोड की कम से कम 20 या 30 पंक्तियों को बदलना और कई कार्यों और मॉड्यूल को संशोधित करना शामिल था।

फिर मैंने उसे अपने कोबोल कार्यक्रम में किए जाने वाले परिवर्तनों को दिखाया। मैंने नए डेटा प्रारूप को दर्शाने के लिए चित्र खंड को संशोधित किया।

मुझे यकीन नहीं है कि वह पूरी तरह से उस अभ्यास के पाठ को समझ गए हैं, लेकिन उन्होंने कम से कम बाकी सेमेस्टर के लिए शिकायत करना छोड़ दिया।

इसलिए - आपके प्रश्न के उत्तर में: आपको नई भाषाएँ सीखनी चाहिए क्योंकि आप सीखना चाहते हैं। और अगर आप सीखना नहीं चाहते हैं - आपके लिए अधिक शक्ति ... (मुझे यकीन नहीं है कि मैं आपको उस दृष्टिकोण के साथ काम पर रखूंगा)


6
जबकि आपके इरादे अच्छे थे, अगर मैं वह छात्र होता तो मैं बस यही सोचता कि आपके ऐप को आसानी से बदलने का एकमात्र कारण यह था कि आप आखिरकार आवश्यकताएं जानते थे। यदि कार्यक्रम को समान ज्ञान के साथ सी में लिखा गया था, तो वहां भी कम से कम बदलाव किए जाने की आवश्यकता है।
hspain

मेरे पास एक समान दृष्टिकोण वाला एक सहकर्मी था: "सी और पीएचपी मुझे पैसे कमाते हैं। मुझे अपना समय दूसरी भाषा सीखने में क्यों बर्बाद करना चाहिए?" वह वहां कोई काम नहीं करता है।
ग्रेफेड

3
सभी आवश्यकताएँ जल्द या बाद में बदल जाती हैं! यह एक तरह का बिंदु है।
ज़ाचरी के

@ हस्पैन - वास्तव में अभ्यास के पूरे बिंदु के कारण है कि कोबोल आई / ओ विनिर्देशों को एक कार्यक्रम के पहले क्रम के हिस्से के रूप में मानता है, बजाय इसके कि आप जिस तरह से लिखते हैं और अपने आदेश देते हैं, उसके आधार पर एक लॉयस-फैयर तरीके से कुछ होता है। C में I / O कथन और Zachary K की टिप्पणी को प्रतिध्वनित करने के लिए, तथ्य यह है कि आवश्यकताएं बदल जाती हैं। - हाँ, आप C में किसी प्रोग्राम को इस तरह से स्ट्रक्चर कर सकते हैं कि यह कम भंगुर हो जब I / O आवश्यकताएं बदल जाती हैं, लेकिन इसमें प्रोग्राम के बारे में पूरी तरह से अलग तरीके से सोचना शामिल होता है, जो आमतौर पर C प्रोग्राम लिखते समय होता है।
ज़ेके हैंसेल

मुझे नहीं पता था कि वास्तव में कोबोल के बारे में। किसी दिन मुझे देखने के लिए जाना पड़ सकता है
Zachary K

12

कई कारणों से एक नई भाषा सीखना समय में निवेश के लायक हो सकता है:

  1. किसी के टूल बॉक्स का आकार बढ़ाएं - एक नई भाषा सीखना तकनीकी मुद्दों को हल करने के लिए अतिरिक्त मार्ग प्रदान कर सकता है। नए उपकरण की संभावना कुछ विशेष समस्याओं को हल करने के लिए भाषा / मंच का एक बेहतर विकल्प प्रदान कर सकती है जो पहले से जानते थे। एक सरलीकृत उदाहरण एक प्रोग्रामर का हो सकता है जो केवल सी जानता है। एक स्क्रिप्टिंग भाषा सीखना उसके लिए अन्य संभावनाएं खोलता है - तैनाती, पर्यावरण सेट अप आदि के संदर्भ में।
  2. एक नए प्लेटफ़ॉर्म पर पहुंच प्राप्त करें - एक उत्कृष्ट उदाहरण ऑब्जेक्टिव सी हो सकता है - अगर कोई आईओएस के लिए विकसित करना चाहता है, तो इस भाषा को सीखना लगभग अनिवार्य है।
  3. नए प्रतिमान जानें - कुछ भाषाओं में नए प्रतिमानों तक बेहतर पहुँच हो सकती है। एक उदाहरण के रूप में सी का उपयोग करना, मानक एएनएसआई सी में वेब सेवाओं को विकसित करना मुश्किल हो सकता है। हालांकि, .NET, जावा, पीएचपी, या अन्य नई भाषाओं में विकसित करना सीखना वेब सेवाओं के विकास को गति दे सकता है।

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


11

एक शब्द में: विपणन

आप अपने रोजगार की संभावनाओं को खोलते हैं जब आप प्रदर्शित कर सकते हैं कि आपके पास नई चीजों को अनुकूलित करने और सीखने की क्षमता है। निश्चित रूप से, आप उस भाषा का उपयोग करके एप्लिकेशन लिखना जारी रख सकते हैं, जिस पर आप वास्तव में कुशल हो गए हैं, लेकिन क्या होता है जब आप सीखते हैं कि आपकी पसंद की पसंदीदा भाषा उस उद्योग के लिए अप्रासंगिक हो जाती है, जिसमें आप काम कर रहे हैं। मुझे वास्तव में एक समय याद है जब हमने प्रयोग किया था। सी या सी ++ में खरोंच से अपनी खुद की वेब सेवाओं को लिखने के लिए, आजकल हम ऐसे टूल का उपयोग करते हैं जो हमारे लिए सभी अंतर्निहित "वेबनेस" (थिंक रेल, आदि ...) करते हैं।

मुद्दा यह है कि आप उन अभिनेताओं की तरह अंत करते हैं जो एक टीवी श्रृंखला करते हैं, और फिर आसानी से किसी और चीज पर नहीं जा सकते क्योंकि उन्हें हमेशा अपने मूल चरित्र के रूप में देखा जाता है। "पृथ्वी पर कौन चाहता है कि कप्तान किर्क इंडियाना जोन्स हो? !!"। प्रोग्रामर के साथ ही जिन्होंने कभी केवल एक उत्पाद का उपयोग किया है। निश्चित रूप से, आप इसे किसी और की तरह नहीं जान पाएंगे, लेकिन यह तब आपकी मदद नहीं करेगा जब आपके साथ ऐसा व्यवहार किया जाएगा जैसे कि आपको फोरट्रान के रूप में रखा गया है जो C # के साथ काम करने के लिए आगे नहीं बढ़ सकता है।

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

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


8

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

आपकी अधिकांश सूचीबद्ध भाषाएँ (Java / C / C ++ / Javascript / Objective-C) पारंपरिक OO / अनिवार्य हैं। एक और OO / अनिवार्य भाषा सीखना अभी भी आपको उस तरह की प्रोग्रामिंग के बारे में अधिक नहीं सिखाएगा। जब तक आपको कोई विशेष रुचि नहीं है, तब तक कल्पना का स्वाद सीखने का कोई मतलब नहीं है।

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

नई भाषा सीखने का सबसे अच्छा कारण सामान्य प्रयोज्यता के कौशल सीखना है। उसके लिए, मैं एक तरफ एक कार्यात्मक भाषा (हास्केल, या लिसप्स में से एक) में एक गहरा गोता लगाने की सलाह दूंगा और दूसरी तरफ असेंबली कोड और सिस्टम आर्किटेक्चर (x86 या ARM)।

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


6

हम में से हर कोई यह तय करता है कि हम क्या काम करना चाहते हैं ...

  1. आप इसे सीखना चाहते हैं क्योंकि आप चाहते हैं
  2. आप इसे सीखते हैं क्योंकि आपको उस नौकरी के लिए इसकी आवश्यकता होती है जिसे आप चाहते हैं

यदि आप PHP नहीं सीखना चाहते हैं, तो कोई भी आपको नहीं बना रहा है और एक टन क्षेत्र है जहां आप कभी भी बिना PHP के वर्तनी जानने के बिना प्रोग्राम कर सकते हैं।

बहुत से लोग नौकरी के बाजार को देखते हैं कि गर्म क्षेत्र कहाँ हैं और उन प्रौद्योगिकियों पर कूदें। बहुत सारे लोग एक भाषा सीखते हैं और इसके साथ चिपके रहते हैं और 20 साल बाद वे विरासत रखरखाव इंजीनियर बन जाते हैं। और फिर आपके पास बहुत सारे लोग हैं जो इन दोनों चरम सीमाओं के बीच कहीं भी हैं।

अंत में, यह सब है कि आप क्या बनना चाहते हैं।


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

1
@ PéterTörök: मेरे जवाब का संपादन किया। मैं पैमाने की ओर इशारा कर रहा था, लेकिन सभी को बाहर करने के लिए बहुत आलसी था। आप सही हैं, यह एक सतत स्पेक्ट्रम है।
DXM

5

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

मुझे जावा में C ++, 5 में लगभग 15 साल का अनुभव है। ऐसी कई भाषाएँ हैं जो मैंने सीखीं और पीछे छोड़ दीं (PHP, पास्कल, असेंबली ऑफ द प्रोसीज़र ऑफ द बुज़ुर्ग प्रोसैस, फॉर एज़ असेन्डर) और यह सुनिश्चित करने के लिए कह सकते हैं कि जो मैं अब भी इस्तेमाल नहीं करता हूँ वह इस बात पर एक महत्वपूर्ण निशान छोड़ गया कि मैं किसी समस्या के बारे में कैसे सोचता हूँ। । इसके अलावा: यदि आप किसी दिए गए प्रोजेक्ट के लिए जावा, कहते हैं, के साथ रहना चाहते हैं, तो भी आपको इसके प्रस्तावकों को अच्छे प्रतिवाद प्रस्तुत करने का विकल्प जानना होगा।

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

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


5

लोग नई भाषाएँ सीखते हैं ...

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

इसलिए जैसा कि आप देख सकते हैं कि एक नई भाषा सीखने के कई कारण हैं। मेरी आपको सलाह (और मेरा एकमात्र मूल उद्धरण जो मुझे लगता है कि अच्छा है):

बार-बार कोड लिखें; कोड अच्छी तरह से लिखें; कोड को स्कीम, PHP, Java, Python, Lisp, Perl, C, C ++, C #, Visual Basic, Ruby में लिखें ...


1
@ नुपुल: या कम से कम मुझे लगता है कि बोली ऐसी ही चलती है ...
डायनेमिक

5

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

जो लोग अधिक भाषा सीखते हैं, वे अधिक पैसा बनाते हैं।

http://blog.stackoverflow.com/2012/02/survey-results/


4

अल्फ्रेड नॉर्थ व्हाइटहेड ने " द इंपोर्टेंस ऑफ गुड नोटेशन " नामक एक महान निबंध लिखा

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

एक प्रोग्रामिंग भाषा संकेतन का एक रूप है। मैं C में OO कोड कर सकता हूं; वास्तव में यह है कि स्ट्रॉन्स्ट्रुप की शुरुआत C ++ से हुई - सी प्रीकॉम्पलर मैक्रोज़ की एक श्रृंखला के रूप में। हालाँकि, O, कोड को जावा, C ++ या C # में लिखना कहीं अधिक आसान और तेज है क्योंकि उनमें भाषा प्रधानता मौजूद है जो OO को अधिक आसानी से समर्थन करती है।

अब तक दी गई नई भाषाओं को सीखने के सभी कारण मान्य हैं, लेकिन मुझे लगता है कि एक नई भाषा सीखने का सबसे अच्छा कारण यह है कि एक नई धारणा आपको नए तरीके से सोचने में सक्षम कर सकती है जो आपको नई समस्याओं को हल करने में मदद कर सकती है।


2

अधिकांश या उपरोक्त सभी उत्तर पेशे से संबंधित हैं। प्रोग्रामिंग। मैं याद दिलाना चाहता हूं कि प्रोग्रामर बनने से पहले - हम इंसान हैं।

एक अच्छा कारण है कि नई प्रोग्रामिंग भाषा नहीं सीखना, आपके मामले में, प्रोग्रामिंग के बगल में अपने आप को आराम करने या अन्य काम करने देना है।

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

प्रोग्रामिंग में कई अवधारणाएं दैनिक जीवन से सीधे आ रही हैं: सरलता, बनाए रखने, व्यावहारिक, उपयोगी, तेज - और कभी-कभी धीमी , मॉड्यूलरिटी, आदि; सभी अवधारणाएं हैं, जो एक बढ़ई द्वारा उपयोग की जाती हैं, उदाहरण के लिए।

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

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


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

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

-2

एक नई प्रोग्रामिंग भाषा सीखने का मूल्य मोटे तौर पर, उन प्रोग्रामिंग भाषाओं की संख्या का पारस्परिक है जो आप पहले से जानते हैं।

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


-3

जैसा कि उनमें से ज्यादातर ने पहले ही लिखा था, मुझे सी पर अच्छा काम करने का ज्ञान है। हाल ही में, मैं कुछ समस्या पर काम कर रहा था जिसके लिए मुझे परिणामों की जांच करने की आवश्यकता थी; यह गणितीय था। तो उत्तर प्राप्त करने का सबसे तेज़ तरीका क्या है, जिससे मुझे सीखी जाने वाली तेज़ प्रोग्रामिंग भाषा की जाँच करने के लिए एक किक मिली।

और मुझे पता चला है कि बीसी , एक मनमाना सटीक कैलकुलेटर लैंग्वेज, यूटिलिटी लगभग हर यूनिक्स प्लेटफॉर्म पर उपलब्ध है।

मैंने पायथन, पर्ल या कुछ भी नहीं सोचा था, लेकिन मुझे पता चला कि इसने मेरी समस्याओं को हल कर दिया है। मैंने इसे इस तथ्य (20000) पर जांचा कि एक दोस्त ने सुझाव दिया, और इसने बिना किसी दुर्घटना के एक तस्वीर में परिणाम दिया।

यह केवल एक निश्चित बिंदु पर महत्वपूर्ण है कि आपको एक नई भाषा जानने की आवश्यकता है जो वर्तमान में आपकी नौकरी / समस्या को कम कर देगी।

निश्चित रूप से, अगर मैं इसे अपने फिर से शुरू में लिखता हूं तो मुझे लगता है कि कोई भी परवाह नहीं करता है, लेकिन अपने दृष्टिकोण से यह मेरी समस्या को हल करता है इससे पहले कि मैं इसे अपनी पसंदीदा भाषा में हमला करूं, 'सी'।

और यह भी कि अगर एक नई भाषा सीखने की आवश्यकता है तो आपको विभिन्न समस्याओं और समाधानों की संख्या के साथ अवसर मिलेगा।


-8

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

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

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


4
एक बहुत अव्यवहारिक आदर्श की तरह लगता है। इन मानक भाषाओं को कौन तय करेगा, और आप कैसे तय करेंगे कि एक नई भाषा बदलने के लायक है? एक भद्दी भाषा में फंसने के जोखिम के बारे में क्या सिर्फ इसलिए कि कोई भी कुछ नया करने की कोशिश करने को तैयार नहीं है? सोचिए अगर हमने 10 साल पहले ऐसा किया होता - तो हर किसी को C ++ और Java (या शायद VB) का इस्तेमाल करने को मिल जाता!
ब्रेंडन लॉन्ग

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

2
उपरोक्त बिंदुओं के अलावा, आपका "उत्तर" बहुत कम वास्तविक प्रश्न के लिए प्रासंगिक है। Downvote।
user16764

3
एक आदर्श दुनिया में, नुपाल के प्रश्न का केवल एक ही उत्तर होगा। मानकीकरण के गुणों को नहीं समझने वाले लोगों द्वारा पहले एक के बाद इन सभी अतिरिक्त उत्तरों के होने से भ्रम पैदा होता है। अपने स्वयं के मन में उत्तर से असहमत होने के साथ कुछ भी गलत नहीं है, लेकिन एक अतिरिक्त उत्तर पोस्ट करना आपको समस्या का हिस्सा बनाता है।
बेंज़ादो

1
उन भाषाओं पर प्रतिबंध लगाने से आपके द्वारा बताई गई किसी भी समस्या को रोका नहीं जा सकेगा। बदलती भाषाओं की तुलना में बदलते ढांचे के कारण मुझे कई बार आवेदन को फिर से लिखना पड़ा।
फेबियो सेकोनेलो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.