【IT168 评论】圣经里有一个很经典的故事——David和Goliath,Goliath 是一个巨人,身形巨大,而David是一个初出茅庐的小男生,但就是这样一个年纪轻轻的男生却战胜了Goliath。Go语言就像是这个故事中的David,在一众“Goliath”式的编程语言中脱颖而出。
为何Go语言能够如此出彩?谷歌为满足内部需求而开发语言为何一下成为了众多企业的首选语言?……下面,我们就来一一揭开谜题。
1. Go-to-Market Time
曾几何时,Java被誉为最简单最容易编译的语言,但Go语言以干净的语法和紧凑的形式很快得到了用户的青睐,使得企业应用程序以闪电般的速度发展,帮助企业缩短上市时间。因为Go语言可以在最快的时间为企业提供出色的、安全的、无差错的企业应用程序,这让以庞大的库和框架著称的Java也变得黯然失色。
2.内存和速度
Go语言的性能速度常被人称要比Java更好。这是因为Golang更节约资源,它使用隔离的goroutines,有助于节省CPU和内存等资源。而且这种资源效率不仅有助于提高性能,还能带来成本效益。而Java则需要高存储容量且内存使用也要更多,这使得其性能较低。
3.可扩展性
随着企业的发展,企业应用程序不得不要处理越来越多的并发Web请求,这也意味着随着同时间任务数量的增加,企业应用程序需要自动扩展其计算能力。在这场可扩展的战争中,Go语言毫无疑问占据了优势,GoGo代码可以自动扩展到多个核心。相反,Java并不具备足够的可扩展性,在垃圾收集期间,所有线程都被阻塞,并且垃圾收集时间甚至可能会扩大到几分钟,从而降低Java的可伸缩性。巨大的延迟不仅限制了内存,同时也限制了可扩展性,这也注定了Java在实时交易的应用程序中可发挥的空间不大。
4.安全成本
在这方面,Go语言的表现更好,Go语言带有内置的错误类型,如果开发人员出现了偏离标准Go实践的操作会自动提示,也因此出现错误和安全漏洞的机会被大大减少。而Java项目则面临着很大的风险,因为开发人员无法创建可轻松检查错误的高度结构化体系结构。也因为这一点以及其它一些安全漏洞,Java开发人员不得不把时间和资源都花在为这些漏洞开发补丁上。
综上所述,在开发企业应用程序时,我认为Go语言是比Java更明智的选择。