什么是为Web开发人员学习的优秀桌面编程语言?

我想学习桌面编程语言,最好是C,C ++或C#。 我是PHP / HTML / CSS程序员,我想进入桌面应用程序。 我需要一些非常强大的function,我希望能够使用Windows GUI创建应用程序。

Stack Overflow社区会推荐什么? 在深入研究这些语言之前,我应该有什么知识吗?

编辑:

一个网络程序员想要创建Windows应用程序 ,你推荐C?

你们这有什么问题?!

/编辑

显然是C#。

C#将更容易进入,并允许您使用WinForms或WPF以及.NET中的所有新Microsoft玩具构建Windows应用程序。 如果您了解PHP的方法,那么您应该已经熟悉语法,面向对象的概念,exception处理等。

我建议你不要用C复杂你的生活,如果你想要的只是创建Windows GUI,绝对不能用C ++。 它们确实提供了良好的教育体验,它们对更高级的东西很有用(例如,使用其他工具包进行跨平台开发),但代价是更陡峭的学习曲线和降低的生产力。

此外,如果您是Web开发人员 ,C#是您可以(实际上,heh)用于Web的3个选项中唯一的语言。 ASP.NET不是一个糟糕的框架,也可能值得研究。

首先简要介绍一下C,编写一些教程程序。 C很小,定义明确,明确的语言定义(Kernighan&Ritchie – C编程语言)只有几百页。 尽管掌握指针和递归可能是一个挑战,语言本身足够小,以至于可以完全了解语言。 编写C的乐趣之一是,要达到可以编写代码而不必不断参考文档以查看如何使用鲜为人知的特征x或库函数y的水平并不是很难。 考虑将C学习作为基础。

但是,要实际编写有用的应用程序,您将需要使用C ++或C#。 这取决于你想写什么。 由于垃圾收集和一般易用性,C#可能会在大多数面向商业的案例中得分,但C ++会为高性能,低级别或游戏域而得分。 还有大量可用的C ++库代码可以相对容易地利用(而纯C代码也很容易适应)。 如果您的目标是在编写具有特定问题的内容时,那么这样的可用性很可能抵消了C ++在完成任务时所带来的更高开销。

举例来说,我在Sourceforge上对’image’进行了过滤搜索,并返回了以下项目计数

C#:139
C ++:569

即使有目的地更多以商业为导向的C ++仍然得分更高 – ‘财务’

C#:12
C ++:32

对于任何数学或技术方面的分数都会对C#进行大量加权 – “分形”

C#:4
C ++:44
C:24 < - (C ++明确排除)

这当然是一个相当粗略的分析,但是例如,如果我的目标是编写桌面分形生成器程序,那么我将选择C ++而非C#,因为在C ++中处理UI所涉及的额外工作将很容易被过多的C ++中提供的示例代码。 OTOH如果我正在编写一个业务应用程序,那里没有很大的优势来拥有示例代码和大量的UI来处理那么我会去C#。

