有沒有人研究nodejs和webassembly結合的wasi沙盒

m
magagop
楼主 (未名空间)

Nodejs 14支持多進程cluster,多線程workerthreads,c加加addon,異步asyncawait
,攜程coroutine,wasm二進制格式,wasi沙盒隔離,nestjs庫,多核性能很強勁,微
軟TypeScript,ES2019和V8加持,JIT/AOT可選,全cpp實現,統一前後端。。。

大家為啥不愛用呢?為啥用go呢?用typescript寫了幾個nodejs程序,從cpp轉過來感
覺比go舒服。
m
magagop

我個人最討厭的就是golang,其次java,再次csharp。

這回nodejs加wasm打通了typescript和cpp,終於可以混合兩種語言寫前後端了。不需
要看java spring和其他選擇。

用nodejs和nestjs出原型,比golang好用,而且結合typescript和react和wasm,手機
電腦服務器嵌入式全包括,這是互聯網全棧首選。
w
walkrandom

看生态,go有kubernetes。稍大一点的公司是必需的。
node做后端动不动就依赖几千个包。这个安全性太难了。
js系统几个大公司谁都不服。react就跟typescript说拜拜了。
还有wasm就算了,rust,go是plus。对node那是自己跟自己抢生意。
r
rossbu

Dano 2年内必成主流,就象他的发明人说的,node的问题太多,已经无法修补,只能再重新来过
g
guvest

File size matters, in many cases. Also, simple steps toward deploying were
quite important to many people.

Golang就是oo方面殘缺這一個硬傷。
【 在 magagop(magagop) 的大作中提到: 】
<br>: 我個人最討厭的就是golang,其次java,再次csharp。
<br>: 這回nodejs加wasm打通了typescript和cpp,終於可以混合兩種語言寫前
後端了
。不需
<br>: 要看java spring和其他選擇。
<br>: 用nodejs和nestjs出原型,比golang好用,而且結合typescript和react
和wasm
,手機
<br>: 電腦服務器嵌入式全包括,這是互聯網全棧首選。
<br>

g
guvest

看了下這個Dano的設置不錯啊。能不能展开说说?现在用的人多吗?

【 在 rossbu(feifei) 的大作中提到: 】

: Dano 2年内必成主流,就象他的发明人说的,node的问题太多,已经无法修补,只能再

: 重新来过

s
somehow


【 在 magagop (magagop) 的大作中提到: 】
: 我個人最討厭的就是golang,其次java,再次csharp。
: 這回nodejs加wasm打通了typescript和cpp,終於可以混合兩種語言寫前後端了。不需
: 要看java spring和其他選擇。
: 用nodejs和nestjs出原型,比golang好用,而且結合typescript和react和wasm,手機
: 電腦服務器嵌入式全包括,這是互聯網全棧首選。

握手,我是c,node背景。对java spring深恶痛绝,一点点事情要写出无数的layer,
无数的code,完全是编程语言中的ppt。
s
somehow

能不能多说说?
node的问题是package系统不好,但node使用起来非常便捷。

【 在 rossbu (feifei) 的大作中提到: 】
: Dano 2年内必成主流,就象他的发明人说的,node的问题太多,已经无法修补,只能再
: 重新来过

s
somehow

我们这里有个java大牛,然后写go也很高兴,然后node硬是学不会,还有几个老印也这么说,我就理解为啥了,他们对操作系统没有认真深入的了解,体会不到node的有效性。
event loop就是queue, queue theory在network里是非常重要的,而web也是network的一部分,大量request送来送去。
m
minquan

nodejs好像是没办法单独刷新界面上某一个组件,好像也不能兼容一个程序并行开几个连接?
h
helpme

那你这个所谓的“大牛”水平可真有限。

【 在 somehow (修身健体) 的大作中提到: 】
: 我们这里有个java大牛,然后写go也很高兴,然后node硬是学不会,还有几个老印也这
: 么说,我就理解为啥了,他们对操作系统没有认真深入的了解,体会不到node的有效性。
: event loop就是queue, queue theory在network里是非常重要的,而web也是network的
: 一部分,大量request送来送去。

s
somehow


【 在 minquan (三民主义) 的大作中提到: 】
: nodejs好像是没办法单独刷新界面上某一个组件,好像也不能兼容一个程序并行开几个
: 连接?

你说的是single page app ? 那是client端,angular, react, vue都可以。node是
server。

s
somehow


