在我接触某人介绍新语言之前,我必须先解答哪些技术问题?
我正在寻找技术问题列表,如果没有一个非常好的答案,我甚至不应该浪费任何人的时间来提议我们使用语言X.
PS :( def X clojure)
答案 0 :(得分:52)
尽管所有的使命宣言中的所有内容都意味着高贵并强调社区支持,但每项业务的真正目的都是投资回报,或者等同于最大化股东价值 。如果它是一个政府机构,它仍然是一个相同的问题,但合法所有者将没有直接影响,相反,你将拥有代理所有者,如更高级的代理机构或强大的个人官员。
然而,决策几乎总是由代理商决定,因此 principal-agent problem (也称为代理商困境)出现;代理人(管理层)将根据其利益作出决定,而不一定根据理论上要求的股东利益。在政府机构中,这几乎是100%的考虑因素。
遗憾的是,这激起了迪尔伯特和帕金森律法的复杂性。您可以得出的最好结论是,决策将基于风险,成本和收益来证明,但往往是基于代理商存储的信用和责任以及代理商理解的信息和责任。 ,这是一个狭隘的风险因素,对委托人来说是值得怀疑的,但至少是可识别的。
因此,我们现在应该将此应用于语言问题。您的经理可能会避免威胁,风险,丑闻和争议。他对委托人关注的应用主要是通过预算和期望的限制。以下是一些应该大部分不言自明的例子。
如果您想使用Java或PHP:
(这就是“没有人因为购买IBM而被解雇”的说法。)
如果你想使用Ruby:
如果你想使用Clojure:
答案 1 :(得分:17)
使用语言的生产力既不是唯一的因素,也不是简单的标量。重要问题包括:
答案 2 :(得分:3)
在很大程度上取决于您目前使用的是什么,您要转换的内容以及为什么难以回答。但这些都很重要:
答案 3 :(得分:3)
商业案例是什么?
归结为投资回报率(ROI)。
不仅仅是关于个人的生产力,还有:
整个团队
对产品生命周期的影响
可维护性
等
答案 4 :(得分:3)
接听起来有多容易?我发现这并不重要。
是否有IDE支持?非常重要,但没有它就可以工作。
是否有可用的调试器?我认为这是我要问的最重要的问题。一旦你有一个有效的调试器,你通常可以做任何事情。
答案 5 :(得分:3)
我们今年聘请了一支团队,并决定使用 Clojure 作为我们的首选武器。该团队的背景主要是基于Java的,但也有各种其他语言用于业余爱好工作。
我们考虑的标准是:
我们认真考虑过Groovy,Scala和Clojure。我非常喜欢轻量级应用程序的Groovy,但我对性能有严重的疑问。 Scala和Clojure都有很多可以提供上述所有要点。最后,我们的问题领域涉及很多符号操作,我们认为Clojure会更好,但我怀疑Scala也能很好地运作。
答案 6 :(得分:2)
您的新语言将提供现有语言尚未提供的内容?
我们的语言几乎可以解决今天的各种问题。因此,在引入新语言之前,请确保没有一种语言能够完成新语言的所有功能。并确保您确切地知道您的新语言将提供哪些功能,这些功能不是以相同的组合提供,或者完全不是由其他语言提供。
除非你当然只是为了自己的教育而做这件事 - 在这种情况下忘记这个问题并且掌握它!
答案 7 :(得分:2)
这将如何提高我的工作效率?
如果无法收回,请回家。
答案 8 :(得分:2)
有什么意义? /为什么?
如何让我的工作更轻松?
答案 9 :(得分:2)
Q1:我可以雇用具备这些技能的人吗?
Q2:当我打电话给我们的外包合作伙伴客户经理,并询问一个典型的固定成本项目成本,如果以通常的方式完成,或使用语言X完成,乘数是否超过1?问题3:我所在部门的其他人是否也有一种喜欢与我最喜欢的语言工作相同的语言,并且他们最喜欢的语言也应该使用吗?这有什么实际后果?
答案 10 :(得分:0)
一个很好的问题是围绕语言/框架的社区规模是多少。例如,ruby / rails周围有一个重要的社区,这让我更加舒服,因为我不会成为“第一个遇到特定问题的孩子”。
答案 11 :(得分:0)
为什么要限制自己使用一种语言?找出哪种语言和提供服务最能解决哪些问题。如果服务之间的带宽太高,那么根据哪种语言最好地解决有问题的服务。