块编程

图片
你好 我将从一小部分开始。 第一次遇到编程时,您感到失望吗? 我假定程序的创建是通过与一些复杂但非常有趣的工具进行交互的,在其中我可以将自己喜欢的事情(收集构造函数)提升到一个新的水平。 但是,相反,我必须学习如何编写由各种运算符,方括号,字符串和其他文本结构组成的文本文件。 几十年过去了,我学会了编程,我已经忘记了这种失望,但是当我在网络上看到有关Google Blockly和Scratch的消息时,我感到怀旧...

这些工具甚至没有声称自己是专业的,真是太有趣了! 没有文本和汇编-您拖动块即可立即获得结果。 可以为专业人士完成吗? 我相信你可以! 在本文中,我想表达我的看法。

有什么意义?


如果我们放弃编写程序的测试方法,则需要将程序代码的结构及其类型分开。

怎么了


为此,首先,我们需要以其他形式存储源代码。 它们应该是以现有数据存储形式之一(例如json,xml或任何其他形式)对指令和程序数据的描述。 该文件(图1,左)的外观可能很丑陋,并且不遵循任何合理的方式直接对其进行编辑,但是在编程环境中,它将变成块代码(图1,右)。

图片

编程环境本身不处理文本代码,而是处理从中构建程序代码的“块”。

它会给我们什么?


1.首先,我们将摆脱各种语言在语法上的微小差异。 例如,C ++中的代码块用花括号分隔,而Ruby注意关键字...在编辑器中,您可以配置两种程序,其中的任何内容都不会改变。 个人显示设置将使开发人员可以根据自己的喜好查看程序。 另外,我们可以在命名中使用任何字符,包括空格。

图片

2.其次,编写程序的速度将提高。 现在,为了使用类似C的语言编写for语句,我们需要编写for文本本身,然后编写方括号,参数,分号,花括号,然后按Enter。 在我们的版本中,编程环境通过单击某个键组合来插入一个循环,并且只需要输入其参数即可。 例如,按“ f”将把for循环置于光标的位置,并通过按末尾的回车键来制表以输入重复次数和计数器名称。

图片

3.第三,有可能确保独立于程序员的语言。 语言操作符可以用某些字符表示,或者可以用程序员的母语显示关键字。 如果他希望以英语,俄语或其他任何语言来呼叫操作员,则可以在编辑器的设置中选择该语言,然后操作员的姓名“随时更改”。 至于对象和方法的名称,则更为复杂,但是无论如何,如果该程序是由俄罗斯开发人员开发的,则可以用俄语命名所有内容-如果选择这种情况,操作符的名称与对象和方法的名称之间不会有差异-一切都将使用俄语。 这样可以简化不熟悉英语的学生和成年人的学习。 此外,在跨国团队中,可以使用两个名称来命名对象和方法-用英语和开发人员的语言命名。

图片

4.第四,可以更新程序的结构。 如果该标准的新版本中出现了一些新功能,这些功能改变了块设计的外观,则可能会发布旧程序的补丁,这些补丁会自动将它们带入新的外观。 在图4中,您可以看到编程环境可以将哪些旧语言构造转换为新形式。

图片

图片

5.第五,可以用任何方便的方式表示程序的结构。 例如,以三维空间的形式,您可以像计算机游戏一样浏览并编辑三维类和对象之间的关系。

编程环境


这种显示程序的方式将不再允许在简单的文本编辑器中对其进行更改。 要编辑程序,您将需要一个特殊的编程环境。 与传统语言相比,开发此编程环境的第一个版本更加困难,但是有许多方法可以使入门变得更容易。 例如,您可以从数据文件编辑器开始,它允许您以相同的方式-使用块来编辑任何格式(xml,json,yaml等)的文件。 在这种情况下,用户将无需学习这些文件的语法,并且可以通过学习仅在此程序中编辑数据文件来编辑其中的任何文件。

然后是开发一个可以在编辑过程中“即时”构建程序的编译器的任务。 而且在将来,由于不需要解析文本代码,因此提供自动完成功能并向需要“深入”程序代码知识的开发环境添加功能将变得更加容易。 此外,编程环境将“了解”程序所需的所有信息,以便更好地突出显示和重构语法,因为为此所需的所有数据都可以在程序数据文件中不为程序员存储。

结论


我相信,所描述的编程方法将为程序员带来巨大的机会,并将极大地加快和简化应用程序的开发。 但是,在现场的不是战士。 开发此类产品需要强大的方法和资源。 我是一个孤独的人,经常在外面工作-这个项目对我来说太难了……也许如果您对他感兴趣,我们可以一起工作吗?

Source: https://habr.com/ru/post/zh-CN469337/


All Articles