用 JavaScript 实现的 WebKit

2015-01-02 22:06:51 +08:00
 bleaker
如果这玩意存在的话,浏览器兼容问题是不是从此可以走进历史...
4414 次点击
所在节点    奇思妙想
21 条回复
ricorico
2015-01-02 22:44:27 +08:00
我还以为是真的实现了喵…
hjc4869
2015-01-02 22:54:57 +08:00
javascript不是连linux都实现了吗。。
另外浏览器兼容性在统一的标准出现并被大多数人遵守之前是不会有完美的解决方案的……
anewg
2015-01-02 22:58:37 +08:00
@hjc4869 实现linux。。。太高估js了。
SoloCompany
2015-01-02 23:01:03 +08:00
网页启动前前先下载1g的源码
nilennoct
2015-01-02 23:10:40 +08:00
这个“用 JavaScript 实现的 WebKit”放在哪里呢?浏览器自带还是用户手动下载?用V8、SpiderMonkey还是Nitro解析?不同版本的“用 JavaScript 实现的 WebKit”兼容性问题怎么解决?
bleaker
2015-01-02 23:11:56 +08:00
hjc4869
2015-01-02 23:12:30 +08:00
ianva
2015-01-02 23:19:25 +08:00
lz 明显没有明白,语言,语言的引擎,w3c 标准的设计和制定,webkit,以及兼容性等等,这些概念是什么,有什么关系 http://www.infoq.com/cn/articles/webkit-for-developers
iwege
2015-01-02 23:22:05 +08:00
anewg
2015-01-02 23:34:19 +08:00
@bleaker 这个包括其他任何基于js引擎开发的都一样的。js引擎能由js来实现,那才是真的实现。目前根本做不到,之后做到了,那语言也跟现在的js天壤之别了。
sanddudu
2015-01-02 23:42:12 +08:00
anewg
2015-01-02 23:44:13 +08:00
@sanddudu

Narcissus is a JavaScript interpreter written in pure JavaScript (i.e., a meta-circular evaluator), using the SpiderMonkey engine.

SpiderMonkey is written in C/C++.
testla
2015-01-02 23:51:48 +08:00
JS和C\C++是图灵等价的,这意味着它们的功能理论上是一样强大的。
所以完全有可能实现JS编写的将JS转换成ASM的编译器。
sanddudu
2015-01-02 23:57:37 +08:00
@anewg 我发现题目没有讨论是否通过引擎执行,所以你歪楼了。
实现横竖都是实现,不通过引擎是你的要求。
同意 @testla 的观点
anewg
2015-01-03 00:08:59 +08:00
@sanddudu 所认为的实现确实是仁者见仁的事情。

比如python的subprocess或php的exec,我也可以认为只需要这两个语句我就能实现绝大部分linux功能了。
NewYear
2015-01-03 00:14:27 +08:00
你们都没意识到为什么会出现兼容性问题么,说白了就是每家浏览器/内核自己支持一些独特的特性,而其他家不支持,或者调用方法不同。导致代码不能通用,甚至只能舍弃那些独特性。

那么为什么做浏览器内核的要有独特性呢,那是因为要让别人觉得他家的内核好啊!(PS:就是IE,FF,Chrome)

那么答案其实很简单,就是世界上只能有一家做浏览器内核的,那么兼容性就可以丢去历史了。

当然很快你们又会发现,就算全世界都只用webkit的时候,又会发生webkit版本不同的问题(PS:版本过久那么新的版本的特性就执行不起来了)…… (IE6/7/8/9/10/11/12全是IE,但是版本不同,又不能通用了)

于是兼容性话题又回来了……

于是又有新的办法了,所有用这个内核的浏览器,不允许超出多久不升级到新版……

这个方法终于解决了所谓的兼容性问题了……

但是开发者又觉得坑爹了……因为我的老项目,要不断的去修改,才能适应新的webkit版本啊!上次写的一个项目,已经第七十二次非自身缘故去修改了,只为了去适应新版的webkit!(PS:嗯,PHP就是这样,不向上兼容,也不向下兼容)

那么解决此问题也不是没办法,那就最新版附带所有旧版的库,在网页里标记下使用对应版本的webkit来执行就好了。(PS:传说中的Windows就是这样,一个程序可以在98系统运行,也可以在Windows 8系统运行)

好了,那么新的问题又出来了,这么臃肿的浏览器,比操作系统安装程序还要大,因为附带所有老版本的支持库,最终造成的结果就是,几张dvd光盘拼起来才能放得下这个浏览器的安装程序……

那么新问题最终如何解决呢?

那就是横空出世,出来另一款超级精简快速的内核吧!名字就叫WebKit Mini!(PS:回顾下历史,这不就是Firefox抢IE垄断份额的年代么)

新的WebKit Mini出来后,各方面都很优异,但是……有些部分还是无法做到完美,毕竟没有附带那么多支持库……那么怎么办呢?研究一下怎样兼容吧……

然后请你翻到本文第一段,再读下来,你会发现,这就是一个轮回,永远轮不到下面一段,因为轮到这里的时候,又会轮回到第一段。

反正我是不知道未来会如何解决此问题,楼主你要是找到了方法,记得at我。
fwee
2015-01-03 00:17:25 +08:00
用js实现为何能解决兼容性?
NewYear
2015-01-03 00:18:06 +08:00
兼容性问题是永恒的话题,看完16楼的全文,你会发现,这玩意永远都不可能得到解决。因为技术在进步,时代在发展。
@ricorico
@hjc4869
@anewg
@SoloCompany
@nilennoct
@ianva
@iwege
@sanddudu
@testla
hjc4869
2015-01-03 00:31:07 +08:00
@NewYear IE兼容做的挺好,向下的兼容无人能比,IE11甚至专门为企业设计了IE8模式,特定网站开启。
只是别的平台的浏览器,根本没一个这么认真的,一边创造自己的那一套,一边破坏标准,搅得一塌糊涂。
另外php是世界上最好的语言。
favtube
2015-01-06 13:42:12 +08:00

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

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

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

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

© 2021 V2EX