इस वर्ष की Google कोड जाम प्रतियोगिता में प्रतिस्पर्धा करने और उसका अनुसरण करने के बाद , मैं उस सफल [सफल] प्रतियोगी की अविश्वसनीय संख्या पर ध्यान नहीं दे सका, जिसने C / C ++ और Java का उपयोग किया था। संपूर्ण प्रतियोगिता में उपयोग की जाने वाली भाषाओं का वितरण यहाँ देखा जा सकता है ।
कई वर्षों तक C / C ++ में प्रोग्रामिंग करने के बाद, मुझे हाल ही में अपने पठनीय / सीधे स्वभाव के लिए अजगर से प्यार हो गया। अभी हाल ही में, मैंने OCaml, योजना, और यहां तक कि तर्क जैसी भाषाएं भी सीखीं। इन भाषाओं में निश्चित रूप से उनकी खूबियां हैं और, मेरी राय में, कुछ स्थितियों के लिए C ++ और Java की तुलना में अधिक आसानी से लागू किया जा सकता है। उदाहरण के लिए, कॉल / सीसी की स्कीम का उपयोग बैकट्रैकिंग (कई समस्याओं का जवाब देने के लिए आवश्यक उपकरण) और प्रोलॉग के तर्क विनिर्देश को सरल बनाता है, हालांकि अपनी पाशविक बल प्रकृति के कारण अक्षम, काफी सरल कर सकता है (और यहां तक कि स्वचालित रूप से कुछ समस्याओं को हल कर सकता है) किसी के दिमाग को लपेटो।
यह स्पष्ट है कि एक प्रतियोगिता प्रतियोगी को उन उपकरणों का उपयोग करना चाहिए जो चुनौती के लिए सबसे उपयुक्त हैं। यहां तक कि x86 असेंबली पूरी तरह से ट्यूरिंग है - जो इसके साथ समस्याओं को हल करने का औचित्य नहीं देता है। इस स्थिति में, प्रतियोगी जो स्कीम / लिस्प, प्रोलॉग जैसी सामान्य भाषाओं का उपयोग करते हैं, और यहां तक कि पायथन सी / सी ++ और जावा का उपयोग करने वाले प्रतियोगियों की तुलना में काफी कम सफल हैं? अलग-अलग शब्दों में, क्यों सफल प्रतियोगी भाषाओं का उपयोग नहीं करते हैं, हालांकि कम मुख्यधारा हो सकती है, यकीनन नौकरी के लिए बेहतर उपकरण हैं?
मेरे प्रश्न के लिए कई प्रेरणाएँ हैं। सबसे महत्वपूर्ण बात, मैं एक बेहतर प्रोग्रामर बनना चाहता हूं - व्यावहारिक पहलू और प्रतियोगिता पहलू दोनों। कार्यात्मक और तर्क प्रोग्रामिंग जैसे सुंदर प्रतिमानों से परिचित होने के बाद, यह देखना हतोत्साहित करता है कि बहुत से लोग उन्हें C / C ++ और Java के पक्ष में छोड़ देते हैं। यहां तक कि यह मुझे उक्त प्रतिमानों के लिए मेरी प्रशंसा का सवाल बनाता है, यह चिंता करते हुए कि मैं एक प्रोग्रामिंग प्रतियोगिता में लिस्प / स्कीम / प्रोलोग प्रोग्रामर के रूप में सफल नहीं हो सकता।