平头螺丝和圆头螺丝哪个好?皮带、链条和齿轮哪个好?Is好还是Has好?
正确的工具用在正确的地方,这才是高手风范。
Python可以在教学或者快速原型时回避很多复杂性(脑袋里还是要想清楚的,但不用显式的写清楚。能分清左右的人很多,但能用文字定义的又准确又简捷的人就很少了),门槛低,学习平滑。但是和所有动态语言一样,静态检查特别轻,人犯二了要到运行期才能检查出来,更多的依赖单元测试。
静态类型语言就像规规矩矩的公司,做什么事情都要有规范,每一笔买卖都要签合同(类型约定)走公账(类型检查)。
这里举个栗子尝尝:
angle=3.14误敲成angel=3.14时,python运行时会默默新建一个变量,不会有异常,多“智能”,多“体贴”啊!
静态类型语言里,编译器和运行时就不那么“智能”了,西天取经还没出长安城门呢就坐地不走了,“这个angel是谁?和Baby时什么关系?不说明白我就不走了!”。真钢铁直男有没有?
再吃个栗子:
基类把某个工具类的构造委托给派生类了,这时基类希望派生类构造的实例必须要实现若干方法,这个约定和指导如何告诉给派生类的实现者?
签合同好麻烦啊,但能保证过程正义性。
哪个好相处?一个殷勤机灵,一个严谨较真。肯定韦小宝最吃得开啊,但技术大牛多少都有点黄药师的气质吧!
好坏都是相对于特定环境的,学工具讲究“通,精,活,节”。