- 主题:把js全干掉,统一成ts,有没有搞头?
支持。
我觉得promise能把逻辑相关的代码整理到一起,而且和js的风格整体很搭,是个很棒的构造。然而async和await就没意思了。把好不容易组织到一起的代码再拆散掉。。。特别傻。
js的这种async编程相当于把cronjob当eip用,会有巨大性能损失,神仙都没法jit。所以本来应该最小限度使用的。结果还特地弄两个关键字来鼓励这种写法。。。靠,就算2nm的cpu出来了,性能也经不起这么浪费啊。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: c# 不多余,很合适,非常好。。
: python 里面多余,
: js 抄袭这个语法更是愚蠢。
--
FROM 101.84.136.*
用promise啊
【 在 libgcc (乞讨积分,求施舍,长期有效) 的大作中提到: 】
: 卧槽,js的整体风格就是回调回调再回调
: 你要说搭那是真搭,但一直这么搭下去也不是个事啊,现在的js代码随便一搞下面就一堆
: })})}),不讲点可读性都准备日后删库跑路的么
: ...................
--
FROM 101.84.136.*
我知道。你就是想把语法糖做到极致,在async基础上实现sync,造成程序顺序执行的假象。这是可行的。和os实现socket阻塞read差不多。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 你支持的跟我支持的不一样啊。。
: 我是想干掉 js 里面所有的回调。统一使用隐式的 async/await
--
FROM 101.84.136.*
老兄第一句话多余了。
python gevent在处理的时候是等一个语句执行完再执行下一个的。所以你下面这段代码执
行起来不会有逻辑问题,只不过不会并行而已。所以老鱼才会说加个spawn关键字。
js的asyc是新的编程范式,和命令式大不一样。它的程序流向是在cpu时间片上展开的。自然需要有办法表达代码块之间的依赖拓扑关系。如果依赖树没有分叉,完全是顺序执行的,async、await可以省略。有分叉的情况下,还是需要这样一个机制的。不是await,就是promise.done,或者其他。
【 在 leadu (leadu) 的大作中提到: 】
: 看起来你对多线程的理解是有问题的,举个例子:
: var buf = ReadFromFile1();
: MergeContentWithFile2(ref buf);
: var t1 = SaveToDisk(buf);
: var t2 = SaveToServer(buf);
: Task.WhenAll(t1,t2);
: 这段逻辑在你设想的情况下让编译器怎么做?
--
FROM 101.84.136.*
我最担心的是生态圈里会把加减乘除,字符纯操作,isEven isOdd isThirteen…… 全都用async再实现一遍。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 是的。。
: 内核本身是完全异步的,但是向 userland 提供了同步的抽象。
: 这个事情其实可以由编程语言来完成。
: 在编程语言这个层次做的话,不止于 IO,还可以应用在更广泛的场景里面。
--
FROM 101.84.136.*