如何选择编程语言?
组织中的开发人员团队必须做出的最重要和最困难的决定之一就是为他们的产品选择一种编程语言。 我们都知道这不是一个容易的选择,尽管它很重要。
我的团队曾经也面临过同样的困境。 然而,我们并没有直接介入语言辩论,而是决定退后一步,思考一下我们究竟在语言中寻找什么的问题。
我们提出了 5 个基本参数来选择编程语言:
1. 编程范式
在选择编程语言时,您应该首先考虑的是您的团队熟悉的编程范式。 毋庸置疑,大多数编程范式在整个行业中都经过了同样良好的测试和演示,但开发人员在选择编程范式时确实有二元偏好,其中一个看起来比其他范式更自然 .
我相信这个决定是非常关键的,应该给予大量的思考,主要是因为它的永久性。 一旦决定继续使用特定的编程范例,几乎不可能在不重写大量代码库的情况下将其更改到项目的一半。
因此,在选择编程语言时,我们将编程范式的选择作为最重要的参数。
2. 社区支持
选择编程语言的下一个最重要的方面是该语言设法获得的社区支持。 拥有庞大的社区基础对于编程语言来说是一个积极的信号,因为它表明该语言正在被许多开发人员采用,这反过来又确保了该语言的不断改进和增强。 如果团队遇到死胡同或语言限制,大型社区支持还可以灌输寻找适当帮助的信心。
除了大型社区支持外,在选择编程语言时,付费供应商支持也被视为一个重要方面,因为付费支持可以确保团队提供个性化的客户服务,并在解决任何问题时缩短交货时间。 当一家公司发展到足够大时,时间变得比金钱更重要,而有偿支持可能会被证明对加快解决方案非常有帮助。
3. 学习曲线
选择编程语言时应该注意的第三点是与语言相关的学习曲线。 选择一种神秘的语言可能看起来很诱人(尤其是如果它相对容易解决用例),但是,选择一种新语言会带来巨大的成本,即培训开发人员的成本。 如果公司采用一种相对较新且晦涩难懂的语言,他们将不得不安排对其员工的培训,因为公开可用的资源既不够也不够。
事实证明,为新语言寻找可靠的顾问同样困难且成本高昂,而且在许多情况下,公司必须直接与该语言的开发人员接触以获得指导和采用。 另一方面,选择一种已经存在一段时间的语言肯定有助于避免所有这些费用,因为开发内部专业知识或聘请该语言的专家相对容易。
4. 可扩展性
第四个重点是语言的可扩展性。可扩展性是一个令人困惑的术语,因为该术语在多种上下文中的多元用法。这里的可扩展性意味着构建和扩展现有的语言框架是多么容易。
首先让我解释一下我所说的框架是什么意思——框架是一组代码组合在一起形成库,用于简化特定语言的编程体验。该框架不一定是用它所构建的语言编写的。
话虽如此,理论上可以为所有语言开发框架,但是,实际上为某些语言开发框架比为其他语言开发框架要容易得多。
在第 2 点“社区支持”的基础上,积极开发框架再次表明该语言已经获得了足够多的社区关注,并且开发人员已经开始开发工具来简化他们使用该语言的工作。这通常表明与该语言存在潜在的长期关联。
因此,虽然有点难以明确判断,但语言的可扩展性是选择编程语言时要讨论的一个非常重要的因素。
5. 预算
削减前 5 个参数的最后一点是预算。 尽管这一点看起来很不恰当,但预算对于编程语言意味着什么? 在为公司选择编程语言时,这是一个重要因素。
目前,尤其是对于 IT 初创企业而言,公司必须进行的最大投资之一就是雇佣软件开发人员。 软件开发人员是 IT 生态系统中最昂贵的资源,公司最不希望仅仅因为他们选择了某种语言而花费额外的钱,而开发人员的成本高于其他语言。
因此,公司会限制他们愿意花在招聘开发人员上的金额,并在选择编程语言时考虑到这一点。
结论
我希望当您发现自己处于需要为您的产品选择编程语言的位置时,这些参数将被证明是有用的。
感谢您的阅读!
我来说两句