3

对于我的程序想法,它要求软件用所有主要桌面平台都可以执行的二进制文件编写,这意味着它需要解释语言或 JVM 中的语言。两者都适合我,但编程语言必须平衡功能和简单性(例如 Python)

我知道 wxPython,但我读过它在 Mac OS X 上的支持相当有限

Java 听起来不错,看起来也不错,但是用它来编程似乎太难了

有什么帮助吗?

4

11 回答 11

6

我将 Python 与 wxPython 一起使用了很长一段时间,发现它非常易于使用。我现在将 Java 与 Swing 和 SWT 一起使用。

我更喜欢 Java,但这只是个人喜好,所以你不应该让它影响你。

我发现从 Python 到 Java 的过渡并不困难。就 GUI 而言,它们都具有布局管理器范例——管理器不同但差别不大,您将无法切换。

Java 有一个绝对庞大的类库,以至于您可能不需要编写自己的任何版本,只需将组件串在一起即可。我从来没有真正深入了解过 Python,但它可能很相似。我确实注意到的一件事是,我在 Python 中使用的所有真正好的东西(例如,s[-4:-1])在 Java 中仍然可以很容易地完成。两种语言都比 C 语言更上一层楼,我必须用自己的库管理字符串。

如果您认为 wxPython 在 MacOS 上受限,您应该尝试 Java。我在 Windows、Linux 和其他 UNIX 上运行我的 Java 代码,没有兼容性问题。可悲的是,不是 Mac,所以我不能在那里给你建议。

我的建议是,选择一个小型项目——同时使用 Python 和 Java——看看它如何在你感兴趣的所有平台上运行。

于 2009-10-31T04:43:05.013 回答
5

带有PyQt的Python或最终等效但免费的PySide似乎是要走的路——毕竟,很少有语言比 Java 更容易编程(你认为“几乎很难编程”), Python 是少数几个之一,Qt 可以说是任何语言中最好的跨平台 GUI 工具包,以及 PyQt(现在,但 GPL 或 for-$$$)或 PySide(最终,即使你想关闭自己的源代码也是免费的code) 是 Python 和 Qt 之间的强大接口。

于 2009-10-31T04:52:15.650 回答
3
  • 您可以使用任何面向 JVM 的语言,例如 Jython (Python impl) 和 JRuby (Ruby impl)。

  • 您可以尝试为 Python使用Qt 绑定,Qt似乎支持许多 Mac OSX 特性。

于 2009-10-31T04:44:38.527 回答
3

考虑 Tcl/Tk。我不确定您如何定义“一个可由所有主要桌面平台执行 [原文如此] 的二进制文件”,但 Tcl 可能与 java 一样满足这一点,并且可能比任何其他脚本语言更好。

使用 starkits 的 tcl 打包技术,您可以 a) 创建一个可以在具有适当运行时引擎的任何平台上运行的单个文件(并且它们可用于所有主要和许多次要平台),或者您可以打包该平台-特定的运行时引擎和跨平台的 Starkit 集成到每个平台可执行的单个文件中。

Starkit 技术是其他语言应该追求的。您得到的是一个完整的、功能齐全的虚拟文件系统,包含在单个文件中。这使您可以轻松地将声音文件、dll/.so 文件(出于明显的 (?) 原因必须将其复制到磁盘)、图像、数据等与可执行代码一起打包。

Tk,图形库,非常成熟,在所有平台上都有很好的支持。有些人认为它看起来过时了,但这些印象通常是基于至少 5 年前的信息。现代 Tk 看起来相当不错。有关一些示例,请参见tkdocs网站。我不清楚您是否更关心视觉效果或功能,但如果您对功能感兴趣,那么 Tk 是值得认真考虑的事情。

大多数人都同意 Tcl 是一种后天的品味,但那些专业使用它的人通常对此深信不疑。过去几个月我一直在进行 wxPython 编程,如果有机会,我会立即切换回 tcl/tk。

于 2009-11-05T15:37:00.500 回答
2

您可以使用Groovy来解决 Java 的复杂性。

仍然需要良好的 Swing 基础。

虽然学习曲线可能很陡峭,但不必为下一个平台再次完全重写整个应用程序的交易将是一个很好的回报。

请记住,即使它是跨平台的,您也应该考虑到不同的平台仍然有不同的习语(例如,Windows 中的 Copy/Past 是 ctrl+v、ctrl+v,而在 Mac 中是 cmd+c、cmd+v)

于 2009-10-31T04:37:47.137 回答
1

我正在开发一个必须在 Windows、Linux 和 OS X 上运行的程序(OS X 是我的开发平台),而我们使用的是 wxPython。

如果我有机会重新开始,我可能会选择 PyQT(基于朋友的建议),但 wxPython 会完成这项工作。

于 2009-10-31T04:46:12.703 回答
1

我认为 wxPython 非常好,虽然我不确定您所说的“对 Mac OS X 的支持相当有限”是什么意思,但我一直在将 wxPython 应用程序 (www.mockupscreens.com) 移植到 Mac 上,这并不难只需稍作调整,例如某些 UI 元素可能不会按您的预期出现,因为 wxPython 使用本机 UI 元素,根据您的要求,这可能是一个优势或劣势。

另一个不错的选择是 PyQT,它将在所有平台上为您提供一致的外观。

于 2009-11-01T05:29:33.270 回答
0

Java 似乎更适合您想要的东西。

那么 Javascript 中的 Web 应用程序呢?

于 2009-10-31T04:50:33.287 回答
0

SWT怎么样

  • 跨平台
  • 原生外观
  • 庞大的社区
  • 持续维护/升级(IBM 支持)
  • 至少一个大型成功的跨平台项目
于 2009-11-01T05:38:24.250 回答
0

我建议走 wxPython 路线,我知道 wxWidgets(这是 wxPython 正在使用的)可以制作出漂亮的 Mac 应用程序(查看 postgresql 中的 PgAdmin3)。虽然 PgAdmin3 不是在 python 中完成的,但它是用 wxWidgets 完成的,并且在 mac 上看起来很好。

于 2009-11-05T15:42:37.463 回答
0

我经常使用三个跨平台工具: Realsoftware 的 Realbasic,如果允许其发展,这就是 Visual Basic v6 的样子;来自 Runrev 的革命,如果允许 Hypercard 生存下去,这就是 Hypercard 的样子(并且它使用一种语法基本上是英语的脚本语言很简洁);最后,使用 Mono 的 Delphi Prism。

所有这些都非常成熟,而且还在以极快的速度扩展。例如,Revolution 只是在其语言中引入了一个非常易于使用的 Web 应用程序功能。

于 2009-11-05T15:51:18.367 回答