我们都知道这个练习:你有一个(小)模型,你需要坚持它,你需要一个UI(网络,桌面,移动,一些前者,所有这些).
这是一个重复的过程,我不禁想知道为什么我们仍然坚持使用POJO,OR映射器和手工编写UI(因为大多数UI"设计者"甚至不知道继承,你需要构建每一个从头开始确定/取消具有多个字段的对话框).RAD工具/平台承诺解决这个问题,但我还没有看到任何真实的东西.这个wiki的想法是收集所有工具,让你在几分钟内充实一个想法并从那里构建.简单的事情(比如为模型创建一个简单的UI或将其保存在数据库中)应该很简单.将一个相当复杂的对象附加到一个对话框来编辑它应该需要一行或更少的代码;)
所以接下来是挑战:什么RAD工具允许在8小时内构建一个小应用程序.为了让您了解它应该能够做什么,这里是规范:
你有"知识"节点.每个这样的节点都附有名称和长描述(单行和多行字符串)
每个知识节点可以具有任意数量的知识节点作为子节点(1:*排序的父/子关系).子节点需要维护顺序(即使用列表,而不是一组)
每个知识节点都可以附加任意数量的标签(1:*不同类型之间的无序关系)
任何两个知识节点都可以连接任意数量的关系(n:m关系)
应该可以轻松地从/作为XML加载/保存模型,也可以从数据库加载/保存模型
用户期望今天撤消/重做
UI应提供标准操作:创建,重新排序和删除知识节点.重新排序应该使用drag'n'drop.它应该允许从知识节点添加/删除标签.应该有一种通过关系连接两个知识节点的简单方法(比如通过在特殊模式下拖动另一个节点).
UI还应允许搜索具有特定标签或关系的节点.对于奖励积分,它应该提供一种导航关系图的简单方法.
还有挑战吗?像往常一样,OSS更喜欢.
背景:我正在开发软件超过25年.尽管如此,这个简单的应用程序需要花费几周甚至几个月来编写我迄今为止遇到的任何语言:Groovy,Java,Python,Tcl/Tk,Grails,OpenOffice,MS Access,TreeLine,[TurboGears] [10], [Enthought Traits] [11] ,. net.
关于竞争者的一些反馈.请注意,我尝试在一个句子中突出显示要点,所以下一节用一粒盐,好吗?
Groovy Nice语言,紧凑的代码.关闭但缺乏UI部门.他们正在努力,但只是没有.对于持久性,只有Java序列化开箱即用.
Java Java在十年前推出时非常棒,但它并没有发展那么多.它是一种具有大量库的老化语言,但您只需要太多代码就可以完成任务,每行代码都需要时间来编写.
Python几乎可以满足它的所有需求,但由于某些原因,它从未像Java一样成为主流.使用PyQt4获得了一个很好的UI设置,这是一个很酷的OR映射器与SQLAlchemy但是,我们仍然没有看到它将油门拉到全速前进.只有随着单元测试的出现,编写更大的项目变得可行.任务水平太低.
Tcl/Tk Nice小部件设置但是当代码大小超过某个点时语言很糟糕.显示它的年龄.
OpenOffice从2.0开始,OO带有内置数据库和"类似访问"的工具.它还处于起步阶段,但它们最终会到达那里.无法处理父/子关系,因为UI不允许指定它们(请参阅bug).3.1中修正.使用3.1,您可以创建模型,但UI仍然需要花费大量时间编写.
MS Access几乎我们需要的任何东西,但UI选项非常有限.令人沮丧.
TreeLine没有办法实现关系,并且对大多数其他用例来说太过限制(你根本无法用它做太多其他事情)
.net我没有这方面的经验,主要是因为它只是Windows.我认为这个可能非常接近,但我们要面对它:锁定四分之一的人类有什么意义?
用于pascal/delphi语言的Delphi RAD Studio和Lazarus IDE.
WAVEMAKER是有史以来最好的rad工具.你说的可以在几个小时内完成.
这取决于你的市场是谁.我可以告诉你一件事,你的市场永远不会由整个人类组成.因此,地球上25%的人不使用Windows这一事实对你来说并不重要.
对您来说重要的是您市场中有多少人使用任何操作系统?如果你正在编写一个商业/金融应用程序并且你只为Windows开发,那么你可能只会忽略大约0.05%的市场(因为你最后一次听说使用Mac或Linux的会计师是什么时候? ).
但是,如果您正在编写一个用于制作音乐的程序(如FruityLoops)并且您只编写Windows,那么您可能会遗漏更多50%的市场.
微软Lightswitch.很难想象有什么"更快".