博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javaslang 3.0之路
阅读量:5873 次
发布时间:2019-06-19

本文共 2231 字,大约阅读时间需要 7 分钟。

是一个开源的函数式库,为Java 8及以上提供了持久化的数据类型和函数式的控制结构,最近,它发布了3.0版本的,这个路线图规划到了2017年的3月份:

\\

17f835f957a052c99fbd1070bb4f98c5.png

\\

Javaslang是由软件开发者所创立的,为了配合Java 8的早期发布版本,它的第一次发布是在2013年。它借助Java 8的lambdas表达式,其意图在于通过函数式的集合库替代Java的标准集合。

\\

在最近jOOQ(Java Object-Oriented Querying API)的一次采访中,Dietrich阐述了为Java添加编程风格的愿景:

\\
\

我认为很多用户对Java 8总体上是失望的,那些已经非常熟悉更高级语言的用户感觉会更加强烈。Java语言的架构做得已经很好了。Java 8带来了一些突破性的新特性,比如Lambdas、新的Stream API和CompletableFuture。但是,从API的角度来看,这些新的抽象仅仅是以一种很差的方式集成到了语言中。

\\

对象-函数式编程并不是什么新的概念。在两个领域,它都达到了最佳,也就是面向对象编程和函数式编程。在JVM之上,Scala是更好的可选方案之一。Java的Lambdas是一个推动型的特性,借助它,我们就可以创建类似于Scala的Javaslang API。

\
\\

是的创立者和主管,他曾经发推文说,“OO通过封装可变部分使代码易于理解,而FP通过最小化可变部分使代码易于理解”。

\\
在此之前的2.0发布版本
\\

2.0版本关注与Java 8的互操作性。它有,重要的特性包括:

\\
  • 用于并发编程的新接口,和Promise;\\t
  • 新的模式匹配API;\\t
  • 新的集合类型。\

271c81a159b26d6c8fd5d7154d9351a6.png

\\

最近的一篇Javaslang 阐述了如何使用新的模式匹配API,并预览了即将发布的2.1.0版本所新增的API方法:

\\

d58838ddd1fb74d0aed2c27a124a5637.png

\\

60cba68521e05fff06694283e5859365.png

\\
2017年3月将要发布3.0版本
\\

尽管3.0版本的变更集合已经进行了规划,但是依然欢迎开发社区参与Javaslang的,详细阅读正式的列表并参与项目的。

\\

Dietrich与InfoQ进行了交流,讨论了如何迈向3.0版本:

\\

InfoQ:Javaslang与其他函数式库的差异在哪里呢,比如、和?

\\
\

Daniel Dietrich :Javaslang致力于将Scala中尽可能多的好东西带到Java语言中。这是独特的卖点。没有必要重复发明轮子,也没有必要为已经解决的问题创建新的概念。通过将功能调整至Scala的水平,我们会从中受益,原因如下:

\\
  • Scala背后的一些基本理念对于Javaslang来说也是有效的,比如类似的持久化集合层级;\\t
  • 学习曲线比较平滑,对于已经熟悉Scala的用户来说,使用Javaslang会非常容易。Scala文档中的许多内容对于Javaslang来说也是有效的,尤其是如何通过集合库解决通用的问题(比如栈溢出);\\t
  • Javaslang比Java 8更加具有表述性/简洁,比Java 8的Stream可能也会更快(参见我们即将推出的Vector的测试基准: )。\

jOOλ和StreamEx包含了工具性函数,它们会让Java 8 Stream的使用更加容易。但是,用户必须要编写没有必要的噪音代码。更多的代码行意味着可能会有更多的错误。

\\

Cyclops是一个分布式编程的库,但是没有RxJava和Akka那样流行。它就像一个函数式特性的游乐场,比如无栈递归以及取消monadic类型。这对于Java来说并不实用,这些特性我们有意不会包含在Javaslang的核心中。

\
\\

InfoQ:Java 9的延期发布,现在日程是在2017年的7月,会影响Javaslang 3.0在3月份的发布规划吗?

\\
\

Dietrich:Javaslang会保持对Java 8的向后兼容性。Java 10中所包含的新的Java特性才会影响到Javaslang API。所以,我目前看不出Java 9的延期会对Javaslang 3.0的发布日期会有什么影响。但是,路线图还是有了一些的变化。

\
\\

InfoQ:对于Javaslang 2.1.0发布版本或者Javaslang 3.0的路线图你有什么更新要同我们分享吗?

\\
\

Dietrich:Javaslang新特性的开发和测试需要更多的时间。在年底,我们将会公开Javaslang 2.1.0的一个BETA版本。在Javaslang 2.1.0发布之后,才会启动Javaslang 3.0的工作,从而避免冲突所带来的损耗。为了补偿3.0版本所造成的延迟,在2.1.0版本中将会包含一些原本规划后续版本才提供的特性。完整的特性列表可以参见我们项目的站点,即。

\\

Javaslang 2.0.x已经非常成熟了,所以我们将会花时间将2.1.0做好。我目前不能给出确切的发布日期,但是我建议我们的用户尽可能早地开始测试BETA版本和发布候选版本。

\\

Javaslang 3.0不会向后兼容Javaslang 2.x。从用户的角度来说,业已依赖Javaslang的代码库会觉得即将推出的2.1.0会更有意思,而3.0发布版本则代表着Javalsang的未来。

\
\\

相关资源

\\
  • 撰写的;\\t
  • 撰写的;\\t
  • 撰写的 。\

查看英文原文

转载地址:http://lmhnx.baihongyu.com/

你可能感兴趣的文章
innerHTML与jquery里的html()区别介绍
查看>>
每天一个linux命令(52):scp命令
查看>>
CMOS Sensor Interface(CSI)
查看>>
linq中的contains条件
查看>>
HDU 5590 ZYB's Biology 水题
查看>>
BZOJ1092 : [SCOI2003]蜘蛛难题
查看>>
memcached 分布式聚类算法
查看>>
关于微信开发与微信支付更新
查看>>
浏览器内核比较
查看>>
CSS样式表——超链接样式
查看>>
如何让C#像JavaScript一样编程
查看>>
C++ 复制控制
查看>>
OC -- 第一个类
查看>>
图片文件Exif信息详细说明(转)
查看>>
打开jnlp Faild to validate certificate, the application will not be executed.
查看>>
Codeforces Round #296 (Div. 2) A. Playing with Paper
查看>>
用java解析在OpenStreetMap上下载的地图数据(SAX版,适合比较大的xml文件)
查看>>
ibatis 架构
查看>>
xampp默认项目文件夹htdocs
查看>>
swift2.0 UIImagePickerController 拍照 相册 录像
查看>>