我们都知道演练:你有一个(小)模型,你需要坚持它,你需要一个UI(网络,桌面,移动,一些前者,所有这些)。
这是一个如此重复的过程,我不禁想知道为什么我们仍然坚持使用POJO,OR映射器和手工编写UI(因为大多数UI“设计师”甚至不知道继承,你需要从头开始构建具有多个字段的每个确定/取消对话框。 RAD工具/平台承诺解决这个问题,但我还没有看到任何真实的东西。这个维基的想法是收集所有的工具,让你在几分钟内充实一个想法,并从那里建立。简单的事情(比如为模型创建一个简单的UI或将其保存在数据库中)应该很简单。将一个相当复杂的对象附加到一个对话框来编辑它应该需要一行或更少的代码;)
所以接下来是挑战:什么RAD工具允许在8小时内构建一个小应用程序。为了让您了解它应该能够做什么,这里是规范:
您拥有“知识”节点。每个这样的节点都附有名称和长描述(单行和多行字符串)
每个知识节点可以有任意数量的知识节点作为子节点(1:*排序的父/子关系)。子节点需要维护顺序(即使用列表,而不是集合)
每个知识节点都可以附加任意数量的标签(1:*不同类型之间的无序关系)
任何两个知识节点都可以连接任意数量的关系(n:m关系)
应该可以从/作为XML加载/保存模型,并且可以轻松地从数据库中加载/保存模型
用户希望今天撤消/重做
UI应提供标准操作:创建,重新排序和删除知识节点。重新排序应该使用drag'n'drop。它应该允许从知识节点添加/删除标签。应该有一种通过关系连接两个知识节点的简单方法(比如通过在特殊模式下拖动另一个节点)。
UI还应允许搜索具有特定标签或关系的节点。对于奖励积分,它应该提供一种导航关系图的简单方法。
挑战还有什么?像往常一样,OSS首选。
背景:我正在开发软件超过25年。尽管如此,这个简单的应用程序需要几周甚至几个月的时间来编码我到目前为止遇到的任何语言:Groovy,Java,Python,Tcl/Tk,{{ 3}},Grails,OpenOffice,MS Access,[TurboGears] [10],[Enthought Traits] [11] ,. net。
有关竞争者的一些反馈。请注意,我尝试在一个句子中突出显示要点,所以请在下一节中加入一粒盐,好吗?
Groovy 语言不错,代码紧凑。关闭但缺乏UI部门。他们正在努力,但只是没有。对于持久性,只有Java序列化开箱即用。
Java Java在十年前推出时表现非常出色,但它并没有发展那么多。它是一种老化的语言,拥有大量的库,但您只需要太多代码就可以完成任务,每行代码都需要时间来编写。
Python 几乎所有它需要的东西,但由于某种原因,它从未像Java一样成为主流。得到了一个很好的用户界面设置TreeLine,一个很酷的OR映射器PyQt4但是,我们仍然没有看到它将油门拉到全速前进。只有随着单元测试的出现,编写更大的项目变得可行。任务水平太低。
Tcl / Tk 好的小部件设置,但是当代码大小超过某个点时语言很糟糕。现在显示它的年龄。
OpenOffice 自2.0以来,OO附带内置数据库和“类似访问”的工具。它还处于起步阶段,但它们最终会到达那里。无法处理父/子关系,因为UI不允许指定它们(SQLAlchemy)。 3.1中修正。使用3.1,您可以创建模型,但UI仍然需要花费大量时间编写。
MS Access 我们几乎需要什么,但UI选项非常有限。令人沮丧。
TreeLine 无法实现关系,并且对大多数其他用例都没有限制(你根本无法做其他事情)
.net 我对此没有经验,主要是因为它只是Windows。我认为这个可能非常接近,但让我们面对现实:锁定四分之一人类有什么意义?
答案 0 :(得分:20)
答案 1 :(得分:16)
WAVEMAKER是有史以来最好的rad工具。你说的话可以在几个小时内完成。
答案 2 :(得分:7)
这取决于您的市场是谁。我可以告诉你一件事,你的市场永远不会由整个人类组成。因此,地球上25%的人不使用Windows这一事实对你来说并不重要。
对您来说重要的是在您的市场中有多少人使用任何操作系统?如果你正在编写一个商业/金融应用程序并且你只为Windows开发,那么你可能只会忽略大约0.05%的市场(因为你最后一次听说使用Mac或Linux的会计师是什么时候? )。
但是,如果您正在编写一个用于制作音乐的程序(如FruityLoops)并且您只编写Windows,那么您可能会遗漏更多50%的市场。
答案 3 :(得分:7)
Microsoft Lightswitch。很难想象有什么“更快”。
答案 4 :(得分:3)
Magic uniPaas:在我的第一份工作中使用它来开发GUI。这是一个没有废话的RAD工具,一切都是基于表格的。它还提供运行时环境。当时它被称为Magic eDeveloper。
答案 5 :(得分:3)
我猜WinDev也遵循RAD的想法。
注意:仅在Windows上运行,价格从990欧元起。附带各种工具。
答案 6 :(得分:3)
Visual Studio - 提供最好的RAD工作室。如果您认为它不仅用于Microsoft的开发工具,Delphi Prism使用它,并且SQL Server的SQL管理工具都使用它,您可以了解它的灵活性。它也是免费的(RAD工具/ IDE - 不是开发工具)。
答案 7 :(得分:3)
Clarion(http://softvelocity.com)。
我可以/可以在几个小时内为这样的项目一起制作一个演示版。
一个缺点是它创建了Win32可执行文件。当然,这可以通过使用它创建一个Web系统来解决。
另一个是Clarion肯定不是开源的。这会让很多人失望。
好。我的最后评论是大约2个小时前。所以在那个时候,这就是我在Clarion中完成的工作。
我不是写这个吹嘘。老实说,我相信Clarion可以在很短的时间内做出惊人的事情。
“知识”系统非常适合演示。您只能将标记和关系添加到父节点。没有正确的标签/关系搜索(仅限单数)。没有图像或体面的图形设计或UI。
但框架,基础就在那里。
答案 8 :(得分:2)
Oracle Application Express (http://htmldb.oracle.com/pls/otn/f?p=4600:6:171781307324519::NO::::)
仅使用Web浏览器 和 有限的编程经验 ,您可以在几分钟内开发以数据为中心的应用程序。基于浏览器的开发使您可以仅使用现代Web浏览器在大多数计算机上开发应用程序。
使用简单的向导和声明性编程 来创建功能强大的报表和数据输入应用程序。您可以从电子表格上载或现有数据库表和视图创建应用程序。 Oracle Application Express包括SQL Workshop,用于创建和管理支持您的应用程序的数据库对象。
使用Application Express, 编码是声明性的 。这意味着不会生成或编译任何代码。您与向导和属性表进行交互。由于SQL语言用于定义报表和图表,因此SQL的一些知识很有帮助。如果需要过程逻辑,您可以使用PL / SQL编写代码片段。声明性代码在开发人员之间产生的差异较小,这种一致性使Application Express应用程序易于维护和管理。
答案 9 :(得分:1)
XPower++ - 适用于Windows,Linux,Mac,Android,iOS等的跨平台IDE。
答案 10 :(得分:1)
Qt Toolkit,位于:http://qt.nokia.com/products,用于C ++跨平台GUI开发,也非常适合桌面和移动应用程序构建。
答案 11 :(得分:1)
Lazarus LCL是一个类似于VCL的Delphi,而不是现有的小部件集。
可以是GTK1,GTK2,QT,Win32 / 64,WinCE和Carbon。还有其他人(比如COCOA桥)但这些人大多只是在他们的初始阶段。
答案 12 :(得分:1)
Grails是一个快速构建Web应用程序的框架。它基于Groovy。您可以定义模型,从命令行运行两个命令,然后使用简单的CRUD UI进行设置,您可以在Web浏览器中编辑模型。
仅限Web,很多很好的想法,但由于this bug,你不能拥有父/子关系,希望在1.0.5版本中修复它。对于严肃的开发,你需要AJAX/Rich Client plugins之一,因为Grails没有非常强大的小部件。
答案 13 :(得分:1)
Netbeans的Matisse视觉编辑器非常适合Swing开发。
答案 14 :(得分:1)
REALbasic是一个RAD工具 - 它的编译器生成本机可执行文件。它也是一个交叉编译器,这意味着您可以从任何平台构建任何平台。
只有Professional Edition支持完全数据库访问(400欧元)。个人版本为75欧元,可以连接到REALSQLDatabase(也来自RealSoft的人员)。
与Hibernate或SQLAlchemy不同,您必须自己编写数据库图层。
答案 15 :(得分:0)
答案 16 :(得分:0)
我认为nbandroid值得一提。它是一个使用NetBeans IDE开发Google Android软件的RAD工具。
答案 17 :(得分:0)
Enthought Traits是一个很好的框架,可以从模型构建默认UI。易于使用,功能强大,默认情况下是您大多数时间都想要的,它可以达到您的预期
但是没有数据库持久性。事实上,根本没有持久性。您必须编写代码以自行保存/加载模型。对XML执行此操作非常简单(有一个抽象API适用于模型中的任何对象),因此您只需编写一个类,例如50行代码,无论您的模型有多复杂。
UI控件不容易扩展,所以如果你需要一些不带的东西,祝你好运。
上面提到的模型可以在一小时内实现,另一个小时可以从/向XML读取/写入。使用Qt。
中的画布小部件,关系的图形导航将花费几天时间答案 18 :(得分:0)
Visual DataFlex是我们使用的优秀RAD工具。它专门用于创建数据库驱动的业务应用程序。遗憾的是,它不是免费的,但它是一个很棒的环境/语言,Data Access提供了很好的支持。
答案 19 :(得分:0)
TurboGears是一个使用Python快速构建Web应用程序的框架。主要特点:您定义模型,TG创建其他所有可以根据您的需求调整的模型。模型中的更改需要重新启动开发服务器,其他所有内容都会在Web浏览器的下次重新加载时发生(TG会让您知道何时需要重新启动)。
向前迈出了一大步,特别是2.0版本(应该很快就会出现,现在已经很快就会出现) - 没有冒犯,伙计们,我知道你们已经努力工作了好几年......但对我来说没有TG 2.0几年来,要么:()只有网络。所以我们必须自己实现所有的拖拽,找到一种绘制可导航图形的方法。令人沮丧地接近。
答案 20 :(得分:0)
DragonRAD刚刚宣布用于Blackberry App开发。现在是内测。
答案 21 :(得分:0)
此答案与您的问题没有直接关系,但类似。对于我的项目,我使用的最接近的是NEsper,它是一个开源复杂事件处理框架(CEP)。在过去的两个晚上,我为一个交易系统构建了一个后备测试器,我正在将它放在一起,而NEsper已经让它变得如此之快 - 我想我是在你的8小时目标内完成的。
答案 22 :(得分:-1)
Boa Constructor是一个跨平台的Python IDE和wxPython GUI Builder。
它被列为维基百科上的跨平台RAD,但我的猜测是它更像是一个IDE(而不是你可以在几个小时内构建上述应用程序的东西)。