内容简介:从对于根据业务场景选择合适的编程语言,使得当前场景的开发收益最大化。当用户量不是很多(机器没什么压力)而业务逻辑却比较繁杂(开发者编码有压力)的情况下,使用 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.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
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》 这本书的介绍吧!