क्या मुझे छोटी या आला भाषाओं के बारे में जानने की जहमत उठानी चाहिए? [बन्द है]


22

यदि आप StackExchange पर कोड गोल्फ प्रश्न ब्राउज़ करते हैं , तो आप F # , Scala , R , J और Clojure जैसी गैर-मानक लेकिन वास्तविक दुनिया (जैसे कि मस्तिष्क-एफ * ck) भाषाओं का एक टन नहीं देखते हैं । अपनी वेबसाइटों पर जाकर, कुछ भाषाएँ आपकी पहले से ही उपयोग की जाने वाली भाषा में दिलचस्प हल करने वाली समस्याएँ देखती हैं।

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

क्या मुझे कुछ छोटी भाषाओं को सीखने से भी परेशान होना चाहिए? ऐसा लगता नहीं है कि मैं पैसा कमा पाऊंगा, और कुछ शायद वैसे भी असफल हो जाएंगे।


4
यदि आप सभी परवाह करते हैं कि पैसा कमा रहे हैं तो आप यह सवाल क्यों पूछ रहे हैं
चोसपांडियन

4
F # VS2010 के रूप में एक प्रथम श्रेणी की भाषा है। मैं यह नहीं कहूंगा कि यह गैर-मानक है, और मुझे लगता है कि यह जल्द ही व्यापक रूप से अपनाएगा।
ब्रायन आर। बॉडी

8
यदि आप चाहते हैं कि सिर्फ पैसा कमाना है, तो आप प्रोग्रामिंग से बेहतर रहेंगे। एक लोकप्रिय अभिनेत्री बनने के बारे में कैसे?
पी शेव्ड

2
@ एलक्यूक्यू: आप मुख्यधारा बनना चाहते हैं? आपको कोई भी कदम उठाने से डरता है कि आप यह नहीं जानते कि इसे करने से पहले आपके पास कितना पैसा आएगा? तो कृपया, मुख्यधारा के वेतन के साथ भी संतुष्ट रहें। यह सब आप कभी भी अपनी मानसिकता के साथ कर पाएंगे, अगर ऐसा है।
इंगो

1
कुछ आला भाषाएँ आपको अधिक उत्पादक बना सकती हैं, इस प्रकार आप मुख्यधारा की भाषाओं की तुलना में अधिक पैसा कमा सकते हैं।
जियोर्जियो

जवाबों:


25

सपिर-व्हॉर्फ परिकल्पना । यह बताता है, कम या ज्यादा, कि आप जो सोच सकते हैं वह आपके द्वारा बताई गई भाषा से सीमित है। इसका परिणाम यह है कि बहुभाषी लोग उन तरीकों से सोचने में सक्षम होते हैं जो एकल भाषा बोलने वाले नहीं कर सकते हैं।

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


1
ठीक ठीक। उदाहरण के लिए, मुझे लगता है कि कुछ स्थितियों में, एक विशुद्ध रूप से कार्यात्मक भाषा बस पर्याप्त नहीं है। हालाँकि मैं लगातार कार्यात्मक प्रोग्रामिंग (जैसे जावास्क्रिप्ट, सी ++ 0x, आदि) का समर्थन करने वाली भाषाओं में खुद को कार्यात्मक अवधारणाओं में खींच रहा हूं।
कैम

4
मुझे खुशी है कि लोग सापिर-व्हॉर्फ परिकल्पना का उपयोग करना जारी रखते हैं (मोटे तौर पर, हालांकि लिंग्विस्टिक्स में पूरी तरह से बदनाम नहीं) एक सादृश्य के रूप में। मैं निश्चित रूप से प्रोग्रामिंग के संबंध में भावना से सहमत हूं, लेकिन मुझे लगता है कि एक अलग सादृश्य बेहतर पाया गया था यदि हम चाहते हैं कि लोग हमें गंभीरता से लें।
जोनाथन स्टर्लिंग

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

24

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

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

अन्य कारणों से आप 'छोटी / आला' भाषा सीखना चाहते हैं:

  • भाषा आपको किसी भी अन्य भाषा की किसी विशेष (प्रकार) समस्या को 'बेहतर' (तेजी से, बेहतर समाधान के साथ, अधिक सुस्पष्ट रूप से, आदि) हल करने की अनुमति देती है।

  • भाषा आपको समस्याओं के साथ-साथ एक लोकप्रिय भाषा को हल करने की अनुमति देती है, लेकिन इसमें कुछ शांत विशेषताएं हैं जो आपको पसंद हैं (जैसे। क्लोजर)।

  • आप भाषा विकसित करने में मदद करना चाहते हैं

