我需要一个非常好的理由来使用Python

时间:2008-10-30 01:59:49

标签: python

我一直试图在我的工作中使用Python。我们基本上使用C#和ASP.NET进行所有开发。我们80%或更多的项目都是Web应用程序。看起来很自然,我们会看一些漂亮的动态网络语言(Ruby,Python等),而IronRubyIronPython之类的东西,我开始认真研究。

我喜欢Python。这是一种美丽,富有表现力的语言。当然,编码是一种乐趣。众多的python模块和框架使它非常吸引人。问题是,我想不出任何具体的问题,任何特定的障碍需要像Python这样的语言。 ASP.NET为我们提供了RAD,它为我们提供了一个功能齐全的框架和所有优秀的东西。此外,我们都已经了解C#,并且在C#中有很多项目,只是学习一种新语言,因为不能正常工作。

你们可以帮我想一想最终说服我的老板真正学习Python并开始在项目上使用它吗?

编辑:我知道没有问题只需要一种语言,我的意思是,是否存在动态语言优于静态语言的特定问题。

再次编辑:我还要提一下,我的老板促使我对此进行调查。他花了几个小时来研究这些语言,找到一个好的,学习它,然后弄清楚我们如何使用它。我在这里的最后一步,我不需要讲一讲为什么我应该考虑改变我公司所做的事情的动机,因为他们这样做是有原因的。

10 个答案:

答案 0 :(得分:28)

“你能帮助我想出一些事情,最终说服我的老板真正学习Python并开始在项目中使用它吗?”

不。

没有什么比成功更成功。使用Python。成功的。让人嫉妒。

当被问到为什么你成功时,你可以谈论Python。不是之前。

明智地选择项目:动态语言具有显着优势的事物。需求的细节已经确定。比如数据转换,日志文件抓取以及BAT文件的超级复杂替换。

使用Python开始做一些有用的事情,而其他人都站着试图获取足够的业务和域信息来启动项目来开发复杂的MVC设计。


编辑:一些Python到救援故事。

那就是我。


编辑:“老板促使我调查”,“找出我们如何使用它”改变一切。

“最终说服我的老板真正学习Python”是误导性的。你不是在上游游泳。有关“说服我的老板”的问题,请参阅How Do I Make the Business Case for Python。编辑说你已经过了这个阶段。

动态语言提供了灵活性。利用它。我上面的两组例子是两个灵活性很重要的领域。

  • 要求并未完全确定。使用动态语言,您可以开始使用。返工不会是一个交易破坏者。使用Java(以及C ++和C#),您不愿意解决破坏性的设计更改,因为很难打破所有内容并让它再次编译和工作。在Python中,破坏性的更改并不昂贵。

  • 设计不断变化,因为您无法选择组件。您可以在Python中轻松编写Wrappers和Facade。这是一种脚本语言。并且,Python模块非常简单地组成更大的聚合。

  • 由于需求和设计不断变化,编码不断变化。它是脚本化的 - 没有编译。您只需对代码进行更改即可关闭并运行。测试更容易,因为工作周期更短。它不是代码编译 - 构建 - 测试它的代码测试。

  • 由于要求不断变化,测试不断变化。与上述相同。工作周期越来越短。

答案 1 :(得分:12)

几乎没有问题需要特定的编程语言,这不是事情的运作方式。

将新语言引入像您这样的环境中的最简单方法是使用新语言在您自己的时间内开始新的工作项目。让它做你需要做的事情,并在你自己的时间写下来。自己使用它,其他人可能会注意到它。然后他们说“你能把程序寄给我吗?”和繁荣,他们正在使用你的新语言。

如果你真的想要什么,我可能会在Django中写一个网站,只是因为它的管理界面让所有人都感到震惊。

要记住的要点是,如果你开始使用python,这是其他人必须学习的另一件事,这是每个潜在员工的简历中需要的另一个要点。这可能会变得昂贵,管理层也不会喜欢它。

答案 2 :(得分:6)

通常会通过自动执行繁琐的手动任务(尤其是Python / Ruby等动态/脚本语言)来实现语言的隐藏。设置它就像部署构建,或改组备份,或者用Python完成的任何事情。

然后随便溜进来做起来有多容易,并尝试传播一些热情。

接受和意识应该从中慢慢发展,在您知道之前,管理层正在认真考虑将Python用于新项目。

答案 3 :(得分:3)

  你能帮我想一想吗?   最终说服我老板的事情   真正学习Python并开始使用   它在项目上?

不幸的是,答案是否定的。正如哈雷所说,没有问题是要求特定语言。哈利建议的方法也很好。了解你的时间,在你的时间上建立一个有用的应用程序,也许,也许,只是也许,你工作的人会想要使用它,喜欢它,喜欢它,然后想要了解它的更多信息。

您可以采取的另一种方法是更好地了解您的公司为几乎所有开发使用.Net(因此,Windows Server,可能还有SQL服务器)的原因。一旦你很好地理解了为什么他们不对其他语言开放,那么你就有一些火力来建立一个“为什么不呢?”的商业案例。

为什么在拥有可以完成相同工作的工具时支付许可成本?有像免费服务器一样在Python上运行的免费替代品。

为什么不让你的团队有机会发展他们的专业工具带呢?这是我的观点,但一个优秀的开发人员是一个开发人员,他不怕学习新的方式来做他们以前做过的事情。

但是,最后,我不会满怀希望。总而言之,将新语言/环境引入IT商店需要花钱。无论是软件,培训还是员工翻转,都有一个商业原因背后的公司使用单一语言并坚持下去。

我正处于你所处的确切场景中。我在.Net商店工作,这不会很快改变。通过在“自由”时间里完成我自己的项目,我顺便过去了。我喜欢它,它可以实现良好的平衡。

希望这有帮助。

答案 4 :(得分:3)

退后一步,看看你的方法。 “我知道我想要的答案是什么,但我找不到任何支持它的证据。”

尽管Python是我目前的首选语言,但我担心我会发现自己站在老板的一边!遗憾。

我认为你应该敞开心扉,从你组织的最佳利益角度考虑所有选择,看看你是否对最佳语言得出了不同的结论。

选择语言有很多因素,而且它的美妙程度是相当小的。工作人员的可用性是关键。再培训的成本,图书馆和元工具的可用性,性能等等。

一旦你考虑了所有不同的因素(而不仅仅是“噢!这很有趣!”)并做出均衡的评估(而不是预定的答案),你可能会发现你的老板更愿意听。

P.S。建议秘密使用Python作为工作代码,并以一种他们没有准备好的语言给公司留下可怕的代码债务,这对我来说是非常不专业的。

答案 5 :(得分:2)

您可能拥有的最佳杠杆是工具和库;正如其他人所指出的那样, 无需语言来解决任何特定程序。那么让我们来看看你可以利用Python的东西:

  • Google App Engine
  • SciPy的
  • pywinauto
  • django的

那些不在我的头顶;找到适用于您的团队和公司的内容留作提问者的练习:)

