![]() |
1
4
我在想这个。我打算写一篇关于它的博客文章,我不妨从这里开始。在编程中,我认为我们需要的不仅仅是一种新的输入法,还需要一种新的隐喻。这是一个三层的东西。模型隐喻界面。 我最近越来越想 语言 是表示计算的拙劣比喻。语言是我们用来交流的东西。你可以把一个程序看作是与计算机的通信,同时也是与其他程序员的通信。但是除了文字之外,还有其他的交流方式。我正在制作一个列表,请随意编辑这篇文章,为列表添加更多内容。 沟通方法
编程的另一个隐喻是构建。下面是一些构建功能性东西的可能方法,它们可以构成编程接口的基础 构建功能性事物的方法
另一种指定计算的方法是通过定义。 定义方法 -约束条件 -分类 -集合论 -属性 -症状 -逻辑表 -规则 -铁路(如铁路图) 但请记住我们为什么要这么做。现在编程语言的工作方式显然存在一些弱点(否则我们就不想开发新语言),所以在设计新语言时,让我们记住它们 当前语言的问题
|
![]() |
2
2
几乎每一次尝试使用非文本编程语言的努力都失败了。如果没有文本语言,很难做到既精确又高效。 用户界面的很多工作都是为了制作更好的工具。例如,您可以只使用一个简单的文本编辑器进行编程,也可以使用Visual Studio或Eclipse等成熟的IDE。除此之外,还有可视化和设计工具,比如Rational Rose。这些工具提供了探索和/或修改底层代码的补充方法。 |
![]() |
3
1
我认为,即使使用非文本(例如图形、语音识别、直接神经接口)输入法,对编程内容进行文本表示也是非常重要的。 一个程序基本上类似于一个菜谱:“要实现这一点,请完成以下步骤”。文本描述是对这个配方的总结。如果您需要制作配方(“单击此菜单,使用此对话框…”)的配方,文本交互是不可能的,那么你就失去了与你的作品的联系。 我认为程序员希望使用其他输入/编程方法与他使用的语言中的概念缺陷有关。最近我读到有人被指派去写一堆setter和getter——用一种更好的语言,这将是一份元编程设施的工作。 关于图形编程:我输入单词“for”比用鼠标画三角形要快得多。这是如此,即使这幅画是“方便”让我从一些菜单上得到这个三角形。编程时,你会使用数百种不同的符号;如何组织它们,使其无需输入即可访问?嘿,我知道,键盘快捷键怎么样。。。等待 键盘是目前向计算机传递意义最快的工具,而一段文字是在计算机上存储意义最简洁、最有用的表示形式。 |
![]() |
4
1
像多点触控这样的东西可能会提高代码创建的机械效率,但我认为这不是编程中的主要问题。当考虑到分析、设计、文档和测试算法所需的所有工作时,实际上键入代码所花费的时间是如此之小,以至于省去按键或鼠标点击在这里或那里不会有太大的作用。 在我看来,如今编程的主要挑战不是特殊符号或语法,它们相对较少,大多是直观的,接近于接近C约定的事实标准。在我看来,编程中的主要挑战是理解更大的代码单元,即API和程序本身的函数和类:什么是可用的,每个类做什么,每个函数需要和返回什么,在哪里有相似之处和差异,以及它们如何结合到一个体系结构中。我认为,最严重的问题是,对于代码可能遇到的所有可能的条件组合,没有理解类和函数中的微妙之处。 也许AR可视化技术可以帮助程序员和分析人员看到和操作代码结构或流程的大图,但坦率地说,更多传统的UI技术和控件(如表、表单和菜单)可以完成很多工作,这些技术和控件尚未进入编码世界。后来的Gupta/Centura编程语言使用了树状控件,使其更容易看到更大的代码结构。Intellisense是促进代码创建的正确想法,但还可以做更多的工作,为开发人员提供更大范围内理解和分析代码的工具。Roedy Greens在数据库中的源代码是一个良好的开端( http://mindprod.com/project/scid.html ),允许开发人员智能地查询代码库。更好的是一个编程UI 推动 对开发人员进行分析,明确开发人员在给定程序设计时需要考虑的内容。 |
![]() |
5
0
已经有过几次这样的尝试。 APL,它使用一系列特殊符号来表示每个操作。这仍然以“J”语言的形式存在,等等,它用两个或三个字母的ASCII字符组合替换了所有符号。 IBMs视觉年龄约为1998年。有一个图形化的IDE,你可以在其中拖动一个“套接字”图标到你的工作空间,并将其连接到一个“流”图标。它只是产生了C++,而且,在最初的G-WHZZ之后,大多数程序员发现了“文本视图”选项并坚持下去。 Suns Fortress——仍然是文本,但它允许您使用unicode符号,如√ 作为操作员。不过,大多数已发布的示例程序似乎都坚持使用ASCII字符集。 这里有两个问题。 文本非常非常好!数千年来,人们一直能够画出非常好的图片,但亚马逊销售的99%的书籍只包含简单的文本。这可能有一个很好的理由。 虽然“插座”和相关“连接”点的图形可能很容易使用,但开发起来却不容易。你现在需要一个图形设计师来设计一个“错误消息显示图标”,并定义一组关于如何以及在何处使用图形的规则,而不是做一个方法签名和一点Javadoc。 |
![]() |
6
0
等待你需要的不仅仅是文本编辑器和编译器/链接器? |
![]() |
7
0
某种象征性场景的全部目的实际上可以归结为基于GUI的开发,这是VisualStudio慢慢关注的一个主题,但我们离它还有很多年。 创建某种代表FOR循环的符号不会加快开发速度。如果你想更快地编写代码,只需使用任何像样的IDE已经支持的拖放代码块。 |