【 10月12号外电头条】Lars Bak——这位来自谷歌的工程师曾经凭借其V8 JavaScript解释程序颠覆了火狐浏览器的速度神话。如今根据他的说法,谷歌推出的全新Web开发语言Dart很可能与Smalltalk存在着种种相似之处。不过它似乎同时也在将Web发展引向一条与此前截然不同的另类道路。在今天于丹麦举行的Web开发者大会上,来自谷歌及其旗下Chromium开源开发团队的成员们终于揭开了全新语言Dart的神秘面纱,谷歌同时承诺该语言将为Web编码工作带来全新的构造方式。

要让Dart正常运作,我们需要部署一套全新的虚拟机,这种要求无形中使其与Java、Adobe Flash以及微软Silverlight天然形成了竞争关系。不过从体系结构角度而言,Dart就目前来看将更多地依托于浏览器。
谷歌的计划是意欲将Dart虚拟机打造为对浏览器现有JavaScript引擎的一种补充。换句话来说,它将把Dart代码加以重组并生成功能相同的JavaScript代码。尽管谷歌一直在回避讨论Dart嵌入全部浏览器之中的可能性,但在今早发布的博文中,Bak明确指出在将Dart虚拟机整合到谷歌Chrome浏览器方面,“我们已经有计划探索这一方案。”
终于,我们迎来了类
Dart语言存在的意义是为JavaScript提供辅助功能,因为后者随着时间的推移,其在“开放式Web”中的分布式应用程序方面已经无法胜任功能上的核心角色。比起结构化更彻底、面向对象特性更明确的C#及Java,JavaScript工作起来总会带来一些无法清除的累赘因素。而与诸如Python、Ruby以及D之类更为智能化的动态语言相比,JavaScript又显得比较啰嗦,无法迅速切入主题。
随着Dart语言首部教程的问世,Bak及其架构团队以JavaScript的基础为起点,向其中加入了大量关键性Java要素,并通过对翻译程序潜在条件的改进大大优化了语言的整体简洁性。
对于JavaScript而言,实际上存在着一些能够使其更偏面向对象的类函数,而这些类函数所使用的正是关键字函数。我们可以对那些恰好具备属性的函数进行声明,而该函数将作为一种类函数嵌入其中。不过这种处理方式的问题在于,该类函数本身并没有得到重复调用,而是每次都以重新创建的形式出现,因此将该类函数以绑定的方式添加至函数原型中才是上佳的解决办法。当然,我们也可以对通用实例进行加值以实现对某种对象的声明,这可能需要利用常量对内部结构加以定义。接下来,从常量中选取一个,进而为函数赋值的做法也就使得该函数在某种意义上具备了变量值。或者我们也可以对加值进行声明,并使用整个函数的结果为其赋值,这就相当于假设该函数是对象的惟一组成部分。
以上方法都不是特别理想。在V8以及Mozilla出品的TraceMonkey这些最新一代JavaScript引擎中,大部分的工作负载都是在将那些由不理想的指令所带来的“垃圾代码”转化为少些混乱、多些严谨的有序代码。
所以从理论角度出发,运行有Dart虚拟机的浏览器也许可以摆脱性能表现低下的噩梦,因为JS翻译程序所要处理的代码已经更为有序且易于理解。当然这只是理论。
Dart重新将类的概念以Java程序员们最为熟悉的方式引入。其中几项调整使得定义工作更为简洁;举例来说,反向指针可能会被用于成员函数的声明(例如用 Ball.throw (this.distance)代替 Ball.throw (distance); this.distance = distance;)。而接口也将为那些通用于多个类的属性及函数提供支持;一个类启用一个接口,这不正是大家一直以来所期望的结果么。
至今仍不明确:事件的触发
对那些始终关注Dart项目的JS开发人员们来说,其中一大戏剧性结构变化也许会激起他们的广泛反对。JavaScript函数通常是被粘贴于整个页面当中的,而且尽管其中某部分充当的是main()函数,大多数函数仍然是由浏览器事件所触发,包括window.onload。而在Dart中,每个
基本
文件
流程
错误
SQL
调试
- 请求信息 : 2026-02-16 18:51:21 HTTP/1.1 GET : /article/dhhdcds.html
- 运行时间 : 0.0702s ( Load:0.0033s Init:0.0005s Exec:0.0620s Template:0.0044s )
- 吞吐率 : 14.25req/s
- 内存开销 : 2,223.80 kb
- 查询信息 : 12 queries 5 writes
- 文件加载 : 36
- 缓存信息 : 0 gets 2 writes
- 配置加载 : 130
- 会话信息 : SESSION_ID=i87lb4bj5va9k44059jn4fpuc6
- /home/wwwroot/jxjierui.cn/index.php ( 1.12 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/ThinkPHP.php ( 4.61 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Think.class.php ( 12.26 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Storage.class.php ( 1.37 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Storage/Driver/File.class.php ( 3.52 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Mode/common.php ( 2.82 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Common/functions.php ( 53.56 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Hook.class.php ( 4.01 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/App.class.php ( 13.49 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Dispatcher.class.php ( 14.79 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Route.class.php ( 13.36 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Controller.class.php ( 11.23 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/View.class.php ( 7.59 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Behavior/BuildLiteBehavior.class.php ( 3.68 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Behavior/ParseTemplateBehavior.class.php ( 3.88 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Behavior/ContentReplaceBehavior.class.php ( 1.91 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Conf/convention.php ( 11.15 KB )
- /home/wwwroot/jxjierui.cn/App/Common/Conf/config.php ( 2.12 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Lang/zh-cn.php ( 2.55 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Conf/debug.php ( 1.48 KB )
- /home/wwwroot/jxjierui.cn/App/Home/Conf/config.php ( 0.32 KB )
- /home/wwwroot/jxjierui.cn/App/Home/Common/function.php ( 3.33 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Behavior/ReadHtmlCacheBehavior.class.php ( 5.62 KB )
- /home/wwwroot/jxjierui.cn/App/Home/Controller/ArticleController.class.php ( 6.11 KB )
- /home/wwwroot/jxjierui.cn/App/Home/Controller/CommController.class.php ( 1.60 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Model.class.php ( 60.11 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Db.class.php ( 32.43 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Db/Driver/Pdo.class.php ( 16.74 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Cache.class.php ( 3.83 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Cache/Driver/File.class.php ( 5.87 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Template.class.php ( 28.16 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Template/TagLib/Cx.class.php ( 22.40 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Template/TagLib.class.php ( 9.16 KB )
- /home/wwwroot/jxjierui.cn/App/Runtime/Cache/Home/7540f392f42b28b481b30614275e4e55.php ( 13.96 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Behavior/WriteHtmlCacheBehavior.class.php ( 0.97 KB )
- /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Behavior/ShowPageTraceBehavior.class.php ( 5.24 KB )
- [ app_init ] --START--
- Run Behavior\BuildLiteBehavior [ RunTime:0.000005s ]
- [ app_init ] --END-- [ RunTime:0.000024s ]
- [ app_begin ] --START--
- Run Behavior\ReadHtmlCacheBehavior [ RunTime:0.000150s ]
- [ app_begin ] --END-- [ RunTime:0.000164s ]
- [ view_parse ] --START--
- [ template_filter ] --START--
- Run Behavior\ContentReplaceBehavior [ RunTime:0.000050s ]
- [ template_filter ] --END-- [ RunTime:0.000067s ]
- Run Behavior\ParseTemplateBehavior [ RunTime:0.003497s ]
- [ view_parse ] --END-- [ RunTime:0.003511s ]
- [ view_filter ] --START--
- Run Behavior\WriteHtmlCacheBehavior [ RunTime:0.000073s ]
- [ view_filter ] --END-- [ RunTime:0.000082s ]
- [ app_end ] --START--
- 1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') LIMIT 1' at line 1
[ SQL语句 ] : SELECT `id`,`pid`,`navname` FROM `cx_nav` WHERE ( id= ) LIMIT 1
- 1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') LIMIT 1' at line 1
[ SQL语句 ] : SELECT `id`,`navname` FROM `cx_nav` WHERE ( id= ) LIMIT 1
- 1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
[ SQL语句 ] : SELECT `id`,`navname` FROM `cx_nav` WHERE ( pid= )
- [8] Undefined index: pid /home/wwwroot/jxjierui.cn/App/Home/Controller/ArticleController.class.php 第 47 行.
- [2] file_put_contents(./App/Runtime/Temp/4aec0ce209e75a2ffe5543ea3e823fbe.php): failed to open stream: Permission denied /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Cache/Driver/File.class.php 第 132 行.
- [8] Undefined index: db_host /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Db.class.php 第 120 行.
- [8] Undefined index: db_port /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Db.class.php 第 121 行.
- [8] Undefined index: db_name /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Db.class.php 第 122 行.
- [2] file_put_contents(./App/Runtime/Temp/ce98a21b8c3aff52b3344dc2d5d58106.php): failed to open stream: Permission denied /home/wwwroot/jxjierui.cn/ThinkPHP/Library/Think/Cache/Driver/File.class.php 第 132 行.

0.0702s
