网页开发 为何非 JavaScript 不可

2020-01-08 13:33:43 +08:00
 KunMinX

查了一上午,发现 多数搜索结果都只谈 “是什么、怎么用”,却对 “为什么” 绝口不提

我知道这门语言既然存活下来,其中必有商业或非商业的组织出于利益考虑在维护和支持。

但我仍然想从技术角度来搞清楚,为什么是它?它的设计目标是什么?它和其他语言相比,到底有什么不可替代的优势?

8524 次点击
所在节点    程序员
79 条回复
lihongjie0209
2020-01-08 14:38:20 +08:00
因为 runtime 目前只支持 js, 要么 runtime 支持别的语言, 要么别的语言编译到 js
bzj
2020-01-08 14:38:27 +08:00
你怎么不问 网页开发 为何非 HTML 不可
janxin
2020-01-08 14:39:54 +08:00
因为事实上是除了 JS 其他在浏览器上都是渣渣,要么不能直接跑,要么就是有这样那样的限制。

至于技术方面的问题,这都不是技术方面的问题...
darmau
2020-01-08 14:43:06 +08:00
@KunMinX 香港至今还是右舵驾驶,靠右有什么不可替代的优点吗?没有。但是改成左舵需要很高的成本
Sunyanzi
2020-01-08 14:45:34 +08:00
既然看到了还是提一嘴好了 ...

作为一个有二十余年网页编写经验 ... 亲历了 Netscape Navigator 由盛转衰 ... 见证了 UA 变迁的人 ...

我觉得一言以蔽之 ... 这事情不是说 JavaScript 有多厉害 ... 实在是因为 VBScript 太不给力了 ...

VBScript 起点不可说不高 ... IE 捆绑 Windows 95 的年代 ... VBScript 一度拥有绝对统制地位 ...

然后微软自己把一手好牌打了个稀烂 ... 越来越多的人对 VBScript 失望 ... 这些人迫切需要一个替代品 ...

而能够成为替代品的 ... 当时只有唯一一个选择 ... 叫 JavaScript ... 别无他选 ...

初代的 JavaScript 也垃圾也乱 ... 但好在开发者一直在听需求在更新 ... 大家忍啊忍啊的就到今天了 ...

这事情扩展开可以说得很大 ... 我就不细说了 ... 总之有些事情一旦被时代所选择 ... 就没那么容易改变了 ...
mxT52CRuqR6o5
2020-01-08 14:50:18 +08:00
像现在支持一种 js 语言已经很累了,再完善的支持另外一种语言不现实
如果是开发的话,我知道 dart 和 kotlin 都能编译到 js
fox1955
2020-01-08 14:50:54 +08:00
不是名门出身, 但是 es6 以后, js 正走向了完美.
shintendo
2020-01-08 14:53:53 +08:00
这个问题可以看 DC 的一个关于早期浏览器、js 发展历史的一个讲座,讲得很有趣

<amp-youtube data-videoid="JxAXlJEmNMg" layout="responsive" width="480" height="270"></amp-youtube>&list=PL7664379246A246CB
lolizeppelin
2020-01-08 14:55:16 +08:00
@KunMinX

做技术做傻了非要从技术上找原因当然找不到,本来就不是技术原因啊
shintendo
2020-01-08 15:09:58 +08:00
@KunMinX 跟原型继承没多大关系,主要是事件驱动的异步编程模型
opengps
2020-01-08 15:28:28 +08:00
你可以不写 javascript 也做成网页,纯服务器输出静态 html 也可以是个不错的网站。但是想在客户端二次运行点啥,目前也就得借用 javascript 来实现了
longjiahui
2020-01-08 15:41:09 +08:00
只有我特别喜欢 js 的吗 0..0
longjiahui
2020-01-08 15:41:24 +08:00
@longjiahui 没错 只有你一个人
leekafai
2020-01-08 15:44:27 +08:00
不是时代选择了 JS,是 JS 造就了时代
DOLLOR
2020-01-08 16:07:44 +08:00
dart 在谷歌手里,vbscript 在微软手里,flash 在奥多比手里,唯有 js 比其他的语言更中立、开放,大家都放心用。
wszgrcy
2020-01-08 16:11:42 +08:00
@longjiahui 你没换号就评论了
oyjc
2020-01-08 16:16:34 +08:00
凡是能被 WebAssembly 实现的,终将会编译到 WebAssembly,不限于浏览器,WASI 了解一下。
gzf6
2020-01-08 16:24:05 +08:00
大公司博弈的结果
bojackhorseman
2020-01-08 16:28:16 +08:00
只是因为它叫 JavaScript,就算不是 js 也可能是其他语言,然后另一个时间线上的也会有人问为什么是它。
bojackhorseman
2020-01-08 16:29:42 +08:00
@longjiahui #33 我杠我自己

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

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

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

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

© 2021 V2EX