golang 为何不出来个 Typescript , 很多恶心的语法,可以先使用语法糖,然后编译生成为 golang 代码,然后在编译为 golang 的可执行文件,岂不美哉?
![]() |
1
vczyh 69 天前
你可以自己搞一个,将 TS 翻译成 Go
|
![]() |
5
zhanying 69 天前 via Android
ts.go (
|
![]() |
6
gongym 69 天前
|
![]() |
7
bruce0 69 天前 ![]() |
8
NessajCN 69 天前
嫌 go 恶心直接去写 C 不就完了
go 又不像 jvav 那样必须要运行时 编译两遍意义何在? 或者说你是不是不知道 go 编译完是二进制机器码? |
![]() |
9
InkStone 69 天前
甭管怎么理解 Go 的语法好坏,用 Go 就是图它编译快、上手简单,糙又猛。你给整 ts 那一套,那对 Go 的用户来说就是无事生非啊。
|
10
ninjashixuan 69 天前
这么不想写 go 换个语音写嘛,没必要这么纠结。
|
11
TuringGunner 69 天前
后端能选择的语言太多了,又不像前端选择有限。觉得不爽换一门语言就完事了
|
![]() |
12
lewinzheng 69 天前
|
13
fffq 69 天前
try catch 才难受呢
|
![]() |
14
Vegetable 69 天前 ![]() go 又不是解释型语言,我为什么要编译为 go, 而不是一步到位编译为最终产物呢?
|
![]() |
15
bronyakaka 69 天前
@NessajCN 虽然但是,go 的确必须依赖运行时。java 那是虚拟机
|
![]() |
16
vfs 69 天前
这么说吧, 如果让我在 typescript 的语法和 go 的语法中选, 我还是选 go. 所谓"恶心的语法"可能正是权衡之后的选择
|
![]() |
17
datou 69 天前
go++?
|
18
asuraa OP |
19
liaohongxing 69 天前
为什么都说 go 简单呢,go 看似语法简单,但是组合到一起可不简单 。
比如: https://github.com/SagerNet/sing-box https://github.com/pion/webrtc |
20
liaohongxing 69 天前
|
![]() |
21
songray 69 天前
国内有个开发者搞了基于 Go 的凹语言。
但是说实话,定位很奇怪,品味也很奇怪,也许你可以参考它 fork 一个自己的。 |
![]() |
22
flyqie 69 天前 via Android
|
![]() |
23
wogogoing PRO 这不就是许式伟大佬搞的那个 go++ ?
|
![]() |
24
crysislinux 69 天前 via Android
应该是 babel ,想要什么搞什么。
|
25
Alias4ck 69 天前
|
![]() |
26
VVVYGD 69 天前
应该给 ts 搞个 符合 PLAN9 的编译器
|
![]() |
27
treblex 69 天前
你是否在寻找 https://haxe.org/ ,虽然暂时没有 go 了
Haxe 可以构建跨平台应用程序,支持 JavaScript 、C++、C#、Java 、JVM 、Python 、Lua 、PHP 和 Flash ,并允许访问各平台的原生功能。Haxe 拥有自己的虚拟机( HashLink 和 NekoVM ),但也可以在解释模式下运行。 |
29
codersdp1 69 天前
@liaohongxing #19 咋不把 k8s 搬出来
|
30
yazinnnn0 69 天前
为什么要做 go 的前端? 做 llvm 的前端不好吗
|
![]() |
32
woniu7 69 天前
ts 是因为 js 是浏览器唯一语言,整个特性多表达能力强的编译 go ??直接编译二进制不好吗
|
![]() |
33
pkoukk 69 天前
@bronyakaka 啥运行时?说出来听听
|
![]() |
34
cenbiq 69 天前 ![]() 因为这是一个伪命题,如果某语言语法性能各方面吊打或者持平 GO ,且能编译成 GO ,那么它就不会编译成 GO ,而是直接编译成二进制文件,从而成为一门与 GO 无关的语言。
|
![]() |
35
bronyakaka 69 天前
@pkoukk go 的 runtime 不是运行时???
|
![]() |
36
pkoukk 68 天前
@bronyakaka #35 你是不是分不清什么叫 SDK 什么叫 RUNTIME ?
|
![]() |
37
gloeaerris 68 天前
我觉得是楼主理解错了,楼上的一众大佬也没理解你说的,ts 代码转换成 js 代码这一步严格来说不应该叫编译,应该叫转换或者转译,只不过前端的开发现在已经习惯叫编译了,前端的编译跟后端的编译完全不是一个东西,这个就是定义产生的歧义,纯属个人见解哈。
|
38
xixi1412 68 天前
这个项目可能符合你的要求。
https://github.com/borgo-lang/borgo |
39
kneo 68 天前 via Android
@gloeaerris 转译也是编译的一种,严格来说,用编译没有问题。
|
![]() |
40
bronyakaka 68 天前
@pkoukk #36 你哪只眼睛看到 SDK 了???无中生有??一直不都是在说运行时吗
|
![]() |
41
bronyakaka 68 天前
@pkoukk #36 眼睛不要就捐出去
|
![]() |
42
bronyakaka 68 天前
@pkoukk #36 我看是你自己搞不清 SDK ,这上面哪点和 SDK 有关系吗?
|
![]() |
43
bronyakaka 68 天前
@pkoukk #36 你告诉我 runtime 字面翻译是什么,不是运行时还是 sdk ??还是你觉得 go 没有 runtime ?
|
![]() |
44
bronyakaka 68 天前
@pkoukk #36 屏蔽了,别来恶心我
|
![]() |
45
pkoukk 68 天前
@bronyakaka #40 看来你确实不知道。
|
![]() |
46
cheng6563 68 天前
长工具链的开发模式更恶心,前段时间接手了一个老前端项目,npm install 一下又是要我下 VC++又是要我装 python2 ,把我恶心坏了。
|
![]() |
47
zhaoahui 68 天前 ![]() Go 不需要语法糖
|
![]() |
48
UnluckyNinja 68 天前
@asuraa #18 我觉得你的理解正好反了,如果一个语言只改语法不修改目标语言,那相当于只修改 parser 的部分,其它基本不用动,如果你把目标语言从 native 改成了源码,反而需要从零实现 AST 到源码的转换,难度不比前者低。
|
![]() |
49
chust 68 天前
|
50
neoblackcap 68 天前
@asuraa C 的编译并不慢,慢的是 C++。当然了 golang 都将编译速度看成是优化的点,那 golang 的编译速度的确快一些
|
51
neoblackcap 68 天前
@UnluckyNinja 现在搞编译语言可以不那么麻烦,很多都是基于 LLVM 搞的,前端解析完也是出 LLVM IR ,后面的一系列优化都能被复用
|
![]() |
52
pkoukk 67 天前
@chust
你别光看标题不看内容,人家 faq 里说了“in Go the word “runtime” is just the name given to the library providing critical language services.” 这原 po 在说 go 不像 java 需要 runtime ,他跑来说 go 也有 runtime ,你说他是什么意思?要么是抠字眼要么是不懂什么是 runtime 呗 |
53
asuraa OP @UnluckyNinja 我意思就是模仿 ts ,实现类似的语法,但是转移转译为 go 后编译
|
54
asuraa OP @neoblackcap LLVM 就很慢了,go 是 PLAN9 的体系 编译器来飞快啊
|
55
xgdgsc 67 天前 via Android
@asuraa llvm 取决于怎么用了,如果像 julia 在 REPL 里 Revise 一点编译一点就跑的话还是很舒服的,从头编译慢点,但只在安装包的时候进行,可以接受
|
![]() |
56
guanzhangzhang 67 天前
|