对于我的程序理念,它要求软件用一个可由所有主要桌面平台执行的二进制文件编写,这意味着它需要一个解释语言或JVM中的语言。要么对我好,但编程语言必须平衡功率和简单(例如Python)
我知道wxPython,但我读过它在Mac OS X上的支持相当有限
Java听起来很棒&它看起来不错,但似乎很难编程
任何帮助?
答案 0 :(得分:6)
我在wxPython中使用Python已经有一段时间了,发现它很容易使用。我现在将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做 - 看看它是如何在你感兴趣的所有平台上运行的。
答案 1 :(得分:5)
带有PyQt的Python或最终等效但免费的PySide似乎是要走的路 - 毕竟,很少有语言比Java(你更容易编程)考虑“几乎太难编程”),Python是少数几个,Qt可以说是任何语言中最好的跨平台GUI工具包,PyQt(现在,但是GPL或者 - $$$)或PySide(最终,免费,即使你想要关闭自己的代码源代码)是Python和Qt之间强大的接口。
答案 2 :(得分:3)
您可以使用任何针对JVM的语言,例如: Jython(Python impl)和JRuby(Ruby impl)。
您可以尝试使用Qt bindings用于Python,Qt seems to support许多Mac OSX细节。
答案 3 :(得分:3)
考虑Tcl / Tk。我不确定你如何定义“所有主要桌面平台都可执行的二进制文件”,但是Tcl可能会遇到这个以及java,并且可能比任何其他脚本语言都要好。
使用starkits的tcl打包技术,您可以a)创建一个可以在任何具有适当运行时引擎的平台上运行的文件(并且它们可用于所有主要和许多次要平台),或者您可以打包特定于平台的运行时引擎和跨平台starkit为每个平台的单个文件可执行文件。
starkit技术是其他语言应该追求的。您得到的是一个完整的,功能齐全的虚拟文件系统。这使您可以轻松打包声音文件,dll / .so文件(必须将这些文件复制到磁盘中,以显示(?)),图像,数据等以及可执行代码。
图形库Tk非常成熟,并且在所有平台上都有很好的支持。有些人认为它看起来过时,但这些印象通常基于至少5年的信息。现代Tk看起来相当不错。有关示例,请参阅tkdocs网站。我不清楚你是否更关心眼睛糖果或功能,但如果它是你感兴趣的功能那么Tk是值得认真考虑的事情。
大多数人都同意Tcl是一种获得的品味,但那些专业使用它的人通常会发誓。我在过去的几个月里一直在做wxPython编程,如果有机会,我会在心跳时切换回tcl / tk。
答案 4 :(得分:2)
您可以使用Groovy解决Java复杂问题。
你仍然需要Swing的良好基础。
虽然学习曲线可能很陡峭,但是不必为下一个平台再次完全重写整个应用程序的交易将是一个很好的回报。
请记住,即使它是跨平台的,你应该考虑不同的平台仍然有不同的习语(例如Windows中的复制/过去是ctrl + v,ctrl + v,而在Mac中它是cmd + c,cmd + v)
答案 5 :(得分:1)
我在一个必须在Windows,Linux和OS X(以及OS X是我的开发平台)上运行的程序上工作,而wxPython就是我们使用的。
如果我有机会重新开始,我可能会选择PyQT(基于朋友的建议),但wxPython将完成工作。
答案 6 :(得分:1)
我认为wxPython非常好,虽然我不确定你的意思是“Mac OS X上的支持相当有限”,但我一直在将一个wxPython应用程序(www.mockupscreens.com)移植到Mac上,它不是'很难调整,例如一些UI元素可能无法按预期出现,因为wxPython使用本机UI元素,根据您的要求,这可能是一个优势或劣势。
其他不错的选择是PyQT,它可以让你在所有平台上保持一致的外观。
答案 7 :(得分:0)
Java似乎更适合你想要的东西。
那么Javascript中的Web应用程序呢?
答案 8 :(得分:0)
答案 9 :(得分:0)
我建议使用wxPython路由,我知道wxWidgets(这是wxPython正在使用的)可以制作出看起来很棒的Mac应用程序(从postgresql看PgAdmin3)。虽然PgAdmin3没有在python中完成,但它是用wxWidgets完成的,并且在mac上看起来很好。
答案 10 :(得分:0)
我定期使用三个跨平台工具:来自Realsoftware的Realbasic,如果允许增长,它将是Visual Basic v6的内容;来自Runrev的革命,如果被允许生存,Hypercard本来就是这样的(并且使用脚本语言,其语法基本上是英语);最后,Delphi Prism with Mono。
所有这些都非常成熟,但仍在以极快的速度扩张。例如,Revolution只是在其语言中引入了一个非常容易使用的Web应用程序功能。