Many beloved programming systems are image-based: self-contained worlds that persist both code and data in a single file. Examples include Smalltalk, LISP, HyperCard, Flash, and spreadsheets. Image-based programming avoids much of the complexity of modern programming technology stacks and encourages more casual and exploratory programming. However conventional file-based programming has better support for collaboration and deployment. These problems have been blamed for the limited commercial success of Smalltalk. We propose to enable collaboration in image-based programming via types and structure editing. We focus on the problem of schema change on persistent data. We turn to static types, which paradoxically require more schema change but also provide a mechanism to express and execute those changes. To determine those changes we turn to structure editing, so that we can capture changes in type definitions with sufficient fidelity to automatically adapt the data to suit. We conjecture that typical schema changes can be handled through structure editing of static types. That positions us to tackle collaboration with what could be called version control for structure editing. We present a theory realizing this idea, which is our main technical contribution. While we focus here on editing types, if we can extend the approach to cover the entire programming experience then it would offer a new way to collaborate in image-based programming.


翻译:许多心爱的编程系统都是基于图像的:自足的世界,在单一文件中长期存在代码和数据,例如Smalltalk、LISP、HyperCard、Flash以及电子表格。基于图像的编程避免了现代编程技术堆叠的很多复杂性,鼓励了更多的随意和探索性编程。然而,传统的基于文件的编程对协作和部署提供了更好的支持。这些问题被指责为Smallaltalk的商业成功有限。我们建议通过类型和结构编辑,在基于图像的编程中开展合作。我们侧重于在持续数据上进行机制变化的问题。我们转向静态型,这自相矛盾地需要更多的系统变化,但也提供了表达和执行这些变化的机制。为了确定这些变化,我们转向结构编辑,我们可以以充分忠诚的方式捕捉类型定义的变化,以便自动调整数据。我们推测典型的机制变化可以通过静态类型的结构编辑结构来处理。我们的立场是处理与所谓的结构编辑版本控制的合作。我们提出了一个理论,这是我们的主要技术贡献。我们在这里注重编程方式,如果我们能够扩展新的编程方式,如果我们可以提供新的编程方式,那么,我们就可以扩展新的编程。

0
下载
关闭预览

相关内容

Smalltalk 被公认为历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE)。它对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor,Java 和 Ruby 等。 Smalltalk 特性包括: 极端的面向对象语言。
生动的对象。
易读的库。
【干货书】开放数据结构,Open Data Structures,337页pdf
专知会员服务
16+阅读 · 2021年9月17日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
已删除
将门创投
8+阅读 · 2017年7月21日
Arxiv
5+阅读 · 2018年5月1日
VIP会员
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
已删除
将门创投
8+阅读 · 2017年7月21日
Top
微信扫码咨询专知VIP会员