我们都知道这个练习:你有一个(小)模型,你需要持久化它,你需要一个 UI(网络、桌面、移动设备,其中一些,全部)。
这是一个如此重复的过程,我不禁想知道为什么我们仍然坚持使用 POJO、OR 映射器和手工编写 UI(因为大多数 UI“设计师”甚至不知道继承,你需要构建每个从头开始包含多个字段的确定/取消对话框)。RAD工具/平台承诺会解决这个问题,但我还没有看到任何真实的东西。这个 wiki 的想法是收集所有工具,让您在几分钟内充实一个想法并从那里构建。简单的事情(例如为模型创建简单的 UI 或将其保存在数据库中)应该很简单。将一个相当复杂的对象附加到对话框以对其进行编辑应该只需要一行代码或更少;)
所以挑战来了:有哪些 RAD 工具可以在 8 小时内构建一个小型应用程序。为了让您了解它应该能够做什么,这里是规范:
你有“知识”节点。每个这样的节点都有名称和附加的详细描述(单行和多行字符串)
每个知识节点可以有任意数量的知识节点作为子节点(1:* 排序的父/子关系)。子节点需要维护顺序(即使用列表,而不是集合)
每个知识节点可以附加任意数量的标签(1:*不同类型之间的无序关系)
任意两个知识节点可以连接任意数量的关系(n:m 关系)
应该可以毫不费力地从/作为 XML 和从/在数据库中加载/保存模型
用户希望今天撤消/重做
UI 应提供标准操作:创建、重新排序和删除知识节点。重新排序应使用拖放。它应该允许从知识节点添加/删除标签。应该有一种简单的方法可以通过关系连接两个知识节点(比如以特殊模式将一个节点拖到另一个节点上)。
UI 还应该允许搜索具有特定标签或关系的节点。对于奖励积分,它应该提供一种导航关系图的简单方法。
有什么挑战吗?像往常一样,首选OSS 。
背景:我现在开发软件已经超过 25 年了。尽管如此,这个简单的应用程序需要数周甚至数月的时间来使用我迄今为止遇到的任何语言进行编码:Groovy、Java、Python、Tcl/Tk、Grails、OpenOffice、MS Access、TreeLine、[TurboGears][10]、 [思想特征][11],.net。
关于竞争者的一些反馈。请注意,我试图在一个句子中突出重点,所以下一节要持保留态度,好吗?
Groovy语言不错,代码紧凑。关闭但缺乏 UI 部门。他们正在努力,但只是不在那里。对于持久性,只有开箱即用的 Java 序列化。
Java Java 在十年前问世时很棒,但它并没有发展太多。它是一种老化的语言,拥有大量的库,但你只需要太多的代码来完成工作,而且每一行代码都需要时间来编写。
Python几乎得到了它需要的所有东西,但由于某种原因,它从未真正成为像 Java 这样的主流。使用PyQt4设置了一个不错的 UI ,这是一个带有SQLAlchemy的很酷的 OR 映射器,但我们仍然没有看到它在全速前进。只有随着单元测试的出现,编写更大的项目才变得可行。任务级别太低。
Tcl/Tk不错的小部件集,但是当代码大小超过某个点时,语言很糟糕。现在显示它的年龄。
OpenOffice从 2.0 开始,OO 带有一个内置数据库和一个“Access-like”工具。它还处于起步阶段,但他们会到达那里......最终。无法处理父/子关系,因为 UI 不允许指定它们(请参阅错误)。在 3.1 中修复。使用 3.1,您可以创建模型,但编写 UI 仍然需要大量时间。
MS Access几乎我们需要的任何东西,但 UI 选项非常有限。令人沮丧。
TreeLine无法实现关系,并且对于大多数其他用例来说过于受限(你根本无法用它做很多其他事情)
.net我没有这方面的经验,主要是因为它只是 Windows。我认为这个可能非常接近,但让我们面对现实:锁定四分之一的人类有什么意义?