Ballerina语言有望改善应用程序集成

Ballerina语言是编程领域的新手。 它有望简化企业应用程序的集成开发 。 它支持多种原语,旨在减轻Java开发人员通过JSON, RESTXML接口针对API进行编码时通常面临的许多负担。

还很早,但是Balerina语言吸引了Google,WSO2,Bitnami和Apache OpenWhisk组的支持。 两家公司最近在旧金山召开了首届Ballerinacon会议,讨论了开源项目以及其他支持该语言的细节。 Ballerina对Java开发人员意味着什么? TheServerSide与WSO2的首席执行官Tyler Jewell取得了联系。

那么为什么我们需要另一种编程语言呢?

泰勒·珠宝(Tyler Jewell):Ballerina语言的诞生源于对编程框架和集成产品的沮丧,这些编程框架和集成产品将编程逻辑嵌入到YAML,XML或其他基于配置的文件中。 这些方法破坏了开发人员的流程,需要专用工具和调试器,这使开发人员无法专注于迭代式开发。

人们必须选择功能强大,复杂且笨重的服务器产品来管理集成,或者使用通用语言,并且其框架会因编程语言和目标而异。 还没有一种方法可以通过运行微集成服务器进行消息代理,服务托管和事务协调的快速代码开发来获得敏捷性。

Ballerina试图将类型安全的编程语言的敏捷性与集成序列图的语法相结合。 编译完成后,生成的二进制文件将嵌入微引擎,这些微引擎将执行内联集成语义,例如中介,业务流程,转换,异步,事件生成和事务。

最后,使用Ballerina语言的意图是将云原生化。 该语言具有定义架构环境的构造,因此编译器了解应用程序将在其中运行的逻辑环境。 这使编译器能够生成通常由连续集成解决方案生成的大量运行时环境工件。

组织如何使用Ballerina语言?一些领先的公司采用或支持这种语言?

珠宝:像大多数语言一样,早期社区需要花费很多年才能得到培养。 该语言的第一个可用于生产环境的版本已于5月提供,并且有许多早期的贡献者和用户。

如今,早期采用已发生在两个领域:

  1. Ballerina现在为WSO2的API微网关引擎提供动力,该引擎用于启用每个API网关和管理。 WSO2的数十家企业客户正在积极部署和使用它。
  2. 具有复杂集成方案的早期云原生和Kubernetes采用者不希望在其协调器中使用ESB。 Ballerina是ESB的一种更分散的形式。

我们已经从社区中看到了对生态系统的早期贡献,而Google,Bitnami,Honeycomb和Apache OpenWhisk都是昨天的Ballerinacon的早期贡献者和演讲者。

有《财富》 500强公司签约支持将Ballerina部署在主要应用程序上,但尚未准备好与公众分享他们的身份。

Ballerina语言如何与Java,Go或Scala等其他语言进行比较和对比?

Jewell:Ballerina的语言设计原则是专注于简化与通过网络集成系统相关的问题。 因此,核心设计原则是:

序列图

Ballerina的基本语言语义是通过建模独立方如何通过结构化交互进行通信而设计的。 随后,每个Ballerina程序都可以显示为带有端点的流程的顺序图,包括同步和异步调用。 Ballerina Composer是包含的工具,用于使用顺序图创建Ballerina服务。 顺序图反映了设计人员和架构师如何思考和记录互连的系统。 Ballerina的语法结构允许任何工具或系统得出序列图,并随后由开发人员在编写Ballerina代码时想到的方式鼓励了强有力的交互最佳实践。 Sanjiva Weerawarana的博客详细阐述了这一理论。

并发工作者

Ballerina语言的执行模型由称为工作程序的轻量级并行执行单元组成。 工作者使用完整的非阻塞策略,其中没有函数锁定执行线程,例如等待响应的HTTP I / O调用。 这些语义体现了序列并发性,其中工作者是独立的并发参与者,它们不共享状态但可以使用消息进行交互。 Worker和fork / join语言语义抽象了底层的非阻塞方法,以实现更简单的并发编程模型。

网络感知类型安全

Ballerina具有结构类型系统,具有基本,对象,联合和元组类型。 网络系统返回的消息具有不同的有效负载类型和错误。 Ballerina的类型系统通过基于联合类型的方法来包含这种可变性。 此类型安全模型在分配时合并了类型推断,以为网络绑定的有效负载提供大量编译时完整性检查。

支持DevOps

