写点什么

GitHub 使用 Electron 重写桌面客户端

  • 2017-05-18
  • 本文字数:1212 字

    阅读完需:约 4 分钟

GitHub 客户端应用开发总监 Phil Haack宣布,GitHub 使用Electron 重写了macOS 和Windows 的客户端。 GitHub 桌面客户端 Beta 版本还为最新 Beta 版本的 Atom 提供了新的 Git 和 GitHub 集成

负责重写应用的团队解释说,重新构建 GitHub 桌面客户端的主要原因是为了减少支持多平台开发所耗费的成本。实际上,分别为 Windows 和 macOS 开发原生应用要求使用两种不同的技术栈,也就是说,每个功能特性都需要重复实现、调试和维护。如果需要支持第三个平台,如 Linux,那么还需要投入额外的精力。

事实证明,为多个平台构建原生应用不具有伸缩性。

GitHub 团队快速地转向使用 Web 技术来开发他们的应用,比如 Electron 和 TypeScript。使用 Web 技术带来了一些好处,代码的构建运行时间从几分钟降到了几秒钟,代码变更会适时地被重新加载,还有可能实现实时的设计调整。不过,使用 Web 技术开发桌面应用也存在一些局限。

Web 并非完美的平台,不过原生应用也不是。使用 Electron 重写原生应用只不过是在不同的权衡点之间进行了交换。

开发人员解释说,Electron 为他们提供了平台相关的 API,通过扩展这些 API,他们获得了更多的灵活性,这也就是 Electron 给他们带来的好处之一。

经过一年的开发,基于 Electron 的客户端现在可以下载使用,也可以从GitHub 上拉取分支

InfoQ 对 Phil Haack 进行了访谈,以便更多地了解他们在 Electron 上的进展。

Electron 在诞生之后就成为很多著名应用程序的开发平台。你是怎么看待 Electron 在如今的跨平台应用开发解决方案中所扮演的角色?

Phil Haack: Electron 借助 Web 这个成功的平台,与 Web 在相同的方向上行进,只是它是从相反的端点出发。事实上,用户可以利用 Web 技术来开发桌面应用正是 Electron 的一个成功之处。

最近人们在 Reddit 上热议 Electron 是“桌面版的 Flash”,这要归因于它的内存使用和性能。Electron 的哪些关键因素会让它成为重要的技术?

Haack:刚才我已经说过,Electron 借助了 Web 技术平台。来自行业巨头,如 Google、Microsoft、Facebook、Slack、GitHub 等公司在 Chromium、Node、JavaScript、HTML、CSS 等技术上持续投入,这些技术也在持续改进,Electron 也因此从中获利。这些工具提供了很强大的功能,它们的发展和进步就是 Electron 的关键所在。我们也有很多有关如何改进 Electron 的讨论。

你是如何看待 Electron 在移动方面的可能性?你认为我们会发展到那一步吗?

Haack:社区有反馈说,他们希望能够发展到这一步。不过目前有 90% 的代码是基于 Chromium 的,我们与 Chromium 和 Node.js 绑在了一起,这就排除了 iOS,同时也让与 Android 集成也变得很困难。不过,这也为实现一个具有兼容性的 API 提供了机会。

GitHub 同时为 Atom 1.18 Beta 发布了一个新的 Git 和 GitHub 集成方案,开发者可以在 Atom 里管理他们的 Git 工作流,不需要在命令行或其他工具之间进行切换。

查看英文原文: GitHub Rewrites its Desktop Client Using Electron

2017-05-18 19:004912
用户头像

发布了 322 篇内容, 共 147.1 次阅读, 收获喜欢 148 次。

关注

评论

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

科创人·智慧芽技术副总裁屠昶旸:技术之路是挑战之路,不愿在大厂空耗岁月

科创人

Authing 渠道合作伙伴火热招募中!

Authing

网络效应 Idaas 合作网络

Istio + SkyWalking + Spring Boot 实战 -Zadig 自测模式搞定开发者子环境

Zadig

DevOps 云原生 自动化测试 CI/CD

七、云原生日志审计

穿过生命散发芬芳

日志 5月月更

dfs专项练习题

工程师日月

DFS 5月月更

web前端培训学习中常见问题:竞态条件

@零度

前端开发

java培训Redis缓存设计

@零度

redis JAVA开发

OceanBase 源码解读(十一):Location Cache 模块浅析

OceanBase 数据库

oceanbase 源码解读

谈谈10年编程经历

非凸科技

程序员 编程语言 招聘 工程师 代码

计算机网络概述

工程师日月

计算机网络 5月月更

跨平台应用开发进阶(七) :uni-app 自定义 showToast

No Silver Bullet

uni-app 5月月更 吐司弹窗 跨终端

郑重声明

Authing

身份云 Idaas

技术人的推荐书单

Authing

身份云 科技书单

netty系列之:kequeue传输协议详解

程序那些事

Java Netty 程序那些事 5月月更

kafka集群搭建

阿呆

Kafk

MySQL缓存策略分析

C++后台开发

MySQL 数据库 后端开发 Linux服务器开发 C++后台开发

观测云产品更新|优化观测云商业版注册流程;新增场景仪表板用户视图模版库;新增场景自定义查看器日志来源及筛选联动等

观测云

可观测性 可观测

先是IPV6,再是WI-FI7你都清楚这是什么吗?

郑州埃文科技

ipv6 IP地址

阿里云联合鼎捷软件发布云上数字工厂解决方案,实现云MES系统本地化部署

阿里云弹性计算

数字化转型 MES系统 中小企业 云盒

520特别企划 | Z世代进入婚恋市场,婚恋交友行业会有什么变化?​

易观分析

Z世代

论道原生:走进可观测性

Daocloud 道客

云原生 可观测性 OpenTelemetry

跨平台应用开发进阶(八) :uni-app 实现Android原生APP-云打包集成极光推送(JG-JPUSH)详细教程

No Silver Bullet

uni-app 极光推送 5月月更 云打包

所谓测试报告

FunTester

AgentTesla病毒解析:利用钓鱼邮件窃取终端隐私数据

火绒安全

数据 终端安全 病毒 隐私安全

关于 WordPress 你了解多少?

海拥(haiyong.site)

WordPress 5月月更

英特尔庄秉翰:推动5G释放数字经济潜能,拥抱“银发时代”美好生活

科技之家

不会这3个ChartBuilder使用技巧,怎么开发优秀的数字孪生可视化项目?

ThingJS数字孪生引擎

【刷题第14天】两个链表的第一个公共节点

白日梦

5月月更

当姿态估计算法遇上《本草纲目》,看“刘畊宏男孩”如何驱动虚拟人

阿里云CloudImagine

计算机视觉 虚拟人 人体姿态

森园区Web版大更新,多端同步互通,效果模版更新

ThingJS数字孪生引擎

墨菲安全受邀与腾讯安全共话软件供应链安全治理

墨菲安全

程序员 腾讯安全 墨菲安全 软件供应链

GitHub使用Electron重写桌面客户端_Windows_Sergio De Simone_InfoQ精选文章