V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  pursuer  ›  全部回复第 1 页 / 共 18 页
回复总数  360
1  2  3  4  5  6  7  8  9  10 ... 18  
1 天前
回复了 keelii 创建的主题 Node.js Node.JS 作者 Ryan Dahl 的故事
@june4
卡住一段时间这个定义太模糊,甚至有时候设计的时候不能确定函数是否会卡住,比如 node 的 require 是同步的,实际模块加载甚至可能从网络加载这一点来看,应该被设计为一个异步操作。后来 esm 设计的 dynamic import 就成异步的了。
async 明确切出点对并发编程和性能优化确实很友好。实际在 HTTP 服务器中考虑锁的情况相对少,但是我经常忘记写 await ,即使用了 ts 也只能部分避免这类错误。而且作为脚本语言应该追求书写简单,引入无栈协程对新手来说不是很友好。python 的 asyncio 也是有些人不爱用,Go 的无脑 goroutine 反而受欢迎。
1 天前
回复了 keelii 创建的主题 Node.js Node.JS 作者 Ryan Dahl 的故事
@keelii
学到了,不过似乎大部分 NPM 库都不发布.ts 。
1 天前
回复了 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 跳转只能跳到声明,看不到实现,对比其他包管理就成了劣势。(顺便提一个我一直在做的一个高度可扩展的多端统一的模块加载机制和包管理框架 https://www.v2ex.com/t/1104713 就是为了解决相关问题。)
2 天前
回复了 keelii 创建的主题 Node.js Node.JS 作者 Ryan Dahl 的故事
要说的话,脚本语言里 Lua 支持有栈协程和自定义协程调度器,用作 IO 开发要更加合适。
但 JS 就是靠着浏览器,通过用户积累生态,并收获更多用户的循环开始延伸到了各个领域(有意思的是 frida 这种不太相关的领域也用的 JS)。quickjs 的出现也让更多嵌入型框架开始考虑使用 js 作为支持脚本,即使其性能比不上 Lua 。
遗憾的是 NPM/node_modules 和 GYP 真的是十分拖后腿的设计。
@nashaofu 有点意外,倒是听说 tauri 在 linux 的 webview 很容易出问题
tauri 用起来怎么样
77 天前
回复了 bf109_ 创建的主题 问与答 安卓有哪些好用的浏览器,可以安装扩展
@bf109_ Firefox 内核一直是 Gecko 吧,还有新老内核的说法吗,要说最新内核大概说的 Servo?那个兼容性更不好说吧。
我觉得这不能完全算是 C/C++的锅,Windows 的 COM 组件也是 C++的,但 Windows 的兼容是公认做的比较好的。再看 Linux 阵营,虽然很多库是用 C 写的,但升起来也费劲,glibc 更是重量级。
@wudanyang 协程的作用就是协作执行,执行时间长(我假设说的 CPU 密集)还需要自动让出,那就是多线程的场景。实际多线程要考虑锁和线程安全,写线程安全代码未必比手动 await 简单。python 的线程是抢占式调度,但这个和协程无关,无论多少协程也都是跑在这个可以抢占调度的线程上的。
第一条 python 的 await 如果写漏了,协程是不会运行的,第二条没改造的第三方库可以丢给其他线程跑,第三条和数据量大用不用协程都存在的一样的问题
通关+1 ,似乎是 500 分通关,第一个角色比其他角色多 50HP 是什么原因不清楚,游戏技巧就是优先升 1 级子弹伤害,后面优先子弹频率或者伤害,毕竟最重要的是清理近身或路径上的怪,其他的 AOE 可以随意点点,子弹体积我不知道有什么用没点过,HP 恢复数值太低可以无视。游戏的碰撞比预想的大需要注意下
139 天前
回复了 weiwenhao 创建的主题 程序员 我写了一个编程语言,受 golang 启发
@weiwenhao #33 大语言模型已经在力大飞砖了,编程语言生态还在分裂。我觉得一门编程语言生态非常重要。很多人说编程语言只是工具,但是我真不想用不同的工具造相同/相似的轮子了。
139 天前
回复了 weiwenhao 创建的主题 程序员 我写了一个编程语言,受 golang 启发
我很好奇被 Go 语法简单的吸引的用户,其他语言的高级特性不用也没什么影响。而 Go 这样衍生语言很多什么 go+,walang 还有这个 nature ,最终也是将其他特性丰富的语言的碎片组合,除了使生态分裂,感觉也没什么好处。
现在大模型靠算力力大砖飞,让我觉得现在才出现的新语言前景更微妙了。
我今天碰到了,开 Persistent Log 好像好了,但不知道是不是只是碰巧好了
168 天前
回复了 realfatboy 创建的主题 分享发现 抖音极速板竟然可以检测到远程 adb?
@alect 不卡和底层漏洞没什么关系,是那些卡的 APP 塞了太多垃圾代码了,当然也有一些踩坑的经验。
@Radeon ESM 不能满足我的需要,我的目标是前后端使用同一套模块加载机制且足够灵活(比如支持通过 indexeddb 加载模块,在加载前预编译代码等),所以 ESM 的灵活性对我来说是不够的,而且 service worker 内不支持 dynamic import ,所以才做了 pxseed ,AMD 只需要 require,define,requirejs 3 个变量也还好
怕污染可以 rollup 打包 AMD ,虽然我觉得污染影响不大?
顺便打广告,一个利用 AMD 实现前后端共用代码的框架 地址 https://github.com/partic2/pxseed-CorePackages
txiki.js 应该可以更小一点,我也想在 txiki.js 上实现 node 兼容的,但不太顺利,网上找到的 polyfill 大部分都是针对浏览器环境,对 node 服务器侧的支持很弱
1  2  3  4  5  6  7  8  9  10 ... 18  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2024 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 08:17 · PVG 16:17 · LAX 01:17 · JFK 04:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.