Programming languages 开发经理是否应该允许全权选择平台和语言? 我是一个小型软件公司的开发经理,主要生产java语言编写的产品,以及java相关的Web技术和框架(C++的奇数位,当我们需要更低的级别时)。

Programming languages 开发经理是否应该允许全权选择平台和语言? 我是一个小型软件公司的开发经理,主要生产java语言编写的产品,以及java相关的Web技术和框架(C++的奇数位,当我们需要更低的级别时)。,programming-languages,Programming Languages,当一个开发人员来找我说“我想用Perl/Python/Ruby/VisualBasic/Fortran/6800汇编语言开发一个内部工具(基本上是我们核心技术列表中没有的任何东西)”,我的直接反应是,我不想要在那个人离开时我们可能无法支持的东西——内部工具有一种变得至关重要的方式,你需要能够保持它们独立于特定的个人 我的观点是,我并不是要求他们用C语言编写一个web应用程序,我们的核心技术列表通常包含适用于所讨论的工作类型的工具(如果可能不如某些替代品那么好),但在这些情况下,标准应如何严格应用

当一个开发人员来找我说“我想用Perl/Python/Ruby/VisualBasic/Fortran/6800汇编语言开发一个内部工具(基本上是我们核心技术列表中没有的任何东西)”,我的直接反应是,我不想要在那个人离开时我们可能无法支持的东西——内部工具有一种变得至关重要的方式,你需要能够保持它们独立于特定的个人

我的观点是,我并不是要求他们用C语言编写一个web应用程序,我们的核心技术列表通常包含适用于所讨论的工作类型的工具(如果可能不如某些替代品那么好),但在这些情况下,标准应如何严格应用


(我知道,作为社区维基的标记是主观的——虽然不是,我希望是有争议的——但我相信,如果人们认为这是不合理的,他们会关闭它)

根据定义,标准是对潜在解决方案的任意限制。从本质上讲,它们并不总是包含特定工作的“最佳”工具(当然不是所有对“最佳”的解释)。但遵守标准可以让您保持合理的成本,并保持灵活性(避免因非标准技术而不敢触碰工具链的情况,因为您没有足够熟练的员工)。所以,一般来说,要坚持你的标准:你有一个很好的案例


然而,考虑到世界的总体变化,特别是IT的变化,标准也需要发展这就是你应该为实验留出一些回旋余地的地方:允许你的开发人员将Ruby工具等组合在一起,以便对其有所了解,但预算使用经批准的技术进行替换,并且不允许原始开发人员对其进行维护,为了获得第二种意见,降低锁定原开发商的风险。在急诊科中,如果新技术有效,<>强>显著/强>超过你现有的标准(关键点),考虑将其逐步纳入。但如果不逐步淘汰其他东西(至少十分之九):你不希望你的标准投资组合无法控制地增长

你的立场似乎非常合理,也就是说,你能够解释你所告诉人们的背后的原因

他们不能用他们最喜欢的语言做得更快,甚至更好的原因,是因为你会疯狂地管理它。除了,如果你没有呢

一个明智的管理策略可能是(可能是!)通常对这些事情说不,但时不时地说是。努力学习

这里是我的建议:一个写得很好的内部工具,用一种你通常不使用的语言构建,可能会让你进一步使用这个工具。Python和Django、Ruby和Rails,这个列表还有很多。所以你是个爪哇人。对你有好处

但是,当您留下任意的限制,并将限制留给真正有100%可靠业务和财务支持的项目时,您的开发团队、组织可能会超越预期

害怕学习一门新的编程语言是组织中平庸的人和优秀的人之间的区别。人为地限制他们的生产力,最终会导致你失去那些吱吱作响的轮子。他们将去别处。你的问题应该是“如果我勾选了这些人,他们离开了,我是否失去了一些好东西,一些值得保留的东西,我现在所有的人,他们都用Java编写所有东西,是否有能力在我需要解决的时候为我构建下一个大产品,或解决下一个大问题?或者,他们都是团队思维团队中勤劳的平等主义成员,而没有一个人有独创性思维?”

我提出以下建议:

i、 拒绝Visual Basic和C#,理由是Java和JVM提供了.net托管代码环境的一系列好处。迁移到.net意味着保留第二种虚拟机技术、运行时和竞争框架,同时失去Java的可移植性和开源JVM平台,这对您的组织来说是一个净损失

ii.对Ruby和Python说“是”,因为它们是初创公司用来改变世界的语言之一。它们是处于优势地位的明星

iii.当你有明确的商业案例要做的时候,说“不”,当六个月或更短的时间里说“是”会给你一个更好的答案,告诉你什么可以为你的软件团队提供最佳的结果和功能。有什么是Java做不到的吗?没有。有什么是Python和Ruby做不到的更快,甚至更好的吗?你的一些人说是吗?给他们一个机会来证明这一点


iv.另外,对使用辅助语言对主要Java产品进行的扩展和改进说不。如果使用Python和Ruby,它们是用于独立的内部工具,而不是作为“第一类语言来使用,而不是Java来扩展主要的现有Java应用程序”“,而不是作为完全重写的目的地,也不是放弃Java的方式。

+1因为“害怕学习新的编程语言是组织中平庸者和好人之间的区别。”-1因为忽视了必须保持更多对招聘决策有重大影响的知识的现实,或者留下成吨的孤立代码。我去过那里,看到了。从理论上讲,这是一个很好的论点,但却令人扼杀yourself@Jacob&@Warren:学习是好的。使用(并隐含地迫使他人使用和花费精力学习)可能并不总是最专业的方法