集成编程实践已变得很孤立,使用青睐的集成工具进行编程的开发人员必须使用另一种工具或编程语言开发其余应用程序。除此之外,向云转变意味着团队现在必须在容器中部署集成系统,并使用分布在大量节点上的微服务创建应用程序。
现有的编程语言并不特别擅长理解这些问题以及团队试图所做的工作。它们根本不是为云而构建的。而Ballerina是一种面向云原生编程和集成的开源语言,为致力于针对网络交互创建新API、新集成和新逻辑的开发人员提供了一系列合适的工具和抽象级别。
凭借用于开发服务和API的语法、JSON支持以及内置并发,新的正式版Swan Lake可以进一步简化开发人员构建和部署云原生应用程序的方式。
以下是开发人员应选择Ballerina为其云原生应用程序编写API、集成和后端逻辑的主要原因。
由于云端服务越来越多,几乎每个企业应用程序都需要网络调用。对于开发人员来说,这加大了处理其代码中的资源方面的责任。Ballerina随带对网络友好的类型系统,有强大的功能来处理网络上的数据。
Ballerina可以轻松地为数据建模,并通过网络来回传送。该语言有强大的工具来编写、声明、处理、查询、结构化、重组和导航数据。
importballerina/http;
importballerina/io;
typeCountryrecord {
stringcountry;
intpopulation;
stringcontinent;
intcases;
intdeaths;
};
// Prints the top 10 countries having the highest case-fatality ratio.
publicfunctionmain() returnserror? {
http:ClientdiseaseEp = checknew ("https://disease.sh/v3");
Country[] countries = checkdiseaseEp->get("/covid-19/countries");
jsonsummary =
fromvar {country, continent, population, cases, deaths} incountries
wherepopulation >= 100000 && deaths >= 100
letdecimalcaseFatalityRatio =deaths / cases *
100
orderbycaseFatalityRatiodescending
limit10
select {country, continent, population, caseFatalityRatio};
io:println(summary);
}
编程语言的类型系统是表示数据和实现逻辑的基础。虽然开发人员必须处理其代码中的网络资源,但编程语言本身必须在该操作中提供帮助。这就是为什么Ballerina专门适用于对网络友好的类型系统。
比如在典型的编程语言中,有一些标准和协议来定义如何处理通过网络传输的数据,并将其绑定到语言(数据绑定)。收到数据后,开发人员必须将数据绑定到语言中的数据结构,才能对其进行操作。
Ballerina的类型系统不仅能描述内存中的数据,还能描述网络上的数据。尤其是,为了与JSON、XML及其他格式紧密结合,开发者做了大量工作。数据通过网络传输时,开发人员可以将其引入语言中,没有任何人为的、复杂的数据绑定问题,实际上摈弃了众所周知的数据格式和网络数据结构中的数据绑定概念。
Ballerina的类型系统主要是结构化的,增加了对名义类型的支持。这意味着类型兼容性通过考虑值的结构而不是仅仅依赖类型名称来识别。这有别于Java、C++和C#等拥有类型系统的语言,这些系统中受实际类型名称的约束。
在Ballerina中,每个程序都可以显示为自动表明分布式并发交互的序列图。Ballerina程序中的函数在文本语法和序列图中都有等效的表示。您可以在这两个视图之间无缝切换。 Ballerina独特的图形视图不是一种噱头,而是被设计到语言底层中,以便用户切实深入了解函数的网络交互及并发机制的使用。
importballerina/http;
importballerinax/googleapis.sheets;
configurablestringgithubPAT = ?;
configurablestringrepository = "ballerina-platform/ballerina-lang";
configurablestringsheetsAccessToken = ?;
configurablestringspreadSheetId = ?;
configurablestringsheetName = "Sheet1";
typePRrecord {
stringurl;
stringtitle;
stringstate;
stringcreated_at;
stringupdated_at;
};
publicfunctionmain() returnserror? {
http:Clientgithub = checknew ("https://api.github.com/repos");
mapheaders = {
"Accept": "application/vnd.github.v3+json",
"Authorization": "token " + githubPAT
};
PR[] prs = checkgithub->get(string`/${repository}/pulls`, headers);
sheets:Clientgsheets = checknew ({auth: {token: sheetsAccessToken}});
checkgsheets->appendRowToSheet(spreadSheetId, sheetName,
["Issue", "Title", "State", "Created At", "Updated At"]);
foreach var {url, title, state, created_at, updated_at} inprs {
checkgsheets->appendRowToSheet(spreadSheetId, sheetName,
[url, title, state, created_at, updated_at]);
}
}
虽然Ballerina具有现代编程语言的所有通用功能,但它之所以脱颖而出,是由于提供了更易于使用、为云组合和创建网络服务的语言功能。如需深入了解Ballerina语言功能的介绍性说明,建议观看该语言的开发者Sanjiva Weerawarana的视频,或者参阅该博客。
原文标题:Why Should You Program with Ballerina?,作者:Vishva Ahangama
分享文章:为什么应该用Ballerina编程?
标题URL:http://www.shufengxianlan.com/qtweb/news33/341233.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联