今天博文菌要给大家带来一部蜚声世界的Scala编程圣经,它就是由Scala 语言缔造者Martin Odersky编写的——

《Scala编程》

Programming in Scala

本书全面涵盖了整个编程语言、重要类库及其背后理念,全面且强大,是Scala领域当之无愧的王者之作

上市12年来,本书紧跟语言版本持续迭代,不断以豆瓣评分8.99.29.4的成绩刷新着领域的天花板!

其中第三版的中文版更是以9.5高分傲视群雄

今天,博文菌要宣布,时隔三年后,这部长青经典之作迎来了又一次的重大升级——增补 Scala 2.13 内容,《Scala编程(第4版)》重磅上市!

—— Scala ——

一门按需伸缩的语言

Scala 这个名字来源于“scalable language”,即“可伸缩的语言”。之所以这样命名,是因为它的设计目标随着用户的需求一起成长。

Scala 可被广泛应用于各种编程任务,从编写小型的脚本到构建巨型系统,它都能胜任。Scala 很容易上手。它运行在标准的 Java 平台上,可以与所有 Java 类库无缝协作。它很适合编写将 Java 组件组装在一起的脚本。不过用 Scala 编写可复用组件,并使用这些组件构建大型系统和框架时,更能体现出它的威力。

从技术上讲,Scala 是一门综合了面向对象和函数式编程概念的静态类型的编程语言。从很多不同的角度看 Scala,我们都能发现面向对象和函数式编程两种风格的融合,这一点可能比其他任何广泛使用的编程语言都更为突出。

在可伸缩性方面,这两种编程风格的互补性非常强。Scala 的函数式编程概念让它很容易用简单的组件快速构建出有趣的应用。而它的面向对象编程概念又让它能够轻松地构造出更大的系统,并不断地适配新的要求。通过这两种编程风格的结合,Scala 让我们能够表达出各种新式的编程模式和组件抽象。同时,我们的编程风格也变得清晰和简练。正因为它超强的可塑性,用 Scala 编程会非常有趣。

—— 全新升级 ——

为下一个十年打好基础

跟第 3 版相比,第 4 版增补了Scala 2.13的内容:

在标准库中引入了全新的集合类库,吸取了大量来自实战的经验教训,以简化为目标做了重新设计。

Scala 2.13 中最主要的改动,是为了给 Scala 3 打基础而几乎重写的集合框架。新的集合将支持交叉编译到 Scala 2 和 Scala 3,使用新集合类库的代码将无疑为下一个十年打好基础。

当所有人对下一个版本的 Scala 都充满期待时,不失为入手《Scala 编程》开始学习的良好契机!

—— 鸿篇巨制 ——

拓宽你的知识边界

这本书的分量,除 Martin Odersky 的亲自背书和显而易见的篇幅之外,最值得一提的,是它不仅全面覆盖了 Scala 几乎所有的语言特性,还从语言开发者的视角,向我们介绍了这些语言特性和设计取舍背后的原因,以及要解决的问题。

这是《Scala 编程》跟其他林林总总的 Scala 图书最大的区别。

从工具和工具书的角度来看,你也许会觉得 :编程语言就是拿来干活儿的,一本编程语言的入门书,当然就是要把怎么用讲明白,让我高效地完成手中的工作,其他都是次要的。

这里给大家分享一个本书译者高宇翔老师的心得 :

语言除了表达(让计算机和其他人类明白),更是思维的载体。学习一门编程语言,局部功利的因素当然有,但更多的,是通过这门语言,拓宽你的知识边界

语言是手段,不是目的。所以,不论你是否从事 Scala 编程工作,希望这本书,都能够带给你不一样的世界和认知。

关于Java程序员

Java之父James Gosling说过“如果让我在Java之外选一门语言,我会选Scala”,它是面向对象与函数式编程的完美融合。

