在整理硬盘上的文件的时候,发现一个名为 Seaside-12-1-2005.zip,不知何物,不过肯定是之前在 IRC 中听说的东西,有心就记下了去下载了。打开 zip 文件,却只有一个 .image 和 .change 文件,看了文件头,都不是压缩包。
于是用 google 搜了一下,找到官方站点:http://seaside.st/ 才知道这是个 Web 应用框架,不过却是用 Smalltalk 来写的。早就对这种语言有所敬仰,不过实在没有机会和需要去接触它,心里面总有高高在上,不可近观的感觉。从站点中的内容了解到,Seaside 的运行需要一个叫做 Squeak 的东西,好像是一个开发环境或者开发工具,再辗转到它的官方站点:http://www.squeak.org/ 下载了一个 windows 版本的 zip 包,打开径直运行其中的 Squeak.exe ,出来一个窗口,窗口里面却是另一番天地,有很多可伸缩的导航条,工具栏,左键,右键都可以呼出复杂的菜单。样式有些 Linux 下面图形界面的感觉,色彩充满了童趣。随便走马观花,也没看出什么究竟来,倒是点出了一个像是幻灯片一样的东西,不但可以浏览,还可以修改编辑。不知所以然。
回过头来继续看,大致上 Squeak 是一个 Smalltalk 写的虚拟机,也就是 Virtual Machine 。介绍说它是个容易调试,分析和改变的系统,并且充分体现了 Smalltalk 语言的哲学理念。而 Seaside 只是一个 Smalltalk 的类库,一个用于构建 MVC 结构的 web 框架类库,要让它跑起来,就需要虚拟机 Squeak 了,以便集成其他的类库一起工作。
按照 http://beta4.com/seaside2/tutorial.html 教程中阐述的步骤,在 Squeak 中安装了若干类库,以及 Seaside(好像没用到之前下载的 image 文件哦),然后在 Workspace 窗口中年铁一段代码,并 do it,然后通过 http://localhost:9090/seaside/counter 访问,果然,http 服务起来了,并且看到了简单的计数器的功能实现。
事情并不就此为止,在看到的页面下方还有一条工具栏,点击上面的东西衍生出来极为丰富的功能:你可以配置这个组件(姑且先这样称呼),或者 Halos (你会看到一些页面元素被边框包容起来,可以对包容起来的东西做一系列的操作:察看源代码,渲染;在 web 页上对该组件半自动编程,设置等等),或者查阅内存消耗情况,代码的内部执行过程(Profile)等等。之前所讲到的“容易调试,分析和改变的系统”,可能就是指这些吧。
由于时间问题,我没有在深入下去,不过觉得非常有意思。在回过头来到 Squeak 里面,这次知道了它是虚拟机的概念,并可以在其中启动 KomHttpServer 来提供对 Seaside 所需的 web 服务之后,看待它的感觉又有所不一样了。Squeak 更像一台独立的操作系统,你可以在它上面做任何事情。这回仔细看了看下方菜单栏中的 Widgets ,选了 Movie Player ,然后选择一段 windows 文件系统中的视频文件,hoho,顺畅的就播放起来了,看来 Squeak 确实非常有意思,空闲下来该要好好把玩把玩。
先记下这么多了,还算蛮有收获。就像 Seaside 能够 backtrack 一样,我也要继续整理硬盘了。