Java 和 Scala 是两种都运行在 JVM 平台上的强大的编程语言,并同时具备面向对象的特性。尽管它们在语法和表达能力方面有明显的差异,但他们可以相互调用,共同编译运行。
Scala 创始人 Martin Odersky 在 2003 年创立这门函数式编程语言时,他自己也是 Java 语言的专家级程序员。他参与了Java 5 的泛型设计以及 Java 1.3 之后版本的标准 Java 编译器的开发。随着他对 Java 限制性有了更多的认识,他决定设计一门学术上优雅、生产中实用的语言,与 Java 有所不同但仍然可以与 Java 的基础架构连接。Scala 是 scalable(可扩展性)和 language(语言)的组合词,表示它被设计成能够满足不断增长的用户需求。
今年九月,Java/JDK 21 带着一些重磅新特性发布了新版本,尤其是虚拟线程。虚拟线程是一种轻量级线程,旨在提高并发能力,通过异步风格的编程来提高可扩展性。虽然 Scala 的cats-effect 库中早已存在类似的 Green Thread 机制,但 Java/JDK 的新特性对 Scala 开发会有怎样的影响和裨益呢?
如果你对 Scala 与 Java 两门渊源紧密的编程语言都有兴趣并想进一步学习,或者非常关心 Java/JDK 新特性对 Scala 开发带来的影响,欢迎参与 2023 年 11 月 25 日在 Tubi 北京办公室举办的 Scala & Java Meetup 线下活动!
话题一:为什么每个 Java 开发者都需要了解 Scala
主讲人:王春森,现任 Tubi 资深后端开发工程师,负责开发和维护由 Scala 语言开发的核心后端分布式服务。曾就职于 Thoughtworks、搜狐视频等,对于 java 后端开发、Scala 分布式系统开发、函数式编程有丰富的项目实践经验。
话题简介:希望通过对 Scala 和 Java 的对比介绍,能够让更多的 Javaer 对 Scala 有一个更完整的认知,并了解 Scala 相对于 Java 的一些差异,以在不同的生产场景中选择最适合项目需求的编程语言。
在本次分享中,主讲人还将介绍 Scala 在 Tubi 广告团队的应用,分享我们在技术栈选择和核心问题解决方案方面的尝试,为开发者提供更多有价值的实践经验。
话题二:“无模式” GraphQL 开发
主讲人:李国斌,人称佩奇。现任洪九果品高级数据开发工程师,曾在 GrowingIO、陌陌、AscendEX 担任后端开发。为 Scala2 累计提交过 20+ Pull Request,是《 Scala 实战编程 2 》的主要译者。
话题简介:传统的 Java GraphQL 是通过编写(Schema)模式来开发 GraphQL API,编写完模式后还需要开发对应的 Java Fetcher(有些会使用代码生成工具)。Schema 太大不便于管理,Namespaces 提案也一直没有进展。Scala Caliban 通过样例类描述 API 的 Input 和 Output 以及 Resolver,开发人员可以避免直接写复杂的 Schema,而是可以写他们所熟悉的样例类来开发。
话题三:jdk 并发编程的终极解决方案:虚拟线程
主讲人:亢伟楠,现快手资深开发工程师,前 58 集团架构师,ElasticStack 中文社区杰出贡献者。他负责过 10 亿级别风控业务,对低延迟、高并发、高可用系统、可观测性、分布式系统、JVM、FinOps 等多个领域有深入研究和实践经验,一直研究的目标是低成本打造高可用系统。
话题简介:在过去的 Java 体系中,并发编程都需要基于 Java 线程来实现,Java 线程基于系统级线程来实现,新增线程还带来巨大的成本(内存占用、系统上下文切换),这导致了程序无法简单地维护海量的线程来使程序实现高并发。
最新的 jdk21 正式发布了虚拟线程,它提供了一种轻量级的用户级线程,用户级线程不再和操作系统线程绑定。与操作系统线程相比,虚拟线程的创建和切换成本更低,可以显着提高应用程序的性能和伸缩性,并且 Java 虚拟线程实现了自动的阻塞切换,代码更容易维护,成本更低。
在本次分享中,主讲人将系统介绍虚拟编程的实现原理及相关问题,并与观众一起探讨这一新特性对 Scala 开发可能带来的影响。
报名活动
时间:2023/11/25 周六 14:00-17:30
地点:北京市朝阳区浦项中心
报名:免费
注意事项
1. 请带上自己的电脑参加线下活动,会有现场编程环节。
2. 报名成功后,请添加工作人员微信 15600819309 并备注“Scala Meetup”加入活动群,届时会统一发送活动具体地址。
3. 签到和现场提问均有机会获得 Tubi 赞助的周边好礼,活动设有茶歇时间,供大家交流互动!
关于主办方
Tubi 是受益于 Scala 这门编程语言的最大的公司之一,我们充分利用 Scala 在领域建模和并发编程上的出色表现,致力于构建低延迟服务以服务于机器学习模型,并研究用于广告投放速度和预测的精密算法,改进部署和运营我们服务的方式;同时,Tubi 也在这门语言的使用上积累着珍贵且大量的生产实践经验。
自 2019 年中旬以来,Tubi 一直秉承回馈与开放的心态,通过组织线上线下 Scala Meetup,为 Scala 开源社区及项目持续贡献。迄今,我们已成功举办 8 期 Scala Meetup 并与数千人次分享了 27 个 Scala 领域的精彩话题,涉及 Scala 编程入门学习到职业发展,Scala 函数式编程语言的研究,还有 Scala 的生产实践案例。
欢迎报名此次 Scala & Java Meetup,结实更多同道中人,一起交流和成长!