Nodejs与Deno项目给我们的启示:从以前的node.js项目到现在的deno项目

发布于 1周前 作者 gougou168 来自 nodejs/Nestjs

Nodejs与Deno项目给我们的启示:从以前的node.js项目到现在的deno项目

那就是不要被国外一些渣渣带节奏了!!! ry 又怎样! 他的槽点一堆一堆!! 当初丢下 node.js 社区搞 golang,而今在 google 搞 tensorflow 现在又折腾 出 deno. 看看现在的 node.js 一堆 shit !!
完全是瞎带节奏的队友.

100 回复

我一直期待微软能出个 ts 的运行时并且 v8 引擎能直接支持 ts。


微软的话就是跑 Chakra 了

ts-node 了解一下

ts-node 不是 ts 的运行时啊,它只是把 ts 编译为了 js 然后在 node.js 里面跑吧?

程序员有两种,前端和后端

很期待微软出 ts runtime

看的不爽可以不用啊…喷人家是怎么回事

先不要把礼貌这问题搬上来; 就事论事的讲 这人的项目不能跟,太机会主义了.

就事论事的讲,这种直接人身攻击的 issue 是对开源社区氛围的极大破坏

😆楼主的心情可以理解,但是人家确实 can do what he wants to do.

真他妈的叹为观止,连这样的人都有。。

其实不管 node 如何烂, 但是不能否认的是因为 node 的出现让前端出现了很多不错的项目, 创造了很多好用的工具, 极大的施放了前端的能力和范围.

真他妈的叹为观止,连这个样的人都有。。

你确认不是更复杂?

问题也不是 node ; 是 ry 跑路不干了;丢下 node 社区; 现在一个项目下来几百 MB, 这些都是可以优化;但 npm 社区已经成型 不可能推倒重来;前期如果 ry 做了解决方案也不至于现在这囧样.
看看 node 社区拿得出手的项目有哪些? web 框架有吗, 分布式计算有吗? 有点不伦不类了;这是 node 的悲剧 但又可以在发展初期就处理好; 这锅难道 ry 不应该背?

不太明白你的逻辑,社区成立以后,已经是投票表决了,他并没有一锤定音的权利,再说了他并没有义务去解决 npm 的问题的义务,他离开社区也是他的自由。

ry 是渣渣?期待 lz 的大作

喷子的角度总是能让我叹为观止

对不起,我选择 block

第一个 block 送给你~

都 8012 年还在扯 callback hell ……

你给人家钱了?人家想干啥跟你有屁关系?真是他妈叹为观止

那你为啥还要追随 nodejs,在这里发帖呢

https://github.com/ry/deno/issues/53

这个 issue 不会是你提的吧?真是叹为观止

与楼主头像一样

…………

典型的升米恩斗米仇啊

叹为观止。。求求别去 github 放厥词了,典型的伸手党还嫌要得不够多,已 block

对于开发者来说,体验就是你说的那样

提建议容易,说出解决方案难。

不要被国内一些渣渣带节奏了!!! lz 又怎样! 他的槽点一堆一堆!!..
完全是瞎带节奏的队友.

祝你早日被 AI 淘汰

你确定「丢下 node.js 社区搞 golang 」的是 Ryan 而不是 Tj ?

你确定「看看现在的 node.js 一堆 shit 」的锅在 Ryan ?

退一步讲,就算 Ryan 坚守在 Node 项目上,你确定就万事 OK 了?

顺便鄙视楼主的那个 Issue

有点傻。。。学不动了刻意不学嘛。。。别干这行了

天啊。。楼主的 issue 真是。。真是叹为观止。。。(有蛮多语法错误的。。)

Block 套餐送给你

github 账号被 flag 的是谁

我怎么感觉这玩意很棒啊,ts 是好东西,每个 coder 都应该学一些

deno 这项目挺好的呀,既然 node 这么多问题,干脆推倒重来没有历史负担更好了

把 node 后面两个字母挪到前面,就变成了 deno

其实我期待微软能出个把 ts 编译为 webassembly 而不是 js 并在 Chakra 上跑的运行时

原来楼主就是那个提 issue 的脑残 SB 啊,真是叹为观止

主观臆断。 另外楼主提的 issue 真 SB

一群国人用 英语 争论,叹为观止

讲道理与其考虑 ts 编译成 wasm 不如直接用他爸 c#,也说不定微软正在谋划着在 TS 占据绝大多数 js 代码量的时候搞个大新闻

