早在GO语言第一次出现的时候,就有人说,不能想象在工作中如何使用一个没有泛型的编程语言。这是我在某处作报告的时候,知道了这种奇怪的想法。
公平的说,他只是以自己的立场发表看法,或许他真的很喜欢C++中的STL为他带来的便利。所以为了讨论的目的,我们只有把他的想法看成很肤浅表面的东西。
按照那种想法,编写一个容器,例如整型的list和字符串的map,是一种不能承受的工作量。我知道了这种奇怪的想法后,花了我很少很少的编程时间实现了这些容器,即使是使用一些没有泛型的编程语言。
但更重要的是,那种想法中把类型作为解决这一难题的方法。类型,不是多态函数,不是语言基元不是其他方法的辅助,竟然是类型。
Go 语言不是包罗万象的。Go 并不自带很多函数,不会对每一个执行细节都有精确的控制。例如,你不会有 RAII。相反地,Go 语言有一个垃圾收集器(Garbage Collector,即GC),因此,不需要一个释放内存的函数。
Go 语言给你的是一套强大且易于理解、易于构建的对问题解决方案。它不是一种像你用其他语言一样的快而复杂、或者说思想上有所激发的语言,但它几乎肯定会更容易编写、更易于阅读、更容易理解、更容易维护,也许还更安全。
另一方面只能说go作者在自己的开发领域为c++程序员想象出来的,设计一门语言不是说你觉得让你自己的工作做的爽,就当做语言特性往里面塞的,也要想想看是否能用库的方式解决,有些问题无法用库解决的时候,可以加入语言特性,比如c++多重继承,在复用一个已经设计好的库,并且需要与自己的软件框架结合的时候,这时候多重继承就能够让你自己封装一个层次来复用已经写好的库。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。