เจ้านายของคุณขอให้คุณเขียนโปรแกรม "สวัสดีโลก" เมื่อคุณได้รับเงินสำหรับบรรทัดของโค้ดคุณต้องทำให้มันซับซ้อนที่สุดเท่าที่จะทำได้ อย่างไรก็ตามหากคุณเพียงเพิ่มบรรทัดไร้สาระหรือสิ่งที่ไร้ประโยชน์หรือทำให้งงงวยอย่างเห็นได้ชัดคุณจะไม่ได้รับผ่านการตรวจสอบโค้ด ดังนั้นความท้าทายคือ:
เขียนโปรแกรม "hello world" ซึ่งมีความซับซ้อนที่สุดเท่าที่จะเป็นไปได้ภายใต้เงื่อนไขที่คุณสามารถให้ "เหตุผล" สำหรับทุกความซับซ้อนในรหัส
พฤติกรรมที่ต้องการของโปรแกรมคือเพียงแค่ส่งออกบรรทัดเดียว "Hello world" (โดยไม่ใส่เครื่องหมายอัญประกาศ แต่จะขึ้นบรรทัดใหม่ตอนท้าย) จากนั้นออกจากโปรแกรมสำเร็จ
"การอ้างเหตุผล" รวมถึง:
- ความเข้ากันได้ buzzword ("ซอฟต์แวร์ที่ทันสมัยเป็นวัตถุเชิง!")
- โดยทั่วไปยอมรับวิธีปฏิบัติด้านโปรแกรมที่ดี ("ทุกคนรู้ว่าคุณควรแยกโมเดลและมุมมอง")
- ความสามารถในการบำรุงรักษา ("ถ้าเราทำในลักษณะนี้เราจะทำ XXX ในภายหลังได้ง่ายขึ้น")
- และแน่นอนว่าเหตุผลอื่นใดที่คุณสามารถจินตนาการถึงการใช้ (ในสถานการณ์อื่น ๆ ) สำหรับรหัสจริง
เห็นได้ชัดว่าเหตุผลที่โง่เง่าจะไม่ได้รับการยอมรับ
นอกจากนี้คุณต้อง "ปรับ" ตัวเลือกภาษาของคุณ (ดังนั้นหากคุณเลือกภาษา verbose โดยเนื้อแท้คุณจะต้องแสดงเหตุผลว่าทำไมจึงเป็นตัวเลือก "ถูกต้อง") ภาษาที่สนุกเหมือน Unlambda หรือ INTERCAL ไม่เป็นที่ยอมรับ (ยกเว้นกรณีที่คุณสามารถให้มากเหตุผลที่ดีสำหรับการใช้พวกเขา)
คะแนนของรายการที่ผ่านการคัดเลือกมีการคำนวณดังนี้:
- 1 จุดสำหรับแต่ละข้อความ (หรือสิ่งที่เทียบเท่ากับข้อความอยู่ในภาษาที่คุณเลือก)
- 1 จุดสำหรับแต่ละนิยามของฟังก์ชันประเภทตัวแปร ฯลฯ (ยกเว้นฟังก์ชันหลักที่เกี่ยวข้อง)
- 1 จุดสำหรับแต่ละคำสั่งใช้โมดูลไฟล์รวมถึงคำสั่ง namespace ใช้คำสั่งหรือคล้ายกัน
- 1 จุดสำหรับแต่ละไฟล์ต้นฉบับ
- 1 คะแนนสำหรับการประกาศล่วงหน้าที่จำเป็นแต่ละรายการ (หากคุณสามารถกำจัดได้โดยการจัดเรียงรหัสใหม่คุณต้อง "ปรับ" เหตุผลที่ข้อตกลงที่คุณเลือกคือ "สิทธิ" หนึ่งข้อ)
- 1 จุดสำหรับแต่ละโครงสร้างการควบคุม (ถ้า, ในขณะ, สำหรับ, เป็นต้น)
จำไว้ว่าคุณต้อง "ปรับ" แต่ละบรรทัด
หากภาษาที่เลือกแตกต่างกันพอที่จะไม่สามารถใช้รูปแบบนี้ (และคุณสามารถให้ "เหตุผล" ที่ดีสำหรับการใช้งาน) โปรดแนะนำวิธีการให้คะแนนซึ่งคล้ายกับภาษาที่คุณเลือก
ผู้เข้าแข่งขันจะต้องคำนวณคะแนนของผลงานและเขียนลงในคำตอบ