Programming languages 如何应对“危机”;“一种真正的语言”;观点?

Programming languages 如何应对“危机”;“一种真正的语言”;观点?,programming-languages,Programming Languages,当人们无法看到除了“一条真正的道路”之外还有一系列其他语言时,你如何与他们合作 我指的是一个还没有意识到现代软件专业人员工具箱里有一系列工具的人。膝关节反应的人,例如,“我们必须这样做是C++!”“一切必须在C++中完成”< /P> 让人们接受“并非一切都是钉子”这一事实的最佳方法是什么?我如何向他们介绍一个装备精良的工具箱,为手头的工作选择最好的工具?给他们一把螺丝刀,告诉他们建造一座房子?给他们一个用其他语言/技术可以轻松完成的任务,同时也很难完成他/她建议的语言/技术 当他们用他们所知道的

当人们无法看到除了“一条真正的道路”之外还有一系列其他语言时,你如何与他们合作

我指的是一个还没有意识到现代软件专业人员工具箱里有一系列工具的人。膝关节反应的人,例如,“我们必须这样做是C++!”“一切必须在C++中完成”< /P>
让人们接受“并非一切都是钉子”这一事实的最佳方法是什么?我如何向他们介绍一个装备精良的工具箱,为手头的工作选择最好的工具?

给他们一把螺丝刀,告诉他们建造一座房子?

给他们一个用其他语言/技术可以轻松完成的任务,同时也很难完成他/她建议的语言/技术


当他们用他们所知道的语言/技术来完成任务时,他们会最终寻找替代品。

P不雇佣他们。

让他们负责一个COBOL程序员团队。

只要有C++的有效理由,我认为这种单一的方法没有任何问题

当然,一个好的程序员的工具箱中必须有许多不同的工具,但这些工具不一定是一种新的语言,它可以只是学习新的编程范例

正如我所经历的那样,学习许多不同的语言并不能让你成为一个更好的程序员


找到合适的工作语言也是如此。是的,好的,如果你在做并发,你可能想要一种函数式语言,而不是面向对象的语言,但是使用另一种编程语言有什么好处呢?

以身作则,给他们一些发挥他们优势的项目,鼓励他们学习

如果给他们的任务显然更适合其他技术,而他们选择使用效率较低的语言,不要接受这项工作。告诉他们这不是解决问题的合适方法。想想看,这和他们选择Cobol来代替shell脚本没有什么不同——也许它可以工作,但随着时间的推移,它将很难维护,开发时间太长,需要昂贵的工具,等等

你还需要仔细看看他们的工作,并决定这是否真的是大问题,如果不是在C++中完成的话。例如,如果你有很多员工懂这种语言,并且他们在相当长的时间内完成了任务,那有什么坏处?另一方面,如果他们选择的语言减慢了他们的速度或将导致长期维护问题,他们需要意识到这一点


很多优秀的程序员只精通一种语言。这一事实本身不能用来确定他们是否是团队中有价值的成员。我认识一种语言的人,他们不属于这个词,如果他们免费工作,我就不会有他们加入团队。

让他们产生一个输出无限斐波那契序列的二进制

然后向他们展示Haskell中需要的几行代码(或1行代码,具体取决于实现),并且它也可以编译成二进制代码,这样就有了更好的方法;“维护”

如果它能够在没有不必要的问题的情况下保持下去,那么争论很可能是没有意义的,可以归结为偏好或至少是公司政策/采用的技术

如果这一点得到了满足,那么争论就变成了“是否可以高效地构建它,使其具有成本效益,而不会导致集成问题?”

除此之外,这只是螺丝刀/盖房子的争论

我怎样才能向他们介绍一个 配备齐全的工具箱,选择 手头工作的最佳工具

我相信“一种真正的语言””的反面是“多语言编程””,然后我将参考我的另一个答案:

事实上,我怀疑现在是否有人能用一种语言实现一个项目(即使可能有例外)。向他们展示特定工具和语言的有用性的最简单方法是向他们展示他们已经在使用多个工具和语言,例如SQL、构建文件、各种XML方言等

虽然我接受多语言的观点,但我也相信在许多领域“少就是多”。语言/工具的数量、学习曲线和总体生产力之间需要找到平衡


挑战在于决定哪一小部分语言/工具适合您的领域,并将生产力和创造力推向新的极限。

应该是社区维基。我正好在看《星球大战》第1集。谁说我们写一部关于一个真正的程序员以及他如何平衡网络战争的电影?(无耻的自我推销:我的网站是用于合作编剧的。使用它!)如果他是你不会赢的决策人。这是退出VS闭嘴,工作你的钱,然后回家并为此感到高兴。@Coronatus:没有第1集。他们只做过IV,V和VI。。。。或者,他们只会用一种真实的语言来完成任务,并为自己的成就感到自豪:(@Mahesh:你真的认为这是正确的方法吗?让他们失败?这对团队有什么帮助?哪个团队有多余的带宽可以浪费在这样的实验上?我只是想提出一个我认为会有效的想法。他们不是为失败而设,他们只是错过了做事情的更光明/更容易的部分。如果如果他们完成了任务,那么他们会学到很多东西(使用他们的语言/技术或其他)。这只是为了让他们意识到有更好的方法做事情,从长远来看,所有人都会赢:)对不起,无法抗拒:
fibs=unbrover(\(f1,f2)->just(f2,(f1+f2,f1))(1,0)