goto惹了谁?

最近我是和goto卯上了,先是向内核邮件列表提交了关于goto标签排版的补丁,现在又准备在自己的书里详细论述一下goto的坏处和好处。

发现这真不是一个聪明的决定,几个简单的搜索就已经把自己拉下goto的泥潭中了。 历史上,关于goto的争论似乎就没怎么停过。众所周知,最早论述goto的还是大牛Edsger Dijkstra,他早在1968年(那时候还没C语言呢)写了一篇流传颇广的paper——Go To Statement Considered Harmful,正是这篇短小的文章,向人们第一次揭示了goto的坏处,于是goto的名声就不怎么好了。直至今天,在我们的大学里,教授们也忠告我们不要使用goto,它会让你的程序变得很难读,云云~

这当然还没完,自从有了Go To Statement Considered Harmful,XX Considered Harmful似乎就成了计算机界很流行的用语了,于是乎也就有了“GOTO Considered Harmful” Considered Harmful“‘GOTO Considered Harmful’ Considered Harmful” Considered Harmful?。再到后来(1974年),Knuth老大爷看不惯了,他觉得该为goto平平反了,于是出手写了一篇Structured Programming with go to Statements ,牛人不愧是牛人,从来不盲从别人不说,端的还是理论和实践两把手。

另一个时髦的而且Considered Harmful的话题是Threads Considered Harmful

BTW:这篇文章也Considered Harmful?;)