人生苦短、快用python_人生苦短,快用 Python

1. 写在前面

从 Ruby 语言到 Go 语言,目前终于开始使用 Python 进行编码。

对于职场新手,可能首先会提出一个问题:难道 Ruby/Go 不香吗?难道 Python 比其他两个语言好?其实都不是。如果我们认同“技术是为业务服务的”这个论调,那么“编程语言应该为业务场景服务”,仅此而已。

2. 编程语言是为业务场景服务的

根据业务场景选择合适的编程语言,使得当前场景的开发收益最大化。当用户量不是很多(机器没什么压力)而业务逻辑却比较繁杂(开发者编码有压力)的情况下,使用 Python 编码或许是一个较为明智的选择。

2.1 静态语言与动态语言

所谓静态语言,是指代码在编译的时候(简称编译时)变量的类型就可以确定的语言,比如 C/C++、Java、Go、Object-C 等;所谓静态语言,是指代码在运行的时候(简称运行时)变量的类型才可以确定的语言,比如 Python、Ruby、JavaScript、PHP、SQL等。

进一步,所以编译时,是指把代码文本转换为机器可执行文件的环境上下文,它会产出一个机器可以执行的二进制文件。所谓运行时,是指可执行的二进制文件在 CPU 上真实执行的上下文。

2.1.1 静态语言的①编写-②编译并链接-③执行过程

// cat main.go

package main

import "fmt"

func main() {

fmt.Println("hello world")

}

当我们使用 Go 编写业务逻辑(比如上面的hello world代码)并执行 go run main.go 的时候,Go 开发工具链隐含地帮我们首先编译并链接源码生成可以执行的二进制文件,紧接着运行这个二进制文件。也就是说,go run main.go 等效于 ①go build main.go + ②./mian 这两个命令操作。

我们可以简单地认为 go build main.go 是 Go 代码的编译时,产物是一个可执行的二进制文件 main;命令./main 是 Go 代码的运行时,此时我们编写的逻辑开始在 CPU 上执行。

2.1.2 动态语言的①编写-②解释执行过程

# cat hello.pyprint("hello world")

当我们使用 Python 编写业务逻辑(比如上面的代码),在执行 python hello.py 的时候,Python 解释器直接帮我们解释并执行业务逻辑。由于人与机器之间的隔阂,python 源码最终也要变成机器可以执行的代码;但是相对于静态语言,动态语言不存在编译后机器可执行的二进制产物。换句话说,Python 的解释器一边编译源码,一边执行编译生成的代码。

2.2 人生苦短,快用Python

仅仅缺省编译链接过程并不能成为选择动态语言 Python 的理由,原因很简单:但凡使用 Python 能够解决的问题,均可以使用其他非 Python 的方案解决。

我们可以使用 Python 处理文件(重命名、修改内容),也可以使用 Go 或者 Java 等完成同样的任务;

我们可以使用 Python 处理表格数据,也可以使用 Go 或者 Java 等处理表格数据并达到同样的效果;

我们可以使用 Python 编写爬虫工具,也可以使用 GO 或者 Java 等实现爬虫工具;

我们可以使用 Python 编写 Web 服务,而使用 Go 或者 Java 等也可以编写 Web 服务甚至生态更完整;

我们可以使用 Python 实践 AI 算法,而其他的语言也可以完成类似的工作(只不过生态不如 Python);

其他……

基于上面的事实,并不存在必学 Python 的理由。可能 Python 只是一些细节上让完成上面列出的任务更简单,比如文件的读取、类型的转换(字符串与数字的互转)、序列号与反序列化(json字符串与json对象之间互转),等等;Python 语言本身封装了一些工具方法很容易地完成这些事情,而 Python 的第三方包进一步扩展了整个生态。

Python 可以更简单地处理文件(重命名、修改内容),比如几行代码就可以实现文件的打开、读取、写入、关闭;

Python 可以更快地处理表格数据,比如可以方便地循环迭代每一行每一个格子,也可以很方便地对表格数据进行格式转换;

Python 可以更快地处理爬取到的数据,比如可以方便地把 json 字符串转换成为 json 对象进行进一步的处理;

Python 在 AI 算法实践领域几乎是霸权地位(因为那些懂算法的人更喜欢写 Python 代码),使得 Python 技术栈几乎包含了所有 AI 相关的算法;

其他……

基于上面的考虑,其实可以尝试学一下 Python。

3 小结

因为 Python 提供的一些便利性,当用户量不是很多(机器没什么压力)而业务逻辑却比较繁杂(开发者编码有压力)的情况下,使用 Python 编码是一个较为明智的选择:

释放开发者把注意力放在业务逻辑的理解与梳理;

很容易地扩充编码队伍(容易培养或招纳新成员).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值