Mọi người đều biết về Thư của Dijkstra gửi cho biên tập viên: đi đến tuyên bố được coi là có hại (cũng ở đây .html bảng điểm và ở đây .pdf) và đã có một sự thúc đẩy ghê gớm kể từ thời điểm đó để tránh tuyên bố goto bất cứ khi nào có thể. Mặc dù có thể sử dụng goto để tạo ra mã không thể nhầm lẫn, ngổn ngang, tuy nhiên nó vẫn còn trong các ngôn ngữ lập trình hiện đại . Ngay cả cấu trúc điều khiển tiếp tục tiên tiến trong Scheme có thể được mô tả như một goto tinh vi.
Những trường hợp nào đảm bảo việc sử dụng goto? Khi nào là tốt nhất để tránh?
Như một câu hỏi tiếp theo: C cung cấp một cặp hàm, setjmp và longjmp, cung cấp khả năng goto không chỉ trong khung ngăn xếp hiện tại mà trong bất kỳ khung gọi nào. Những thứ này có nên được coi là nguy hiểm như goto? Nguy hiểm hơn?
Chính Dijkstra đã hối hận vì danh hiệu đó mà anh không chịu trách nhiệm. Vào cuối EWD1308 (cũng ở đây .pdf), ông đã viết:
Cuối cùng là một câu chuyện ngắn cho hồ sơ. Vào năm 1968, Truyền thông của ACM đã xuất bản một văn bản của tôi với tiêu đề " Tuyên bố goto được coi là có hại ", trong những năm sau đó, nó thường được nhắc đến nhiều nhất, đáng tiếc, thường là bởi các tác giả không nhìn thấy nó nhiều hơn nó tiêu đề, đã trở thành nền tảng cho sự nổi tiếng của tôi bằng cách trở thành một khuôn mẫu: chúng ta sẽ thấy tất cả các loại bài viết dưới tiêu đề "X được coi là có hại" cho hầu hết mọi X, bao gồm một tiêu đề "Dijkstra coi là có hại". Nhưng chuyện gì đã xảy ra? Tôi đã gửi một bài báo dưới tiêu đề " Một trường hợp chống lại tuyên bố goto", để tăng tốc độ xuất bản, biên tập viên đã đổi thành" thư gửi cho biên tập viên ", và trong quá trình đó, ông đã đặt cho nó một tiêu đề mới về phát minh của chính mình! Biên tập viên là Niklaus Wirth.
Một bài viết kinh điển về chủ đề này, phù hợp với chủ đề của Dijkstra, là Lập trình có cấu trúc với các Tuyên bố , bởi Donald E. Knuth. Đọc cả hai giúp thiết lập lại bối cảnh và sự hiểu biết không giáo điều về chủ đề này. Trong bài báo này, ý kiến của Dijkstra về trường hợp này được báo cáo và thậm chí còn mạnh mẽ hơn:
Donald E. Knuth: Tôi tin rằng bằng cách trình bày một quan điểm như vậy trên thực tế tôi không đồng ý gay gắt với ý tưởng của Dijkstra, vì gần đây ông đã viết như sau: "Xin đừng rơi vào cái bẫy tin rằng tôi vô cùng giáo điều về [ đi đến tuyên bố]. Tôi có cảm giác không thoải mái khi những người khác đang tạo ra một tôn giáo từ đó, như thể các vấn đề khái niệm về lập trình có thể được giải quyết bằng một thủ thuật duy nhất, bằng một hình thức kỷ luật mã hóa đơn giản! "
goto
.