写点什么

LambdaNative:移动端、桌面端的跨平台嵌入式开发方案

  • 2016-03-09
  • 本文字数:1928 字

    阅读完需:约 6 分钟

LambdaNative 是一个跨平台开源发展框架方案,支持各种平台,包括了iOS、安卓、黑莓、OSX、Linux、微软、OpenBCD、NetBSD 和OpenWrt。

这是由英国哥伦比亚儿童医院的小儿麻痹症研究团队和哥伦比亚以及加拿大温哥华的大学共同开发的。LambdaNative 是基于 Gambit Scheme ,能够在所有平台上生成单一方案来源的 C 代码。团队表示,使用 Scheme 能够在相对较短的时间(与 Java 或 C/C++ 相比)内开发出高质量的代码。

此外,LambdaNative 将基于 OpenGL 的 glGUI 作为用户界面编程工具包。因此,它不支持原始的用户界面,而是使用移动跨平台开发框架,比如 lonic React Native 等。这一点一定是 LambdaNative 的一个显著特点,可能导致它会不适用于所有移动应用程序。不过换个角度来说,在所有支持的设备上执行精确相同的用户界面可能会在特定情况下成为一个有利条件,有一位团队成员这样解释

“我们在和处于地球另一端的研究团队合作。它让我们很方便的向他们发送某个应用的 Windows 版本,他们也可以很轻松地运行,无需每次都在手机或是平板电脑上先安装再运行。”

LambdaNative 已经用于一些项目的临床实践,有一些还是在发展中国家。并且还有几个示例应用程序已经上传到 APP Store 谷歌Play 中。

LambdaNative 背后开发团队的领导者是 Chris Petersen 博士,InfoQ 和他有过一些交流。

在网页上声称 LambdaNative 和 Java 或 C/C++ 相比,可以大大减少开发时间,您能详细谈谈吗?在什么样的情况下可以更快?LambdaNative 的具体优势是什么?

“是的,LambdaNative 网站刊登过 Erann Gat(与我们无关)论文的某些研究结果,比较的对象是 Java、C/C++ 和 Scheme/LISP。这是很难进行客观比较的,也很容易引起争执。不过这些结果和我们自己的经验是相符的。LambdaNative 的主要目的就是在资源有限的时候减少开发时间,使得应用程序可以在短时间内使用最少的资金交付。”

“我们发现了在 Scheme 下开发的好处有这些,1)语法极其简单,直接表达本质;2)数据代码都是等价的;3)直译、编译代码可以混合。LambdaNative 本身就会管理应用程序资源、作品和代码签名等,这就减少了开发过程中的复杂程度并且提高了整体的生产效率。”

LambdaNative 针对的是什么类型的应用程序 / 开发人员?

“LambdaNative 是由英国哥伦比亚儿童医院的小儿麻痹研究团队以及哥伦比亚和加拿大温哥华的大学共同开发的。其目的是为我们研究组的临床试验提供软件开发支持。这就包括了移动端、服务器和桌面上的应用程序在许多不同平台上的部署。因此我们对于 LambdaNative 的内部使用都是和健康有关的。不过,我们已经解耦了结构中的医疗成分,这样 LambdaNative 就变成了一个可以用于任何目的的应用程序开发工具包。我们将与健康有关的应用程序内容都转移到了 LNHealth GitHub 存储库(这也是使用 LambdaNative 开发的)。”

对于特定操作系统的用户界面部件或传感器等资源,LambdaNative 的访问途径是什么?同时,LambdaNative 又提供了怎样的与主机操作系统的互动操作性?

“LambdaNative 可以通过计划模块封装访问特定的操作系统资源,如传感器或是设备摄像头。如果是进行快速阅读,或是要进行拍照,那就是通过 Scheme 通用途径完成,这种方法允许一次性编写支持所有体系的应用程序级别代码。LambdaNative 将自己的用户界面部件直接放在了 OpenGL 中,这样就可以保证可以一次性编写应用程序代码。这是一种权衡。从反面来说,LambdaNative 并没有直接访问特定于操作系统的用户界面功能,因此它看起来与本机应用程序完全不同。不过积极的一面就是,LambdaNative 的应用程序在所有平台上的外观和操作方式都是完全一样的,如果以后出现了新的操作系统也不需要改变应用程序级别的代码。”