虽然大部分人都是在 Java 平台上使用 Scala 的,但本书并不假定你了解 Java 。如果你是Java 程序员,阅读本书,你将接触到来自函数式编程领域和高阶面向对象领域的许多概念。我们相信,通过学习 Scala,以及 Scala 背后的观念,你将成为一名更好的程序员。

本书对组成 Scala 的各个语法结构的解释都很深入,会给出示例解释 Scala 与 Java 的不同。如果你是从 Java 来到 Scala 的,最具挑战的可能是 Scala 的类型系统(比 Java 的类型系统更为丰满)和 Scala对函数式编程的支持。

但Scala并非银弹,不能魔法般地让你更加高产。要做出实际的进步,得根据实际需求有选择地应用 Scala,这需要学习和实践。

本书的目标是循序渐进地引导你逐步学习和掌握 Scala。这会是一次有收获的智力旅程,能帮助你拓展知识领域并对程序设计有新的、不一样的思考。

最后,希望你能通过 Scala 编程获得快乐和启发。

关于本书作译者

● Martin Odersky,Scala之父,瑞士洛桑理工学院(EPFL)教授,Lightbend创始人,参与设计了Java泛型,还是当前javac编译器参考实现的原作者。

● Lex Spoon,Square公司的软件工程师,在EPFL开展了为期两年的Scala编程工作。

● Bill Venners,Artima公司总裁,Scala Center咨询委员会的社区代表,测试框架ScalaTest和针对函数式、面向对象编程类库Scalactic的主要开发者和设计者。

● 高宇翔(译者),资深软件开发工程师和系统架构师,同时也是Scala在国内的早期布道者和实践者,曾译有和《Scala编程》(第1版)、《Scala编程》(第3版)《快学Scala》(第1版)、《快学Scala》(第2版)等Scala语言的名著。

▊《Scala编程(第4版)》

【德】Martin Odersky,【美】Lex Spoon,Bill Venners 著

高宇翔 译

  • 由Scala缔造者精心编写的领域圣经
  • 紧跟语言版本持续迭代的长青经典

本书由直接参与 Scala 开发的一线人员编写,因而对原理的解读和对应用的把握更加值得信赖。

帮助读者能够全面了解和掌握 Scala 编程语言的核心特性,并能够深入理解 Scala 这门语言在设计取舍背后的动因。即便是不直接使用Scala 的读者或非一线编程从业者,也能从本书中学到大量关于函数式和面向对象的编程概念和技巧。

