{"title":"面向未来的个人计算系统建设","authors":"Y. Ohshima","doi":"10.1145/2541329.2541346","DOIUrl":null,"url":null,"abstract":"The software for today's personal computing environments has become so complex that no single person can understand an entire system. Our group's early experiences with personal computing led us to understand that the essential model of personal computing can be expressed much more compactly. Our group engaged in a project (called the STEPS project) to materialize that vision over the last six years.\n Several interesting results came out of the STEPS project. There are various meta-language implementations. A new stream-processing language called Nile was invented. The syntax of Nile allows a fully-featured vector graphics engine called Gezira to be written in a clean, mathematical manner in less than 500 lines of code. We also wrote a dynamic, yet declarative, graphical user interface framework in which we built a universal document editor.\n From the experience with the STEPS project, we are exploring the next steps; one of the directions is to incorporate the idea of using multiple constraint solvers to build a system. Solvers can help stronger \"negotiation\" between objects and languages, and help the system to be written in a more declarative manner. Another direction is to take the idea of loose-coupling to the next level; objects should not know about other objects directly but should always negotiate and \"find\" other objects.\n As the basic concept for this next stage, we are using the \"Internet all the way down\" analogy. The Internet has proven itself to be a great engineering feat: it scaled from just four nodes to billions of nodes without ever needing a full shutdown for maintenance. It is also likely that we can take out a random 10% of the Internet's nodes and it will still keep running. By building a personal computing environment that consists of such nodes, or objects, perhaps we can make it never need to be restarted.\n Interestingly, J. C. R. Licklider already foresaw the need for program components to discover each other on a huge network of computers. From that viewpoint, what we are trying to do is to carry the vision forward.","PeriodicalId":287804,"journal":{"name":"Workshop on Programming based on Actors, Agents, and Decentralized Control","volume":"39 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Toward the future of personal computing system construction\",\"authors\":\"Y. Ohshima\",\"doi\":\"10.1145/2541329.2541346\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The software for today's personal computing environments has become so complex that no single person can understand an entire system. Our group's early experiences with personal computing led us to understand that the essential model of personal computing can be expressed much more compactly. Our group engaged in a project (called the STEPS project) to materialize that vision over the last six years.\\n Several interesting results came out of the STEPS project. There are various meta-language implementations. A new stream-processing language called Nile was invented. The syntax of Nile allows a fully-featured vector graphics engine called Gezira to be written in a clean, mathematical manner in less than 500 lines of code. We also wrote a dynamic, yet declarative, graphical user interface framework in which we built a universal document editor.\\n From the experience with the STEPS project, we are exploring the next steps; one of the directions is to incorporate the idea of using multiple constraint solvers to build a system. Solvers can help stronger \\\"negotiation\\\" between objects and languages, and help the system to be written in a more declarative manner. Another direction is to take the idea of loose-coupling to the next level; objects should not know about other objects directly but should always negotiate and \\\"find\\\" other objects.\\n As the basic concept for this next stage, we are using the \\\"Internet all the way down\\\" analogy. The Internet has proven itself to be a great engineering feat: it scaled from just four nodes to billions of nodes without ever needing a full shutdown for maintenance. It is also likely that we can take out a random 10% of the Internet's nodes and it will still keep running. By building a personal computing environment that consists of such nodes, or objects, perhaps we can make it never need to be restarted.\\n Interestingly, J. C. R. Licklider already foresaw the need for program components to discover each other on a huge network of computers. From that viewpoint, what we are trying to do is to carry the vision forward.\",\"PeriodicalId\":287804,\"journal\":{\"name\":\"Workshop on Programming based on Actors, Agents, and Decentralized Control\",\"volume\":\"39 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2013-10-27\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Workshop on Programming based on Actors, Agents, and Decentralized Control\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2541329.2541346\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Workshop on Programming based on Actors, Agents, and Decentralized Control","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2541329.2541346","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
摘要
当今个人计算环境的软件已经变得如此复杂,以至于没有一个人能够理解整个系统。我们小组在个人电脑方面的早期经验使我们认识到,个人电脑的基本模型可以用更简洁的方式表达。在过去的六年里,我们的团队参与了一个项目(称为STEPS项目)来实现这一愿景。STEPS项目产生了几个有趣的结果。有各种各样的元语言实现。一种叫做Nile的新的流处理语言被发明了。Nile的语法允许一个功能齐全的矢量图形引擎Gezira用不到500行代码以简洁、数学的方式编写。我们还编写了一个动态的、声明式的图形用户界面框架,并在其中构建了一个通用文档编辑器。根据STEPS项目的经验,我们正在探索下一步;其中一个方向是结合使用多个约束求解器来构建系统的思想。求解器可以帮助对象和语言之间进行更强的“协商”,并帮助系统以更具声明性的方式编写。另一个方向是将松耦合的思想提升到下一个层次;对象不应该直接知道其他对象,但应该始终协商并“找到”其他对象。作为下一阶段的基本概念,我们将使用“互联网一路向下”的类比。互联网已经证明了自己是一项伟大的工程壮举:它从仅仅4个节点扩展到数十亿个节点,而无需完全停机进行维护。也有可能我们可以随机取出10%的互联网节点,它仍然会继续运行。通过构建由这些节点或对象组成的个人计算环境,也许我们可以使其永远不需要重新启动。有趣的是,J. C. R. Licklider已经预见到程序组件需要在一个巨大的计算机网络上相互发现。从这个角度来看,我们正在努力做的是将愿景向前推进。
Toward the future of personal computing system construction
The software for today's personal computing environments has become so complex that no single person can understand an entire system. Our group's early experiences with personal computing led us to understand that the essential model of personal computing can be expressed much more compactly. Our group engaged in a project (called the STEPS project) to materialize that vision over the last six years.
Several interesting results came out of the STEPS project. There are various meta-language implementations. A new stream-processing language called Nile was invented. The syntax of Nile allows a fully-featured vector graphics engine called Gezira to be written in a clean, mathematical manner in less than 500 lines of code. We also wrote a dynamic, yet declarative, graphical user interface framework in which we built a universal document editor.
From the experience with the STEPS project, we are exploring the next steps; one of the directions is to incorporate the idea of using multiple constraint solvers to build a system. Solvers can help stronger "negotiation" between objects and languages, and help the system to be written in a more declarative manner. Another direction is to take the idea of loose-coupling to the next level; objects should not know about other objects directly but should always negotiate and "find" other objects.
As the basic concept for this next stage, we are using the "Internet all the way down" analogy. The Internet has proven itself to be a great engineering feat: it scaled from just four nodes to billions of nodes without ever needing a full shutdown for maintenance. It is also likely that we can take out a random 10% of the Internet's nodes and it will still keep running. By building a personal computing environment that consists of such nodes, or objects, perhaps we can make it never need to be restarted.
Interestingly, J. C. R. Licklider already foresaw the need for program components to discover each other on a huge network of computers. From that viewpoint, what we are trying to do is to carry the vision forward.