我认为,我已经在 PHP 中“编程”了大约3到4年,而且我认为我已经非常擅长它了,所以决定转向更复杂的事情。我知道PHP过于灵活(例如,你不必声明变量的类型),而且我必须习惯于以这种方式编写代码。
所以基本上我想编写可以控制许多CPU内核并创建Windowed应用程序的应用程序。能够使用像DirectX或OpenGL这样的3D库非常棒。
我真的不太了解适合这种应用程序的语言。那么,在您看来,我应该学习哪种语言?我应该买哪本书来学习它?
答案 0 :(得分:7)
Python对您来说是最简单的一步(例如,它中没有“声明变量类型”)并满足您的其他要求(通过多处理,OpenGl等多个核心)。 C#接下来更容易(你必须声明变量类型,但是,像Python和PHP一样,它代表你管理内存)但是多平台方面(除了在Windows上,你必须依赖Mono项目)不那么令人信服; Java可能仍然提供更好的“多平台”体验,但在其他方面,C#更丰富(但是,它们是两种语言,功能和难度基本相似)。
C ++肯定是最难的(你必须管理你的内存以及声明事物),但也是最强大的(因为你到管理你的记忆,以及做你提到的所有事情以及更多。)
所以,这是你的号召:你对学习/过渡/使用的简易性,纯粹的力量,灵活性,多平台的善良等有多重视?正确的选择可能取决于您对这些因素的相对权重。至于这本书,如果你选择Python(我不推荐我自己的书,因为那肯定会有偏见;-),Wesley Chun的核心Python可能是最好的;如果是C ++,我最喜欢的是Lippman's,Lajoie和Moo的“C ++ Primer”。不确定哪些书最适合C#(或Java)。
答案 1 :(得分:2)
C ++是大型跨平台项目的典型选择。 掌握如何用C ++编写跨平台应用程序是一个相当大的挑战,但绝对值得IMO。
答案 2 :(得分:0)
PHP在语法上比C / C ++更类似于Python,但Python更容易学习,更现代。
如果您使用的是Windows,则可能需要尝试使用C#,如果不是,请尝试使用Java。这两种语言都具有C ++风格的语法,但比C ++更容易学习。
答案 3 :(得分:0)
“跨平台”有点过于笼统。您希望跨平台做什么?
像Silverlight和Flash / Flex这样的富互联网平台绝对是跨浏览器,并且将在Windows和Mac上的浏览器之外运行。
如果你想要一种可以在任何环境中使用的编程语言,那么C ++,Python,Ruby和Java是强有力的选择(如果你愿意考虑Mono,也是C#),但这不保证代码你在一个平台上写入将在其他平台上运行良好(或根本没有)。问题不在于语言与操作系统,平台特定库,用户界面平台等的连接。可移植性很难,当你看到高度并行编程等问题时,可能不会变得容易。 / p>
您没有确切地说为什么跨平台很重要;这也可能影响你的选择。特定的应用或服务类型?您喜欢的特定工具也是跨平台的吗?您对应用程序代码,基础结构代码,平台代码感兴趣吗?
我个人偏向于C#和.NET。 .NET的下一个版本将拥有一些非常棒的并行编程工具和极大改进的线程模型。 WPF和Silverlight在图形方面令人兴奋,但这比DirectX或OpenGL要高得多,所以它在很大程度上取决于你的目标。