serial
2016-08-01 21:03:58 +08:00
@wizardforcel @kingmo888
Of cause. Python 甚至在某些方面取代了 R 语言。然而, matlab 和 R 是用来建模的,不是做应用的 (它们甚至连完整的编程语言特征都不具备)。
什么样的人在使用 matlab 和 R ? 科学研究领域。他们 80% 的知识是懂电路、生物、化学、..., 20% 的知识是懂 Python 、 matlab 、 R 。他们的任务就是用这些语言重现、测试自己的实验。
那么,问题是,你是打算成为这样的科研者,还是一个专职程序员?如果你,一个 80% 的知识是懂 Python 、 matlab 、 R , 20% 的知识是懂电路、生物、化学、...,那么毫无价值。
@mengzhuo “两个游戏逻辑服务的表示, Python 的理念是,不够就堆机器”
1. 你的“游戏逻辑服务”,多少用户?
2. 每秒并发请求能到多少?
3. 做过 benchmark 、压力测试吗?
4. 数据量能多少?玩过 TB 级别的数据存储吗?
5. 什么是阻塞 IO ?什么是非阻塞 IO ?用了哪一种?
@WhiteT
你可以举个 “那么多新兴互联网公司要选择 Python ” 的例子。 Twitter 把他们的业务从 ruby 切换到了 Scala ; Facebook 在他们那丑陋缓慢的 PHP 上做了 C++ 适配层(这当然花了并且还在花他们很多钱); Dropbox 正在把自己的分布式文件系统从 GO 切换到 Rust 。
---------------------------------------------------
如果你要做 Web service ,那么 3.5 asyncio 是个不错的选择,非阻塞 IO 的 wrapper 。然而,一个问题就是 Python 2/3 没有非阻塞 IO 的第三方库支持。 pymongo ( mongodb 客户端)、 pymysql ( mysql 客户端)、 docker-py ( docker 客户端)、 paramiko ( ssh 客户端)、...,它们都是基于 httplib ,没错,它们都是同步的!!!
这就表示,它们的并发 IO === 渣。
如果你想做非阻塞应用,为了高并发,你必须用 asyncio 或者其他非阻塞 IO 库,重写这些库。最典型的例子 --- Openstack 。
就我所知,非阻塞 IO 的流行语言和库:
* C --- libev libevent --- 代表作 Nginx
* Nim --- asyncdispatch --- 代表作
* Erlang --- stdlib --- 代表作 Whatsapp
* Java --- nio netty --- 代表作 Hadoop
* Golang --- stdlib --- 代表作 Docker
* JavaScript --- node.js --- 代表作 Joyent 云服务
至于文件系统,动态语言无法胜任, Java 也无法胜任,这是 C 、 C++、 D 、 Nim 、 Rust 这些系统语言的战场。