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