V2EX pursuer
 pursuer 最近的时间轴更新
pursuer

pursuer

V2EX 第 358584 号会员,加入于 2018-10-25 15:17:15 +08:00
今日活跃度排名 3318
pursuer 最近回复了
4 天前
回复了 keelii 创建的主题 Node.js Node.JS 作者 Ryan Dahl 的故事
@june4
卡住一段时间这个定义太模糊,甚至有时候设计的时候不能确定函数是否会卡住,比如 node 的 require 是同步的,实际模块加载甚至可能从网络加载这一点来看,应该被设计为一个异步操作。后来 esm 设计的 dynamic import 就成异步的了。
async 明确切出点对并发编程和性能优化确实很友好。实际在 HTTP 服务器中考虑锁的情况相对少,但是我经常忘记写 await ,即使用了 ts 也只能部分避免这类错误。而且作为脚本语言应该追求书写简单,引入无栈协程对新手来说不是很友好。python 的 asyncio 也是有些人不爱用,Go 的无脑 goroutine 反而受欢迎。
5 天前
回复了 keelii 创建的主题 Node.js Node.JS 作者 Ryan Dahl 的故事
@keelii
学到了,不过似乎大部分 NPM 库都不发布.ts 。
5 天前
回复了 keelii 创建的主题 Node.js Node.JS 作者 Ryan Dahl 的故事
@june4
lua 的协程栈十分轻量,免去了 async/await 染色问题,只是性能较无栈的会差一些,我认为作为易用性优先的脚本语言实现有栈会更好一些,同时提供回调/无栈式 API 作为可选优化。考虑到 JS 的发展史,现在无栈设计可能是考虑到要兼容旧的 JS 单线程模型的无奈之举。
无栈更应该是给 C++/Java/C#/Go 这种追求性能上限的语言用(虽然上述其中两个语言反而整了个有栈的实现)。

另外 lua 可以自定义协程调度器,也带来很多便利,例如现在依然在 JS 提案阶段的[async-context]( https://github.com/tc39/proposal-async-context)在 lua 中就可以轻易实现。Node 现在似乎是通过提供一个内置的模块 async_hooks 来实现类似的功能。


@otakustay js 很容易出现不兼容更新,node_modules 算是当时那个时间的好选择。但让包管理来处理复杂的依赖问题我觉得还是有局限性的,有的库不支持在同一个运行时环境下共存时,包管理也没辙。现在 typescript 库大量出现,在类型提示的帮助下兼容问题得到了改善,但现在 node_modules 的机制下 IDE 跳转只能跳到声明,看不到实现,对比其他包管理就成了劣势。(顺便提一个我一直在做的一个高度可扩展的多端统一的模块加载机制和包管理框架 t/1104713 就是为了解决相关问题。)
5 天前
回复了 keelii 创建的主题 Node.js Node.JS 作者 Ryan Dahl 的故事
要说的话,脚本语言里 Lua 支持有栈协程和自定义协程调度器,用作 IO 开发要更加合适。
但 JS 就是靠着浏览器,通过用户积累生态,并收获更多用户的循环开始延伸到了各个领域(有意思的是 frida 这种不太相关的领域也用的 JS)。quickjs 的出现也让更多嵌入型框架开始考虑使用 js 作为支持脚本,即使其性能比不上 Lua 。
遗憾的是 NPM/node_modules 和 GYP 真的是十分拖后腿的设计。
@nashaofu 有点意外,倒是听说 tauri 在 linux 的 webview 很容易出问题
tauri 用起来怎么样
@bf109_ Firefox 内核一直是 Gecko 吧,还有新老内核的说法吗,要说最新内核大概说的 Servo?那个兼容性更不好说吧。
我觉得这不能完全算是 C/C++的锅,Windows 的 COM 组件也是 C++的,但 Windows 的兼容是公认做的比较好的。再看 Linux 阵营,虽然很多库是用 C 写的,但升起来也费劲,glibc 更是重量级。
@wudanyang 协程的作用就是协作执行,执行时间长(我假设说的 CPU 密集)还需要自动让出,那就是多线程的场景。实际多线程要考虑锁和线程安全,写线程安全代码未必比手动 await 简单。python 的线程是抢占式调度,但这个和协程无关,无论多少协程也都是跑在这个可以抢占调度的线程上的。
第一条 python 的 await 如果写漏了,协程是不会运行的,第二条没改造的第三方库可以丢给其他线程跑,第三条和数据量大用不用协程都存在的一样的问题
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1126 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 23ms UTC 17:29 PVG 01:29 LAX 10:29 JFK 13:29
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86