答案 6 :(得分:1)

嗯,here's a view为什么Python程序员会成为更好的Java程序员;这些概念与你的情况大致相同。

基本上,学习语言的人,因为他们想表明他们喜欢编程,喜欢学习新事物,更有可能跳出框架思考。

  

......如果公司选择写作   它的软件比较好   深奥的语言,他们将能够   聘请更好的程序员,因为   他们只会吸引那些关心的人   足以学习它。并为   程序员悖论甚至更多   发音:要学习的语言,如果   你希望得到一份好工作,是一个   人们不学习的语言   只是为了得到一份工作。

不仅如此,Python还强制执行“外观漂亮”的代码,而且您不必执行整个代码/编译例程。使用IronPython,您可以简单地使用Python编码并按原样使用它;只是另一个.NET工具。

答案 7 :(得分:1)

语言几乎不是成功的关键。优秀的程序员可以在各种语言中取得成功,您几乎可以用任何语言找到成功的项目。你不会发现那么多的失败因为那些项目就会消失,再也听不到了。如果你正在寻找一门新语言,因为你没有优秀的程序员,即使是世界上最好的语言也无济于事。

而且,你还没有说过你正在做的工作。 Python可能是一个不错的选择,因为它有很好的支持和广泛使用的库,对您来说至关重要。另一方面,C#可能会更好地支持你想要做的事情。上下文之外的工具没有内在的价值。你可能会喜欢螺丝刀,但这并没有帮助你划船。

如果您想使用Python或任何其他语言,只因为您喜欢它,请诚实对待自己和周围的人。看起来你已经做出了转换的决定,不知道你为什么要转换,现在需要根据你想要转换的理由来合理化它。如果你有充分的理由,你不会在这里问:)

但是,这并不是一件坏事。编程是一个人类企业。如果程序员(无论什么级别)疯狂地喜欢某种语言,无论原因多么愚蠢,他们可能会产生更多。这不是技术解决方案。

祝你好运,:))

答案 8 :(得分:1)

Python作为Jython进行单元测试,在Java世界中有了一个良好的开端。事实上,许多Java人员首先以这种方式开始使用它。其动态脚本特性使其非常适合单元测试。就在昨天,我希望我可以将它或类似的东西用于我为VB.Net项目编写的单元测试。我不得不说,IronRuby或IronPython这个单独的语言与它所启用的开发风格不同。您可以编写静态语言,例如代码,但在您开始动态思考之前,您无法完全获得好处。一旦掌握了这些概念,您就会开始慢慢改变编码方式,您的项目将需要更少的类和更少的代码来实现。测试,尤其是单元测试将成为必须,因为您放弃了称为编译器的暖毯,其具有类型安全检查以实现其他效率。

答案 9 :(得分:0)

我非常肯定(100%)你不需要至少使用Python for MS Windows。

如果是其他平台,您可以使用任何您喜欢的语言。