7

वैसे मैं क्लजुरे का उपयोग कर रहा हूं (आप जिन "आला भाषाओं" में से एक का उल्लेख करते हैं) और पाया कि यह एक बहुत ही सार्थक अनुभव रहा है।

  • यह मुझे बहुत अधिक उत्पादक (बनाम जावा और सी # है कि मैं मुख्य रूप से पहले इस्तेमाल किया है) बनाया है। जैसा कि मैंने अपना खुद का व्यवसाय चलाया, उत्पादकता पैसे के बराबर है :-) इस मायने में क्लोजर पहले से ही सफल रहा है, कम से कम मेरे दृष्टिकोण से।
  • मैंने नई तकनीकों को सीखा है, जिसने मुझे एक बेहतर डेवलपर (विशेष रूप से समवर्ती, कार्यात्मक प्रोग्रामिंग, अमूर्त, मेटाप्रोग्रामिंग आदि) के आसपास बनाया है। यहां तक ​​कि अगर मैं जावा लिखने के लिए वापस चला गया, तो भी मैं इस ज्ञान का अच्छा उपयोग कर सकता हूं
  • इससे पहले कि मैंने जो कुछ किया है, उससे बहुत अलग एक नई भाषा सीखने के लिए यह वास्तव में सुखद है। यदि आप वास्तव में आनंद लेते हैं कि आप क्या करते हैं, तो यह अपने आप में सार्थक है।
  • क्योंकि यह एक JVM भाषा है, इससे कोई फर्क नहीं पड़ता कि पुस्तकालयों का सेट अपेक्षाकृत छोटा है क्योंकि आप अभी भी जावा / JVM पारिस्थितिकी तंत्र में पुस्तकालयों के पूरे सेट तक पहुँच पाते हैं। यह उन भाषाओं के लिए एक बड़ा लाभ है जो JVM पर चलती हैं (वही स्काला पर लागू होगी)

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


4

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


4

एक आला भाषा में एक पेशेवर डेवलपर के रूप में बोलते हुए , एक जीवित बनाना संभव है। हालांकि अपसाइड और डाउनसाइड हैं।

चीजें जो कठिन हैं:

  • नौकरी खोजने में अधिक समय लगता है
  • नौकरियां आपको स्थानांतरित करने की आवश्यकता होती हैं
  • आपको मुख्यधारा के प्रोग्रामर (और इसलिए, अधिक प्रतिरोध) से बहुत कम सम्मान मिलेगा।

चीजें जो आसान हैं:

  • प्रोग्रामर का छोटा पूल नौकरियों के लिए प्रतिस्पर्धा को आसान बनाता है
  • आप अपने क्षेत्र में महत्व के हर प्रोग्रामर को जान सकते हैं
  • प्रतिष्ठा विकसित करना मुख्यधारा की तुलना में आसान है

चीजें जो सिर्फ हैं :

  • वेतन अधिक चर हो सकता है, क्योंकि कुछ मानक हैं
  • बहुत समय दूसरों को अपने आला की ताकत और कमजोरियों के बारे में शिक्षित करने पर खर्च किया जाता है

कुल मिलाकर, यदि एक कैरियर आपकी चिंता है, तो आपको कभी भी एक-चाल वाली टट्टू, मुख्यधारा या आला नहीं होना चाहिए।


2

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


परियोजना यूलर के लिए +1। जब मैं अजगर सीख रहा था, मैंने वही किया था

1

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

यदि भाषा लोकप्रिय हो जाती है, तो आप पहले से ही इसमें कुशल होंगे, और इसलिए आप उच्च मांग में होंगे।

कम संभावना, संभावित रूप से उच्च पुरस्कार।


2
व्यक्तिगत रूप से मैं हमेशा भाषाओं के बजाय अवधारणाओं को सीखने की कोशिश करूँगा ... सीमित मस्तिष्क स्थान यदि आप जानते हैं कि मेरा क्या मतलब है।
चोसपांडियन

1

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

और कभी-कभी आला भाषाएँ लगभग किसी भी मुख्यधारा की भाषाओं की तुलना में कहीं अधिक लंबी होती रही हैं - स्मालटाक, प्रोलॉग और लिस्प भाषाएँ मन को लुभाती हैं। वे लोकप्रिय नहीं हो सकते हैं, लेकिन वे या तो गायब नहीं हो रहे हैं।

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