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

现在我主要使用 C/C 进行开发,但我用 Python 编写了一些小实用程序来自动化一些任务,我真的很喜欢它作为语言(尤其是生产力)。

除了性能(这个问题有时可以通过 Python 与 C 模块的轻松接口来解决),您认为它是否适合用于开发独立复杂应用程序的生产用途(例如想文字处理器或图形工具)?

您会推荐什么 IDE?在我看来,Python 提供的 IDLE 甚至对于小型项目也是不够的。

请先 登录 后评论

5 个回答

Greg Hewgill

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

但是,对于我处理过的一些较大的 Python 项目,我发现它与 C 中的编程不太一样。我正在研究一个语言解析器,并且需要在 Python 中表示一个 AST。这当然在 Python 可以做的范围之内,但是我在重构时遇到了一些麻烦。我正在更改我的 AST 的表示,并更改了很多方法和类,我发现我错过了在 C 解决方案中可以使用的强类型。 Python 的鸭子类型几乎 灵活,我发现自己添加了很多 assert 代码来尝试在程序运行时检查我的类型。然后我不能确定所有内容都正确输入,除非我进行了 100% 的代码覆盖率测试(当时我没有)。

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

我没有将 Python 用于任何 GUI 的东西,所以我无法评论这方面。

请先 登录 后评论
Marcin

你会找到两个答案

请先 登录 后评论
Martin Clarke

我知道我说的可能是显而易见的,但不要忘记,开发团队的素质和他们对技术的熟悉程度将对您的交付能力产生重大影响。

如果您拥有一支强大的团队,那么如果他们熟悉的话,这可能不是问题。但是,如果您有更多不熟悉该技术的 9 到 5 岁的人,他们将需要更多支持,并且如果提高生产力值得付出任何支持的成本,您就需要打电话。

请先 登录 后评论
pauldoo

在较大的代码库中,重构是不可避免的,而由于缺少静态类型,python 中的重构比静态类型语言要困难得多。

请先 登录 后评论
Andrea Francia

我只有一次 python 经验,我的垃圾 cli 项目。

我知道可能部分或全部问题取决于我对 python 的缺乏经验。

我发现这些事情令人沮丧:

  1. 很难免费找到一个好的 IDE
  2. 对自动重构的有限支持

此外:

  1. 需要引入两级分组包和模块让我感到困惑。
  2. 在我看来,没有广泛采用的代码命名约定
  3. 在我看来,有些标准库 API 文档不完整
  4. 有些标准库并不完全面向对象这一事实让我很恼火

虽然有些python程序员告诉我他们没有这些问题,或者说这些都不是问题。

请先 登录 后评论