只想在这里征求意见.您如何使用在您所在地区未广泛使用的语言(和/或框架)来为公司编写软件?例如,我住在一个由.NET主导的区域,偶尔会有PHP工作.假设我正在学习Python并决定使用它为我的工作编写软件(我是一个团队,所以我几乎可以使用我想要的任何东西).
现在他们的软件是用一种语言编写的,该区域几乎没有人使用或知道; 如果我要离开公司,他们基本上没有人可以维护/加入它,除非他们留在我身边作为顾问.虽然这对我来说真的很好,但似乎有点"歪" - 被授予,这就是商业世界的运作方式.
你的想法是什么?
我应该提一下,这是一家非常小的公司,我是唯一的IT人员,所以我有充分的选择来选择我们的开发平台.我不是专门使用Python,而是选择它作为一个例子,因为我的区域几乎完全基于.NET; 我不再关心.NET了,这就是为什么我不想考虑使用它.此外,公司是..我们怎么说... 非常节俭,不会购买.NET所需的资源(例如服务器许可证,SQL许可证,Visual Studio,组件).我个人有一个MSDN订阅,但我不能使用它.
此外FWIW存在的人在区域谁使用我使用(Ruby on Rails的)考虑到语言,但远不及尽可能多的人.NET开发人员.这不像是我正在使用只有我知道的东西.
你可能认为这种方法对你有好处.但事实上,所有这一切都会让你陷入困境.在组织内部获得晋升的最佳方式是让自己在当前职位上不必要.这看起来像是胡说八道,但事实上确实如此.想想这样,如果公司必须继续维护你为他们编写的python代码,并且他们不能去其他任何人获得该技能,那么他们将继续支付(可能是一点点)高于市场价格)维持该代码.
但是,如果您在.net中编写代码,那里有充足的供应,那么随着公司的扩展和您编写的代码证明成功,您将能够雇用人员来维护代码并且您可以移动设计其他系统.或者进入管理.net程序员团队 - 如果这是你想要的.
即使你想离开,对你的职业生涯来说最好的事情就是获得最好的参考.为此,请为它们编写一些易于维护的代码.帮助他们雇用某人来代替你维护它.他们将非常感激,并建议您作为他们的朋友的顾问.
代码是深奥的 - 在你所在地区几乎没有支持 - 他们会在高尔夫球场上向他们的朋友说"不要雇用那个人,他为我们写了这个系统,但是没有人否则可以维持下去.我们永远和他在一起,现在他太忙了,无法正常照顾我们!"
做什么对业务最有利,而不是对您最感兴趣的东西 - 或者表面上看起来如此.从长远来看,你将赢得胜利.
我认为你有责任决定最适合这份工作的语言.这包括客观评估语言和框架的优点,它包括您自己的语言技能(因为您是从事工作的人),并且包括其他人的可维护性.只有您和您的公司才能决定对每个人的重视程度.
对于你自己的个人开发,如果你的区域由.net主导,为什么你不想加速而不是Python?
从道德的角度来看,我不会写一些其他人无法轻易维护的东西.
我认为使用python是正确的做法,如果它能满足客户的要求,并为他们省钱.是否有各种各样的角色在未来的应用程序上工作是无关紧要的,除非他们已将此指定为非功能性要求.
像往常一样,使用最好的工具来完成手头的工作将很好地为您服务.
很多回答似乎都不适合这个问题.我们不是在使用现有标准的环境中使用未经批准的语言.我们谈论的情况是海报是他公司的整个IT和开发部门.
记住人才的可用性当然很重要,但Ruby现在几乎不是一种语言.在只有一个开发人员的环境中,生产力也是一个非常重要的考虑因素.能够在没有大型团队的情况下快速轻松地构建和维护软件,需要具有与大型团队可能需要的不同特征的工具.
我认为比使用Ruby或其他东西更重要的是尝试选择一些实用的东西并将其用于一切,除非有一个非常好的理由使用其他东西.如果你选择Ruby,坚持使用Ruby作为你的实用程序脚本,cron作业和那个小GUI应用程序,当他花了超过五分钟给他带咖啡时,老板想要自动发短信实习生.
如果您仅将其用于此目的,它确实有点弯曲.
但是,如果您使用它是因为它是最好的解决方案,那么您就是明确的.
此外,他们可以雇用其他知道python的人.
我的职业道德不允许我做这样的事情只是为了让我保持业务.