事后编辑:至少熟悉C语言的另一个原因是,Objective-C还是Mac和iPhone上的主要开发环境。 Objective-C是一个非常薄的包装器的C,并且只是C ++的第一个表兄弟,所以如果你设想你可能处于想要将代码移植到Mac上或直接在Mac上开发的位置,那么我认为你是如果你至少对C ++(或C#)如何在C上构建而不是必须在树上“横向”,那么就会发现它不那么令人困惑。

“我需要一些非常强大的function,我希望能够使用Windows GUI创建应用程序。”

对于丰富的Windows GUI,我很想看看“xaml”变种:WPF(完整桌面)和Silverlight(如闪存) – 这将为您提供最新的工具等,以及大量的造型function。

为此,C#将是首选。 托管C ++是一种选择,但它更有用。

C#vs其他人真的解决了不同的事情但是考虑到你的网络背景和它的快速开发方法,我绝对会选择C#

我的建议是学习C ++。 C#很好,但它会阻止你编写可移植代码。 如果你学习C ++,你会有很多选择。 在Windows中,您可以使用Windows窗体应用程序或WPF与.NET框架。 MFC是另一个不错的选择。 QT是在多个平台上运行的另一种选择。 因此,通过学习一种语言,您可以为多个平台编写代码,并获得各种GUI支持。 学习C ++之后,学习C#将是微不足道的。

祝一切顺利

C#是这些语言中最高级的语言,这意味着它是最容易实现你想要的语言。

Windows GUI可以肯定用C ++甚至C语言制作,但它更难。

绝对首先去基础:学习C.

然后转到你真正的目标。 如果你想要多平台C#的机会被丢弃。 你想要使用C ++和Qt,或wxWindows。

在我看来,你应该开始研究C,以获得有关内存,文件访问等方面的基础知识。 C是一种低级语言,这意味着您可以更好地控制对操作系统的访问方式,但是要创建Windows应用程序,您必须编写大量代码。 出于这个原因,在使用C做一些事情后,我应该从使用Visual Studio 2008的C#开始。.Net Framework附带了大量的类,使您的生活更轻松。

希望能帮助到你。 亲切的问候。 Josema。

C / C ++都允许低级编程。 这意味着一切皆有可能,但即使是简单的事情也很难。 如果你说你想要一些强大的东西,那就是你的意思,你应该从C ++开始。 它至少为您提供了一些不错的GUI库(gtk +使用gtkmm或qt),而使用C进行GUI编程则很痛苦。

另一方面,如果你想快速开发应用程序(这就是你强大的意思),那么C#可能就是你要走的路。

我推荐C#。 它并不像其他两个那么强大,但是根据你的需要,我相信C#将是最不痛苦的。 C和C ++是低级语言,所以我认为它们将为GUI和其他东西做很多工作。

保存C.对那些建议学习C的人,请为此提出论据。 我声称学习C而不是C ++绝对没有任何好处。 与他们不同,我有论据 支持这一说法 。

简而言之:C已经是所有意图和目的的C ++子集,但它远非最有趣的子集。 它只提供了对新的编排范式非常有限的洞察力。 另一方面,C ++定义了一些非常有趣的新范例,此外,它们是C必须提供的所有内容的概括(即迭代器是指针的泛化)。

重申: 如果选择在C和C ++之间,请选择C ++。

通过语言,首先是C在Unix上,然后是C ++与MFC,然后是C#(从1.0开始)我认为回到早期的语言化身有点像学习拉丁语。 哦,可能只是偷了保罗格雷厄姆的东西,但我同意。

如果你必须有一个最小的目标代码大小,非常好的C非常好,非常适合嵌入式的东西,它是汇编语言的一步。 我正在考虑像Microchip PIC等,你可能只有1K字的程序空间。

如果你可以拥有更大的对象大小但仍然需要能够直接锤击金属,那么C ++是非常好的 – 所以像设备驱动程序,网络堆栈等等。这种胶水程序位于一切之下。

操作系统最终可能会出现这两种情况 – 或者更可能是两者的混合,这取决于程序员,代码的年龄,需要与之交互的内容,外部积雪的深度(只需再运行一次,然后再运行一次)我会写那个方法!)

C#非常擅长以更高级别的业务为重点的用户层应用程序。 它们可能是基于网络的,基于客户端的,两者兼而有之 – 这并不重要。 关于.net系列的好处是,你拥有一个丰富的库,对于这个重要的层,它正在大量开发,以便始终更加丰富。

随着计算机变得越来越强大,开发人员的成本超过了处理器或内存的成本。

使用C#,忽略C和C ++。 当您对C#感到满意时,您将无需使用较低级别的语言进行编程以提高速度。

同样,从技术角度来看,对C#和C. Sure C的另一次投票很有意思,并且会教你所有细节,但事实是,你不需要知道所有细节来制作应用程序。 如果你的目标是使某些东西发挥作用,听起来就像它一样,那就是C#。 C#是三者中的最高级别,这意味着更少的时间来对抗语言,更多的时间使得工作。

