哪种语言是网络传输和GUI编程的“最佳”?

时间:2011-02-01 10:43:29

标签: user-interface programming-languages network-programming

我知道这是一个有点愚蠢的问题,即便如此我也不知道哪个最适合:我想编写一个小工具发送一个文件(比方说1300万像素图片或大学幻灯片)到另一台计算机上程序。所以该程序应该通过互联网简单发送/接收文件。该程序不应该是命令行,而是具有GUI。问题是,该程序应该适用于Windows(7)和Mac OS X.我知道有很多好的程序(甚至是网站)在做这个之外,但我把这个小工具作为边做边学的项目对于新语言。所以请帮助我:))

我想过为此使用python,但是拥有GUI的python程序看起来并不是原生的。另一方面,c#对于Windows GUI非常强大,但我不确定Mono-Project在Mac OS X上是否表现良好并且在Mac OS X上具有原生外观。也许Java会是一个很好的想法,但是我不喜欢Java(相当scala非常好),如果有一个很好的替代Java,我宁愿选择。 Scala会很好但我担心网络的scala库非常小并且没有良好的GUI支持。我知道我可以使用所有Java库,但我不能用Java编程,所以我必须学习两种语言......

等待您的评论,提示和提示,

库尔特

//编辑: 另外,如果我可以创建一个可执行文件(用于Windows的exe,用于mac的应用程序)将软件分发给朋友,那就没关系了。所以这也是语言的要求:)

7 个答案:

答案 0 :(得分:4)

Java的最佳功能之一是跨平台。而且由于它被广泛使用,你找到支持的麻烦会减少。也许你应该重新考虑。

答案 1 :(得分:4)

我的建议是使用QT工具包的C ++,如果你真的不能忍受Java。

答案 2 :(得分:3)

如果您正在使用Scala,您可以利用JVM功能在您选择的平台上运行,使用Java网络库,但您实际上不必使用Java编程。 / p> Scala中的

Here's a simple tutorial。请注意,它有一个交互式控制台,因此您可以交互式地尝试。

答案 3 :(得分:1)

wxPython工具包为Mac OS和Windows生成了不错的用户界面。对于一个简单的程序来说应该不错。

您将能够使用以下方法为两个平台创建可执行文件:

答案 4 :(得分:1)

你可以看一下Clojure - 它是一种在JVM上运行的类似Lisp的语言。因此,如果您不想使用Java,则可以获得Java的所有跨平台库。

我已成功在Clojure中编写了一个GUI(Swing)应用程序,我在Windows上开发但在Mac上第一次工作(即无需重新编译或修改)。

答案 5 :(得分:1)

哇,我是第一个建议你使用网络技术的人吗?

答案 6 :(得分:0)

我建议使用tcl / tk。 Tk在Windows和Mac上有本机小部件,使用Tcl可以很容易地进行网络编程。使用tcl,您可以选择轻松创建单个文件可执行文件,或者使用跨平台应用程序文件创建特定于平台的运行时。使用这两种方法,您的代码可以存在于嵌入式虚拟文件系统中,从而可以轻松地组织代码。

你会在网上看到“tk很难看”的意见,但这些意见主要是基于旧版本或只是普通的无知(虽然tk在linux上看起来有点过时)。现代Tk看起来比90年代更好,设计你的应用程序的一点常识将有很长的路要走。

如果您不喜欢或不想学习Tcl,Tk可以使用许多顶级动态语言,包括Tcl,Python,Ruby和PERL。有关详细信息,请参阅http://www.tkdocs.com