大型项目用python吗_在大型项目上,Python 是个烂语言吗?

这个回答只是想吐槽一句那些拿 Facebook 举例来说明 Python/JavaScript/PHP 作为动态类型语言可以胜任大型项目,「只要公司大、人牛逼,用什么语言有什么区别?」得。

FB 的 Python/JS/PHP 都是尽可能 fully-typed 得(PyRe/Flow/Hack),背靠着人数相当可观的一群做 Dev Infra 的人天天为这几个语言加 linter、类型系统、控制流分析、完整性检查等一大堆静态动态分析工具,从编写时就在跑,build/commit 时还有一堆等着在 clean sandbox 里接着跑,跑出问题就没法上生产。同时,FB 大量利用代码生成来静态保证跨语言的,端到端的类型安全。

你们也都这么写 Python/JS/PHP 得吗?

补充

你以为的「动态类型『灵活快速』表达力强还 scale」反正 FB 没这么以为,为了能 scale 起来还是得让大部分做产品的工程师当静态类型来写,该加的约束基本都得加回来。

Gradual typing 相当于把责任扔到用户身上去了,需要团队建立起很强的约束,即使 FB 也有不少 untyped 或者类型标注得太弱的老代码或第三方代码,那实际使用的效果很很尴尬了:最差情况下静态分析 typecheck 一遍不灵活快速, IDE 也不好使了,运行时 typecheck 一遍发现这 JIT 下去 unsound 呀不行还得 deopt,最后运行时还扔个「本可以被类型系统抓住的」异常出事故不可靠……

这里不赘述动态语言和 Gradual typing 的好处了,毕竟这里主要的关注点是需要很多年很多团队很多人(来来去去)的「大型项目」,要知道 FB 可是 monorepo 哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值