好吧,我了解编程语言的基础知识,我学习了 python 并且非常喜欢它。我现在正在学习 python 的中间部分,我已经掌握了这些概念。我正在处理一个项目,同时解决练习算法使用的计算机问题。我了解到 python 有局限性,并希望通过学习另一种编程语言来弥补这些局限性。
您建议哪种编程语言可以与 python 很好地协同工作?我想要一些能够在使用 python 以及与之相得益彰的语言时为我提供实际经验的人。像“尝试铁蟒蛇或jython blah blah blah”之类的答案不会有帮助,如果你能给我它的优点和缺点,它的成熟度它的问题那么这对我来说就足够了......非常感谢
编辑 -
抱歉各位,我想我需要在此添加一些细节。我将主要使用 python 进行网络编程或游戏开发。因此,如果您认为这种语言 A 可以帮助我使用 python 进行 Web 编程,那么就是这样。
Ok so I know the basics of programming languages, I've studied python and liked it a lot. I'm studying now the intermediate parts of python and I'm catching the concepts already. I'm working with a project and at the same time solving computer problems that practices algorithm use. I've learned that python has limitations and wants to compensate that limitations by learning another programming language.
What programming language do you suggest that synergizes well with python? I want something who can give me their actual experience while working with python and the language that complements well with it. Answers like "try iron python or jython blah blah blah" won't help, if you can give me it's pros and cons, it's maturity it's problems then that's good enough for me... Thanks a lot
EDIT -
Sorry guys, I think I need to add some details in this. I'll be using python mainly for web programming or game development. So if you think this language A would help me in python for web programming then that's it.
发布评论
评论(5)
IronPython 或 Jython 有什么问题?您可以学习如何用 Java 或 .Net 编写库来缓解 Python 的一些速度问题。学习编写自己的 Python 库肯定会帮助您更好地理解和克服您提到的限制。
What is wrong with IronPython or Jython? You can learn how to write libraries in Java or .Net to alleviate some of Python's speed problems. Learning to write your own Python libraries will certainly help you better understand and overcome the limitations you mentioned.
对我来说,学习 Python 后最明显的选择是学习 C。C 是一种较低级语言,因此您要处理比对象更多的基本计算机概念,但它会让您了解编写 Python 扩展所需的知识。
这样,就可以轻松地用 Python 编写程序,然后将各个部分迁移到 C 以提高速度 - 通过 编写扩展 或使用桥接语言,如 Cython 。
For me, the obvious choice to learn after Python is C. C is a lower level language, so you're dealing with more elemental computer concepts than objects, but it will give you the understanding necessary to write extensions to Python.
That way, it will be easy to write your programs in Python, and then migrate parts to C for speed--either by writing an extension or by using a bridge language like Cython.
如果遇到性能问题(这可能是游戏编程中的问题),C/C++ 程序可以很好地集成到 Python 脚本中,反之亦然:
但我自己还没有看到这样做的必要性。
If you run into performance problems (which might be an issue in game programming), C/C++ programs can be integrated well into Python scripts and vice versa:
But I haven't yet seen the need to do so myself.
当您对 Python 非常熟悉时,Common Lisp 和 Scheme 是学习函数式编程的好语言。我最近一直在自己学习CLisp,有很多“啊哈!”的感觉。让它变得很有趣的时刻。
如果您计划进入专业领域,IronPython 和 Jython 是值得学习的好工具 - 目前 C# 和 Java 的开发工作有大量的工作 - 它们几乎是专业领域的热门语言。 IronPython 与所有 .NET 语言集成,而 Jython 当然与 Java 集成。因此,您的选择应该反映您是否愿意在 .NET 公司工作。 IronPython 和 Jython 都是非常成熟的语言。
其他人已经提到过 C/C++,如果您不熟悉它们,并且有大约 30-40 年的编程寿命,并且 TIOBE 指数 2010 年 7 月的前 3 名 排名并不是学习它们的充分理由......好吧,您可能还有其他问题;)
如果您正在寻找尚未真正经过硬核测试的较新语言,您可以选择 Ruby(这似乎是新的性感语言)和 通过 Google 访问。
Perl 有点像 Ruby,因为 Python 和 Ruby/Perl 以及它们所涵盖的领域之间有相当多的重叠。
如果我要选择另一种语言,在已经了解 Python 的情况下,我会选择编译语言 - 也许是较低级别的语言,例如 C\C++。我想这确实可以由你想做什么来决定。如果您想在 .NET 公司工作(这可能意味着也可能不意味着您真的喜欢 Microsoft 产品),IronPython 和 .NET 语言(C#、VB)是您的最佳选择。 OTOH,如果您想在 Google 这样的公司工作(该公司碰巧雇用了某个人 ),他们广泛使用 Java 和 Python,因此学习 Jython 可能更好。
我想您需要问自己的问题是,“我
今天明天想去哪里?™”When you're quite comfortable with Python, Common Lisp and Scheme are good languages to learn about functional programming. I've been learning CLisp myself lately and there are a lot of "ahah!" moments that make it a lot of fun.
IronPython and Jython are great tools to learn if you plan on entering the professional world - there is tons of development right now in C# and Java - they're pretty much the hot languages of the professional world. IronPython integrates with all of the .NET languages, while Jython of course integrates with Java. So your choice there should reflect your desire to work at a .NET company, or not. Both IronPython and Jython are well matured languages.
Others have already mentioned C/C++ which are good choices if you're not familiar with them, and if ~30-40 years of programming life, and Top 3 rankings for July 2010 on the TIOBE index is not a strong enough reason to learn them... well you probably have other issues ;)
If you're looking at newer languages that haven't really been tested hard-core, you have languages like Ruby (which seems to be the new sexy), and Go by Google.
Perl is a bit like Ruby in that there is quite an overlap between Python and Ruby/Perl, and the areas they cover.
If I were to pick another language, already knowing Python, I'd go with a compiled language - maybe lower level like C\C++. I guess it really can be determined by what you want to do. If you want to work for a .NET company (which may or may not imply you really love Microsoft products), IronPython and a .NET language (C#, VB) is the way to go. OTOH, if you want to work for a company like Google (which happens to employ a certain individual), they extensively use Java and Python, so it's probably better to learn Jython.
I guess the question you need to ask yourself is, "Where do
youI want to gotodaytomorrow?™"Haskell 或 Ocaml,或者可能是 Lisp 方言,例如 Common Lisp 或 Scheme。
Haskell or Ocaml, or maybe a Lisp dialect such as Common Lisp or Scheme.