- 主题:把js全干掉,统一成ts,有没有搞头?
OS是先有了异步io然后在异步io上做了同步io,await只不过是更接近底层的写法而已
99%的await都不是在wait一个thread算矩阵,只是wait磁盘,网络等等IO
【 在 hgoldfish (老鱼) 的大作中提到: 】
: c# 不多余,很合适,非常好。。
: python 里面多余,
: js 抄袭这个语法更是垃圾。
: ...................
--
FROM 27.91.71.*
tsc太慢了,没戏。
呼唤v8整合esbuild。。。。
【 在 libgcc (乞讨积分,求施舍,长期有效) 的大作中提到: 】
: v8跟tsc融合,搞成原生支持ts的
: 所有浏览器全改成原生支持ts
: deno和node整合,原生支持ts
: ...................
--
FROM 123.120.180.*
v8相当于cpu,js是汇编,效率是第一位的。
【 在 libgcc (乞讨积分,求施舍,长期有效) 的大作中提到: 】
: v8跟tsc融合,搞成原生支持ts的
: 所有浏览器全改成原生支持ts
: deno和node整合,原生支持ts
: ...................
--
FROM 27.91.71.*
浏览器要改也应该是继续加强wasm,为什么要直接支持一个高级语言?
【 在 libgcc 的大作中提到: 】
: v8跟tsc融合,搞成原生支持ts的
: 所有浏览器全改成原生支持ts
: deno和node整合,原生支持ts
: ...................
--
FROM 114.86.93.*
once await , never back
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 我对 python 最不满意的地方就是加了这个特性。
: js 最大的失误也是加了这个特性。
--
FROM 124.240.15.*
不是不支持协程,,没看我怎么说的,“多用协程解决一切问题“。
我比较希望 js 能够隐式地支持协程。。
c# 为什么选择 async/await 两个关键词,因为 c# 本身是支持线程的,老旧的 c# 程序都会调用 win32api 里面的阻塞 IO API,以及创建线程做并行计算. 为了在阻塞 IO 这一套语义之外并存地支持协程,c# 不得不额外支持 async 函数,显式地告诉程序员,这是个协程操作。
而 js 不一样。js 目前所有的运行环境,不论是浏览器还是 node,都是单线程并且异步的。根本不存在 c# 阻塞 IO 的情况。如果我是 js 的设计师,我不会无脑抄袭 async/await 这一套恶心的东西。而是会要求所有的 IO 操作必须隐式支持协程。也就是说,所有的 js 函数,自动地加上 async 前缀,所有调用 async 函数的地方,自动地加上 await. 不想要自动 await 的话,就加个 spawn 关键字,返回 promise (实际应该有个额外的 task 类型,用于 cancel() 协程)
python 的情况和 c# 类似,但是 python 本身拥有 gil,所以实践上 python 开发者使用线程多半是为了调用底层的阻塞 IO API,很少用于计算的。如果我来设计 python,我会直接把 gevent 并入语言核心。
实际 stackless python 搞这一套已经搞了十几年了。js 社区好像发现新大陆一样。唉。。
【 在 chaobill (若我离去,后会无期) 的大作中提到: 】
: once await , never back
--
FROM 124.72.119.*
tsc和v8融合了,也不是原生支持ts吧?
tsc内部动态把ts转成js而已,
这事儿应该微软来搞,但是我看他们没有搞的想法
【 在 libgcc 的大作中提到: 】
: v8跟tsc融合,搞成原生支持ts的
: 所有浏览器全改成原生支持ts
: deno和node整合,原生支持ts
: ...................
--
FROM 103.37.140.*
协程破坏了老代码的原子性
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 不是不支持协程,,没看我怎么说的,“多用协程解决一切问题“。
: 我比较希望 js 能够隐式地支持协程。。
: c# 为什么选择 async/await 两个关键词,因为 c# 本身是支持线程的,老旧的 c# 程序都会调用 win32api 里面的阻塞 IO API,以及创建线程做并行计算. 为了在阻塞 IO 这一套语义之外并存地支持协程,c# 不得不额外支持 async 函数,显式地告诉程序员,这是个协程操作。
: ...................
--
FROM 223.198.99.*
原子性?
使用协程 IO API 的代码肯定都是新代码,不存在破坏老代码的问题。
【 在 chaobill (若我离去,后会无期) 的大作中提到: 】
: 协程破坏了老代码的原子性
--
FROM 124.72.119.*
比如 全局锁,然后 判断的时候 io 等 协程了。
大概这样的代码
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 原子性?
: 使用协程 IO API 的代码肯定都是新代码,不存在破坏老代码的问题。
--
FROM 223.198.99.*