【 在 magagop (magagop) 的大作中提到: 】
: Nodejs 14支持多進程cluster,多線程workerthreads,c加加addon,異步
asyncawait
: ,攜程coroutine,wasm二進制格式,wasi沙盒隔離,nestjs庫,多核性能很強勁,微
: 軟TypeScript,ES2019和V8加持,JIT/AOT可選,全cpp實現,統一前後端。。。
: 大家為啥不愛用呢?為啥用go呢?用typescript寫了幾個nodejs程序,從cpp轉過來感
: 覺比go舒服。

node.js work threads最多可以产生多少个?加上cluster mode

n
netghost

golang最大的问题不是技术上面的。而是这东西是google的玩具,爱怎么改下面的都是韭菜。

而且现在看golang的升级速度,非常心塞。

其實對很多人需要的只是這樣一個東西:C的擴展 ,加上GC,邊界檢查,和一些常見的數據結構,內置一些常見的C idiom。此外把這幾十年的gnu的那些大而無當的工具鏈特性去掉而已:比如說保持靜態鏈接,幹掉automake,trim down glibc之類的事情。定
下來之後,10年之內不要加新特性!

go沒有新東西,裏面有就是UNIX C + Rob pike在at&t lab搞的plan 9,沒了。google
非要搞一些syntax不一樣的東西來表明這是個新語言,我覺得純粹浪費人時間。

此外golang肯定不會走OO,發明者弄這個東西出來就是不爽C++的,那個別想了。(
which我覺得是無比正確的決定)。
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: File size matters, in many cases. Also, simple steps toward deploying were
: quite important to many people.
: Golang就是oo方面殘缺這一個硬傷。
: <br>: 我個人最討厭的就是golang,其次java,再次csharp。
: <br>: 這回nodejs加wasm打通了typescript和cpp,終於可以混合兩種語言寫前
: 後端了
: 。不需
: <br>: 要看java spring和其他選擇。
: <br>: 用nodejs和nestjs出原型,比golang好用,而且結合typescript和
react
: 和wasm
: ...................

s
somehow

我们组是java sprint, 现在迫切需要拿出理由说要把新的改成node,大家有啥材料?
s
somehow


