人生苦短,快用 Python

栏目: IT技术 · 发布时间: 4年前

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

1. 写在前面

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

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

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

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

2.1 静态语言与动态语言

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

进一步,所以 编译时 ,是指把代码文本转换为机器可执行文件的环境上下文,它会 产出 一个机器可以执行的二进制文件。所谓 运行时 ,是指可执行的二进制文件在 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.py
print("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 编码是一个较为明智的选择:

  • 释放开发者把注意力放在业务逻辑的理解与梳理;
  • 很容易地扩充编码队伍(容易培养或招纳新成员).

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Wikis For Dummies

Wikis For Dummies

Dan Woods、Peter Thoeny / For Dummies / 2007-7-23 / USD 24.99

Corporations have finally realized the value of collaboration tools for knowledge sharing and Wiki is the open source technology for creating collaborative Web sites, as either a public site on the In......一起来看看 《Wikis For Dummies》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试