比实际编程问题更多的社会好奇心......
一千年前,当我参加我的第一个编程课程(Fortran 66)和仅仅 500 年前,当我开始我的第一个 C 和 C++ 课程时,跨语言有一些非常标准的标点符号练习。我在 Basic(颤抖)、PL/1、PL/AS、Rexx 甚至 Pascal 中看到了它们。好的,APL2 不在此讨论范围内。
每种语言都有自己独特的标点符号。Pascal 的句点,Fortran 的逗号分隔的 do 循环,几乎所有其他人的分号。
据我所知,每种语言也有关键字(if、for、do、while、until 等),它们由空格(或左边距)<space>if<space> 等隔开。
每种语言都有功能,无论它们被称为什么子程序。一些内置一些用户编码的。它们是由 <whitespace|left margin>function_name(parameters); 引起的。如 sqrt( x ) 或 rand( y );
最近,似乎有一套新的标点符号规则。尤其是在 C++ 中,初始化器被粘在变量声明的末尾 int x(0); 或 auto_ptr<p> p(new gizmo); 这总是让我误以为有人在声明一个函数原型或将函数用作整数(嗯?)。
然后“if”和“for”似乎已经长大了;if(true) for(;;) 等。关键字是从什么时候变成函数的。
最后,函数似乎已经摆脱了它们的束缚。sqrt (2) 选择 (...)
问:旧的方式是什么时候消失的,而这种新的方式是什么时候流行起来的?除了我之外,还有没有人觉得阅读很烦人,并且标点符号用来传达的信息已经消失了?我很清楚 K&R 将 { 放在“if”或“for”的末尾以在这里和那里保存一个字节。不能在这里用这个借口。随着 HDD 空间飙升超过 100 MiB,作为丧失可读性的借口的空间消失了。
征求您的意见。如果有充分的理由这样做,我会很乐意学习它,也许再过 50 年我就会习惯它。当然,编译器识别这些(恕我直言)错别字并继续前进是很好的,但仅仅因为您可以这样编码并不意味着您必须这样做,对吗?
谢谢!