Sếp của bạn yêu cầu bạn viết một chương trình "xin chào thế giới". Vì bạn được trả tiền cho các dòng mã, bạn muốn làm cho nó phức tạp nhất có thể. Tuy nhiên, nếu bạn chỉ thêm các dòng vô nghĩa, hoặc rõ ràng là những thứ vô dụng hoặc gây khó chịu, bạn sẽ không bao giờ có được nó thông qua xem xét mã. Do đó, thách thức là:
Viết chương trình "hello world" phức tạp nhất có thể với điều kiện bạn có thể đưa ra "biện minh" cho mọi sự phức tạp trong mã.
Hành vi bắt buộc của chương trình là chỉ xuất một dòng "Hello world" (không có dấu ngoặc kép, nhưng có dòng mới ở cuối) và sau đó thoát thành công.
"Biện minh" bao gồm:
- tương thích từ thông dụng ("Phần mềm hiện đại là hướng đối tượng!")
- thường chấp nhận thực hành lập trình tốt ("Mọi người đều biết rằng bạn nên tách mô hình và chế độ xem")
- khả năng bảo trì ("Nếu chúng tôi làm theo cách này, chúng tôi có thể dễ dàng thực hiện XXX sau")
- và tất nhiên mọi biện minh khác mà bạn có thể tưởng tượng bằng cách sử dụng (trong các tình huống khác) cho mã thực.
Rõ ràng những lời biện minh ngớ ngẩn sẽ không được chấp nhận.
Ngoài ra, bạn phải "biện minh" cho lựa chọn ngôn ngữ của mình (vì vậy nếu bạn chọn ngôn ngữ dài dòng vốn có, bạn sẽ phải chứng minh lý do tại sao đó là lựa chọn "đúng"). Các ngôn ngữ thú vị như Unlambda hoặc Intercal không được chấp nhận (trừ khi bạn có thể đưa ra lời biện minh rất tốt cho việc sử dụng chúng).
Điểm của các mục đủ điều kiện được tính như sau:
- 1 điểm cho mỗi câu lệnh (hoặc bất cứ điều gì tương đương với câu lệnh nằm trong ngôn ngữ bạn chọn).
- 1 điểm cho mỗi định nghĩa của hàm, loại, biến vv (ngoại trừ hàm chính, nếu có).
- 1 điểm cho mỗi mô-đun sử dụng câu lệnh, tệp bao gồm chỉ thị, không gian tên sử dụng câu lệnh hoặc tương tự.
- 1 điểm cho mỗi tệp nguồn.
- 1 điểm cho mỗi khai báo chuyển tiếp cần thiết (nếu bạn có thể thoát khỏi nó bằng cách sắp xếp lại mã, bạn phải "biện minh" tại sao sự sắp xếp bạn chọn là "đúng").
- 1 điểm cho mỗi cấu trúc điều khiển (nếu, trong khi, cho, v.v.)
Hãy nhớ rằng bạn phải "biện minh" cho từng dòng.
Nếu ngôn ngữ được chọn đủ khác nhau để có thể áp dụng lược đồ này (và bạn có thể đưa ra một "biện minh" tốt cho việc sử dụng nó), vui lòng đề xuất một phương pháp cho điểm gần giống với ngôn ngữ bạn chọn nhất.
Thí sinh được yêu cầu tính điểm của bài dự thi và viết nó vào câu trả lời.