开始学习Scala,下面的内容大部分从Scala官网翻译过来,有几个地方翻译的不是很好,表述不清楚的地方大家可以浏览Scala官网,多指教。

Scala offical website is http://scala-lang.org

I think scala-lang means scalable language.

What is Scala?

1、A Scalable Language(可扩展语言)

Scala is an acronym for "Scalable Language".

Scala是"Scalable Language"的缩写。

对于名称的理解,Scalable Language意味着既可以书写一行语句并输出结果,也可以完成大型、复杂的任务(比如Twitter,LinkedIn和Intel等)。

2、Object-Oriented(面向对象)

Scala是存粹的面向对象语言。

从概念上说,每个值(value)都是对象,每个操作都是函数调用。

Scala以类和接口的方式支持高级的组件架构(component architectures )。

许多其他语言中的设计模式,在Scala中得到原生态的支持。

比如,通过object定义支持单例模式,通过模式匹配支持访问者模式。利用隐式类,Scala甚至允许对已经存在的类增加新的操作,无论这些已经存在的类是Scala中的还是Java中的。

3、Functional(函数式)

尽管Scala语法相当传统,但是Scala是成熟的(full-blown)函数式语言。

Scala有你期望的所有(函数式语言特征),包括一等函数(first-class functions),高效且数据结构固定的库,以及基于变化的不变性偏好(a general preference of immutability over mutation.)。

与其他函数式语言不同,Scala允许(开发者)以一种渐进的、容易的方式迁移到函数式风格。开始时,你可以将Scala认为是没有分号的Java语言。逐渐的可以利用安全的函数模式替代程序中易变的状态。作为Scala程序员,我们认为这种进阶方式是个好主意。同时Scala不是死板的语言,你可以以你喜欢的任何方式使用它。

4、Seamless Java Interop(与Java的无缝交互)

Scala运行在JVM上。Java的类和Scala的类可以自由混合使用,不论他们是在一个项目(project)中还是在不同项目中。二者之间甚至可以相互引用,Scala编译器包含Java编译器的一个子集(subset),所以Scala编译器可以理解这种循环依赖。

对Scala来说,Java类库,框架,工具都是可以使用的。Build工具,比如maven,集成开发环境,比如Eclipse,IntelliJ,Netbeans,框架,比如Spring或者Hibernate,都可以无缝的应用于Scala。Scala可以运行在所有的通用JVM上以及Android上。

5、Functions are Objects(函数是对象)

Scala的方式是开发一个小系列的构造,并可以灵活的结合。这也暗示了Scala面向对象和函数式的性质。面向对象与函数式二者高度统一,所以可以将二者认为是硬币的正反面。

例子:Scala中的函数是对象,函数的类型是正规的类。在Haskell,F#或者ML语言中的数据类型,在Scala中以类继承方式实现。任意类都可以实现模式匹配。

6、Future-Proof(与时俱进)

对于提供一致性和同步处理的可扩展服务软件,多核并行效率,云的分布式处理,Scala很有优势。

函数式特征使得Scala可以编写安全高效的多线程代码。Scala对于易变状态的较少依赖,以及Scala的特征和actors,这些为在高层次抽象组织一致性系统提供了强大工具。

7、Fun(乐趣)

最重要的是,Scala乐趣无穷!

Scala Beginner的更多相关文章

  1. SCALA XML pattern attrbute(属性)

    from: Working with Scala's XML Support 虽然这个guy炒鸡罗嗦,但是还是讲到我要的那句话:  Because Scala doesn't support XML ...

  2. jdb调试scala代码的简单介绍

    在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都 ...

  3. scala练习题1 基础知识

    1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等:     2,在scala REPL中,计算3的平方根,然 ...

  4. 牛顿法求平方根 scala

    你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10 ...

  5. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  6. Scala化规则引擎

    1. 引言 什么是规则引擎 一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑.业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技 ...

  7. Scala快速概览

    IDEA工具安装及scala基本操作 目录 一. 1. 2. 3. 4. 二. 1. 2. 3. 三. 1. 2. 3. 4. 5. 6. 7. 四. 1. (1) (2) (3) (4) (5) ( ...

  8. Scala Macros - scalamela 1.x,inline-meta annotations

    在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可 ...

  9. Scala Macros - 元编程 Metaprogramming with Def Macros

    Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为S ...

随机推荐

  1. Linux下服务端口被占用

    有一次,在启动ejabberd的时候,报错如下: 10:30:15 =CRASH REPORT==== crasher: initial call: supervisor:ejabberd_liste ...

  2. Docker入门系列2 安装

    可以从 Docker 社区直接下载可用的模版或镜像. Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多. 其次,Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Do ...

  3. 11 redis之rdb快照持久化

    一:Redis持久化配置 Redis的持久化有2种方式[快照,是日志] 二:Rdb快照的配置选项 save 900 1 // 900内,有1条写入,则产生快照 save 300 1000 // 如果3 ...

  4. VxWorks启动过程具体解释(下)

    上一节主要是从映像的分类和各种映像的大致载入流程上看VxWorks的启动过程,这一节让我们从函数级看一下VxWorks的启动过程: 1. Boot Image + Loadable Images: 以 ...

  5. CSDN专訪:大数据时代下的商业存储

    原文地址:http://www.csdn.net/article/2014-06-03/2820044-cloud-emc-hadoop 摘要:EMC公司作为全球信息存储及管理产品方面的率先公司,不久 ...

  6. 九度OJ 1032:ZOJ (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4569 解决:2561 题目描述: 读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的 ...

  7. python中的raw字符串

    在正则表达式的字符串前面加上r表示这个是一个raw字符串,只以正则表达式的元字符进行解析,不用理会ascii的特殊字符.

  8. 微信小程序设计指南

    微信小程序设计指南 · 小程序 https://developers.weixin.qq.com/miniprogram/design/index.html

  9. HTML 学习笔记 JQuery(盒子操作)

    这边博客详细的讲述一下JQuery中关于盒子模型的一些方法 offset([coordinates])方法 获取匹配元素在当前适口的相对偏移 返回的对象包含两个模型属性:top和left 以像素计.此 ...

  10. Webpack探索【10】--- 懒加载详解

    本文主要讲懒加载方面相关内容.