我正在考虑设计一个允许人们以图形方式开发C++代码的应用程序的可能性.当我发现Scratch(参见网站和教程视频)时,我感到很惊讶.
我相信大多数C++都可以用图形表示,除了预处理器指令和可能的函数指针.
您认为哪些C++功能可以(或不是)由图形项表示?这种申请的利弊是什么?它比"普通"C++简单多少?
RECAP和更多:
优点:
直观的
适用于小型应用
有助于避免错别字
缺点:
对于大型(中型)大小的应用程序可能变得不可读
对于有经验的程序员来说,手动编码更快
C++对于这种方法来说太复杂了
考虑到我们 - 我的工作 - 已经有相当多的现有C++代码,我不是在寻找一种全新的编程方式.我正在考虑一种与遗留代码完全兼容的替代编程方式.人们将用于新代码的某种"病毒语言",并且希望最终也会用来替换现有代码(它可能有用).
您如何看待这种病毒式方法?
说到手动和图形编程,我倾向于同意你的答案.这就是为什么理想情况下,我会找到一种方法让用户总是在打字和图形编程之间做出选择.逐行解析器(+部分解释器)可能能够将类型化代码转换为图形设计.这是可能的.让我们全都交叉.
是否有提供打字和图形编程功能的警告我应该仔细考虑和分析?
我已经处理过模板类(更常见的是类型级C++)及其图形表示.看到存在于模板类的图形表示的示例.框表示类或类模板.第一个顶级节点是类本身,下一个节点(如果有的话)是类中的typedef指令.底部节点是模板参数.当然,边缘将类连接到实例化的模板参数.我已经有了处理这种类型级图表的原型.
如果您觉得这种表示模板类的方式是完全错误的,请不要犹豫,为什么这么说!
就像我喜欢Scratch一样,对于有经验的程序员来说,使用文本编辑器编写代码比使用文本编辑器编写代码要快得多.这已经在任何数量的图形编程环境中一次又一次地证明.
编写代码是开发人员日最容易的部分.我认为我们不需要更多的帮助.阅读,理解,维护,比较,注释,记录和验证是在哪里 - 尽管有大量的工具和框架 - 我们仍然缺乏.
剖析你的专业人士:
对于小型应用程序而言直观且简单 - 用"误导性"代替.它使它看起来很简单,但它不是:只要它很简单,VB.NET就更简单了.当它变得复杂时,视觉设计会妨碍.
帮助避免拼写错误 - 这就是一个好的风格,一致性和最后的智能感知.当事情不再简单时,你需要的东西.
错误的水平
您正在考虑错误的级别:C++语句不是可重用的,强大的组件,它们更像是需要正确组合的大量齿轮.C++与它的复杂性和异常(对规则)甚至不是特别适合.
如果您想简化操作,则需要更高级别的可重用组件.即使你有这些,将它们插在一起并不简单.尽管经历了多年的努力,并且在许多环境中进行了许多尝试,但这有时会起作用并且经
病毒 - 你是关于这个要求的正确的IMO:允许逐步采用.这与在源代码和可视化表示之间平滑切换密切相关,这反过来可能意味着您必须能够从修改后的源代码生成可视化表示.
IDE支持 - 这是大多数以语言为中心的方法误入歧途的地方.现代IDE不仅仅是文本编辑器和编译器.如何调试图表 - 使用断点,数据检查等?轮廓仪,检漏仪等会突出显示图表中的节点吗?源代码控制会给我一个昨天图表与今天图表的视觉差异吗?
也许你正在做一些事情,尽管我的所有"不":一种可视化代码的更好方法,一种在其上放置不同过滤器的方法,以便我看到我需要看到的东西.
最初编写C++的早期版本,以便它们编译为C,然后C编译为正常.
你所描述的是一种编译成C++的图形语言,然后将被正常编译.
所以你真的不是在创建一个图形化的C++,而是在创建一种恰好是图形化的新语言.这没有什么不对,但是不要让C++限制你所做的事情,因为最终你可能想要将图形语言直接编译为机器代码,甚至是像CIL,Java ByteCode或其他任何你喜欢的东西.
您可能想要查看的其他图形语言是LabVIEW,更常见的是可视化编程语言的类别.
祝你好运.