将Scala带入我的公司

时间:2010-05-30 20:14:00

标签: scala

现在我知道这个问题实际上不是一个非常技术性的问题,而是一段困扰我一段时间的问题。实际上我们在公司使用了很多C ++和PHP,我们的一些开发人员真的希望有一种新的现代语言可以帮助我们提高效率。我一直在谈论scala可以做什么,而其他程序员似乎对该语言产生了一些兴趣。艰难的工作是,你如何说服你的老板将scala视为公司的语言。我看到演示文稿“将Scala偷偷带入您的公司”,但它处理的是您在公司使用Java的情况,而我们没有。

你如何打击通常的“那只是深奥的东西”和“我们已经可以在$ LANGUAGE中做到这一点”的论点。我正在计划谈论Scala,因为我没有太多时间,我需要想法如何让人们对语言感兴趣,而不是设置像“currying”这样的反应?我们已经可以通过boost ::绑定”。

你们是怎么做到的?

此致 raichoo

编辑:昨天发表讲话,人们非常兴奋。我的公司将试一试!感谢您的所有建议。

8 个答案:

答案 0 :(得分:11)

如果您还没有杀手锏,那么基于Scala的原因是什么让您的公司更有效率?

不喜欢的东西然后寻找在工作中使用它的理由。让原因说明一切。

“寻找指甲的锤子”

答案 1 :(得分:8)

在Scala中重做一些与工作相关的代码并比较KLOC,代码结构和性能,如果它看起来效果更好,则向同行和管理人员展示。

换句话说:

  谈话很便宜。告诉我代码。     - Torvalds,Linus(2000-08-25)

答案 2 :(得分:8)

使用它来做一些事情,因为数据游戏,测试和类似的事情将确保建立必要的经验,并可以给它一些曝光。

ScalaTest非常适合帮助验收/集成测试。 (是的,我知道单元测试很好,但是我没有看到C ++ / PHP目标代码会立即发生这种情况,这可能是不明智的。)

概念证明和其他原型很有两个原因

1)它展示了能力

2)如果你必须在C ++ / PHP中重新实现它们,你肯定它们会被丢弃

现在是一个糟糕的时间来介绍Scala,当你真正需要它时:希望会很高,它不会立即按预期工作,希望破灭,每个人都会责怪Scala。因此,它将在组织中长时间被烧毁。

迟早会有人认为引入Scala并将其用于正式项目是他的想法。如果该项目适度成功,则将其出售。

这些变化是复杂的人们问题,你越努力,你就越难以面对倒退。另一方面,持久的思想可以移动山脉。

答案 3 :(得分:4)

对于我们公司(我认为,许多公司都有相同的情况),转向Scala(来自Java)是由技术人员发起的,他们希望更高效地编写代码(生活在21世纪)利用现代方法),2。构建并发应用程序的麻烦较少(Scala推广的Actors概念比基于Java线程的并发更简单)2.1有一种更简单的方法来构建可扩展的分阶段事件驱动架构。

在我们公司,过渡到Scala或多或少变得简单,因为Scala被商业人士作为Java库出售给了商人:) - >从他们的POV开始,我们仍在使用相同的平台(JVM),应用程序服务器等,但开发人员可以从他们的工作中获得更多乐趣,因此更有灵感,更有效地工作。

答案 4 :(得分:3)

也许你可以通过展示用于开发的工具套件来推销Scala?例如,如果您尚未在公司中使用Eclipse,请向您的高管展示一个现代IDE可以为您的工作效率做些什么的演示。

有一本名为“无所畏惧的变化”(Linda Rising)的书,描述了“无能为力的领导者”的模式语言(我喜欢这个角色头衔!)。 SE-radio对作者进行了非常激动人心的采访:http://www.se-radio.net/podcast/2009-06/episode-139-fearless-change-linda-rising。听听那次采访,收集一些可以帮助你进行斗争的非技术性策略!

答案 5 :(得分:3)

我还没有将Scala用于任何真正的商业代码,但我知道拥有的人。

一个小组用它来编写分析日志文件的工具。因此,他们没有将它用于任务关键型业务代码,而是用于支持项目的非关键工具。

我认识的另一个人是建筑师,他只是自己编写了一些Scala代码,用于生成一些代码而不告诉他的经理。代码部署成功后,他确实告诉了它。他提到的一件事是因为Scala在JVM上运行,支持应用程序的人甚至都没有注意到 - 对他们来说,Scala只是应用程序中包含的另一个库(它们已经用于JVM)。当然,这种方法存在风险,并不是每个人都会处于有利位置或愿意这样做。

您可以从小处着手 - 将它作为您个人首选的脚本语言,用于您自己需要的小事。告诉你的开发人员,并让他们成为狂热爱好者。如果他们也开始使用它,那么您可以将其升级为项目制作一些侧面代码(例如日志分析器工具)。

答案 6 :(得分:2)

这不是一项非常简单的任务。我将专注于这样一个事实,即您将能够更快地生成代码,从而生产出更高质量的产品。这总是有两个原因,企业希望听到您的意见,并会倾听。

也许你可以展示你在公司用C ++ / PHP做的1-2个非常小的项目的例子,并将努力,质量等与Scala中的类似/相同的实现进行比较?这将是非常令人印象深刻的,也应该说服不在编码方面的人。

答案 7 :(得分:2)

David Copeland在Scala Days 2010上发表了非常好的演讲:

Sneaking Scala into your organisation

执行摘要:测试。您可以使用Scala进行测试,而不会影响发布代码。