我是一名经验丰富C++编程人员的平均蟒蛇的技能。原因,我研究了蟒放在第一位:

  • 得到一个不同的角度对编程(静态vs动态解释vs编制,等等。)
  • 增加的广度的项目,我可以工作(Python允许我做的网站开发,开发用于塞班的手机或者敲了快速系统管理脚本)
  • 为了补充我的C++的技能。

我认为,蟒蛇是很棒,我认为,我已经实现上述目标。我将继续使用它的小型项目、脚本和网络的发展。

我怀疑,我可以使用它的大中型项目。同时动态输入便利,它允许某类错误,我找到令人不安。单元测试和掉毛可以缓解这一问题,但是静态的打字完全消除它。

后看一些编程语言,我认为拉斯卡拉看起来像一个很好的候选人:我喜欢的类型推理和上运行的JVM因此,它应该是可用的,无论JVM是可用的。我还可以了解更多关于编程功能时,使用它。

但是...我还有一些疑问,而这正是我希望堆溢社会可以帮助:

  • 携带:Linux和Windows至少我希望。什么关于移动电话,是有可能获得它跑吗?
  • C++的兼容性:我可以混C++码斯卡拉?(JNI?)
  • 编程的范例:我感觉不舒服的开关功能编程(FP)在这个时候。我可以用面向对象和程序与一些FP在第一次和随后的变化的比例,因为我学到了什么?
  • 工具链的成熟:什么是您的经验与IDEs和调试器?我使用日食的权利,现在看来确定。
  • 学习速度:考虑到我经验,如何快速做你认为我可以达到一个可行的平与卡拉?
  • 部署:究竟如何部署一个斯卡拉程序?它是一个罐子,它是一个可执行的?

最后,什么你认为是一些镶木地板、平面电视和书桌的缺点?

有帮助吗?

解决方案

  • 携带:Linux和Windows至少我希望。什么关于移动电话,没有任何成功地得到运行吗?

是的。有相当一些运动有关卡拉。作为J2ME,我看到的东西在这方面,但不多。有一些代码相关的J2ME上源代码存储库。我不知道该如何可行的,但是它看起来对我来说,没有太多需求。

我还提到,有一个游泳池服务朗关于所期望的目标的平台,并J2ME是他们中的一个,非常低的图腾极。

  • C++的兼容性:我可以混C++码斯卡拉?(JNI?)

以及你可以混合使用C++Java,不管是什么这是值得的。如果你没有任何经验,你可以只读Java资源,为什么它们将是适用与斯没有变动(除了斯卡拉syntax).

  • 编程的范例:我感觉不舒服切换到FP在这个时候。我可以使用OO和程序与一些FP在第一次和随后的变化的比例,因为我学到了什么?

绝对的,是的。斯卡拉超出它的方式确定你不需要程序在一个功能性的风格。这是主要的批评斯卡拉从功能的人,作为一项事实:一些不考虑一个语言功能,除非部队的程序员编写功能的风格。

无论如何,你可以走在正确的做事的你的方式。我敢打赌,不过,是你会拿起功能性的习惯,甚至没有意识到他们功能。

也许你可以来看看 矩阵 列在我自己的博客的关于编写一个矩阵类。即使它看起来像标准OO码,但是,事实上,非常功能。

  • 工具链的成熟:什么是您的经验与IDEs和调试器?我使用日食的权利,现在看来确定。

想法(用浏览器),已超过所有有良好支持卡拉.它似乎想法是最好的,和//需要将物品寄/蚀保持蛙跳的每一个其他//需要将物品寄虽然肯定已经更加稳定的比蚀。另一方面,支持在日食是一个非常有前途的路线,应该产生结果,在未来6个月左右--这只是说,这是一个碰撞的路线。:-)

一些有趣的迹象卡拉的工具为这些环境是一个事实,即蚀插在发展使用AOP合并更多的无缝地与整个IDE,内容是完全改写在卡拉,这里有个卡拉力包上的想法,支持,除其他事项外,翻译代码进入斯卡拉代码。

EMACS的人已广泛的工具斯卡拉以及许多较小的编辑者必须对它的支持。我非常舒适的有jEdit支持小节目以及脚本,为的实例。

还有良好的专家支持--事实上,标准的方式来安装 电梯 是要安装家,然后建立一个电梯的原型。将在适当拉斯卡拉版本。这里有一个 scala:cc 目标,将引发重新编译为好。

