写点什么

JavaScript 成为 GNOME 的首选语言

  • 2013-02-28
  • 本文字数:1515 字

    阅读完需:约 5 分钟

GNOME 项目在其最近结束的 Developer Experience Hackfest 上做出了一个备受争议的决定,它们宣布 JavaScript 将作为 GNOME 桌面环境下用于开发应用程序的首选语言。据称,之所以做出这一决定,是为了简化开发流程,从而(使开发者)能够专注于标准的文档、最佳实践和开发者工具。

这个推选 JavaScript 成为主要语言的决定立刻激发了争论,评论者们对 JavaScript 进行了明确的批评,或是感叹他们选择的语言遭到忽视。GNOME 基金会成员及 Hackfest 参与者 Travis Reitter ,列举了做出此决定的若干理由:

  • 我们应选择动态的、高级的语言。
  • 在 GNOME Project 中,JavaScript 已经占据一席之地——它被用于 GNOME Shell 和 GNOME 文档中。
  • 要使一门语言变得非常快速、可嵌入并且与框架无关,需要大量的工作。
  • JavaScript 越来越被视作一门顶级桌面编程语言——它广泛出现在 Windows 8、移动平台和本地 Web 应用中。
  • JavaScript 是独立的——它不带有独有的核心类库,这使得我们更容易将其与平台进行整合。

Reitter 同时提醒到,即使针对应用开发领域做出了这项决定,C 依旧是 GNOME 系统类库的推荐语言。GNOME 选择 JavaScript 并不意味着对其他语言的支持会被忽视,但文档和开发者工具将优先支持 JavaScript。

该公告引来了大量的评论。以下是 Sriram Ramkrishna 的部分评论:

“我认为人们最关心的,是一门语言可能会落后于其他语言的问题。这也正是我们今天所处的境地。所以如果你决定使用另一门语言,将要面临的风险在于,你所使用的语言将无法获得一些重要的升级。对那些使用 JavaScript 之外的其他语言的开发者来说,应该有某种方式来保证他们能够及时看到适合他们所选择语言的升级。

Tristan Van Berkom 向 GNOME 发出了希望能有一门“本土语言”的呼声:

GNOME 需要一门自己的语言,就如同属于苹果的 NextStep Objective-C 实现一样。我之所以这么说,是因为这样一门高级语言的实用性;是因为这门语言是我们平台的一扇窗户,并能够利用平台独有的特性(我在此处所说的平台,是指 GObject/GIO/Clutter/GTK+/ 等等的组合)。

Vala 是非常明显的选择,因为它允许我们对语法进行扩展,并能够利用那些我们平台独有的特性。与使用 Objective-C 利用 NextStep 环境相类似,使用 Vala 能够使我们更容易利用 GtkBuilder 的特性,而且我们应该对 Vala 能够带给我们的未来抱有期望。

Vala 是专为 GNOME 应用开发者们开发的,用于替代 C#和 Java 的选择。然而(GNOME)没有选择它,却选择了 JavaScript。Reitter 这样评论道:

“选择 JavaScript 而不是 Vala 的一个重要原因,是 JavaScript 有着巨大的用户群,人们已经热衷于使用 JavaScript(即,它是 Windows 8、Firefox OS 和其他移动平台的推荐语言),同时人们为了使它更快速和稳定所做的工作也是非常重要的财富。

Keith Curtis 通过一篇独立的博客文章发表了他的评论:

“他们试图使用一门带有垃圾回收机制的语言来编写尽可能多的代码的做法是很棒的。对于一个基于组件的 shell 界面,毫无疑问 JavaScript 要比 C、C++ 或 Java 更好。我注意到,若干年前他们就开始着手于 JavaScript 并向这个目标前进,但我认为他们值得重新考虑一下是否处在正确的道路上。

对于那些重大决定,最好能有书面记录。除了在公布该决定后发表一篇博客文章,我找不到任何支持这个决策的文档, 而那篇文章页没能提供非常详尽的信息。”

与之相对的,KDE 项目的参与者们使用的是 C++。应用开发者们可以从 C++、Python、Ruby、C#和 Perl 中选择。使用 C++、JavaScript、Python、Ruby 和 QML (基本上是对 JavaScript 和 CSS 的融合) 为 KDE 编写的轻量级应用被称为 Plasmoids

