网页开发 为何非 JavaScript 不可

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

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

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

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

8524 次点击
所在节点    程序员
79 条回复
yxcoder
2020-01-08 16:44:43 +08:00
偶然性和必然性的结果,浏览器需要一门语言,这是必然性,在同时代的竞争下,js 表现最好,这是偶然性
cmdOptionKana
2020-01-08 16:51:43 +08:00
这个还真是历史原因。

微软试过 VBscript,谷歌试过 Dart,另外当年 Java 也是直接在浏览器内运行的(还一度非常流行)。

还有 flash,曾经一度非常流行,背景音乐、小动画、广告 banner 都用 flash,甚至整个网页直接只提供 flash 版本(真的非常酷炫),这种网站还不少。

微软又企图用 SilverLight 来取代 flash (但完全没搞起来)。

但这些 JS 的竞争对手全部失败告终,反而 JS 越来越完善。

JS 就是命好,本来出生的时候是 “早产儿”,有先天缺陷,但是后来却走运越活越好。
lonelymarried
2020-01-08 16:52:51 +08:00
不用 js 还能用什么
ceet
2020-01-08 16:54:31 +08:00
人,为什么非要吃饭不可?
fffang
2020-01-08 16:54:34 +08:00
难道不是 HTML?
cmdOptionKana
2020-01-08 17:04:22 +08:00
另外补充一个原因。

再谷歌推出 V8 引擎(虽然貌似是收购来的,记不清了,不重要)之前,JS 虽然一直被广泛使用,却也一直危机四伏,很多公司企图推翻它,很多开发者 /用户也希望它被取代,因为以前 JS 运行效率很低,一旦用多了 JS 页面就非常卡!

直到 V8 引擎(或同时代的其他引擎)推出,JS 的地位才开始稳固,特别是采用 V8 的 Node.js 攻占后端,才算迎来爆炸性发展。

而在此背后,是 Google 一直不遗余力推动互联网的“开放性”,Google 一直在做反封闭、保持互联网开放的工作。当然,这是由于符合他家的经济利益,并非因为好心,我们间接受益。
chenliangngng
2020-01-08 17:27:53 +08:00
nutting
2020-01-08 17:34:18 +08:00
看你是说历史上还是现在,现在当然是历史原因了,别的用不了啊,浏览器要支持
longjiahui
2020-01-08 17:35:37 +08:00
@bojackhorseman 立于不败之地的方法就是先杀了自己,让别人杀不了我
crella
2020-01-08 17:35:43 +08:00
能嵌入到其他程序的语言,除了 lua 还有啥?

我觉得插件形式的始终不靠谱。
sevenzhou1218
2020-01-08 17:35:57 +08:00
就知道有鸟人说是为了蹭 java 的热度,2333
crella
2020-01-08 17:37:35 +08:00
还知道一个 visual basic for applications
lk920724
2020-01-08 18:08:42 +08:00
不错的问题,没看到比较满意的回答。

我觉得可能和 火箭推进器的大小 有的相似的连锁反应。

我只知道为什么叫 JavaScript 因为当时 Java 比较火( XSK.PNG )
IGJacklove
2020-01-08 18:22:12 +08:00
这你不用 JavaScript 写个网站不就明白了么。。。
coloz
2020-01-08 23:14:15 +08:00
路径依赖和商业选择吧。
老实说早期 js 本身很辣鸡,就是个不健全的语言,作为一个其他语言转前端的开发者,感觉 js 程序猿们津津乐道的各种奇技淫巧其实就是在解决因为语言辣鸡产生的各种问题。
好的是,虽然 es6 开始变得健全了(有了 class ),ts 也很好使,但 js 的更新给人感觉就是在修修补补。。。
someonedeng
2020-01-09 01:31:39 +08:00
编程语言在自我奋斗的同时也要顺应历史进程 [] . []
agdhole
2020-01-09 01:42:39 +08:00
历史的进程
KuroNekoFan
2020-01-09 08:29:39 +08:00
不是因为浏览器只有 js 的 runtime 和 dom 接口?
BasIrs
2020-01-09 09:10:51 +08:00
不会用 JS,只会用 div,开局一个 div,布局全靠 div
finaldusk
2020-01-09 09:31:32 +08:00
Blazor

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

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

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

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

© 2021 V2EX