10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

Racket 6.7 最新版本:提供对 Android App 的支持及改进的 REPL 等等

2016 年 11 月 06 日

PLT Design 发布了新版本的 Racket,类 Scheme 通用多模式编程语言 Racket 6.7 可以支持在 Android 上构建图形类应用程序,它同时改进了 REPL、包管理器,还支持扩展的 Typed Racked。

Racket 6.7 对于 Android GUI 编程的支持是通过 racked-android 项目所实现的。InfoQ 对话 UMass Lowell 副教授、racked-android 创建者 Jay McCarthy ,探讨了相关内容。

是否能请你介绍一下,这个项目是怎么应运而生的,它会被使用于哪种类型的应用程序开发?

Black Swan Learning, LLC (BSL) 是目前 XPrize Global Learning 竞赛中的一支队伍。他们使用 Racket 搭建了一个“学习操作系统”,并且 XPrize 竞赛要求参赛者必须将学习工具部署在 Android 平板电脑上,因此他们对于 Racket 的发展做出了很大的贡献。我在 RacketCon 上遇到了 BSL 的领袖 Byron Davies,他请求我帮助他搭建这个项目,嗯,其余的不用多说了。

从技术上来说,由于 CVM 的可移植性,以及 Matthew Flatt 甚至在好些年前就已经做出了 ARM JIT,所以自 Android 第一个版本以来,Racket 就开始在 Android 上运作了。对我们来说,我们必须解决连接 Java 至 Racket 的一些问题,才能实际构建 Android 应用程序。

Racket-android 旨在实现创建基于 OpenGL 的应用程序。这是否为你们路线图上其他的 Android APIs 提供了支持?

BSL 对于全屏基于画布布局的应用程序非常感兴趣,因此这就是我们要完成的第一个目标。由于 OpenGL 可以提供良好的性能,而且我已经有一个 2D 的 OpenGL 引擎可以实现需求,所以使用 OpenGL 是一个非常可行的选择。从此出发可以为 Android 的 Java API 搭建一个基于 Racket 的 FFI,这看起来没有任何的技术性挑战(从技术工作上来说)。我们目前尚没有计划实现它。

使用 Racket 给 Android 开发带来了什么优势和缺点?

你必须忽略大部分的系统 APIs(尽管不是所有的系统 APIs),这显然是一个劣势。在搭建的过程中,你需要时刻留心,避免使用不存在于 Android 上的库。目前来看,我并不认为使用 Racket 给 Android 开发带来了什么特别的好处,但如果你偏向于使用 Racket 编程(搭建 DSLs,大量使用函数式编程等等),那你将会受益于此。

Racket 6.7 中其他值得关注的内容:

  • Racket 的 REPL 现在使用 racket/interactive 来支持行编辑、命令及结果历史和元命令。元命令可以扩展 REPL 已知的命令集。元命令“开箱即用”,开发者可以使用 backtrace 回溯追踪到最后一个异常,使用 trace 追踪到命名的函数,使用 profile 更统计性地精确地分析代码等等。
  • Racket 的包管理器 ( raco pkg ) 允许当从 Git 仓库安装包的的时候,通过 git-checkout-credentials 配置选项指定验证凭证。此外,raco pkg 支持隧道使用 HTTP CONNECT
  • 可以逐步指定类型信息的 Typed Racket ,作为 Racket 的扩展,目前已经扩展到包括 racket/os 和 racket/db/sqlite。

Racket 6.7 版本现在在 Racket 网上可供下载

查看英文原文 Racket 6.7 Brings Android App Support, Improved REPL, and More

2016 年 11 月 06 日 19:002903
用户头像

发布了 217 篇内容, 共 54.6 次阅读, 收获喜欢 70 次。

关注

评论

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

云小课|VMware备份上云学习专列来了,快加入吧~

华为云开发者社区

云备份 VMware备份 备份上云

浅谈实时语音质量监控系统

声网Agora

音视频

GameFi游戏金融系统软件开发介绍

game+defi系统软件开发内容

做百度AI工程师,还要会“相牛”?

百度开发者中心

最佳实践 方法论 AI+

面面俱到!阿里巴巴2021最新Java面试参考权威指南泰山版震撼来袭

Java 架构 面试 后端 计算机

TLS协议分析 (一) 设计目标及历史

OpenIM

带你彻底认识Paxos算法、Zab协议和Raft协议的原理和本质

云流

Java 架构 面试 分布式 计算机

Tapdata 肖贝贝:实时数据引擎系列(四)-关于 Oracle 与 Oracle CDC

tapdata

oracle

tomcat启动失败常见错误

hasWhere

RVB2601应用开发实战系列四:FOTA镜像升级

未来开发者

物联网 risc-v 嵌入式开发

iOS 屏幕实时共享功能实践(内附详细代码)

融云 RongCloud

ios 音视频

手撕HashMap源码

开源君

Java 源码

后疫情时代新机遇,运营商如何把握智能家居市场?

鲸品堂

智能家居 运营商 智能家居商业模式

21年字节+美团+腾讯,大厂必问面试真题总结(Java岗)

Java架构师迁哥

执行update语句,用没用到索引,区别大吗?

Simon

MySQL 索引

NeonIO 云原生存储简介与应用

QingStor分布式存储

云原生 分布式存储

没项目经历,面试有点怂....

Java架构师迁哥

学生管理系统详细架构设计

Nullrable

Redis与Memcache对比

Linux服务器开发

数据库 redis 网络编程 Linux服务器开发 Memcache

Premo测试框架详解

趣链科技

区块链 测试工具 测试发开

做百度AI工程师,还要会“相牛”?

百度大脑

人工智能

RVB2601应用开发实战系列三: GUI图形显示

未来开发者

物联网 risc-v 嵌入式开发

RVB2601应用开发实战系列二: 跑马灯

未来开发者

物联网 risc-v 嵌入式开发

你了解自己的业务IO么?

焱融科技

云计算 技术 分布式 高性能 存储

Python 编程实例(6-10)

村雨遥

Python

逐梦航天—数字孪生技术仿真火箭发射!

森友小锘

前端 物联网 可视化 航天 数字孪生

高并发系统简单玩!Alibaba全新出品亿级并发设计速成笔记真香

程序员小毕

Java 架构 分布式 系统设计 后端

mac idea配置类和方法的注释

ruettiger

方法 Mac IDEA 添加注释

RVB2601 应用开发实战系列一: Helloworld 最小系统

未来开发者

物联网 risc-v 嵌入式开发

TLS协议分析 (二) 架构总览

OpenIM

Racket 6.7最新版本:提供对Android App的支持及改进的REPL等等-InfoQ