豆瓣9.5分,它是Scala领域当之无愧的王者之作!
今天博文菌要给大家带来一部蜚声世界的Scala编程圣经,它就是由Scala 语言缔造者Martin Odersky编写的——
《Scala编程》
Programming in Scala
本书全面涵盖了整个编程语言、重要类库及其背后理念,全面且强大,是Scala领域当之无愧的王者之作!
上市12年来,本书紧跟语言版本持续迭代,不断以豆瓣评分8.9、9.2、9.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领域当之无愧的王者之作!相关推荐
- 豆瓣9.1分:软件开发的201个原则
给中国软件工程师的寄语 (节选) 致我的兄弟姐妹们: 和你们一样,我的职业生涯始于软件工程师,那是1975年,将近半个世纪之前.我认为我们在时间和国家方面的差异相当微不足道.所以,我像和我的朋友.我的 ...
- 播放量破4亿。《梦华录》创2022年国产剧豆瓣最高开分,它凭何爆火?
6月2日<梦华录>开播,上线15小时播放量就破两亿,截至6月5日播放量已经破4亿,而话题热度直接破了十亿.豆瓣开分8.3分,并且持续走高,现在已经涨到8.6,并且还有持续涨高的趋势,< ...
- Python爬虫——豆瓣评分8分以上电影爬取-存储-可视化分析
本文就豆瓣8分以上电影进行爬取-存储-可视化分析. 不足之处欢迎在评论区指出讨论. 当然,如果觉得不错,要帮助的话,还请点个赞. 目录 数据爬取 分析网页 动态网页和静态网页 获取信息 获得二级信息 ...
- 【电视剧推荐】吴京拍不出的!《不良执念清除师》豆瓣8.8分,颜值好剧
携手合作,共同消除不良执念的故事.<不良执念清除师>是一部充满想象力和刺激的电视剧,通过精彩的剧情和精心塑造的角色,成功地将观众带入了一个超凡的世界. 豆瓣8.8分 故事的开端,高中生蒲一 ...
- python画日漫_豆瓣9.3分,日漫风格的机器学习数学书
原标题:豆瓣9.3分,日漫风格的机器学习数学书 "机器学习"这个词受到人们的关注已经很久了.应该有很多人对机器学习到底是什么.使用机器学习能做什么等问题很感兴趣. 机器学习如此兴盛 ...
- 联邦学习vs区块链:谁是“可信媒介”技术领域最强王者?
在互联网新浪潮中,联邦学习和区块链是最受关注的两项热门技术.联邦学习是一种在大数据服务中保护隐私的分布式机器学习技术,区块链是一种在去中心化网络中实现价值转移的分布式账本技术.那么问题来了,谁是可信媒 ...
- 【联邦学习+区块链】《联邦学习vs区块链:谁是“可信媒介”技术领域最强王者?》疑问解答
联邦学习[1]VS 区块链 [问1]联邦学习,何为"联邦"? 作为一种分布式机器学习技术,联邦学习可以实现各个企业的自有数据不出本地,而是通过加密机制下的参数交换方式共建模型,即在 ...
- 【联邦学习 + 区块链】《联邦学习vs区块链:谁是“可信媒介”技术领域最强王者?》阅读记录与提问
[注]块引用部分是博主自己的思考.. 题目:<联邦[1]学习vs区块链:谁是"可信媒介"技术领域最强王者?> [问1]联邦学习,何为"联邦"? 在互 ...
- 豆瓣8.1分,《穿越火线》网剧能给影游联动带来哪些启示?
导语:游戏改编影视剧收获高口碑的秘诀有哪些? 游戏改编影视剧,可以说是一个很大的"坑".下到草台班子,上到好莱坞,只要涉及到游戏的改编,很容易就会遭遇滑铁卢:要么是抓不住游戏的精髓 ...
最新文章
- 笔记-项目立项管理-项目建议书
- 简单json语句转化为map保存
- Python基础之:Python中的内部对象
- 斑马Zebra驱动下载
- 数据结构----------实现最小堆排序
- java 字符串 内存_java – 字符串文字和永久生成内存区域
- 20200504:力扣187周赛下
- VB:将数字转换为大写中文
- Office Word2019您正试图运行的函数包含有宏或需要宏语言
- slf4j log4j logback关系详解和相关用法
- Android系统源码学习步骤
- bundle adjustment算法学习
- 从pdf复制文字到word中的问题
- 六方ZnS包裹碳纳米管复合粉体/PbS纳米晶原位包裹碳纳米管的复合材料/壳聚糖包裹的多壁碳纳米管
- 我的世界java皮肤展开图,我的世界情侣皮肤,我的世界皮肤展开图做图片
- 零基础Bootstrap入门教程(25)--折叠面板、折叠面板导航
- 物联网常用协议 MQTT介绍
- 西湖大学开招本科生了!每名学生配三位学术导师
- 加州社区学院计算机专业,美国加州圣马特奥社区学院的基本介绍
- Android 桌面应用开发主要代码
热门文章
- igrimaceV8.0.0 IG 一键新机 陌陌 Uber优步打针 平安易贷 滴滴 一号专车 饿了么 ios8 V8 ZTN(插件安装方式)
- Android rom开发:长按Power键关机/重启优化,告别长时间等待
- Sentinel HASP主锁与开发锁的作用
- 第六届蓝桥杯真题总结
- K-means聚类算法、Pandas绘制概率密度图和TSNE展示聚类结果
- Brightcove与Frequency结成战略合作伙伴关系,推出综合FAST频道解决方案
- 第三课:脑电图波形的分析和识别
- 【笔记】ubuntu 中 移动硬盘无弹出选项的解决办法:sudo ntfsfix /dev/move_disk_name
- 2012年中国系统架构师大会PPT下载-IT168文库
- (附源码)springboot小区物业管理系统 毕业设计 101409