自从学了Python和NodeJS,每每在写新的程序之前我就会问自己:到底用Python好,还是用NodeJS好?两者都能进行快速开发,并且各有千秋。
现在就记录一下Python和NodeJS开发程序时的各种坑,方便以后纠结的时候查询。
因为增加辅助代码会增加工作量,所以以下情况都是在不考虑其他辅助代码,例如线程池,任务管理,的情 况下的考虑。
坑1:Python对高并发的支持
Python对付并发的手断一般是多线程。多线程用来对付耗时较长的的并发任务是比较有效的。只需要写下平常的同步代码然后创建线程去运行就好了。
但是多线程处理有非常严重的问题,那就是对细粒度的并发任务不友好。虽然有其他办法可以解决效率问题,但是会增加代码量,降低易读性和可维护性。
坑2:NodeJS对内存的管理
既然Python对高并发支持不好,那么遇到高并发的程序,我们就用NodeJS吧。
想想是美好的,显示是残酷的。NodeJS处理高并发并没有想像中的那么好。
NodeJS有极速V8引擎,对异步调用相性超高,乍一看是非常好的处理高并发的语言。
但是NodeJS有内存限制!它没法使用超过2G的内存,这是由V8引擎内部决定的,暂时没法解决这个问题。
要就保证处理量不超过2G,要不就使用其他办法(目前想到Cluster似乎可以解决,但是尚未尝试过)
坑3:TypeScript for NodeJS
本来NodeJS是可以进行快速开发小型程序的。但是TypeScript出现了,这个东西令我非常喜爱,可创建它的项目非常麻烦,需要一大堆依赖项,一大堆命令。
最近发现了MSYS2,可以考虑写一个bash脚本简化创建项目的工作。
坑4:NodeJS第三方库太少
NodeJS虽然有npm,但是作为一款本地语言,本地操作的库还是太少了,很多常用操作都不支持,例如python对smb协议的支持就很好,而node就差多了。