BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Lively Kernel: Web编程从一开始应该如何去做?

| 作者 Alexander Olaru 关注 0 他的粉丝 ,译者 宋玮 关注 0 他的粉丝 发布于 2008年2月22日. 估计阅读时间: 6 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

作为在Sun实验室启动的实验项目,Lively Kernel致力于给Web编程带来简单性、通用性和灵活性,就像我们已经熟知了三十年的桌面编程一样,而且利用JavaScript的动态方面,使用构建在系统本身内部的工具,使其可以即时创建、修改和部署应用。

在一篇Contrarian Minds的文章中,该项目的领导者Dan Ingalls,就该项目如何开始提供了一些背景信息,并且表达了他对于Web编程开始阶段的观点:

当人们决定去做Web时,他们从文本标记语言开始。这是大退步。HTML之所以卖座是因为它有链接。它是突然间受到欢迎的,这就是Web。事实是有大量的计算机科学和图形技术可以利用几乎所有计算机上的文本和图形来达到同样的目的,但是人们在开做Web时并没有这种心思。

随着时间推移,人们开始想要的更多而且事情变得更加复杂:

因此在上面你有了一个文档对象模型,其上加上样式单,在样式单上又增加了JavaScript,以试图获得一些动态行为——所有这些用一个动态语言和一个象样的图形模型即可轻易搞定。对我们来说,看起来如果你从一个动态语言和结构化的图形开始(类似于八十年代的桌面系统),那么即使是基于Web的应用,也可以像最好的桌面软件一样变得生动和易于交互。

Lively Kernel和相同领域的其它系统之间的主要区别是:该项目的焦点在于统一。相对于当前许多使用了多种多样技术(如HTML、CSS、DOM、JavaScript和XML)的客户端Web框架,Lively Kernel的目标是使用最小数量的底层技术来建立一个平台。特别是,所选底层技术是JavaScritp,因为其在Web浏览器中是普遍可用,而且其语法类似于其他语言如C++和Java。因此,按照Ingalls地说法,Lively Kernel提供了新的选择:

在一个浏览器中有你所必须的一切,那里有动态语言。它可能不是你最喜欢的,但是它也不差。还有一个图形系统。不是最好的,但是也不赖。所有这些与简单的用户界面联系起来,你会很开心,就像人们醉心于计算技术一样。我不只是指消遣的快乐,还被其创造性所鼓舞。它让你有一种想去做些很酷的素材的冲动。

Lively Kernel的主要特性包括:

  • 通过Morphic用户界面框架,用JavaScript编程访问用户界面。用户界面是用一个大多数浏览器熟悉的一个基于事件的编程模型来构建的。
  • 小的Web编程环境和计算内核允许平台既可作为集成开发环境(IDE)的功用,也可使整个系统自包含且能够即时改进和扩展其自身。
  • 通过使用异步HTTP的异步网络,类似于AJAX。

Lively Kernel的一个基本的组件Morphic,它是一个用户界面框架,其支持可组合的图形对象,拥有显示对象和使对象产生动画效果、处理用户输入、以及管理底层系统资源(如显示、字体和颜色映射)所必须的机制。Morphic最初构建在Self编程系统中,后来并入Squeak Smalltalk环境中了。

至于对浏览器的图形引擎的低级访问,Lively Kernel则依赖于Scalable Vector Graphics(SVG)图形语言。SVG是一个W3C规范,被大多数浏览器所支持,而且可以通过类HTML声明语法以及JavaScript编程来访问其功能。Internet Explorer图形能力是通过Vector Markup Language(VML)来提供的,但是Lively Kernel还不支持VML,而在运行Lively Kernel应用程序方面,Safari提供了最好的性能和体验。

正如该项目FAQ页面所描述的,名字中选用“Kernel”是因为该系统:

  • 仍然相当小——小于一万行JavaScript代码
  • 意图为自包含的和可扩展的——仅使用系统自身就可以增强该系统的能力
  • 展现出各种类似于操作系统的品质——比如同时运行多个应用程序的能力

Lively Kernel不需要任何安装或插件,只需点击一个链接即可启动系统,所有Lively Kernel代码被装载进浏览器运行。其源代码按照GPL许可开放源码,可以从这里下载。该项目网站的一份免责声明说明Lively Kernel仍是“一个试验品及研究环境,仍处在早期阶段,基于这一点它可能更适合于学生、计算技术狂热者、甚至是孩子们,而不适合商业网站设计者。”

Lively Kernel需要浏览器支持新的SVG实现,它或许不能给我们减轻过去网站编程方面的一些复杂性,但是它是一个初期承诺,承诺带来一些技术的统一且对于Web程序员来说可能更易于使用。你可以“进入Lively Kernel世界”,获取交互性教程或者从这里找到更多关于该项目的信息。

查看英文原文:Lively Kernel: How Web Programming Should Have Been Done From the Beginning?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

希望不是另外一个轮子 by Zoom Quiet

web 开发到根儿上,就是规范的数据和不规范的HTML间的PK,
如果真的有个规范的中间层通过其它模式间对立抺平的话,
SE将吐血好些时间的...

可行吗? by Zhang wenjun

那写起来,不是更烦了。更恐怖了。调错,还不死啊。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT