2008-10-30 22 views
10

我一直试图在我的工作中使用Python的情况。基本上我们所有的开发都使用C#和ASP.NET。我们的项目中有80%以上是Web应用程序。看起来很自然,我们会看一些漂亮的动态网页语言(Ruby,Python等),并且使用诸如IronRubyIronPython之类的东西,我开始认真调查。我需要一个非常好的理由来使用Python

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

你们能帮我想些什么来最终说服我的老板真正学习Python并开始在项目中使用它吗?

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

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

+0

“再次编辑:让我再提一下,我的老板提示我调查一下。” “我不需要讲座”如果你不需要讲座,可以提前提供所有的事实。此编辑使您的问题方式脱离目标。 – 2008-10-30 10:15:27

回答

28

“你们能帮我想些什么来最终说服我的老板真正学习Python并开始在项目中使用它吗?”

都能跟得上。

没有成功就像成功。使用Python。成功的。让人嫉妒。

当被问及为什么你成功时,你可以谈论Python。之前没有。

明智地选择项目:动态语言具有显着优势的地方。需要的东西不是详细确定。比如数据转换,日志文件抓取以及BAT文件的超级复杂替换。

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


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

而这仅仅是我的。


编辑:“老板提示我调查”,“弄清楚我们如何使用它”改变了一切。

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

动态语言提供了灵活性。利用这一点。我上面的两套示例是灵活性非常重要的两个方面。

  • 要求并没有完全明确。用动态语言,你可以开始。返工不会成为一种破坏行为。使用Java(以及C++和C#),您不愿意应对破坏性的设计更改,因为很难破解所有内容并重新编译和运行。在Python中,破坏性更改并不昂贵。

  • 由于不能选择元件,因此设计变得不稳定。你可以在Python中很容易地编写包装器和外观。这是一种脚本语言。而且,Python模块非常简单地组成了更大的聚合。

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

  • 由于要求不断变化,所以测试不断变化。同上。工作周期更短,更快。

12

几乎没有问题要求一个特定的编程语言,这只是不是如何工作。

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

如果你真的想要的东西,我可能会写在Django网站,只是因为它的管理界面吹走了每个人。

要记住的要点是,如果你开始使用python,那是每个人都必须学习的另一件事情,而且这是另一个需要在每个潜在员工的简历上的重点。这会变得昂贵,管理层不会喜欢它。

+0

虽然Python有更好,更简单的方法来解决这些问题吗?我知道没有问题需要一种语言,这不是我的意思,我只是指什么是一些常见的“障碍”,或者说,动态语言可以比静态语言做得更好。 – goldenratio 2008-10-30 02:08:19

+0

在Python中肯定有更容易做的事情,问题是“学习一种全新的语言比在我们知道的中实现它更容易吗?” – 2008-10-30 02:10:40

+0

我还应该提到,在我之前的职位上,我在.Net环境中实现了一个Django站点和多个Python程序,虽然它对我很好,而且公司也受益匪浅,但是一旦我离开,他们有点绑定,并让他们知道当我开始时我在做什么...... – 2008-10-30 02:12:02

3

你们可以帮我想想 东西,终于说服我的老板 真正学习Python并开始使用 它的项目?

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

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

为什么支付许可费用,当你有工具可以完成相同的事情?那里有免费的替代品,如Python,可以在免费服务器上运行。

为什么不给你的团队增加专业工具带的机会?这是我的看法,但一位优秀的开发人员是一位开发人员,他不害怕学习他们以前做过的同样事情的新方法。

但是,最后,我不会抱有希望。底线是,向IT商店引入新的语言/环境需要花费。无论是软件,培训还是员工翻身,在公司使用单一语言背后都存在商业原因,并坚持这一理念。

我的确处于你的境地。我在一个.Net商店工作,这种情况不会很快改变。在我的“自由”时间里,通过在自己的项目上工作,我得到了解决。我喜欢它,并且它使得平衡很好。

希望这会有所帮助。

3

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

尽管Python是我目前的首选语言,但恐怕我发现自己在老板身边!抱歉。

我认为你应该打开你的想法,考虑你所在组织的最佳利益立场的所有选项,并看看你是否没有得出关于最佳语言的不同结论。

选择语言的因素有很多,它有多漂亮是一个相当小的因素。工作人员的可用性是关键之一。再培训的成本,图书馆和元工具的可用性,性能等等。

一旦你考虑了所有不同的因素(而不仅仅是“哦!它会很有趣!”)和做出了一个平衡的评估(而不是预先确定的答案),你可能会发现你的老板更愿意倾听。

p.s.暗中使用Python作为工作代码的建议,并且用一种他们没有准备好的语言让公司承担可怕的代码债务似乎对我来说非常不专业。

6

潜入语言通常是通过自动执行繁琐的手动任务(特别是Python/Ruby等动态/脚本语言)来完成的。设置它就像部署构建,洗牌备份或者用Python完成的任何事情。

然后不经意地滑倒,很容易做到,并尝试传播一些热情。

接受度和认知度应该从此慢慢增长,在您知道之前,管理层正在认真考虑将Python用于新项目。

2

你可能会拥有最好的杠杆工具和库;正如其他人所指出的,没有语言是需要解决任何特定的程序。因此,让我们看的东西,你可以利用使用Python:

  • 谷歌应用程序引擎
  • SciPy的
  • pywinauto
  • Django的

这些都是从我的头顶;发现什么是适用于你的团队,你的公司作为一个练习的提问:)

1

那么,为什么Python程序员做出更好的Java程序员here's a view;这些概念与您的情况非常相似。

从本质上讲,是因为他们想显示他们喜欢编程谁学习一门语言的人,喜欢学习新的东西,而且更有可能条条框框。

...如果公司选择写 其软件在相对 深奥的语言,他们就可以 聘请更好的程序员,因为 他们将只有那些谁关心 足以吸引学习它。而 程序员的悖论更是 发音:要学习的语言,如果 你想得到一份好工作,是一种 语言,人们不知道 只是为了得到一份工作。

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

1

的语言是几乎从来没有成功的关键。优秀的程序员可以用各种语言成功,你几乎可以在任何语言中找到成功的项目。你不会找到那么多的失败,因为这些项目不会再被听到。如果你正在寻找一种新语言,因为你没有优秀的程序员,即使世界上最好的语言也不会帮助你。

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

如果你想使用Python或任何其他语言,只是因为你喜欢它,对自己诚实和你周围的人。它看起来像你已经做出决定,将切换,不知道为什么要切换,现在需要与无关,与你的愿望切换理由合理化了。如果你有一个很好的理由,你就不会问这里:)

这并不完全是坏事,但。编程是一个人类企业。如果程序员(任何级别)疯狂的爱一个特定的语言,无论多么愚蠢的理由,他们可能会产生更多。这不仅仅是一个技术解决方案。

祝你好运:)

1

的Python了在Java世界的Jython单元测试一个良好的开端。事实上,许多Java人首先以这种方式开始使用它。它的动态脚本特性使其非常适合单元测试。就在昨天,我希望我可以使用它或类似的东西为我正在写一个VB.Net项目的单元测试。我不得不说,IronRuby或IronPython这个单独的语言并不是关于它所支持的开发风格。你可以在静态语言中编写代码,但你不能充分享受这些好处,直到你可以开始动态思考。一旦你掌握了这些概念,你就会开始慢慢地改变你编写代码的方式,并且你的项目将需要更少的类和更少的代码来实现。测试,尤其是单元测试将成为必须,因为您放弃了称为编译器的热毯,并对其他效率进行类型安全检查。

0

我很肯定(100%)你至少不需要使用Python的MS Windows。

在其他平台的情况下,您可以使用任何您喜欢的语言。

相关问题