我目前正在开发一个大项目,并且很快就会需要一个脚本语言来实现实用程序脚本,比如从源代码部署完整项目,检查和修复数据库,构建一个可随时部署的bundle等等。该项目是用PHP编写的,我考虑过使用它,但我认为它不适合这项任务。
我主要要求的是,按照重要性命令:
这就是我现在所能想到的。我已经回顾了Python和Ruby; Python满足所有要求,Ruby似乎也是如此,尽管我不确定Windows上的易部署性和库的可用性。但是,我也在寻找使用这种用您选择的语言编写的脚本的经验。
答案 0 :(得分:10)
你说过:Python符合所有要求。这是我的“投票”,虽然我可能有点偏颇。
修改 :(根据我的第一手经验,在相关任务的上下文中)
对于脚本类型的活动而言,看似骄傲或缺乏经验的风险,我从来没有在角落里画过Python不允许我离开的。
然而,Python的可能“批评”有点自相矛盾的是,它的广泛的包库(除了其慷慨的标准库);虽然拥有所有这些“第三方”库是件好事,但有时很难衡量一些这些软件包的成熟度和有效性,有时候会浪费一些时间来选择这些(或者决定是否“从头开始”编写) 。然而,由于口译员的互动性,这种评估可以足够快。答案 1 :(得分:2)
Ruby很不错,但是python很棒。 Python提供了很好的文档,易于学习,拥有大型社区,运行非常有用的标准库,将在大多数类似unix的系统上预先安装,并且在Windows上安装并不会太痛苦。
答案 2 :(得分:1)
我将它用于Java和PHP项目。并回答你的观点:
答案 3 :(得分:1)
Python是一种很棒的脚本语言,非常便于携带。当我的脚本的可移植性是主要问题时,这是我的选择。
但便携性很少是我的主要问题。我的大多数脚本都与操作系统问题密切相关。因此,当我知道我在Windows上运行并且可能没有python时,我在Windows Script Host下使用JScript。
答案 4 :(得分:1)
Python,毫无疑问。它符合您的所有目标,并且具有简洁易学的优点。
答案 5 :(得分:1)
iconiK,
此答案仅与您的问题在外围相关,但您收集的信息多于解决此问题所需的信息。您的分析和初步研究非常令人印象深刻,推迟决策的成本高于Python相对于Ruby的边际价值,反之亦然。
我也在寻找你的经历
我的经验是通过研究可以了解技术数量的限制,我的直觉告诉我你已经达到了这个限制。如果你停止研究并继续你的项目,你会更好。如果你能做一个小型的试点项目,那将是很好的,但如果没有,你就可以通过潜水了解更多,而不是通过提问来学习。
可能我最近的一个重要经验是,在1999年,我必须决定一个主要的编译器项目是用Objective Caml还是Haskell来编写的。我们选择Caml,有很多次我希望我选择Haskell,但事实上在1999年Caml可能是更好的选择,当然我们用这个编译器做了很多好的工作。最糟糕的选择是等待收集更多信息。
我认为这里的另一个教训是,因为没有技术是完美的,无论你选择何种技术,你都会感到遗憾。 仅仅因为你有遗憾并不意味着你做出了“错误”的选择。
健康状况良好的代码!
答案 6 :(得分:0)
我在Windows上使用Perl和Python广泛编写脚本,因此我会毫不犹豫地使用它们进行部署。我会选择Python来获得更平滑的学习曲线。
答案 7 :(得分:0)
Perl,除了学习曲线。可移植性不是问题,对于有CPAN的库,社区是完美的,调用外部程序不是问题,你总是可以包装一个C库,安装是不费脑子的。
答案 8 :(得分:0)
Python非常适合这种事情。我只是想提请你注意Tcl,这对于通用脚本和文件处理来说非常棒。 Wikipedia entry about Tcl