1、delegate
把指针变成委托,是在迁就日益降低的程序员素质,因为他们擅长制造野指针。
至于action,func,一个是void * 一个是 *
2、=>
把匿名函数直接写出来,能减少书写ifelse组合逻辑,除此之外看不出有什么别的价值。
如果把表达式封装成传统的函数,更符合各类高级语言的通用逻辑范式,若加上重载,灵活性更高,虽然没那么直观,调用深度也增加了,但是水平方向的逻辑长度降低了、代码重用性提高了。
3、event
以前管态的叫中断信号。后来windows发明了消息机制。再后来是timer。再后来才出现event。
同样,event的使用比前三者要安全的多,当然也更啰嗦。还是为了迁就日益降低的程序员素质。。。
4、var
早期的高级语言应对的数据类型比较固定,自从struct和class开始泛滥,是个“人”都是个数据类型。这其实是面向对象编程的滥觞。而var就是为了打补丁,把它们重新称作一个类型:人。
同样的补丁还有object,集合,泛型。
新技术并不代表新功能,老技术也一样能处理所有问题。
但是程序员规模越来越大,带来的负面问题就是整体素质下降、逻辑混乱,所以语言必须提供更强大的控制力才能管好他们。但是这个思路“想多了”,因为新功能带来更多复杂的用法,这些用法的学习和使用成为和野指针一样的混乱之源:比如为了绕开类的封闭性共享数据,必须使用接口,从而产生大量无人管理的异步线程像幽灵一样飘荡。