有哪些适合Windows GUI应用程序的编程语言,除了Java之外?

3
我已经用Java开发了几个月的应用程序。我越是工作,就越意识到Java是一种多么糟糕的编程语言,而且等我等得越久,转换就会变得越困难。所以我现在正在转换。我需要一种能够处理GUI和MySQL查询的语言。最重要的是,我必须喜欢这种语言。因为现在我实在讨厌Java了。
如果有关系的话,我更愿意在Linux中编程,但这不是必需的。而且它将是一个Windows应用程序。

Delphi。我很确定这个问题是一个重复的,不过。 - undefined
1
Delphi不是要消亡了吗?我投C#和.NET一票。 - undefined
@Andreas Rejbrand,当然这是主观的,而且我知道Delphi仍在使用中 - 但是如果你以社区规模作为指标,有趣的是在Stack Overflow上,与C#相比,Delphi标记的问题只占大约0.05%。对于需要学习一门新语言的人来说,能够快速获得问题答案的能力可能是一个决定性因素。 - undefined
4
这是一个不够明确的问题。你说你不喜欢Java,并想寻找替代方案。但你没有提及最重要的因素——为什么你不喜欢Java? - undefined
@AndreasRejbrand,Delphi的问题可能会得到非常快速的回答,因为与C#相比,Delphi社区规模较小。由于这个社区规模较小,你可以肯定他们都在这里努力寻找答案。而且由于Delphi问题相对较少,所以它们得到快速回答的原因就是没有太多需要处理的内容。 - undefined
显示剩余6条评论
7个回答

8

我推荐使用C#和.net技术。它们是在Windows环境下开发最成熟、最高效的工具之一。此外,对于你来说,C#与Java有相似之处(在最好的方面上),你不会讨厌它。


2
+1. 如果你之前学过一种类似C的语言,那么从Java迁移到C#会显得很容易。 - undefined
@这是一个死胡同,请告诉我为什么你不喜欢Java。 - undefined
1
@Andrey 有很多很多原因,我觉得在这条信息里说不完,但最重要的两个原因是:(1)需要编写大量代码来完成很少的工作,(2)存在太多图形用户界面的问题。 - undefined
@这是一个死胡同:那你肯定会喜欢Delphi的。 - undefined
@这是一个死胡同:“(1)它需要太多的编码来完成很少的工作,而且(2)有太多的GUI故障。”听起来你只是不够了解Java。请注意,虽然C#相对于Java具有更多的功能,但语言规范也更大-->如果你没有太多经验,就需要学习更多才能理解程序。也许你应该在stackoverflow上发布一些关于“太多代码”的问题,并向社区寻求Java中的简单解决方案。也许你会感到惊讶。 - undefined
@Andreas Rejbrand,我在Delphi上编程了几年,然后转到了C#,我认为这是我职业生涯中最好的与编程相关的决定。 - undefined

4
Delphi是一个非常好的选择。它非常容易创建一个新的本地Windows图形用户界面应用程序,语言简单而强大。最新版本对现代Windows版本提供了非常好的支持,并且Unicode字符串是默认的。
尽管这是一种非常易于使用的语言,并且有准备好的组件可用于大多数想象的任务(包括广泛的第三方代码集合),但如果用户喜欢,它可以让用户进行低级别操作。例如,您可以手动操纵堆,并且甚至可以编写ASM代码。Delphi社区非常庞大,并且产品非常活跃。
在过去的几年中,有大量的开发,最新版本Delphi XE相比于Delphi 2007有许多新功能(Delphi 2009和Delphi 2010之间还有)。因此,Delphi还非常活跃。在不久的将来(我认为),64位编译器即将推出。认为Delphi应该“消亡”是一种误解。

1
然而,巨大的价格上涨使我无法建议它,除非有人真的想要成为一名自雇的数据库应用程序开发者。 - undefined
@MarcovandeVoort:嗯,说实话,10.3 Rio中明显的质量问题太多了,这让我很难再推荐Delphi了。我的意思是,你甚至不能最大化IDE窗口而不看到明显的错误... - undefined
我停止在西雅图升级,因为他们强制自动订阅,这对我来说是毫无意义的,因为我不使用移动设备。通常我会在一个重大项目完成后几年才进行一次升级。 - undefined

3

我本来就打算试试Ruby来开发一些网页应用。我听说用Ruby非常容易。 - undefined
是的...这对于网络来说非常棒。我一直在http://tekpub.com上学习它。他们有很多关于这个主题的视频教程。哦,还有http://peepcode.com/也有。 - undefined

