【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

  • 2008-02-21
  • 本文字数:1760 字

    阅读完需:约 6 分钟

作为在 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?

2008-02-21 08:16723
用户头像

发布了 150 篇内容, 共 43.3 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

大数据应用场景下,标签策略如何实现价值最大化?

袋鼠云数栈

标签体系

软件测试/测试开发 | 这些常用测试平台,你们公司在用的是哪些呢?

测试人

软件测试 自动化测试 测试开发

软件测试/测试开发 | 黑盒测试方法论—等价类

测试人

软件测试 自动化测试 测试开发 测试用例 测试方法

Bytebase:让数据库管理和协作变得无缝

天黑黑

MySQL 云原生 dba 数据库管理工具

架构训练营模块六作业

gigifrog

抽丝剥茧!为您揭秘ChatGPT背后的数据库

华为云开发者联盟

数据库 华为云 ChatGPT 企业号 2 月 PK 榜 华为云开发者联盟

手把手教大家在 gRPC 中使用 JWT 完成身份校验

江南一点雨

Java gRPC

怎么写一份好的接口文档?

Liam

Java API 免费API接口 API接口 API接口文档

BlueShore Financial 通过 F5 筑起财务安全防线

F5 Inc

自动化 金融 WAAP

详解神经网络基础部件BN层

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

科技“新贵”ChatGPT缘何“昙花一现”,仅低代码风靡至今

这我可不懂

低代码 ChatGPT

《Linux命令行与shell脚本编程大全》有奖书评活动!

图灵社区

Linux shell脚本编程 shell脚本

海量并发低延时 RTC-CDN 系统架构设计(下)

网易云信

实时音视频

软件测试/测试开发 | 黑盒测试方法论—边界值

测试人

软件测试 自动化测试 测试开发 测试用例 测试方法

GitHub标星30K+的Java面试八股文长啥样?

小小怪下士

Java 程序员 面试

Zebec生态持续深度布局,ZBC通证月内翻倍或只是开始

西柚子

《Linux命令行与shell脚本编程大全》有奖书评活动!

图灵教育

Linux shell脚本编程

数据服务门槛再提升,这个“TOP1玩家”凭何再度领军?

澳鹏Appen

人工智能 自动驾驶 智能驾驶 数据标注

CodeArts Snap:辅助你编程的神器

华为云开发者联盟

云计算 华为云 企业号 2 月 PK 榜 华为云开发者联盟

【立哥】【每日一个小知识】“奔”字为什么这样写?

Lee Chen

软件测试 | 接口测试文件上传测试

测吧(北京)科技有限公司

测试

软件测试/测试开发 | 做为测试,那些不得不掌握的测试技术体系

测试人

软件测试 自动化测试 测试开发

缤纷三月,安势信息邀您共话企业开源风险治理

安势信息

开源 安全合规 清源CleanSource SCA 安势信息 开源风险治理

软件测试/测试开发 | 测试人员必须掌握的测试用例

测试人

软件测试 自动化测试 测试开发 测试用例

HarmonyOS Connect认证测试

HarmonyOS开发者

HarmonyOS

【网易云信】海量并发低延时 RTC-CDN 系统架构设计(下)

网易智企

IM RTC 实时音视频

2023年1月用户体验GX评测:商业银行抢抓新春营销旺季,多措并举持续提升用户体验

易观分析

金融 银行 经济

关于云原生,我问了ChatGPT几个问题......

拓维信息

DevOps 云原生 ChatGPT

软件测试 | 接口自动化测试代理配置

测吧(北京)科技有限公司

测试

Deltatech Gaming Ltd. 携手 F5 缔造更安全的在线游戏体验

F5 Inc

安全 游戏 waf

ChatGPT 可收费的那种产品该如何实现?一点尝试 | 社区征文

非喵鱼

Java openai ChatGPT

Lively Kernel: Web编程从一开始应该如何去做?_Java_Alexander Olaru_InfoQ精选文章