说到重新编译,既不是行家,特别是蚂蚁也不要做一个良好的工作,在确定什么需要重新编译。从这个问题涌现 SBT (简单的建造工具),写在卡拉,这解决了这个问题通过使用卡拉编译器。南部蓝鳍金枪鱼采用相同的项目布局作为专家,以及家/藤仓库,但项目配置完成在卡拉代码,而不是XML--支持家/艾配置文件。

  • 学习速度:考虑到我经验,如何快速做你认为我可以达到一个可行的平与卡拉?

速度非常快。作为一个纯粹面向对象的语言、斯已经引入了一些不错的功能,与一些东西,现在C++但不Java,虽然他们的工作在不同时的。在这方面,一旦你发现什么这种功能是为,并涉及他们C++的东西,你将领先很多的Java程序,因为你已经知道怎么做他们。

  • 部署:究竟如何部署一个斯卡拉程序?它是一个罐子,它是一个可执行的?

同样的事情,因为Java。你可以部署的罐子、战争或任何其他的Java目标,因为斯卡拉compiler产生类文件。事实上,你使用Java的罐子产生一个斯卡拉的罐子文件,该类文件,以及专家指标用于提升支持建设战的文件。

有一种替代方法的脚本文件,虽然。你可以叫"卡拉"运行阶源代码,直接类似于Perl壳脚本。它也可以做。然而,即使使用的汇编守护程序,以加速执行,开始时间是足够慢的,有效使用卡拉在一个重脚本环境需要的东西喜欢 Nailgun.

至于卡拉的缺点,看看我的答复(和其他)在 堆溢出的问题。

其他提示

卡拉是一个不断变化的语言很值得的投资,特别是如果您是来自爪哇的世界。卡拉是广泛复盖在 亚泰.看看这个 文章 从Bill Venners和也读 Twitter的和财政a.

关于你的问题:

  • Java可以运行,无论有JVM。没有运气的移动电话。你需要一个全java运行环境,不是的子集。
  • 这是可能的JNI.如果有什么是可能的爪哇,那么有可能与卡拉.卡拉可以叫Java课程。
  • 功能编程是一个强大点的卡拉-你需要学习。但是你也可以开始使用它,而不充分利用它和你的工作方式。
  • 有一个插件的食。它不是最好的,但它将做的工作。更多细节 在这里,.
  • 如果你都是经验丰富,我要说的真快。我建议你找到一本书开始。
  • 看看这个 常见问题 入境部署。

编程的范例:我感觉不舒服切换到FP在这个时候。我可以使用OO和程序与一些FP在第一次和随后的变化的比例,因为我学到了什么?

斯卡拉完全支持必要的节目,编写程序没有FP元素,它是一件轻而易举的事(然而,FP是有用的,值得学习无论如何)。

学习速度:考虑到我经验,如何快速做你认为我可以达到一个可行的平与卡拉?

迅速。还有一些有趣的特点,在卡拉可能不熟悉的人来自C++、Java环境中,例如像某些功能的输入系统。一些人认为,事实上,有很多需要学习在斯之前,你知道所有的这一个 的问题 与语言;我不同意。存在这些特征是 一个优势 的语言。更多的功能的越多越好。毕竟,你不需要使用他们全部一次,就像你不需要购买的一切,是正在商店出售。

学习速度:考虑到我经验,如何快速做你认为我可以达到一个可行的平与卡拉?

我也来自一个C++的背景,有一件事我注意到的是,因为你会写一本很多小代码相比,C++对于可比较的任务,你的学习会加快,你会得到更多在同一时期。这是同一种现象,我经验丰富的红宝石。

实际上-如果我是你-我会研究编程模式,而不是语言。当然,你必须研究一个例子语言研究的范例。知道的缺点和优点的不同模式,可以查看你的问题从不同侧面和使你成为一个更好的程序(即使在语言,你已经知道)。

拿起一种语言的一个范式已经知道是relativly容易的任务,如果需要的。由于卡拉是FP(至少提到)和C++/蟒是面向对象,这是一个良好的语言对于你,我会说的话。

你应该寄这个课程通过的创造者拉斯卡拉自己。

https://www.coursera.org/course/progfun

詹姆斯Strachan(生产Java开放源码开发人员,对于那些不在循环)有一个有趣的讨论的斯卡拉 在这里,, 为什么,他觉得这是一个进展,从Java(的语言,不平台)。

斯看起来像是获得大量的牵引力。我不认为这是昙花一现,而是目前我名单上的语言学习(部分是出于功能性方面)

这里有一个传闻证据表明有关可学习性斯卡拉.

在我们的公司,我们得到了几名实习生从美国滑铁卢。他们被告知要写在卡拉;以前从没见过

他们拿起斯和提升非常快;现在他们正在生产斯卡拉代码;它可能并不完美,但没有人是完美的。

因此,事实上,管理者不知道卡拉可能不是最好的论点时,决定通过。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top