哪个编程语言值得去学习?

2024-05-22 17:19:22 浏览数 (3)

市面上这么多开发语言,百花齐放,万家争鸣的,但是人的精力又是有限的,该怎么选哪个语言去学习?

接下来将从三个角度去给大家解析,思路打开后,自然就知道该怎么选了。

什么样的语言会流行?

一个技术要流行必须要满足这么几个条件。

第一个门槛低,除了门槛低以外还需要有大公司在后面撑着

没有大公司用的话不行,因为大公司用了以后就会在上面贡献更多的特性。

而且大公司用得越多,就一定会有标准化的东西出来,比如 Java、C 和 C ,很多公司都在用,就有一个标准化组织。

第三个,社区很重要,必须要有社区。

第四个它必须要有杀手级应用。杀手级应用的意思就是它必须要有个成功案例,没有成功案例不行。

这 4 个因素:门槛低、有大公司撑着、好的社区,还有杀手级应用,决定这个技术会不会成功,会不会爆。

换句话说,这也决定了,是否值得去花大量时间学习这门语言。

综合上面的这些因素,不难发现为什么 Go语言,java 这么受欢迎。

分析市面上的常见语言:

PHP 有大公司用,比如 Facebook,社区也很好,门槛也低,又有杀手级应用 LAMP,所以 PHP 能爆火

Java 语言也是全部都有,门槛也低,大公司也在不断地投入。Go 语言其实也是这样。

但 Rust 目前来说不是很乐观。

因为 Rust 门槛比较高,社区活跃度一般。虽然大公司陆续开始在用,但杀手级应用才刚刚开始有苗头,最出名的就是 WebAssembly( Web 上的汇编),另一个是它正逐步进入内核了。

虽然 Rust 有一点点起势的苗头,但是它有一个非常致命的缺点:

门槛太高,门坎太高了,门坎太高了。

语法太过奇特!

项目怎么选语言?

目前业界大都说,Java 适合做业务层,Go 适合做中间件,Rust 适合做系统层。

其实很多公司也在用 Go 写业务,其实没啥问题,Go 能写,Node.js 也能写,甚至 C语言 也能写。

Go 语言写业务层,天然有一个好处就是 Go 没有太多乱七八糟的东西,它特别适合写面条代码

所谓的面条代码就是这个业务流程长啥样就怎么写,不需要任何抽象,这些代码也懒得重用,我直接写就好。

国内的很多 Go 语言开发者,可能很多都是从 PHP 转过来的,因为太适合写面条代码了。

但,当你的架构变得越来越大、越来越复杂,里面一定要有一个框架的。

比如 MVC 框架。

为什么你发现 Java 代码写不烂,因为它有框架保证,再烂也不会烂得看不下去。

但 Go 语言代码烂起来就烂得看不下去。

另外,服务越来越多,就要开始运维,要做配置中心、服务治理、中间件等,但这方面,Go 在努力跟上,但 Java 那边成熟的已经有一大堆了。

项目迭代语言选择规则

早期的项目,你用什么语言都行。

如果把场景分成 0 到 1、1 到 10、10 到 100。

0 到 1 你爱用什么语言用什么语言,随便你用 Rust、Swift、Kotlin 随便什么,C 语言都行,你要用汇编写业务代码,都没问题。

但是 1 到 10,你开始要尊重两个东西。

第一个你的开发速度要快,第二个你的稳定性、性能这些要保证,因为要扩展用户

这个时候,你就必须得选一些工业化的语言。

Go 语言或者 Java、Ruby、Python 这些在这点上都比较完善,生产力各方面都还可以。

但是如果 10-100 的话,目前大家都力推 Java,为什么?他有太多成熟度还可以的轮子可以用。

所以,关键是你公司在哪个阶段。

有时候我们上网一看,哇,大量都是 Java 不行、Java 反人类、Java 太啰嗦。

但是你可以看看,说的那些人他们可能都在小公司,因为他的业务场景的确不需要用 Java,他说的是对的。

或者是那些独立开发者,都是从 0 到 1,他爱用啥就用啥,自己舒服就好。但是你看那些大公司,银行、电商、电信,只要是这种有交易型的用户公司,包括哔哩哔哩所谓的自己用 Go,但是他做电商,还是在用 Java。

随着 Go 被越来越多的大公司使用,后期追赶,这样的环境或许会慢慢改变。

你学废了么?

0 人点赞