首先无论是Go、C#、PHP、Node.js、Ruby都可以理解成一种编程语言,不同语言有不同的优缺点,适用于不同的业务,适用于不同的场景。
我们首先可以将场景分为两大类:前端与后端(或者说是浏览器与服务器,客户端与服务端),前端和后端的差别就好像餐厅服务员与餐厅厨师的差别,前端专门与客人交互(点菜、上菜),而后端是具体处理客人所需要的业务(炒菜)。
而上面提到的几种语言都属于后端语言,主要的场景都是处理业务逻辑(炒菜)。(注意:这并不代表这几种语言只能做后端,只是更合适罢了)(所以对待这些眼花缭乱的语言,我们完全可以不必太过在乎,因为他们的作用只不过就是炒菜,差别就是在于他们怎么炒的罢了。)
现在我们知道Go、C#、PHP、Node.js、Ruby几种语言都更适合做业务逻辑的处理(即后端、服务端),但由于业务不同,其业务逻辑也各不相同,也正因此,我们必须根据不同的业务类型选择适合的后端语言,就好比,你的餐厅是西餐厅,你不能请个只会做东北菜老师傅来当厨师,因为那样他很可能会将牛排做成回锅肉。
Go: 执行性能高,这点非常关键,所谓性能就是处理相同任务时的处理速度,就好比两个厨师做同一道菜,明明味道一样,原料一样,连做菜步骤都一样,但第一个厨师耗时一分钟,但第二个厨师却耗时十分钟,显然第一个厨师的“性能”更好,而Go就属于那第一个厨师。同时Go开发效率高,这种开发效率是基于语言的封装程度与难易程度,就好比你要指挥你的厨师做菜,但你的厨师性格不同,第一个厨师喜欢直接买人家已经切好洗好的菜,直接下锅炒就行了,而第二个厨师则是要自己一点点切菜,自己一点点洗菜,再炒菜,这样自然而然就会出现第一个厨师炒完十盘菜,但第二个厨师可能才炒完一盘菜(但这并不意味着第二个厨师差,只是他不适合快速上菜的业务),而GO语言就属于第一个厨师,语法比较简单,规矩还少,再加上它性能也不错,自然越来越热门。例如当下十分流行的docker,便是使用GO语言编写的。
C#:和JAVA与C++十分相似,简单来说,他就是微软的儿子,Windows平台要做点带界面的工具程序,用C#是最方便快捷的,没有之一,其次C#的Unity(一种框架,好比做菜的秘方,你按照秘方炒菜肯定炒的更香)做游戏十分热门,炉石传说、原神、连神庙逃亡都是使用C#。
PHP:语法简单,容易上手,但是近几年下滑的很厉害,性能低的原因自然是其中一个,但最主要的问题就是没有好的框架以及生态,所谓框架就是解决问题的办法,当面对一些十分严峻的障碍时,你是否有一个成熟的解决方案,如果没有那么开发者自然会选择其他的语言,而所谓的生态就是用的人多吗,一个再烂的东西,但是全世界人都在用那么他即使再烂,也不会死去,而PHP在这两个方面都略显不足。但他的优点也十分明显,开发一个功能,特别快,别人开发用十天,你用PHP一天就能搞定。
Node.js:js指的是javascript,javascript(注意它和java没有半点关系)原本是一种前端语言也就是与客户对接的服务员,但这个服务员比较特别,他觉得跟店里的厨师合不来,便把厨师赶走,自己兼职做起来了厨师,并给自己起了个名字叫Node.js,其语法和javascript一样,并且处理并发时的性能很高,严格地说,Node.js是一个用于开发各种web服务器的开发工具,同时兼具了性能与效率的优势,而且前后端可以用一种语言。如雅虎便使用Node.js开发。
Ruby:和python类似,这个语言的特点不太清楚,比较小众,是个日本人开发的,语法也是比较简单,所以上手比较容易,当然一般上手容易的语言性能都会比较低。
|