听起来像大多数人都建议你学习C,这样你最终可以做出更好的C#程序。 为什么要等,直接去C#学习它。 我确实认为C ++是一种绝对优秀的语言,有一天你应该学习它,但如果你从未学过C或C ++,那就没有理由不能制作高质量的C#语言 – 很多人每天都这样做!

你开始使用什么样的语言并不重要,但如果我是你,我会这样做:

从C语言开始(可能很难理解)转到C ++并最后C#

我建议你从C#开始,但很快就会升级到C ++,因为一旦你学会了如何编码,你应该回到自己的根源。 我正在学习电子学,因为我还要回去。 您了解的方式和原因越多,您就能更好地了解如何最好地到达您需要去的地方。 我认为一个不懂任何低级语言的C#程序员会编写相当次优的代码,但是学习C#的低级程序员会对所有托管内容过于谨慎。 所以,无论你选择什么,你都应该考虑从长远来看。

我会去C#。

我用其他2完成了我的时间(很多)并找到了C#’清洁’。 您还可以获得.Net中包含的各种function的丰富库。 我假设您对开发其他非Windows平台不感兴趣,这些平台可能是使用C或C ++的理由。 我还假设您不需要从系统中挤出最后一滴性能,而C可能会给您带来轻微的优势。

对于那些说你应该学习C以便理解编程是如何工作的人我会说你应该学习汇编程序以了解C的工作原理。 我做了,它确实有帮助,但它真的值得痛苦吗? 要成为一名程序员,你必须打开你的大脑。 想想你在做什么,了解你的工具!

我的投票:C#

学习C#。

从基础知识开始是好的,但是从CI开始比C#的基础知识更好。 这将为您提供C#基础知识的优点,并在您转向更高级的主题后为您奠定坚实的基础。

例如,您可以在这里查看Charles Petzold的“.NET Book Zero”。

我建议::

首先进入C.花一些时间来使用它(但不要太多)

然后进入C#。 这就是你更容易处理GUI事物的方式。 像VisualStudio这样的IDE可以帮助你处理很多GUI。

如果你想成为C / C ++ / C#真正优秀的程序员,那么它可能不是好方法,但我认为你对成为一个大师或类似的东西不感兴趣:)

在C#中开发Windows应用程序的工作量比C或C ++要多得多。 学习C#。

C#是一个很好的起点。 你可以免费获得它,你可以使用XNA工作室(也是免费的)做一些有趣的图形。

如果你有特定的理由,我只会学习C ++。

如果您正在进行Windows编程,我建议您执行Petzold编程Windows书籍的前几章。 它将使您基本了解C以及Windows如何在裸机级别工作。 你真的不需要学习C. Charles Petzold握着你的手,让你在基本的C Windows程序中运行起来。

学习C#…如果你想开发桌面应用程序。

通过适当的库集,标准C ++中的内存可以像托管(智能指针)一样简单。 某些C ++小部件库与C#.NET一样易于使用。 然而,由于几个抽象层,它可能比C#表现更差。 使用C ++,您需要学习非标准库。 使用.NET,您需要的大多数组件都是标准组件。

C很古老,没有STL。 它要求你聪明,但我怀疑它的优点。

我需要一些非常强大的function,我希望能够使用Windows GUI创建应用程序。

好的C是非常强大的,因此可以处理这个标准,但像C#和WPF这样的东西会让生活如此,如果你的目标是GUI应用程序,那就更容易了。

没有C / C ++ / C#体验从C开始编辑:好的,直接用C#或C ++开始不要浪费时间。 您不能再用C认真编写Windows桌面应用程序代码,这只是痛苦的。

然后转向面向对象语言以获得更强大的function。

如果你不想远离窗户平台,C#不是更好的选择,或者看看Mono平台。

IMO,C#比C和C ++更先进,你将更快地构建大型应用程序。 WPF librarues将为您提供没有Windows样式的漂亮UI(但仅限于Windows系统…)

你打算为windows制作基于gui的应用程序吗? 根据什么,我推荐VB。 但是,根据您的选择,我会选择C#。