在用golang这门语言的过程,关于这个关于针对某一门语言能否达到类是这种“xxx的某方面很好,能否跟aa,bb竞争”、“xxx能否成x方面的主流”甚至"xxx能否成为制霸某个领域的语言”之类的的话题,我觉得要回答这类问题。得先自己纵横下web里面诸多语言,基本主流的都用过一遍,对主流web语言背后的支持方有一定深入了解才能做出更加接近客观的答案。所幸,我以前干过这种事。也应用过到实际项目中。用C#的WCF结合ajax写过WebOS,用PHP写过网站和系统后台,用Flash写过网站,用Java写过B/S,早期的asp的VBScript也做过网站。一直到后面切换到游戏领域开发的C++和golang。
到现在的自己的总结就是:语言在某种领域显得比其它语言的强势与否,跟它背后的支持方、跟它自身的优缺点点、跟它的文档资料详细与否,跟语言诞生的时间早晚,成正比关系。拿几个主流的做对比,Java背后有被Oracle收购的Sun,PHP的整个组织和相关社区支持也很给力,怎么说Facebook也不会让人打php的脸的,Golang最开始算是谷歌搞出来(里面关系详细自行查找),但是现在也是自成体系。按照上面的刚刚说的成正比的几个关系依次对好入座。发现最终影响的主要因素就只剩下2个:自身优缺点和语言诞生时间早晚。其它的都是可以当作统一水平直接忽略不计。拿语言自身优缺点来说,现在只要能成为主流的web开发语言之一,都彼此会有这样的或者那样的优点和缺点,会导致使用者有所倾斜,但是从生产环境来看,它们都是合格的。都是可以无视差异进行使用的。写个网站,golang可以写,Java也可以写。那么这个时候怎么选,从公司氛围来看是使用更牛逼更先进的吗?更牛逼更先进是怎么定义的?由于语言各自的差异导致的优缺点各自并存谁能界定哪个更牛逼更先进?我觉得这两个是凡人思考不了的问题。我是个凡人。但是又怎么样呢?(So what?)公司只会从项目实际情况去考虑,这么牛逼先进的玩意儿,谁懂?没人?懂的人数不多?一定要这个吗?不一定。其它不行吗?其它也行。那干嘛用这个?因为这个的xxx很xxxx。那xxx语言的xxx特点不是也很xxxx吗?是的,xxx语言的xxx特点也很xxx。那干嘛还要用这个?。。。。差点死循环。
没错,至关重要的最后因素:语言诞生的时间长短。抛开一些奇葩的情况不说(例如apple家的东西),通过排除法,语言诞生的时间更早,意味着这门语言的体系更贴合生产环境(没得挑,一路用到黑)、自身进化得更全面减少风险性、培养更多使用受众延续自身体系的推广和发展形成良性循环、更容易构建更多的早期的基建项目形成体系里面的应用方案的积累、与系统形成更深层的耦合关系导致不易被摒弃性、容易全面压缩同领域内后续语言发展的潜力空间增加凝滞性。。。。等等。一大堆东西。说那么多,就是告诉你大量公司都是用那么几种主流现成的,招聘上招的人也是来来回回用那么几种主流的,公司还要考虑各种成本、项目风险。用熟不用生。所以,我现在告诉你,就算是golang是种绝对牛逼无敌的web开发利器,也不会成为主流的web开发技术,因为其它的语言也很牛逼,而且他们人多,双拳难敌四手啊,更何况那么多手。特别一点是,go的优势不全在做web上!!!
原文链接
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。