2
Java有什么问题吗?如果我知道你不喜欢它的哪些方面,那么回答这个问题会更容易,这样我就可以推荐一种没有类似问题的语言。
无论如何,我会排除.NET,因为你可能会发现它与Java有太多相似之处。
我可以推荐ObjectPascal,这是一种非常好的语言,我很喜欢(虽然我转向了Java)。你可以使用商业化的Delphi IDE,如果我没记错的话,它只适用于Windows,或者使用开源IDE,例如Lazarus,它也适用于Linux,这样你就可以在Linux上进行开发。我知道的最大缺点是手动内存管理(虽然可能存在我不知道的解决方案)。
另一个选择是使用一个不错的库来进行C(++)开发,可能是GTK、QT或wxWidgets。
另一个选择是D语言,它有许多真正伟大的概念。不幸的是,D语言非常新,因此没有太多可用的库。但是,对于开发GUI组件,您可以使用wxD,它是D语言的wxWidgets。D语言具有内置的自动存储管理功能,这对我来说是一个巨大的优势。此外,尽管D语言非常类似于C(++),但它使许多以前在C(++)中合理但现在已经过时的东西变得陈旧。缺点是它的名称。试着在谷歌上搜索“D”你就知道我的意思了。现在谁会给一种编程语言起这样一个名字呢?这使得通过谷歌找到该语言的解决方案更加困难。

哈哈哈哈,顺便说一句,我对Java的问题主要是与所有GUI组件的故障有关。在开发这个应用程序时,我遇到了几个bug,其他Google上的用户也遇到了类似的问题。大多数情况下都有解决方案,但我更希望一开始就没有问题。例如,在Nimbux上,TextArea和JTables的默认复选框渲染器无法正常工作。我不得不调整一些TextArea选项才能正确显示,并且还不得不创建自己的复选框渲染器。 - undefined
而且,将GUI组件放在屏幕上需要太多的时间,并且通常不会呈现出我想要的样子。唯一一个完全按照我的预期工作的布局管理器是BorderLayout。其他所有的布局管理器都一点也不直观。我讨厌在JPanel上必须添加另一个JPanel才能使其中的所有内容居中,否则它就会被拉伸开。真是烦人啊。除了Java之外,我没有用其他编程语言进行过GUI编程。我只使用过HTML/CSS/Javascript设计过GUI界面,其中使用了一个第三方的布局管理器PainlessGridbag,那个设计好得多。 - undefined
好吧,现在是关于编写很多代码却得到很少结果的部分。在Java中,一切都必须放在类中。这迫使面向对象编程成为你的唯一选择。起初,当我在大学学习时,我觉得这很好,因为它能使一切井然有序。但很快就变得烦人了,我不想把每一件事都放在一个类中。而且匿名函数或类没有选择。甚至没有关联数组。我必须使用哈希映射表或创建一个类来解决这个问题。虽然这样可以工作,但它迫使我做比其他语言更多的工作。 - undefined
在JavaScript中,有一种方法可以扩展当前对象,而不是继承。它被称为对象的原型。例如,当您向该原型添加一个函数时,使用该原型的所有对象现在都具有该函数。如果我想在Java中做到这一点,我必须创建一个带有此函数的新类,然后使用具有该类函数的对象。 - undefined
@这是一个死胡同:抱歉,但说实话,你听起来对于无法理解某些概念并试图归咎于Java感到非常沮丧。我很了解JavaScript,你所提到的概念被称为基于原型的编程,与基于类的编程形成对比。大多数面向对象的编程语言使用后者。如果你真的对自己所说的事情很认真,那就用JavaScript、Python、PHP或其他任何高级脚本语言编写代码吧。Python可能是最适合你需求的语言。 - undefined
显示剩余4条评论

1
虽然有一定难度,但我建议您学习C++。它是世界上最强大的语言之一,有许多创建GUI的方法。有传统方式,使用windows.h头文件(难以理解),但我建议您使用Qt,因为它是一个适用于几乎所有事情的优秀框架,比如单个控制台应用程序、强大的GUI等等……而且,它可以进行跨平台编译,这样您就可以为多个操作系统进行开发。

0
我的建议是使用Python和wxPython来处理图形用户界面方面的内容。我发现它的语法比Java更加简洁,喜欢它对良好编码风格(缩进是语法的一部分)的强制执行,并且迷恋上了像列表推导式这样的特性。此外,也有一些可用于Python的GUI构建工具包(如wxGlade、XRCed),可以通过拖放机制创建UI的框架结构。

-1
我推荐使用Visual Basic,它简单易学。

这是一个比我的建议稍微好一点的建议,但他提到了Linux,所以我不知道他真正想要什么。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接