在提议使用新语言之前要回答的问题?

Art*_*ldt 17 clojure

在我接触某人介绍一门新语言之前,我必须要解答哪些技术问题?

我正在寻找技术问题列表,如果没有一个非常好的答案,我甚至不应该浪费任何人的时间来提议我们使用语言X.

PS :( def X clojure)

Dig*_*oss 52

工程师的政治速成课程......

尽管所有的使命宣言中的所有内容都意味着高贵并强调社区支持,但每项业务的真正目的都是投资回报,或者等同于最大化股东价值.如果它是一个政府机构,它仍然是一个相同的问题,但合法所有者将没有直接影响,相反,你将有代理所有者,如更高的机构或强大的个人官员.

然而,决策几乎总是由代理人做出,因此委托代理问题(也称为代理困境)出现了; 代理人(管理层)将根据其利益作出决定,而不一定根据理论上要求的股东利益.在政府机构中,这几乎是100%的考虑因素.

可悲的是,这激起了所有狄尔伯特和帕金森定律的复杂性.

您可以得出的最好结论是,决策将在风险,成本和收益的基础上得到证明,但往往是基于代理商存储的信用和责任以及代理商理解的,对委托人的可疑价值进行狭隘的风险考虑但至少是可识别的.

所以,我们现在应该将它应用于语言问题.您的经理可能会避免威胁,风险,丑闻和争议.他对委托人关注的应用主要是通过预算和期望的限制.以下是一些应该大部分不言自明的例子.

如果要使用Java或PHP:

  • 每个人都这样做
  • 这是针对此类问题的行业标准方法
  • 这是一种低风险的方法
  • 在Java/PHP中已经多次完成类似的系统

(这就是"没有人因为购买IBM而被解雇"的说法.)

如果你想使用Ruby:

  • Ruby在Tiobe排名前十(不是行业标准,所以这是你能做的最好的)
  • PHP和Java是成本较高的技术(他可能有预算作为缓解委托代理问题的尝试)
  • PHP和Java将"很快"过时(可能不是,但被称为"出现愚蠢地使用旧技术的风险",并暗示缺乏后来的信用和认可)
  • Ruby是一种高级语言,具有强大的成本效益开发抽象(代理商的弱论据,但提供了信用的可能性.所有论证中效率最低的.)

如果你想使用Clojure:

  • 您可以在周末和晚上更好地对系统进行原型设计,并将其作为已解决的问题展示出来.
  • 强调并行Java/Clojure开发("如果需要,整个系统可以用Clojure Java 编写")
  • 制作所有Java参数然后说一些关于"两全其美"的内容

  • "我想使用名为"clojure"的java库来帮助缓解并发风险" (16认同)

bra*_*ntz 17

使用语言的生产力既不是唯一的因素,也不是简单的标量.重要问题包括:

  • 学习语言有多容易,如果团队中的人还不熟悉的话?
  • 成为该语言的专家有多容易?
  • 团队是否可以访问一位或多位有能力进行必要指导的语言专家?
  • 是否有好的学习资料(书籍,博客,教程)和支持渠道(论坛,IRC,邮件列表)?
  • 语言(或该语言中的某些框架)是否允许有能力的程序员以比您现在使用的更快的速度编写软件?
  • 语言的可维护性如何?对于有能力的程序员第一次遇到别人的代码的语法有多可读?(想想APL和Perl.)
  • 语言是否更适用于您的问题域而不是您现在使用的(例如,分布式计算的函数语言)?
  • 语言/平台如何满足与开发速度无关的业务需求(例如,性能,可伸缩性)?
  • 有哪些可用的工具,它们的成本是多少?有可用的调试器吗?一个IDE?IDE内置的重构和单元测试支持?构建管理和部署工具?

  • +1,很多好点虽然我肯定会增加开源生态系统的库支持/力量.我发现如果你真的想完成任务而不是欣赏你语言的理论美,那么这比其他任何事都重要. (3认同)