主题:是否可以考虑放弃浏览器另起炉灶 -- 益者三友
近来关于浏览器的贴子很多。
为了提高浏览器的执行效率,
google, ms, sun, adobe互相组团厮杀,好不热闹。
看来看去,看明白一件事:相对于其他程序,目前浏览器到执行效率是非常非常低的,程序结构是非常复杂的。而为了提高效率,未来设想的html5, FX等等,竟然更加复杂。
既然这样,说明目前的:浏览器+html+javascript+flash的组合,是非常糟糕的一种组合。为什么不想想,放弃这种组合,重新另找一种网络交互方式。
从历史上看,浏览器+html的出现,是很偶然的。而且也不是深思熟虑的软件业界高手的杰作。
html是专门为阅读文本文件,查找线索方便而设计的一系列标记。早期的浏览器仅仅是为了显示这些文字和标记而设计的。这个基础就不是为了多媒体和作为程序运行平台os而设计的。后来反复经过扩充功能,但浏览器的基础决定其扩充性并不好,代价就是结构复杂,运行效率低。
目前所用的javascript,是经过历史上多种动态网页技术PK而保留下来的。但这个结果并不是因为javascript非常杰出,而是大公司政治斗争的结局。
历史上曾有VBscript,activax,javabeans,swift,等等。但因为这些技术是由MS或SUN控制的技术,其他公司怕以后被人限制,所以就竭力抵制这些技术。而javascript并不是比这些东西好用,而是不受某公司单独控制,所以才勉强接受。
我记得看邓侃还是谁的贴里,提到一句很好的话:现在需要的不是一个新语言,而是一个协议。
现在争论浏览器扩充,不如重新回顾一下,在基础平台TCP/IP的基础上,重新设计一个网络交互协议。甚至连WWW协议都要重新审视。
因为未来的互联网,将包含有PC, phone, Mobile internet Device, Robot, 等等这些东西互相操作互相控制。目前的浏览器+html+javascript组合非常不适应未来需要。继续拆东墙补西墙的方法走不远的。付出的代价是浏览器越来越复杂,资源利用效率低,编程和跨平台交互越来越复杂。
本帖一共被 4 帖 引用 (帖内工具实现)
我认为TCP/IP本身就是一种互操作平台,是和UNIX紧密结合的操作系统的一部分。TCP/IP本身就可以实现不同电脑间共享信息和互操作,并不需要再借助浏览器、html、javascript等多余的东西。
最多,在目前的UNIX Linux Windows中增加一个SandBox协议,来安全执行来自网上的程序。
(看了你们的帖子,讲了那么多Html5等等,其实核心就是个安全执行本地代码的SandBox而已,浏览器的其他功能都没有单独存在的必要了)
我的灵感来自机器人。因为我知道未来的互联网终端肯定相当一部分是机器人。。。我看到一家startup做的机器人系统用的是工业Ethernet,TCP/IP,加上一种类似于UNIX的ROS操作系统。这样的系统,可以直接运行其他公司和大学的机器人控制程序,也就是直接跨平台跨地区的互操作。这样的东西就是在一台机器人上运行来自服务器或其它地方的程序代码,或者互相分享视频语音。这样的东西都不需要什么浏览器就行,那么说明浏览器其实不是一个必要的东西。TCP/IP本身就具备这些功能。
不懂,进来看看
执行起来当然效率就要差些,如果把浏览器作为操作系统的界面或核心,那就等于完全新的体系了,动作应该不会小,起码现在的应用很多都要推翻从来。
毕竟现行的体系里面很多资源是基于本地的,完全基于网络的现在还没有吧?具体设计上应该也会有很大的不同。
说简单一点,TCP/IP只提供一个信息传递的通道,信息的内容和对信息的操作和这个通道无关。
TCP只是一个数据传输协议,至于传输的是什么内容、这些内容用什么形式封装、最终会起到什么作用,TCP根本就不关心,和UNIX也没什么关系。数据内容的封装和解释是应用层的活儿,浏览器就是工作在应用层的一种程序。由于网页浏览的最终信宿是人,所以浏览器还提供数据和人交互的界面。至于你说的机器人系统,完全类似。传输的数据到底是命令还是媒体文件,要通过程序进行识别、拆包,在这里,这个程序就和浏览器类似,起到机器人和数据交互的功能。这个程序也好,浏览器也好,在逻辑上完全是一种东西,而且它们和传输协议到底是TCP还是其他的什么并没有关系。如果熟悉分层网络模型的话,就不会犯这种混淆概念的错误。
网络分层协议
另外,从理论上讲,以及从实践上讲,所有的计算机语言其实都是不必要的。因为,所有的语句都可以用二进制代码实现。如果你够强的话,你的程序将是效率最高的。:-)
才有此说。
这么完备的协议,除了为信息提供通道以为,其实已经包含了信息分类和导向。
而浏览器+html+javascript是对这个协议的过度包装。这个过度包装非常不自然,而且凭空耗费大量资源。过度包装的信息并没有简化编程和传输。
传输的内容和封装形式当然要相关。不然就不是合理必要。为什么要有七层协议,就是针对不同内容的信息进行分类,尽量简化封装,做到最大合理性。
浏览器当然可以提供人交互界面。但本来OS就有人机交互界面。中间横插一个浏览器非常不自然,也不合理必要。浏览器是一个程序,但不是一个合理存在的程序。我们需要的是一个在TCP/IP基础上的交互协议,这个协议可以直接由OS支持,而不是由某个特殊的程序解读这个协议。
而其实OS上运行的所有程序,都需要网络交互,既要互相交换信息,也要交互操作,在不同机器上执行对方代码。这个要求绝不仅仅是浏览器需要,其实未来的所有代码都有这个需求。
另外,从理论上讲,以及从实践上讲,所有的计算机语言其实都是不必要的。因为,所有的语句都可以用二进制代码实现。如果你够强的话,你的程序将是效率最高的。:-)
××××××××××××××××××××××
是的。比如C是原生于UNIX上的,最高效的方式。python是编程简介而明白的。这些语言的存在都有理由。
而浏览器+html+javascript的组合,既不高效也不简洁明朗。
我考虑的是开源社区,应当考虑这个的可能性。
直接在UNIX和TCP/IP之间建立一个协议。从UNIX方面,定义一个SandBox层,执行网上的程序,可以直接在SandBox中执行本地代码;从TCP/IP方面,再做一层包装,将WWW协议改造成直接归类封装,而不需要html.
html只是当时仅有文本时代的权益之计,本无存在必要。
可以当作开源社区的先行尝试。
(Linux这样的社区,仅仅模仿商业软件的功能,仅仅做到了普及工作,过去为科技进步本身的贡献太小了。)
兄弟把你的思想写成论文。你的观点已经直接触及网络的核心思想了。应该写成一篇论文,投到IEEE或者ACM的会议或者杂志去。
。。。
在linux内核上,建立新的协议,直接支持网络上的程序在本地SandBox上执行。而浏览器仅仅是支持这个协议的一个程序而已。OS本身原生就支持这种协议,这样浏览器成了可有可无的东西,或者说,OS上的所有程序,都可以直接实现浏览器到所有功能。
而慢慢地,javascript也将变成OS浏览协议支持的众多程序之一。
不过我认为google的步子太缓。开源社区应当迈出更大的探索步子。直接甩开浏览器+html+javascript的框架。而由网络交互协议代替。
一是走研究的路子。从大学,研究所或者开源社区的一些以研究为目的的,不管怎么说,都是深入到计算机,网络的核心理念,提出简单,但是可以扩充的模型,以获得同行(理论),或者市场(实践)的认可。比如网络的七层分层模型,就只不过是诸多网络模型中的一个。另外的分层模型不是没有。
二是走商业的路子,由大公司出钱出力,不管是否真的在理论上领先,但是一定要占据某个市场的热点,快速获得市场/同行的跟踪,这就是所谓的事实上的标准。事实上的标准不必然是大家都喜欢的,相反往往理论上看是先进的却往往得不到很多用户的认同,而只能在象牙塔里边暂时待着。
不管哪一个路子,都在不断推动计算机,网络的发展。而且,我们也可以从历史看到好多相关的成功的,不成功的例子。
所以说,兄弟,既然觉得有价值,那么,就开一个小网站,写一个demo实现你的想法吧。内容不必多,但是一定要与现有的东西有区别,有比较。到时候,会有更多的讨论的。:-)
用二进制取代html文本,能强到哪里去呢?网络带宽已经不是瓶颈了。