自Google在2009年发布Go语言的第一个正式版之后,这门语言就以出色的语言特性受到大家的追捧,尤其是在需要高并发的场景下,大家都会想到是不是该用Go。随后,在国内涌现出了一批以七牛为代表的使用Go作为主要语言的团队,而许世伟大神本人也在各种场合下极力推动Go在国内的发展,于是在这种大环境下,中国的Go开发者群体逐渐超越了其他地区。
那么问题来了,业余时间好学是一回事,真正要将一个新东西运用到生产中则是另一回事。JavaScript的开发者可以义无反顾地选择Node.js,但是对于Java开发者来说,在下一个大项目里究竟是该选择Go,还是Java呢?语言本身首先,需要说明一下,作为一个技术决策者,在进行技术选型时并不能单方面地根据语言本身的特点直接下结论。
不是协程仍是硬伤,但有了Lambda表达式,代码短了不少。不过话又说回来,这样的比较并没有太多意义,所以各位Go粉也不用站出来说Go也支持闭包,Go的版本也能精简。我们比的不是谁写的短,在Java实践中,大多数时候大家会选择线程池,而不是自己new一个Thread对象,DougLea大神的Java并发包非常的好用,而且很靠谱。
既然Go方面,我们使用了一套框架,那么Java方面,我们一样也选择一个成熟的框架,Spring在JavaEE方面基本可以算是事实标准,而SpringBoot更是大大提升了Spring项目的开发效率,看看同样实现一个REST服务,在SpringBoot里是怎么做的。
运行这段代码会自动启动内置Tomcat容器,访问http://localhost:8080/就能看到输出了。因为其实就是Spring,所以可以毫无压力地与其他各种框架设施组合,也没有太多学习成本。可见两者在实现REST服务方面,并没有太大的差别,加之上文提到的业务逻辑问题,只要运用恰当的工具,两种语言之间并不会产生质的差异。
领取专属 10元无门槛券
私享最新 技术干货