豆瓣9.5分,它是Scala领域当之无愧的王者之作!相关推荐

  1. 豆瓣9.1分:软件开发的201个原则

    给中国软件工程师的寄语 (节选) 致我的兄弟姐妹们: 和你们一样,我的职业生涯始于软件工程师,那是1975年,将近半个世纪之前.我认为我们在时间和国家方面的差异相当微不足道.所以,我像和我的朋友.我的 ...

  2. 播放量破4亿。《梦华录》创2022年国产剧豆瓣最高开分,它凭何爆火?

    6月2日<梦华录>开播,上线15小时播放量就破两亿,截至6月5日播放量已经破4亿,而话题热度直接破了十亿.豆瓣开分8.3分,并且持续走高,现在已经涨到8.6,并且还有持续涨高的趋势,< ...

  3. Python爬虫——豆瓣评分8分以上电影爬取-存储-可视化分析

    本文就豆瓣8分以上电影进行爬取-存储-可视化分析. 不足之处欢迎在评论区指出讨论. 当然,如果觉得不错,要帮助的话,还请点个赞. 目录 数据爬取 分析网页 动态网页和静态网页 获取信息 获得二级信息 ...

  4. 【电视剧推荐】吴京拍不出的!《不良执念清除师》豆瓣8.8分,颜值好剧

    携手合作,共同消除不良执念的故事.<不良执念清除师>是一部充满想象力和刺激的电视剧,通过精彩的剧情和精心塑造的角色,成功地将观众带入了一个超凡的世界. 豆瓣8.8分 故事的开端,高中生蒲一 ...

  5. python画日漫_豆瓣9.3分,日漫风格的机器学习数学书

    原标题:豆瓣9.3分,日漫风格的机器学习数学书 "机器学习"这个词受到人们的关注已经很久了.应该有很多人对机器学习到底是什么.使用机器学习能做什么等问题很感兴趣. 机器学习如此兴盛 ...

  6. 联邦学习vs区块链:谁是“可信媒介”技术领域最强王者?

    在互联网新浪潮中,联邦学习和区块链是最受关注的两项热门技术.联邦学习是一种在大数据服务中保护隐私的分布式机器学习技术,区块链是一种在去中心化网络中实现价值转移的分布式账本技术.那么问题来了,谁是可信媒 ...

  7. 【联邦学习+区块链】《联邦学习vs区块链:谁是“可信媒介”技术领域最强王者?》疑问解答

    联邦学习[1]VS 区块链 [问1]联邦学习,何为"联邦"? 作为一种分布式机器学习技术,联邦学习可以实现各个企业的自有数据不出本地,而是通过加密机制下的参数交换方式共建模型,即在 ...

  8. 【联邦学习 + 区块链】《联邦学习vs区块链:谁是“可信媒介”技术领域最强王者?》阅读记录与提问

    [注]块引用部分是博主自己的思考.. 题目:<联邦[1]学习vs区块链:谁是"可信媒介"技术领域最强王者?> [问1]联邦学习,何为"联邦"? 在互 ...

  9. 豆瓣8.1分,《穿越火线》网剧能给影游联动带来哪些启示?

    导语:游戏改编影视剧收获高口碑的秘诀有哪些? 游戏改编影视剧,可以说是一个很大的"坑".下到草台班子,上到好莱坞,只要涉及到游戏的改编,很容易就会遭遇滑铁卢:要么是抓不住游戏的精髓 ...

最新文章

  1. 笔记-项目立项管理-项目建议书
  2. 简单json语句转化为map保存
  3. Python基础之:Python中的内部对象
  4. 斑马Zebra驱动下载
  5. 数据结构----------实现最小堆排序
  6. java 字符串 内存_java – 字符串文字和永久生成内存区域
  7. 20200504:力扣187周赛下
  8. VB:将数字转换为大写中文
  9. Office Word2019您正试图运行的函数包含有宏或需要宏语言
  10. slf4j log4j logback关系详解和相关用法
  11. Android系统源码学习步骤
  12. bundle adjustment算法学习
  13. 从pdf复制文字到word中的问题
  14. 六方ZnS包裹碳纳米管复合粉体/PbS纳米晶原位包裹碳纳米管的复合材料/壳聚糖包裹的多壁碳纳米管
  15. 我的世界java皮肤展开图,我的世界情侣皮肤,我的世界皮肤展开图做图片
  16. 零基础Bootstrap入门教程(25)--折叠面板、折叠面板导航
  17. 物联网常用协议 MQTT介绍
  18. 西湖大学开招本科生了!每名学生配三位学术导师
  19. 加州社区学院计算机专业,美国加州圣马特奥社区学院的基本介绍
  20. Android 桌面应用开发主要代码

热门文章

  1. igrimaceV8.0.0 IG 一键新机 陌陌 Uber优步打针 平安易贷 滴滴 一号专车 饿了么 ios8 V8 ZTN(插件安装方式)
  2. Android rom开发:长按Power键关机/重启优化,告别长时间等待
  3. Sentinel HASP主锁与开发锁的作用
  4. 第六届蓝桥杯真题总结
  5. K-means聚类算法、Pandas绘制概率密度图和TSNE展示聚类结果
  6. Brightcove与Frequency结成战略合作伙伴关系,推出综合FAST频道解决方案
  7. 第三课:脑电图波形的分析和识别
  8. 【笔记】ubuntu 中 移动硬盘无弹出选项的解决办法:sudo ntfsfix /dev/move_disk_name
  9. 2012年中国系统架构师大会PPT下载-IT168文库
  10. (附源码)springboot小区物业管理系统 毕业设计 101409