【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: golang最大的问题不是技术上面的。而是这东西是google的玩具,爱怎么改下面的都是
: 韭菜。
: 而且现在看golang的升级速度,非常心塞。
: 其實對很多人需要的只是這樣一個東西:C的擴展 ,加上GC,邊界檢查,和一些常見的
: 數據結構,內置一些常見的C idiom。此外把這幾十年的gnu的那些大而無當的工具鏈特
: 性去掉而已:比如說保持靜態鏈接,幹掉automake,trim down glibc之類的事情。定
: 下來之後,10年之內不要加新特性!
: go沒有新東西,裏面有就是UNIX C + Rob pike在at&t lab搞的plan 9,沒了。
google
: 非要搞一些syntax不一樣的東西來表明這是個新語言,我覺得純粹浪費人時間。
: 此外golang肯定不會走OO,發明者弄這個東西出來就是不爽C++的,那個別想了。(
: ...................

"google
非要搞一些syntax不一樣的東西來表明這是個新語言,我覺得純粹浪費人時間。"

不能同意再多
s
shuaide

golang is good for system level programming like docker and k8s, I think of it as a better C.

I dont find golang is good for high level web programming. Golang cant even have a nice support for int array int[] with PSQL:
https://stackoverflow.com/questions/30489163/read-a-postgresql-array-
directly-into-a-golang-slice/43324362

int and int64 are considered different and I need to manually cast type.
Cant imagine it is even a problem in Java.

Rust is more promising than Go so far, I think.

【 在 walkrandom (walkrandom) 的大作中提到: 】
: 看生态,go有kubernetes。稍大一点的公司是必需的。
: node做后端动不动就依赖几千个包。这个安全性太难了。
: js系统几个大公司谁都不服。react就跟typescript说拜拜了。
: 还有wasm就算了,rust,go是plus。对node那是自己跟自己抢生意。

s
shuaide

Try Scala?

in the family of OCaml with F-sharp and Coq, slide 6 below.
https://www.cs.princeton.edu/courses/archive/fall19/cos326/lec/01-intro.pdf

【 在 somehow (修身健体) 的大作中提到: 】
: google
: "google
: 非要搞一些syntax不一樣的東西來表明這是個新語言,我覺得純粹浪費人時間。"
: 不能同意再多

s
somehow

学过很小一段时间,学不会

【 在 shuaide (卖火柴的小女孩) 的大作中提到: 】
: Try Scala?
: in the family of OCaml with F-sharp and Coq, slide 6 below.
: https://www.cs.princeton.edu/courses/archive/fall19/cos326/lec/01-intro.
pdf

g
guvest

还有一点,golang是强类型的,这点我需要。另外因为人为的原因。C跨平台各种麻烦。

【 在 netghost(Up to Isomorphism) 的大作中提到: 】
<br>: golang最大的问题不是技术上面的。而是这东西是google的玩具,爱怎么改下面
的都是
<br>: 韭菜。
<br>: 而且现在看golang的升级速度,非常心塞。
<br>: 其實對很多人需要的只是這樣一個東西:C的擴展 ,加上GC,邊界檢查,和一些
常見的
<br>: 數據結構,內置一些常見的C idiom。此外把這幾十年的gnu的那些大而無當的工
具鏈特
<br>: 性去掉而已:比如說保持靜態鏈接,幹掉automake,trim down glibc之
類的事
情。定
<br>: 下來之後,10年之內不要加新特性!
<br>: go沒有新東西,裏面有就是UNIX C Rob pike在at

l
lightroom

rust不解决编译时间问题,中大性项目没戏。golang编译的确快,减少手下干活时的等待时间十分重要

【在 shuaide(卖火柴的小女孩)的大作中提到:】
:golang is good for system level programming like docker and k8s, I think
of it as a better C.


h
helpme

Scala这种东西出来就是恶心人的,在工业界根本没法大规模应用的。

【 在 shuaide (卖火柴的小女孩) 的大作中提到: 】
: Try Scala?
: in the family of OCaml with F-sharp and Coq, slide 6 below.
: https://www.cs.princeton.edu/courses/archive/fall19/cos326/lec/01-intro.
pdf

m
magagop

C wasm 很小,而且預編譯,很快。go是static很大。

【 在 guvest(我爱你老婆Anna) 的大作中提到: 】

: File size matters, in many cases. Also, simple steps toward deploying were

: quite important to many people.

: Golang就是oo方面殘缺這一個硬傷。

:
m
magagop

不明白你說什麼,react負責前端界面。後段可以listen很多端口,開很多thread並行
異步回覆

【 在 minquan(三民主义) 的大作中提到: 】

: nodejs好像是没办法单独刷新界面上某一个组件,好像也不能兼容一个程序并行开几个

: 连接?

m
magagop

我沒用cluster,我用worker thread pool開256個沒問題,server是128核256線程1TB
內存,都跑滿了,結果很滿意。

【 在 somehow(修身健体) 的大作中提到: 】

: asyncawait

: node.js work threads最多可以产生多少个?加上cluster mode

m
magagop

那是你沒做過gui,界面必須oo。網絡oo還OK,JS和TS都oo了,golang真的爛。static
應該是可選項,不是必選項,可以用container和wasi補充。

【 在 netghost(Up to Isomorphism) 的大作中提到: 】

: golang最大的问题不是技术上面的。而是这东西是google的玩具,爱怎么改下面的都是

: 韭菜。

: 而且现在看golang的升级速度,非常心塞。

: 其實對很多人需要的只是這樣一個東西:C的擴展 ,加上GC,邊界檢查,和一些常見的

: 數據結構,內置一些常見的C idiom。此外把這幾十年的gnu的那些大而無當的工具鏈特

: 性去掉而已:比如說保持靜態鏈接,幹掉automake,trim down glibc之類的事
情。定

: 下來之後,10年之內不要加新特性!

: go沒有新東西,裏面有就是UNIX C Rob pike在at
m
magagop

這些小眾語言,有很多小眾語法,不適合當主力。
我笨,最多只會三種語言,Cpp、Py、JS,完活,可以搞定任何系統。從糙快猛到高精
尖到互聯網全棧到硬件深度學習,覆蓋各種熱點。

實在不想學第四種語言。看到golang、rust和scala就吐了。

【 在 shuaide(卖火柴的小女孩) 的大作中提到: 】

: Try Scala?

: in the family of OCaml with F-sharp and Coq, slide 6 below.

: https://www.cs.princeton.edu/courses/archive/fall19/cos326/lec/01-
intro.pdf

m
magagop

node14支持wasm和wasi,node12支持multithread,node10支持typescript和async/
await和promise,node8支持nestjs框架和cpp napi addon,短短4年當刮目相看。

golang和java這四年做什麼了?有啥重要改進?

【 在 somehow(修身健体) 的大作中提到: 】

: 我们组是java sprint, 现在迫切需要拿出理由说要把新的改成node,大家有啥
材料?

m
magagop

typescript也是強類型,用wasi/wasm跨平台。

【 在 guvest(我爱你老婆Anna) 的大作中提到: 】

: 还有一点,golang是强类型的,这点我需要。另外因为人为的原因。C跨平台各
种麻烦。

:
m
magagop

typescript不需要編譯,v8默認jit,cpp編譯wasm速度也很快。nodejs可以加入cpp
addon,性能非常高。java jni不比nodejs addon好用多少。

【 在 lightroom(吃一条鱼,思考一个问题,法号三丰) 的大作中提到: 】

: rust不解决编译时间问题,中大性项目没戏。golang编译的确快,减少手下干活时的等

: 待时间十分重要

: :golang is good for system level programming like docker and k8s, I
think

: of it as a better C.

: :

s
somehow

256線程是指256 hyperthread ?

我现在头痛的是我们是aws EC2, 也就4 core, 8 core。
有啥建议?

【 在 magagop (magagop) 的大作中提到: 】
: 我沒用cluster,我用worker thread pool開256個沒問題,server是128核256線程
1TB
: 內存,都跑滿了,結果很滿意。
:
: asyncawait
:
: node.js work threads最多可以产生多少个?加上cluster mode
:

s
somehow

这个好!

【 在 magagop (magagop) 的大作中提到: 】
: node14支持wasm和wasi,node12支持multithread,node10支持typescript和async/
: await和promise,node8支持nestjs框架和cpp napi addon,短短4年當刮目相看。
: golang和java這四年做什麼了?有啥重要改進?
:
: 我们组是java sprint, 现在迫切需要拿出理由说要把新的改成node,大家有啥
: 材料?
:

n
netghost

可否整理一下思路再發帖?謝謝。。

【 在 magagop (magagop) 的大作中提到: 】
: 那是你沒做過gui,界面必須oo。網絡oo還OK,JS和TS都oo了,golang真的爛。
static
: 應該是可選項,不是必選項,可以用container和wasi補充。
:
: golang最大的问题不是技术上面的。而是这东西是google的玩具,爱怎么改下面
: 的都是
:
: 韭菜。
:
: 而且现在看golang的升级速度,非常心塞。
:
: 其實對很多人需要的只是這樣一個東西:C的擴展 ,加上GC,邊界檢查,和一些
: 常見的
:
: 數據結構,內置一些常見的C idiom。此外把這幾十年的gnu的那些大而無當的工
: 具鏈特
: ...................

m
magagop

不差錢上baremetal,oracle也有,一小時幾百美元。

【 在 somehow (修身健体) 的大作中提到: 】
: 256線程是指256 hyperthread ?
: 我现在头痛的是我们是aws EC2, 也就4 core, 8 core。
: 有啥建议?
: 1TB

m
magagop

思路就是OO大法好,像Cpp、JS、Py,你可以不用,但不能沒有,所以golang被一票否
決。

【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: 可否整理一下思路再發帖?謝謝。。
: static

n
netghost

golang被一票否決了啥?如果你發帖不想別人覺得你在發泄情緒,就不要以“就是好啊就是好“這種語氣來說話。

【 在 magagop (magagop) 的大作中提到: 】
: 思路就是OO大法好,像Cpp、JS、Py,你可以不用,但不能沒有,所以golang被一票否
: 決。

h
helpme

商业软件和系统软件的区别吧,C++也有一些hacks可以replace virtual:

https://github.com/google/cpp-from-the-sky-down/blob/master/metaprogrammed_
polymorphism/polymorphic.hpp

【 在 magagop (magagop) 的大作中提到: 】
: 思路就是OO大法好,像Cpp、JS、Py,你可以不用,但不能沒有,所以golang被一票否
: 決。

w
walkrandom

显然不是老混子
老年程序员都躲着node和javascript
sql留给绿卡华人大妈
qa是烙印H4
javascript留给刚毕业的小白
mobile外包给中国公司
我写react五年了
这玩意一年要大规模重写一次
不要低估了刚毕业的小白的战斗热情

老中程序员都控制了数据,活轻松,又重要
要么spring和kafka做data batch
要么用go写k8s的operator
公司倒了,职位还在