我想学习桌面编程语言,最好是C,C++或C#.我是PHP/HTML/CSS程序员,我想进入桌面应用程序.我需要一些非常强大的功能,我希望能够使用Windows GUI创建应用程序.
Stack Overflow社区会推荐什么?在深入研究这些语言之前,我应该有什么知识吗?
编辑:
一个网络程序员想要创建Windows应用程序,你推荐C?
/编辑
C#将更容易进入,并允许您使用WinForms或WPF以及.NET中的所有新Microsoft玩具构建Windows应用程序.如果您了解PHP的方法,那么您应该已经熟悉语法,面向对象的概念,异常处理等.
我建议你不要用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++的第一个表兄弟,所以如果你想到你可能会想要将代码移植到Mac上或直接在Mac上开发,那么我认为你是如果你至少对C++(或C#)如何在C上构建而不是必须在树上"横向",那么就会发现它不那么令人困惑.
"我需要一些非常强大的功能,我希望能够使用Windows GUI创建应用程序."
对于丰富的Windows GUI,我很想看看"xaml"变种:WPF(完整桌面)和Silverlight(如闪存) - 这将为您提供最新的工具等,以及大量的造型功能.
为此,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.