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