我想问一下REALStudio或Runtime Revolution还有其他选择吗?
我不正在寻找像.NET框架或插件这样的东西。我希望它像前面提到的IDE一样完全自包含。
它也应该是跨平台的。
注意: 请不要提Java。我已经知道了。
为了清楚起见,我正在寻找一个可以让我为Windows,Mac OS X和Linux创建桌面应用程序的编程环境......
答案 0 :(得分:1)
如果您的目标是拥有一个易于使用的GUI构建器的自包含IDE,它可以生成独立的跨平台可执行文件,那么就我所知,选项非常有限。
如果您喜欢BASIC(类似于RealBasic或RunRev),那么您可能需要查看www.PureBasic.com。恕我直言,文件和新材料很少。它拥有自己的GUI构建器,但是为了获得更多现金,您可能希望将其与PureVision配对。
对于使用C ++,wxPython,wxLua或wxRuby中的wxWidgets编程进行跨平台开发,您可能需要考虑DialogBlocks。
答案 1 :(得分:0)
我仍然觉得我在回答这个问题时在黑暗中拍摄。目前还不清楚您是在寻找编程语言和GUI工具包,还是只想要一个跨平台的IDE。还不清楚为什么你放弃了REAL Studio,因为它似乎符合你的要求。
无论如何,这里有很多选项,特别是如果你不需要使用REALbasic语言。我只能谈谈我熟悉的并且有使用经验的人。其他人肯定可以告诉你更多关于Perl,Python,Ruby等动态语言等等。
首先,我不确定为什么你认为.NET Framework不是“完全自包含”。是的,它需要一个运行时,就像Java一样。但是这两种托管语言对于要求运行时来说已经非常糟糕。似乎人们已经忘记了用C和C ++编译的程序通常也需要运行时(至少它们在Windows上运行)。
我会再看看.NET。它是一个非常易于使用,快速开发的环境,与REALbasic的风格非常相似。 VB.NET保留了很多语法,同时为您带来(在我看来)更强大的功能。由于几乎所有桌面应用程序都应该与安装程序(安装程序)一起分发,因此运行时的要求实际上不是问题。您的安装程序应该在您的应用程序的同时安装必要的依赖项 - 用户永远不会更聪明。
当然,在所有三个目标平台上生成一个真正 native 的用户界面的桌面应用程序最多也是困难的。 Windows,Mac OS X和Linux都有非常不同的平台约定,即使您可以找到可以生成在所有这些平台上运行的可执行文件的环境,但它们都不会生成实际看起来像本机的接口应用。我对此非常挑剔,你会发现Mac用户也是。 Windows和Linux用户更加接受,但遵循标准平台约定是使您的应用易于使用和易于理解的关键。符合用户期望的行为并利用本机小部件有很多优势,开发人员(通常倾向于重新发明轮子)似乎最近忘记了。
绝对最好的要做的事情(在我看来)是用C ++这样的可移植语言编写代码,并使用为每个平台提供的工具创建用户界面(对于Windows,你可能会使用Windows API,或.NET Framework提供的WinForms或WPF。对于Mac OS X,您将使用Cocoa和Apple的Xcode / Interface Builder。对于Linux,您将做Linux人员所做的一切。)然后,你只需要在每个平台上重新编译你的应用程序,你就可以获得两全其美的效果。
一个很好的折衷方案是使用适用于C ++的GUI工具包,例如承诺生成跨平台应用程序的Qt或wxWidgets。是的,应用程序本身就是真正的跨平台,但它们并不总是具有真正的本机接口。我知道Qt最近变得更好了,但它仍然不符合我的标准。您和您的用户可能不那么挑剔。请注意那里的“您的用户”部分。 Mac Office团队发现Mac OS X用户不会接受在Windows中实现的功能区。 Mac Office 11最终将功能区带到Mac,但它看起来完全不同,完全重新实现,看起来像是原生的Mac OS X小部件。相比之下,苹果公司的iTunes在Windows上就像一个痛苦的拇指。长期以来,Mac上创新,易用的界面的标准被许多PC用户视为令人憎恶的。但话说再说一遍,原生GUI就像我的肥皂盒,所以如果你关心,我建议你仔细阅读其他类似的问题:
答案 2 :(得分:-1)
这里给出的答案当然很糟糕,但你问的问题很难,可能没有答案。我问自己同样的问题,因为REALStudio不能像我想的那样工作。 Java很穷,很难,很难看。 .NET是最受欢迎的,但不是跨平台。
考虑外观是一个主要问题。如果GUI看起来不是原生的,那么就没有理由不设计出优秀的东西(例如,看看MojoWorld)。我会暂时建议REBOL。虽然它似乎是一个解释器,但可以购买编译器。由于该软件是免费的,如果您的程序运行良好,那么您可能会购买编译器。不确定它是否具有接口构建器,因为按钮是由代码生成的。免费版本适度差,但近年来一直在改善。
无法从线程更新接口(例如Cocoa,我猜NextStep现在已经很老了)似乎打败了练习的整个对象。让计时器不运行(REALStudio)也似乎没有希望,因为那些应该更新界面。然后你有面向对象,这是穷人无法理解代码的程序员的借口。除非你把代码放入一个假装它是一个模块的计时器(对于REALStudio来说),否则不能'GOTO'一个按钮。我能理解你的问题。试着意识到编程是很难的,当你看到像Apple这样的专家产生的最终结果时,它看起来很容易。
因此Java证明跨平台不起作用。试试REBOL吧。