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