写点什么

第三方开发者可将 JIT 和编译器引入 WinRT 吗?

  • 2012-09-08
  • 本文字数:1114 字

    阅读完需:约 4 分钟

微软在向开发者和终端用户大力推广 WinRT 平台的特性,以鼓励更多人采用它。但是,随着人们对 WinRT “围墙花园”所强加的限制的关注,这些特性的代价逐渐被大家所全面认识。

Mozilla 的 Brian R. Bondy 在三月份曾宣布过为Windows8 开发Firefox 的计划,以及该项目如何展示三类应用:“……经典桌面应用,Metro 应用以及支持Metro 风格的桌面浏览器”。微软的白皮书《开发支持Metro 风格的桌面浏览器》详细讲述了开发者怎样将他们的浏览器移植到Windows8 中。

LuaJIT 的开发者 Mike Pall 在 5 月份表示,ARM 版 Windows8(WOA 或 Windows 8 on ARM)的组成架构不支持第三方 JIT(Just-in-time)编译器:

“Windows8/ARM 只支持在沙箱(Sandbox)内运行独立开发者的应用。这些应用只能访问 WinRT API,无法访问所有 WIN32 API。是的,WIN32 API 在 W8ARM 上的确存在,但只有 IE 和系统进程可以访问”

该限制的影响广泛。Pall 关注的是 JuaJIT 的开发,但几乎所有用户都受到影响:“……对于 [WOA],将没有 LuaJIT(JIT 模式下),没有 PyPy,没有 java,没有 v8 等等,以及依赖或内嵌它们的任何软件(Scala、Clojure、Jruby)”。然而,“……[WOA] 版 IE 具有特殊权限,是唯一被允许运行 JIT 编译器以加速 JavaScript 的软件”。对于任何其他浏览器,IE 将有天然的速度优势。

Embarcadero 的 Allen Bauer 带来了最新的发展,他在工作中发现,在 WinRT 平台上将本地代码生成能力添加到其公司的编译器中是行不通的:

“我们非常希望在 WinRT 上支持本地 Delphi&C++ 代码。问题是,任何人实现其语言的运行库(RTL)时都需要使用一些操作系统提供的 API,而事实上 WinRT 却限制这些 API 的使用,除非 VC++ 运行库”。

最新的微软官方响应依旧延续了 Steven Sinofsky 以前发表的文章的论调:

“……WOA 将不会支持任何虚拟化或模拟化手段,不支持现有 x86/64 应用的移植或运行。支持各种形式的模拟器有碍于提供系统可靠性及可预测性的产品发布,设计即是如此。现有代码没有像 WOA 那样针对该平台进行优化。虚拟化或模拟化软件耗费太多的系统资源,包括电池寿命和 CPU。”

让事情更复杂的是微软材料中存在明显的自相矛盾。上述的浏览器开发指南声称“支持 Metro 风格的桌面浏览器”允许使用 JIT 编译,系统中同时只有这类浏览器的一个活动版本。这种情况下,当面对基于 JIT 的浏览器不再是默认配置时,WinRT 平台会如何应对尚不明确。

对整个业界的观察中,可以注意到,开发者历来会接受苹果 iOS 平台对他们开发的限制。而不同的是,微软试图得到他们现存桌面开发者社区的支持,而这些开发者历来不喜欢类似 WinRT 这种形式的限制。


查看英文原文: Can 3rd Party Developers Bring JIT and Compilers to WinRT?

2012-09-08 09:171859

评论

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

Linux之nl命令

入门小站

Linux

基于 Web 引擎扩展技术的 RTC 混合开发框架实践

白玉兰开源

大前端

使用 Scala 宏解决对象转换

GrowingIO技术专栏

scala protobuf 元编程 macro

可视化搭建的一些思考和实践

白玉兰开源

AI如何赋能软硬件产品创新?百度大脑开放日西安站解密

百度大脑

AI 百度大脑 开放日 EdgeBoard

12种mysql常见错误总结 +分析示例

李阿柯

MySQL 面试 常见问题

为什么switch的case没有break不行

叫我阿柒啊

Switch case break

带你认识9种常用卷积神经网络

华为云开发者联盟

神经网络 深度学习 卷积神经网络 图像 卷积

30分钟接入SDK 融云是如何让开发者做到开箱即用的?

融云 RongCloud

[译] D8 类库脱糖

Antway

6月日更

冰泉奶茶香牙膏好不好?奶茶控的宝藏牙膏就是它

Geek_50a546

EasyRecovery——一款专业的数据恢复软件

淋雨

文件恢复 Easyrecovery破解 免费恢复软件 硬盘数据恢复

HarmonyOS学习路之开发篇——公共事件与通知(一)

爱吃土豆丝的打工人

Java HarmonyOS 鸿蒙操作系统

回忆录 | 那些你不能错过的CTF夏令营往届历程,2021精彩继续……

郑州埃文科技

面试官:你知道怎么求素数吗?

华为云开发者联盟

面试 开发者 开发 代码 素数

JavaScript学习(十一)---RegExp对象

空城机

JavaScript 大前端 6月日更

一步步设计版本控制系统

Java·课代表

git 版本控制 版本管理

AI论文解读:基于Transformer的多目标跟踪方法TrackFormer

华为云开发者联盟

预测 Transformer 多目标跟踪 TrackFormer 跟踪目标

计算机网络的 89 个核心概念

苹果看辽宁体育

后端 计算机网络 网络

掌门教育自研APM实际分享

白玉兰开源

联想服务斩获两项智能运维大奖 助力企业业务创新与数字化转型

科技大数据

使用SpringCloud的openFeign组件踩坑纪实

小江

dubbo Feign spring-cloud

在线sitemap链接提取工具

入门小站

工具

代码管理工具:Git和SVN

正向成长

git svn

深度解读MRS IoTDB时序数据库的整体架构设计与实现

华为云开发者联盟

大数据 架构 时序数据库 FusionInsight MRS MRS IoTDB

支持低代码开发和远程真机,DevEco Studio 2.2 Beta1来啦

科技汇

APP 开发技术如何进行选型 ?

程序员海军

大前端 App 技术选型 APP开发

Rust从0到1-自动化测试-测试组织

rust 单元测试 集成测试 自动化测试

容器化 | 在 Kubernetes 上部署 RadonDB MySQL 集群

RadonDB

MySQL Kubernetes 容器

全网最详细XSS跨站脚本攻击,不是过来打死我!!

网络安全学海

程序员 网络安全 信息安全 XSS 漏洞修复

数据结构——顺序表

若尘

数据结构 6月日更

第三方开发者可将JIT和编译器引入WinRT吗?_语言 & 开发_Jeff Martin_InfoQ精选文章