在过去的15年中,一种语言提供的相关工具集的最佳实践和期望不断发展。 现在,除非包含单元测试框架,构建系统,依赖项管理和版本控制以及共享可重用代码模块的方法,否则该语言尚无法采用。 Ballerina将所有这些子系统都包含在其核心分布中,因此没有社区漂移的风险,这是当生态系统需要在某种语言之上构建工具而不是在该语言中进行设计时发生的。

环境意识

Ballerina语言及其组件旨在在分布式的,事件驱动的体系结构中使用。 随后,在Ballerina中编写的每个服务都位于一个环境中,该环境可能还包括遗留服务,服务网格,协调器,API网关,身份网关,消息代理和数据库。 Ballerina的语言和注解扩展是有意识的环境意识,将其他组件视为句法对象,并将关系视为修饰的注解。 通过使语言和构建系统对我们服务周围的其他组件具有环境意识,我们可以在CI / CD之前生成必要的工件代码,围绕网络绑定的负载执行数据和完整性检查,并预先打包依赖但尚未部署的组件作为Ballerina二进制文件的一部分。

您如何看待Ballerina对其他编程语言的补充或替代?

Jewell:现在,企业中超过50%的时间和成本用于数字转换和API项目。 当需要构建弹性逻辑和微服务时,Ballerina不会强加与数据格式,网络交互和弹性相关的大部分框架。 这样可以减轻运行时间,提高开发人员对解决方案进行编码的生产力。 开发人员将继续使用他们喜欢的语言,但是我们认为Ballerina为微服务,API开发,系统管理员网络脚本和组合开发提供了更简单的体验。

Ballerina语言的哪些特定特征使其对集成有用?

杰威尔:让我强调几个重要的方面:

  1. 具有网络意识的类型系统使根据远程API编程数据类型更加容易。
  2. 复杂数据结构到原始值和并集类型的直观映射使数据转换成为静态类型,并且直观易懂。
  3. 通过认识到编译器和运行时可以理解网络位置和API,将服务和端点视为一流的构造。
  4. 内置的编译器支持可对故障转移,重试,断路器,负载平衡和分布式微事务进行分层,以与端点进行通信。
  5. 对各种有线协议的广泛和本地支持,从而使服务和端点抽象成为本地的。

一个典型的Java开发人员需要学习什么新概念来充分利用Ballerina的语法和语法?

Jewell:更多的是Java开发人员不再需要了解的内容! 基础值类型系统生成JSON,XML,表,记录,映射和错误原语,因此它们不需要库即可使用这些基本数据结构。 这使开发人员可以使用源代码中的简单构造来执行许多数据结构操纵,而大多数其他语言都没有这些构造。

同样,联合类型系统使一个类型可以是多个不同类型,例如“ string | 错误”,因为在网络上工作有很多情况,单个请求可以返回不同种类的有效负载,每种有效负载都适合不同的数据结构。 因此,联合类型使某人可以发出单个请求,并将响应映射到任意数量的不同类型。 然后,开发人员必须学习一些有关在存在联合类型时确定返回的实际类型的技术。

学习和实施Ballerina应用程序的最佳实践是什么?

Jewell:语言开发人员在提供两组示例方面做得很好:

  1. 超过100个由Example所提供的Ballerina ……包括完整示例在内的每种语言语法的细微差别。
  2. 越来越多的《 Ballerina指南》 ...为解决不同类型的企业集成方案提供了端到端的开发经验。

目前,针对Ballerina语言的工具或IDE有哪些?

珠宝:Ballerina有:

  1. 一个相当高级的VS Code插件,提供了广泛的语言服务器IntelliSense功能。
  2. IntelliJ的类似功能。
  3. Ballerina Composer,可让您直观地将任何Ballerina服务映射为序列图以及监视执行情况。
  4. 可与任何Ballerina运行时配合使用的调试器。
  5. 内置的软件包管理,Ballerina Central用于共享软件包,软件包版本控制和软件包构建管理。
  6. 用于运行用Ballerina编写的托管服务的单元测试和模拟的测试框架。
  7. 一个文档框架,用于从Ballerina代码中自动生成不同类型的文档。

您如何期待Ballerina语言的未来发展?

Jewell:Ballerina语言现在已经可以生产了,但是语法尚未实现1.0锁定。 设计人员正在朝着1.0版本努力,他们将在其中提供长期的向后兼容性。 我们希望在今年年底之前达到这一稳定水平。

我们预计该语言将继续发展,并将进行投资以优化其状态服务,无服务器执行,复杂的多层补偿以及在大型业务流程系统中运行的优化能力。

翻译自: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Ballerina-language-promises-to-improve-app-integration

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值