少搞点语法糖,多写点功能
c#一年一个变化,给c#的学习者带来困惑!###
C#马上要7.0了!
.net要变成.net core了!
现在版本这么多,保不准公司与公司之间,使用的版本就不一样。
举个例子:
A同学从甲公司跳到乙公司
情况一:版本一致,庆幸吧
情况二:乙公司版本高,然后A同学看不懂乙公司的代码,然后A同学还是老的代码编写方式被乙公司的同事鄙视
情况三:乙公司版本低,然后A同学被强制使用乙公司的代码风格(老的代码编写方式),然后A同学各种不适应
我们学编程语言的目的是什么?###
我们学编程语言是为了解决计算机问题,而不是为了学习而学习。
什么是最快的解决问题的方式?是软件复用,而不是从头开始编写——即使这种语言被宣称非常非常非常smart了,1行代码顶其它语言10行。
解决问题最难的是什么?是解决问题的方法,一旦解决问题的方法被找到,写代码本身是行云流水一般。
语言应不应变化?###
如果一个语言具有相当的生产力,我的观点是那它就不应该变化。
在c#这么多年的变化中,我最欣赏的是1.1到2.0的变化,而欣赏的唯一原因是因为2.0支持泛型!为什么呢?
因为编了N年程序之后发现,打交道最多的就是集合这些东西了。没有泛型,很多时候不得不自定义一个集合类,没有泛型,不得不为同样的逻辑写一次又一次的代码。
没错,这是生产力的巨大进步!
如果新的特性,不能为语言带来生产力的进步,那么如果不是一种玩票性质的语言,就不要老是让它变。
程序员这么苦逼的职业已经被各种需求变更累得够呛了,就不要再折磨我们了!
如果你作为语言的提供商,实在羡慕别的语言各种特性,那么我建议学苹果,直接换一种语言发布(直接用swift替代objective-c),并且一次性把这种新语言应该拥有的特性想到90%。
少换花样,多写功能###
据今天oschina.net收录显示,java开源项目收录7508款,c#开源项目收录1233款,Java是c#的6倍还要多。
举这个数字,并不是想说java的从业人员数量比c#多得多,而是说明java的可复用组件,比c#的选择性大得太多了。
在追随c#变化的时候,写java的同行用追随c#变化的时间考虑了更多的问题,解决了更多的实际的问题。