LambdaNative 未来的规划是什么?

“当前我们在非健康领域的项目计划是扩大 LambdaNative 与物联网协议有关的应用,以及获得更广泛的身份验证技术,比如说 YubiKey 支持。在健康领域,我们正在扩大 LNhealth,这是一种支持手动输入传感器数据的调查框架。我们正在考虑增加对蓝牙和本机键盘的支持。除此之外,由于 LambdaNative 是根据由它支持的项目需求而改变的,所以它自己并没有什么远景规划。对于 LambdaNative 本身来说,只有一个独立的目标,那就是为了支持它创建的所有任务项目,保持最高的可移植性和可靠性。”

查看英文原文: LambdaNative: Scheme for Mobile, Desktop, and Embedded Cross-Platform Development


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2016-03-09 18:002141

评论

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

SBOM喊话医疗器械网络安全:别慌,我罩你! Part Ⅰ

安势信息

网络安全 SBOM 医疗器械 SBOM应用

Flink 2.0 启航,开启全新篇章

Apache Flink

大数据 flink 实时计算

开心档之C++ 引用

雪奈椰子

开心档之C++ 多态

雪奈椰子

window c++ select 参数列表介绍

linux大本营

TCP socket select I/O 多路复用

关于C语言的系统相关的桌面程序编程书籍推荐吗

linux大本营

C语言

最佳实践|如何写出简单高效的 Flink SQL?

Apache Flink

大数据 flink 实时计算

开心档之C++ STL 教程

雪奈椰子

Neural Filters神经滤镜插件如何安装?PS神经滤镜插件安装教程

互联网搬砖工作者

15年了,我们到底怎样才能用好 Serverless

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

算法题每日一练:连续子数组的最大和

知心宝贝

数据结构 算法 前端 后端 三周年连更

开心档之C++ 预处理器

雪奈椰子

千行百业的共同选择,华为云为何成为央国企首选云?

科技热闻

私有云裸机物理服务器角色规划

穿过生命散发芬芳

私有云 三周年连更

c++11 获取当前机器唯一编码

linux大本营

C++

从领先实践看港口行业资产管理数智化变革

用友BIP

CutMix&Mixup详解与代码实战

华为云开发者联盟

人工智能 华为云 数据增强 华为云开发者联盟 企业号 4 月 PK 榜

华为云联合多家单位正式开源云原生多沙箱容器运行时Kuasar

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

Photoshop崩溃怎么办无法打开 Photoshop

互联网搬砖工作者

堪称一绝!阿里技术人都用的Nginx手册,应用到架构齐全

做梦都在改BUG

Java nginx

阿里发布的百亿级高并发系统(全彩版小册),涵盖了所有的高并发操作!

架构师之道

Java 面试 高并发

为什么我们的微服务中需要网关?

做梦都在改BUG

Java 微服务 网关

autocad 2024电脑系统要求

春天的风暖暖的

详解Redisson分布式限流的实现原理

做梦都在改BUG

Java 分布式限流 redisson

华为云尚海峰:三个“全面”,助力央国企深度用云

科技热闻

linux unlikely函数

linux大本营

Linux unlikely函数

【获奖案例巡展】信创先锋之星——江西金发基于分布式数据库的互联网金融业务系统

星环科技

分布式数据库

AI系统伦理道德风险之透明度验证

陈磊@Criss

面试何惧调优!腾讯技术官私藏的性能优化方案手册,原理实战齐全

做梦都在改BUG

Java 性能优化 性能调优

linux 自定义段 c

linux大本营

Linux C语言 系统调用

软件测试/测试开发丨常见面试题与流程篇(附答案)

测试人

软件测试 面试题 自动化测试 测试开发

LambdaNative:移动端、桌面端的跨平台嵌入式开发方案_移动_Sergio De Simone_InfoQ精选文章