Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python适合大型软件项目(不是基于web的)吗?_Python_Ide - Fatal编程技术网

Python适合大型软件项目(不是基于web的)吗?

Python适合大型软件项目(不是基于web的)吗?,python,ide,Python,Ide,现在我主要用C/C++开发,但我用Python编写了一些小实用程序来自动化一些任务,我非常喜欢它作为一种语言(尤其是生产力) 除了性能(由于Python与C模块的接口方便,这个问题有时可以解决),您认为它是否适合在独立复杂应用程序的开发中用于生产(例如,考虑到字处理器或图形工具) 你有什么建议?在我看来,Python提供的空闲时间甚至不足以用于小型项目。在我看来,Python完全可以用于开发复杂的应用程序。我认为python在服务器端比编写图形客户端更强大。但是看看。他们使用.NETIronPy

现在我主要用C/C++开发,但我用Python编写了一些小实用程序来自动化一些任务,我非常喜欢它作为一种语言(尤其是生产力)

除了性能(由于Python与C模块的接口方便,这个问题有时可以解决),您认为它是否适合在独立复杂应用程序的开发中用于生产(例如,考虑到字处理器或图形工具)


你有什么建议?在我看来,Python提供的空闲时间甚至不足以用于小型项目。

在我看来,Python完全可以用于开发复杂的应用程序。我认为python在服务器端比编写图形客户端更强大。但是看看。他们使用.NETIronPython端口用python开发了一个完整的电子表格

如果您熟悉eclipse,可以看看它为python提供了自动完成和调试支持,以及所有其他eclipse产品,如svn支持。开发它的人刚刚被收购,因此这将是未来的可靠选择

@马辛

缺点:作为一种动态语言,它有自己的方式 更糟糕的IDE支持(正确的语法) 完成需要静态输入, 在Java中是显式的还是推断的 在SML中

您是对的,静态分析可能无法为动态语言提供完整的语法完成,但我认为pydev做得很好。此外,在编写python时,我有一种不同的开发风格。我总是打开一个ipython会话,使用一个F5,我不仅可以从ipython获得完美的完成,还可以进行对象内省和操作

但是如果你想写第二个谷歌 或雅虎,你会更好地与 C#或Java


要在应用程序引擎上工作,请全部使用python。据我所知,他们在谷歌内部也使用了大量python。

我真的很喜欢python,现在对于我自己做的小型(非gui)工作,python通常是我的首选语言

但是,对于我处理过的一些大型Python项目,我发现它与C++编程不太一样。我正在开发一个语言解析器,需要用Python表示AST。这当然在Python可以做的范围内,但我在一些重构方面遇到了一些麻烦。我正在改变我的AST的表示,改变了很多方法和类,我发现我错过了在C++解决方案中可以使用的强类型。Python的duck类型几乎太灵活了,我发现自己添加了很多

assert
代码,试图在程序运行时检查我的类型。然后,除非我进行了100%的代码覆盖率测试(当时我没有),否则我无法确定所有内容都正确键入

事实上,这是我有时会错过的另一件事。可以用Python编写语法正确的代码,而这些代码根本不会运行。编译器在实际执行代码之前无法告诉您这一点,因此在不经常使用的代码路径(如错误处理程序)中,您很容易会发现隐藏在周围的未发现的错误。即使是像打印带有%格式字符串的错误消息这样简单的代码,也可能在运行时由于类型不匹配而失败

我没有将Python用于任何GUI内容,因此我不能就此发表评论。

Python(在Python程序员中:)被认为是一种用于快速原型制作的优秀语言。没有太多无关的语法妨碍您的思维过程,因此您所做的大部分工作都倾向于深入到代码中。(编写好的Python代码所需的成语远比编写好的C++要少得多) 有鉴于此,大多数Python(CPython)程序员认为“过早优化是万恶之源”的哲学。通过编写高级(且速度明显较慢)Python代码,可以在应用程序即将完成时使用C/C++绑定来优化瓶颈。在这一点上,通过适当的分析,您的处理器密集型算法变得更加清晰。通过这种方式,您可以以一种可读性和可维护性很强的方式编写大部分代码,同时还可以提高速度。由于这个原因,您将看到几个用C编写的Python库模块

大多数Python中的图形库(即Wxpython)只是C++库周围的Python包装器,所以你几乎是在编写一个C++后端。 为了解决您的IDE问题,(Stani的Python编辑器)是我使用过的一个很好的IDE,它也可以完成工作。两者都是OSS,因此可以自由尝试


[编辑]@Marcin:你有没有用Python编写>30k LOC的经验?同样有趣的是,你应该提到谷歌的可伸缩性问题,因为他们是Python最大的支持者!还有一个叫做NASA的小组织也经常使用Python;)看。

你会找到两个答案——一个是宗教式的(是的!当然!这是有史以来最好的语言!),另一个是宗教式的(你一定是在开玩笑吧!Python?不……它还不够成熟)。我可能会跳过最后一个宗教(Python?!使用Ruby!)。与往常一样,真相远非显而易见

优点:它简单易读,包括电池,有很多很好的库,可以存放几乎所有的东西。它的表现力和动态类型使它在许多情况下更加简洁

缺点:作为一种动态语言,它的IDE支持要差得多(正确的语法完成需要静态类型,无论是在Java中显式的还是在SML中推断的),它的对象系统远远不够完美(接口,有人吗?)在未知的情况下,返回int或boolean或object或某种排序的方法很容易产生混乱的代码

我的目标——我喜欢Python的脚本编写、自动化、微型Web应用程序和其他定义良好的简单任务。在我看来,这是远远不够的