话说楼主给自己的定位是 Senior Web dev (滑稽

你有给别人开工资吗?别人随便干什么都是别人的自由,凭什么能随便喷别人;
项目主创就是最厉害的? node 社区比他厉害的多了去了,你怎么就觉得他就能比别人维护得好?
再一个现在 node 也不能随便改了,生态系统固定死了,随便一点更改都可能是毁灭性的;
他的新项目就是从 node 里面总结经验,重新寻找更好的解决方案有什么问题,如果成功了也会是利大于弊的,毕竟 TypeScript 是完全兼容 JavaScript 的,解决了痛点,迁移也不难。

楼主的观点让人鄙视,人家大神就是玩票又如何? 自由选择有兴趣的领域,与你何干。至于口诛笔伐么?
我还花了 5 秒钟看了下这个 issue: https://github.com/ry/deno/issues/53
看不下去了,好烂的英语,丢人丢到国际。Block 送给你。

放弃完美框架完美代码的想法,迭代到重构是必然的。有一些程序员总会打着代码洁癖的幌子指出各种问题,但是就是不动手写一行代码~(提醒面试官们小心这类程序员)

额,这个大家愿意学什么是自己的事吧。。
从另外一个角度说,楼主这也不是在带节奏么?

拒绝 js 搞后端

只能说再次说明 node 不适合搞后端

ry 做出的决定是明智的,难道让他一辈子守着这个 nodejs 坑,给前端小白不停擦屁股,那真是对天才的浪费。

nodejs 的出现让很多前端开发者的有了写后端代码, 和操作系统交互的能力. nodejs 虽然有不足, 但是社区也在不断的优化, 出现新的项目也是对 nodejs 项目的一个促进. 顺便鄙视一下那个 issue, 你有什么资格让人家关项目? 你能代表大多数开发者的声音吗?

不懂你们 js 圈

吹捧一个垃圾
然后推荐给竞争对手的公司用
并且以 “ he does what he want ” 显得有理
深藏功与名

真他🐎的叹为观止,连这样的人都有

一定要看清楚他人背后的意图
什么 “人家想干啥就干啥、你有什么资格喷、你能代表谁、愿意干什么是自己的事、别人随便干什么是他自己的事、大多数人的声音、自由选择有兴趣的领域、升米恩斗米仇” ,这些表面的 drama 背后隐藏的是看不见的硝烟

英语水平连小学生都不如都好意思指手画脚,奇葩。block.

语法错误一大堆,就不要出去丢人了

没人强迫你用这个,逻辑很奇怪

已 block

开源世界的规则是 “这个东西真 jb 屎,我要搞个比他更牛逼的出来(虽然很多时候并不能如愿)”
而不是 “这个东西真 jb 屎,垃圾作者你特么应该搞个更牛逼的出来”


林纳斯 也是著名的 喷子, 但除了被他喷的的项目组的人会和他对喷外,没多少人敢去说他如何如何。
你要是也想随意喷人,那就像他 unix -> linux 似的, 你也搞个 比 nodeJS 还牛逼的 chenodeJS 再说。

你居然还有脸主动跑来发。。。

叹为观止。。

火气都好多大啊

首先是感叹喷子的脑回路是如此清奇,如果说要喷 node、ry,让我想一百遍我都想不出会从这个角度入手;
然后就是喷子基本上是没法和他辩论的,完全不讲道理,偏执,不管你怎么摆事实讲道理,他翻来覆去就是那几点,绝不动摇。和他说个半天你发现你的时间完全被浪费掉了,社区没变得更好,心情还 down 到极点。

所以以后遇到这种帖子,最好就是直接 block,还可以举报(明显是 troll 找骂的)。就像楼主提的 issue 一样,直接 close,辩都不要辩,和这种人讨论问题就是浪费时间,浪费社区生产力。

林子大了……

我一直想不明白为什么前端界这么喜欢造轮子,一个轮子用到一两年立刻推倒再另起炉灶,再推广另外一个轮子。那我想问,之前那个轮子沉淀下来的生态,周边工具库,周边的问题解决方案也要一起扔掉吗?

确实,楼主就一个观点:ry 应该负责修 node 的 bug。绝不动摇。

槽点无数

——————

「有几个语言,框架是我们人自己整出来的?」

所以呢?天朝有易语言你用吗?什么年代了搞技术还分洋的土的,不是自己整出来的就不能贡献代码了?

「我有这么多情绪 大部分是因为 ry 作为项目发起人而选择离开」

所以呢? Ryan 不在 Node 就不跑了?项目就不发展了?你当 Foundation 是摆设吗?你是为了 Ryan 写 Node 程序的吗?

「很多问题最好的解决办法是从内核角度去处理,像回调异常处理,确定回调处理方案,包管理, 服务进程假死」

这跟内核有什么关系?

「看看现在的 npm 社区,包质量层次不齐还非常臃肿,一个小项目动辄几百兆. 这是在其他语言系里看不到的。」

你用的哪个包质量不行而且臃肿了?你的什么小项目就几百兆了?其他的什么语言实现包质量普遍优秀而且精炼的情况下和 Node 做了同样的事了?

「目前 Node 能做什么?除了做前端构造工具还有人敢拿来用在大并发下的生产环境?有的话估计都开始转 JAVA/PHP 系了吧」

你凭什么说没人这么用呢?就算只说前端构造工具,你不用 Node 是打算回头用 Ant 吗?你的什么项目后悔用了 Node 打算转 PHP 了吗?你是要用 Java/PHP 实现前后同构吗?

「一个好好的项目做成现在这么尴尬,创始人难道不应该负责?」

公司业绩下滑就要已经退休的创始人出来谢罪并力挽狂澜?而且你哪儿看出来业绩就下滑了的?

「看看 ry 做的事,哪个火就选择做哪个」

敢情当初是看上了 JS 火才做了 Node 的?选择 Golang 怎么了,Golang 的并发模型好用还不能用了? TensorFlow 好用还不能做点东西出来了?你觉得 PHP 宇宙第一干嘛来写 Node 呢?

「我是俗人看不懂这样有才华的人为什么不好好做一件事」

Ryan 至少做出 Node 并且建起社区了,非要给你涨工资到退休才算善终?你的 API Framework 可千万要「善终」哦。

「 ry 发起的项目没啥好学好跟的」

有骨气,不要再升级你的项目的 Node 版本了哦!

「到最后一样和 node 的命运」

有志气,不要让你的项目和 Node 面临一样的命运哦!

坐等楼主写个 v9 引擎。

见识了楼上各种喷子. 说我喷 比起你们一些人 小巫见大巫.

我的观点再明白点,ry 不应该重复造轮子,先把 node 做好。他有这个责任和能力. 不然以他做事风格 deno 只是第二个 node.

浙江温州,浙江温州,最大皮革厂,江南皮革厂倒闭了!老板黄鹤吃喝嫖赌,欠下了 3.5 个亿,带着他的小姨子跑了。我们没有办法,拿着钱包抵工资。原价都是三百多、二百多、一百多的钱包,通通二十块,通通二十块!黄鹤你不是人,我们辛辛苦苦给你干了大半年,你不发工资,你还我血汗钱,还我血汗钱!

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.

楼主真是,思路清奇

#77 怎么判断 deno 是 Node 的轮子的,因为名称使用的字母一样? deno 都没有包管理,怎么就成了 Node 的轮子呢?
退一步讲,有了 Express 就不应该有 Koa ?有了 WebKit 就不应该有 Blink ?有了 Grunt 就不应该有 Gulp ?

不懂你们 js 圈.
nodejs 是最好的…???

“升米恩斗米仇”这话评价你一点没错

楼主这种人就是开源社区最大的蛀虫,你在这里吐槽倒是没事,开个 issue 道德绑架人作者?
你看人作者理你吗?人家 ry 开个 repo 逼着你学了?果然编程门槛低,什么人都有

任何道德上的谴责,对于大多数人,都是没什么吊用的。除非这个事情有利益,或者不做有惩罚,才会有人做,不然。。。楼主有开源么

你误会了,我并没有说这位是前端界的人。我只是通过他的 NodeJS 联想到现在的前端风气而已

我们已经做了

node 后端

技术社会看了这么多年 楼主这样的史前巨婴 我真的是第一次见

对于楼主这样的人我是服气的!

#85 新的出来了,大家都去用,持续不断的用,只能说新的比旧的好,这跟哪端没关系。前端不断出新轮子,只能说前端的历史起点低,低可以改进,而不是拒绝改进

当然了,像一些先进的东西出来了,能提高开发效率,用的更爽了,那肯定是要去用的。但是目前前端有好多造出来的轮子质量并没有足够的论证,能证明它这个新轮子有值得替换的地方,所以我觉得还是太浮躁了

"除了做前端构造工具"

这个可是丰功伟绩啊.

1.你真的是丢中国开发者的脸
2.如果一个社区因为创始人离开后就一蹶不振,那么它迟早该死
3.把希望放在某个人身上,就像靠一个英明的君就能使国家富强一样可笑。

真不想说您,歪理一堆,重复实现怎么了,语言结构都变了,ry 脱离了社区想干啥干啥,再说 deno 出现不正是要解决原来 node 的问题么,好事为什么要抵制,

解决问题最好的办法是直面问题,而不是绕过问题造新的轮子,不然只会有更多问题出现,并且造成太多碎片化,撕裂社区和开发者.

另外,我并没有以中国人身份提 issue, 为何就丢了中国开发者的脸 ?

ry 本身是一个风向标,他一举一动对社区会有很大影响,所以不是谁逼着我去学 deno, 而是他影响了环境,环境倒逼着我去更新到 deno; 但谁保证 deno 能彻底解决 node 的问题最后是不是又一个坑 ? 他会不会做了一半后 像当初一样跑了? 留给社区一堆 Bug 去修?

要么 ry 停止项目专心在 node, 要么对新 deno 负责到底. 楼上有人提我脑回路有问题,确实,我和他没半点关系,更谈不上要求他做什么事,上面所说的都是我的态度和观点而已. 他完全不用理会,但希望我的观点能对你们有所影响.

希望国内的开发社区能有自己的节奏,ry 这类大牛脑洞太大 跟之前先看仔细 盲目跟从这种换汤不换药的项目没太大意义.

同意您要直面问题的观点,但在这之前请把他和 node 社区分开,他不再是社区内的,也和 node 发展已经无关了,至于 ry 做什么是他的自由,和你没关系,和 node 没关系,为什么还会认为 ry 是风向标?你们一厢情愿罢了,关于 deno,优胜劣汰,没啥好说的

#94
1. 盲目跟风的是盲目的人,别人盲目跟风不是 Ryan 的责任;
2. 国内社区没有节奏就是因为缺少领节奏的人,这不是国外社区或个人的责任;
3. 一味追捧和一味抨击一样可恶;
4. Ryan 对 Node 社区的影响说实话不及 Tj ;
5. deno 现在甚至不可用,何谈环境倒逼你学习 deno ;
6. Node 有什么 bug 是必须 Ryan 来修的?你遇到这类 bug 了吗?
7. Ryan 离开 Node 社区时 Node 是处于「做了一半」的状态吗?
8. 直面问题是解决问题的办法,但不一定是最好的办法;
9. TypeScript 直接兼容 JavaScript 代码,仅从语言层面来讲何谈「绕过问题」?
10. deno 不支持包管理,何谈撕裂 Node 社区?
11. 「换汤不换药」,谁给的你这么说的自信?

开源项目本身就没有义务承诺为你解决任何你认为是问题的问题。
换言之,你选择了开源项目,应当默认承认项目中产生的问题有可能发生并且不会被任何人解决,这一点,并不会因为项目发起人多有名,项目有多少用户,网上有多少讨论,有多少大公司选择用这个项目而改变。
因为你要了解,维护的主体是社区,社区不欠你任何东西。你行你上

倡议没问题,骂街就很恶劣了

最后突然就联想到微博上各种言论:
“博主你作为一个公众人物怎么能这样”
“ xx 地方出事了博主你不去关注一下吗”

开眼界了

楼主先了解下什么是开源再说好吧~_~?


另外你在 issue 上灌水,最好说你是美帝人好吧!请不要用中文好吧!

特么跟外国人合作,看见是中国人,直接拒绝

你这种人就是不知道感恩,ry 完全可以选择不做 node,你还嫌这嫌那的,看得不爽就自己做一个出来啊,还要 ry 背锅?什么鸡巴心态啊

Node.js与Deno项目为我们提供了诸多启示,尤其在JavaScript运行时的演变和发展方面。

Node.js,自2009年由Ryan Dahl创建以来,一直是服务端JavaScript开发的支柱。它基于V8引擎,提供了高性能、事件驱动和非阻塞I/O模型,使得处理大量并发连接成为可能。Node.js的生态系统庞大,npm包管理器提供了丰富的模块和库,极大地提高了开发效率。然而,Node.js也面临一些挑战,如安全性问题和单线程模型的可靠性问题。

Deno,作为Node.js的继任者,由Ryan Dahl在2018年推出,旨在解决Node.js中的一些问题。Deno默认不开放网络权限和文件系统读写权限,除非显式授予,这增强了安全性。它基于ES Modules,内置TypeScript支持,提供了更现代的开发体验。Deno的API设计更加简洁,遵循标准的Web APIs,使得开发过程更加健壮。

以下是一个简单的示例,展示了如何在Node.js和Deno中运行一个基本的HTTP服务器:

Node.js

const express = require('express');
const app = express();
app.get('/', (req, res) => {
  res.send('Hello World!');
});
app.listen(3000, () => {
  console.log('Server listening on port 3000');
});

Deno

import { Application, Router } from "https://deno.land/x/oak/mod.ts";
const app = new Application();
const router = new Router();
router.get("/", (ctx) => {
  ctx.response.body = "Hello World!";
});
app.use(router.routes());
app.use(router.allowedMethods());
console.log("Server listening on port 3000");
await app.listen({ port: 3000 });

Node.js和Deno各有优势,选择哪个取决于具体需求。

回到顶部