查看英文原文: JavaScript Now First Among Equals on GNOME


感谢杨赛对本文的审校。

2013-02-28 22:212873
用户头像

发布了 256 篇内容, 共 76.4 次阅读, 收获喜欢 10 次。

关注

评论

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

2023年全国高校公益人工智能师资培训营报名正式开启

飞桨PaddlePaddle

人工智能 百度 飞桨

【6.09-6.16】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

小程序容器技术:数字门户的创新引擎

FinClip

深入剖析spring核心容器依赖注入类型和原理:Spring依赖注入类型

互联网架构师小马

深度学习实践篇[17]:模型压缩技术、模型蒸馏算法:Patient-KD、DistilBERT、DynaBERT、TinyBERT

汀丶人工智能

人工智能 深度学习 知识蒸馏 模型压缩 6 月 优质更文活动

智造零距离:工程师走访华秋深圳 PCB 工厂,观摩高可靠板制造流程

华秋电子

Java8 Stream 的总体设计和使用

4ye

Java' 6 月 优质更文活动

【TiDB v7.1.0 荣誉体验官招募】索尼 PS5 、索尼无线降噪耳机、倍轻松颈部按摩器等你拿!

TiDB 社区干货传送门

人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)

汀丶人工智能

人工智能 自然语言处理 深度学习 计算机视觉 6 月 优质更文活动

大佬带你深入理解Spring依赖注入原理:bean的注册及实例化

互联网架构师小马

Wallys/board with SFP module /ipq8072/ipq6010/ipq4019 / support openwrt

Cindy-wallys

IPQ4019 IPQ6010 IPQ8072 ipq4029

CST电磁仿真软件对火箭发射场雷击仿真与电子设备结构设计

思茂信息

cst cst仿真软件 abaqus abaqus软件 abaqus有限元仿真

浅谈中移链中插件的功能及使用

BSN研习社

区块链

全球异型LED显示屏的市场发展

Dylan

技术 设计 领域 LED显示屏 市场

一篇文章帮你解读所有 TiDB 工具&常见问题解决大全

TiDB 社区干货传送门

记一次 Rust 内存泄漏排查之旅 | 经验总结篇

Greptime 格睿科技

rust 时序数据库 内存泄漏 云原生数据库 heap profiling

软件测试/测试开发丨用户端App自动化测试学习笔记分享

测试人

Python 程序员 软件测试 自动化测试

Wise 的平台工程 KPI 探索之旅

SEAL安全

KPI 平台工程

Spring循环依赖案例分析:三级缓存结构+循环依赖解决方案

互联网架构师小马

TiDB v7.1.0 版本 Resource Control体验

TiDB 社区干货传送门

新版本/特性解读 7.x 实践

TiDB Contributor 资料汇总

TiDB 社区干货传送门

一起薅 DevChat 公测的羊毛:国内无需注册就能用上免费的 ChatGPT(gpt-4)

胡说云原生

ChatGPT GPT-4 DevChat

2023大型企业全面预算管理趋势

用友BIP

全面预算 财务共享

搭建TiDB负载均衡环境-LVS+KeepAlived实践

TiDB 社区干货传送门

管理与运维 7.x 实践

TiDB v7.1.0版本 相关(部署、在线扩容、数据迁移)测试

TiDB 社区干货传送门

版本测评 新版本/特性发布 扩/缩容 数据库连接 7.x 实践

TiDB 7.1 资源管控特性试用

TiDB 社区干货传送门

新版本/特性解读 7.x 实践

搭建TiDB负载均衡环境-HAproxy+KeepAlived实践

TiDB 社区干货传送门

实践案例 管理与运维 数据库架构设计 7.x 实践

tiflash引擎的使用小总结

TiDB 社区干货传送门

OLAP 场景实践

Java8 Stream 的核心秘密

4ye

Java' 6 月 优质更文活动

云安全的第一站:CSPM

HummerCloud

云安全 cspm

探索开源创新理论|2023开放原子全球开源峰会开源创新理论与实践分论坛成功召开

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 开源创新理论

JavaScript成为GNOME的首选语言_JavaScript_Jeff Martin_InfoQ精选文章