速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

新兴趋势:反应性编程

  • 2013-08-30
  • 本文字数:1110 字

    阅读完需:约 4 分钟

InfoQ 在几年以前就开始跟踪这一范式,数周前 Gartner 研究公司也在其出版的“ 2013 年应用开发成熟度曲线”中论及了“反应性编程”和“事件驱动 Web”(“新兴产物”章节)。

大约一个月前, Bruce Eckel (著有多部编程书籍)和 Jonas Boner (Akka 的缔造者和 Typesafe 的 CTO)发表了“反应性宣言”,在其中尝试着定义什么是反应性应用

这样的应用应该能够:

  • 对事件做出反应:事件驱动的本质,让反应性应用能够支持文中提到的若干特性。
  • 对负载做出反应:聚焦于可扩展性,而不是单用户性能。
  • 对失败做出反应:建立弹性系统,能够从各个层级进行恢复。
  • 对用户做出反应:综合上述特征,实现交互式用户体验。

在这份宣言公布之后,Scala 的创造者 Martin Odersky Reactive Extensions 的创造者 Erik Meijer 和 Akka 科技公司的领导者 Roland Kuhn ,在 Coursera 上发布了一套免费课程,名为“反应性编程原理”:

该课程的目标在于讲授反应性编程的原理。反应性编程是一门新兴的学科,结合了并发、事件驱动和异步系统。对于编写任何类型的 Web 服务或分布式系统来说,它都至关重要;同时它在众多高性能并发系统中占有核心位置。反应性变成可以被视作高阶函数式编程对并发系统的自然拓展,通过协调和编排 Actor 交换的异步数据流,来处理分布的状态。

Netflix 是已经将 RP 广泛投入使用的公司里的一员,它也贡献了一份 RX 的 Java 接口

使用 RxJava 函数式反应性编程,让 Netflix 开发者们能够利用服务器侧的并发,而无需触及典型的线程安全和同步问题。该 API 服务层的实现控制了并发原语,让我们能够追求系统性能的提升,而不必担心破坏客户端代码。对我们来说,RxJava 在服务器端非常有效,而且我们越多地使用它,它也就将愈发深入地根植于我们的代码中。

Facebook 也于近期发布了 React JavaScript library ,用来构建下一代用户界面。Facebook 工程师 Stoyan Stefanov 描绘了 React 背后的主要理念

React 让我们能够使用组件——它们知道如何去展现某些数据——来构建自己的应用。当数据发生变更的适合,组件会用一种非常高效的方式自动升级,而且仅在必要处升级。而且全部附加和卸除事件处理器的工作都会为我们处理好。使用委托模式(delegation)也是同样高效的。

值得注意的是,RP 已经在前端开发者社区中吸引了大量关注。这始于 2009 年的 the original Flapjax paper [PDF],随后也涌现了若干实现了 RP 原理的库,例如 Bacon.js Knockout Meteor React.js Reactive.coffee RxJS

在 2013 年旧金山 QCon 大会上,培训和常规专题都将广泛地覆盖反应性变成的内容,一如其他主要软件和IT 趋势和创新。欢迎大家积极参与并享受预先注册的优惠

查看英文原文: Reactive Programming as an Emerging Trend

2013-08-30 03:024791
用户头像

发布了 256 篇内容, 共 73.4 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

Redis 7.0 源码调试环境搭建与阅读技巧

码哥字节

redis redis 底层原理

为什么C4D能成为电商设计的王者?

Finovy Cloud

C4D 电商设计

腾讯Ckafka队列使用测评

查拉图斯特拉说

kafka 消息中间件

云教室如何部署?云教室使用教程

青椒云云电脑

云教室 云教室厂商

Kubernetes跨StorageClass迁移,切换Rainbond默认SC

北京好雨科技有限公司

云原生 #Kubernetes# 企业号10月PK榜

如何选择向量数据库|Weaviate Cloud v.s. Zilliz Cloud

Zilliz

非结构化数据 Zilliz 向量数据库 zillizcloud

跨语言高性能 RPC 框架 Focus 架构解析

dinstone

RPC 高性能 跨语言 focus

StarRocks 荣获 InfoWorld 2023 年最佳开源软件

StarRocks

第13期 | GPTSecurity周报

云起无垠

PostgreSQL基于Patroni方案的高可用启动流程分析

谐云

SQLSmith: Databend 如何利用随机化测试检测 Bug

Databend

产研团队必看!3款在线白板工具助你轻松改善工作!

彭宏豪95

产品经理 科技 产品研发 在线白板 效率软件

Python 继承和子类示例:从 Person 到 Student 的演示

小万哥

Python 程序员 软件 后端 开发

​  iOS自动混淆测试处理笔记

雪奈椰子

数智化推送助力用户精准分层,MobPush是如何实现用户价值变现的

MobTech袤博科技

智能推送

区块链DAPP开发技术方案,开启你的区块链时代

V\TG【ch3nguang】

你知道ping命令是如何工作的吗?

百度搜索:蓝易云

Linux 运维 ping ICMP Internet

APP移动出海必备神器,MobPush提供海外消息智能推送一站式解决方案

MobTech袤博科技

智能推送

LLM 大语言模型应用的分段策略

Tiger Wang

LLM 大语言模型 langchain

推送内容有误怎么办?MobPush撤回/取消推送为您排忧解难

MobTech袤博科技

智能推送

教育培训行业APP软件定制开发

V\TG【ch3nguang】

Linux ls命令:查看目录下文件

梦笔生花

🎊OpenTiny Vue 3.11.0 发布:增加富文本、ColorPicker等4个新组件,迎来了贡献者大爆发!

Kagol

国内有哪些做的比较好的云教室厂商?

青椒云云电脑

云教室 云教室厂商 云教室解决方案

app游戏定制开发【 小游戏定制开发】

V\TG【ch3nguang】

Dapp开发,让你掌握区块链技术-dapp开发团队

V\TG【ch3nguang】

提升网站性能:Nginx五种高效负载均衡策略

百度搜索:蓝易云

nginx 云计算 Linux 运维 Web

免费活动-11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

顿顿顿

Scrum 敏捷开发 敏捷项目管理 敏捷活动 scrum活动

博睿数据亮相GOPS全球运维大会上海站!

博睿数据

Kafka 在分布式系统中的 7 大应用场景

越长大越悲伤

Java kafka

3DCAT+东风日产:共建线上个性化订车实时云渲染方案

3DCAT实时渲染

汽车虚拟仿真 汽车3D可视化

新兴趋势:反应性编程_JavaScript_Dio Synodinos_InfoQ精选文章