abcbuzhiming
2021-05-07 09:54:18 +08:00
楼主的这个疑问,在知乎有几个很经典的问题可以回答:
“为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是强类型 + 静态”
“在大型项目上,Python 是个烂语言吗”,
“在大型项目上,JavaScript 是个烂语言吗”
总结的说,第一代动态语言,仅仅是人类希望获得类型推导时进行的一次尝试,但是很明显,这个尝试失败,没有类型约束的系统天生不适合协作。它带来了额外的心智负担。
楼主说自己写了 11 年,还是认为 js 的动态类型是优势,并觉得自己绝不会在过于灵活的动态系统面前出错,首先我承认,楼主应该是记忆力非常超群的那种人,其次呢,我基本可以肯定,楼主很少和人协作,计算协作估计也是和自己水平差不多的人协作,所以意识不到问题在哪里。
但是我仍然要说,所谓现代软件工程存在的意义,就是把一群实力其实一般的人,拉到一起写代码的。换句话说,楼主这样的人虽然优秀,但是稀少,但是再优秀的人,它的工作时间也就那么多,仍然有大量的代码,必须由不那么优秀的人完成。
当你必须考虑让不那么优秀的人一起协作的时候,你就会意识到过于灵活的类型系统是缺陷了。
楼主写了 11 年,还是停留在“我很优秀,我身边的人也很优秀,所以我不需要约束,不需要严格的类型系统限制我的工作”这个思考层次,其实已经有点滞后了,真诚的建议楼主,跳出技术圈子的约束。
理解电脑不过是工具,信息化的过程本质就是让更多的“傻瓜”也能参与和使用算力的过程。
计算机的世界需要大神,但是计算机发展的历史进程是拉入更多的普通人,作为大神,应该顺应这个历史进程,而不是仗着自己的头脑先天有优势,挡在历史车论前面当螳螂