最近十年,随着硬件CPU的发展,多核服务器已经成为常态。编程语言如何高效地并行运行变得实际且重要。一些编程语言逐渐跟不上脚步了,新的语言诞生了。
Python是我使用了10年以上的编程语言,直到现在也在用——但她还是老了!
web2.0时代,她辉煌过;AI时代,她照样辉煌。然而她还是老了。
最突出的理由——难用到极致的协程实现。有时候我宁愿用gevent这样的第三方实现。最近几个Python3的版本都在边边角角做些小改动,毫无吸引力。
当我了解到golang的协程实现时,我彻底放弃Python作为我主要编程语言了。随之而来的,每当我要决定用什么语言时,我首推的就是Golang,尽管还不支持泛型。
其次的理由——类型注解。Python是解释性语言,搞不懂为什么要加这种功能!可读性遭到严重破坏。我曾经喜欢这样编程:
def dosomething(obj_or_id):
我可以传入一个对象obj,也可以只传入对象的id——这样在调用的时候很灵活。但一旦用上类型注解,我只能选择其一了。
你也可能会传入一个可迭代的对象,就可以进行处理,这有点类似泛型,比如你的函数可以传入list、set、dict,都可以正常运行,但 一旦用上类型注解,你就只能乖乖地分开写了。