TypeScript7.0 用 go 重写, 10 倍快,看了两遍确定是真的...

193 天前
 ChrisFreeMan

https://devblogs.microsoft.com/typescript/typescript-native-port/

github: https://github.com/microsoft/typescript-go

9385 次点击
所在节点    Node.js
74 条回复
min
192 天前
居然不用 c#,看来对 ms 的 c#团队很不爽
ARIInV2
192 天前
前端技术圈 日常重写。。。。。。。
XIVN1987
192 天前
建议 ruster 也用 rust 重写一遍,,性能提升 20 倍,,打败这个 go 重写的
wei2629
192 天前
nb 。也别编译成 js 了, 直接编译成 go , 替换 nodejs 完事。
iorilu
192 天前
微软要良心点把 ts 扶正, 直接开发桌面 gui 软件, 那是做了点好事了

搞成 visual TS, 就像当年 vb 一样
jsq2627
192 天前
@mywaiting 鸿蒙 ArkTS?
lizy0329
192 天前
C# 社区可以原地解散了
RedNax
192 天前
@pursuer 官方说会有 wasm 版,最坏情况下 API 走 wasm 就行了
mark2025
192 天前
@96368a https://www.v2ex.com/t/1117764 好像主要是 C# 有类吧
vincentWdp
192 天前
微软产品, 必属精品
charlie21
192 天前
"we have strong domain information about when "logical" times to run the GC will be."
pursuer
192 天前
@RedNax 走 wasm 是会有序列化性能损耗的。而且 wasm 生态还有个 assemblyscrip 更是和 TS 十分接近的写法,移植不是更容易?话说回来这些写惯 TS 的这些开发者能忍得了 Go 的拉胯的类型系统和类型推断能力也是神人了。
leokun
192 天前
@me1onsoda typescript 7 以前是 nodejs 实现的,可以用来编译 ts 到 js ,或者和编辑器结合做类型推断和检查。nodejs 是 javascript 的运行时,可以在操作系统运行 js 。现在用 go 重写了,加速了编译 ts 到 js 的过程
mxT52CRuqR6o5
192 天前
为啥不用 C#写,不比 go 强得多
leokun
192 天前
@wei2629 直接编译成为二进制吧,那真的可以替换 nodejs ,为什么还需要 javascript 作为中间媒介外加一个 nodejs 运行时
yyfearth
192 天前
@leokun TS 作为 JS 的超集 Super Set 是兼容 JS 那些动态特性的 比如 any
这种要编译成二进制就和要把 JS 编译成二进制差不多 基本上不会比现在 v8 JIT+AOT 快多少
要完美的编译成二进制就必须强制类型 不能有那么多动态的东西 那其实就是 TS 的一个 Sub-set
assemblyscript 其实就是这么一个东西 这种编译成二进制才有优势

另外你说的就是 wasm 现在正在做的 只不过完整版的 TS 很难做到 做到估计优势也没那么大
yyfearth
192 天前
@mxT52CRuqR6o5 C# 语言设计的还是很好的 但是毕竟需要.Net 运行时 和 Java 需要 JVM 一样
JS 已经需要一个 NodeJS 了 用 Go 或者 RS 可以直接提供独立的可执行二进制文件
要是用 C#或者 Java 之类 你觉得大家会为了一个 tsc 手动或者自动下载安装一个.Net 或者 JRE 吗?而且太不小
运行效率也比 Go RS 之类的差一个级别 也就可能比 NodeJS 好一点
ih8es9OIzne0959p
192 天前
怎么有一股原神味
mxT52CRuqR6o5
192 天前
@yyfearth #56 .net core 现在应该可以 single file deployment 把用到的运行时内置在程序里,而且运行效率是 go 差 C#、RS 一个级别,C#之比 RS 、C 差个一丢丢
sagaxu
192 天前
@yyfearth dotnet 和 JVM 都可以 aot 生成 native binary ,如果重写,JVM aot 得到的 binary 估计在 30M 左右,dotnet aot 估计在 20M 左右,都不需要下载安装 runtime 。dotnet 还支持 self contained 打包,不用 aot 也可以显著缩小尺寸。

但是这么做折腾一番,没有得到任何好处,无论是 JVM aot 还是 dotnet aot ,编译时间比 Go 长的多,往往要十倍甚至好几十倍。tsc 也没有用到任何现代语法特性,用 C#没有收益。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1117710

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX