分类 观点 下的文章

尽管渐进式网络应用(PWA)还在起步阶段,它们却已经影响着我们使用网络的方式。

渐进式网络应用 Progressive Web App (PWA),借助现代网络技术,提供能赶超任何移动应用的用户体验。而正是积极进取的开源社区以及谷歌、微软等科技巨头,助推着 PWA 的发展,试图冲破应用程序之间的鸿沟。

其实,PWA 就是在网络浏览器中运行你的程序。因为谷歌 Play Store 和苹果 App Store 事实上二分天下,所以重点就是谷歌 Chrome 和苹果 Safari(分别基于开源的 Chromium 和 WebKit 构建)。

关于创建桌面应用的内容不在本文展开,如果你对此感兴趣,可以参考 Electron

PWA 的构建方式和任何其他网站或网络应用没有两样。它们使用最新的移动技术,并且采用用户体验的最佳实践。PWA 还可以将浏览器与原生代码相结合以优化体验。

如果你在搜索引擎中输入 “什么是 PWA”,你可能得到一个概括性的回答,像是“PWA 的设计上高速、稳定、吸引人,可以离线工作,还可以安装到设备的主屏幕上。”虽然这个答案部分正确,但却仅仅涵盖了 PWA 所能达成和正在发展成的事物表面部分。

下面的这些并非 PWA

下面列出的是跨平台应用框架,它们可以让你能从单一代码库开发应用,但并未采用浏览器作为它们的平台。

  • Flutter
  • React Native

采用 Flutter,你可能会用到 Dart 语言,此语言可以编译出 iOS、安卓和网页应用。而 React Native 同样可以对 JavaScript 进行后端编译。

PWA 的定义是什么?

根据最初的定义,一个 PWA 必须满足以下三个要求:

  • 服务工作线程: 提供离线功能。
  • 网络清单: JSON 标记用于配置主屏幕和应用图标。
  • 安全性: 强制使用 HTTPS,因为服务工作线程在后台运行。

这些组件使你能通过 谷歌 Lighthouse PWA 审核,并在你的评分上得到绿色检查标记。

谷歌 Lighthouse 得分,包括性能,便捷性,最佳实践,SEO 和 PWA

只要满足这些要求,Chrome 的“添加到主页”提示就会自动启用。

PWA Builder(由微软提供的免费服务)具有出色的用户界面,可以用于构建 PWA 和可视化基本要求。请见以下基于 developers.google.com 的示例。你可以在这个 链接 预览此功能,这是由我在 上一篇文章 中讨论的 PWA 模块 提供。

显示服务工作线程的谷歌开发者界面

显示清单的谷歌开发者界面

PWA 的基本要求通过服务工作线程实现了离线行为,manifest.json 文件则使得在安卓上添加“添加至主页”行为成为可能,这样你的网站会作为图标添加到主屏幕上,并以无浏览器的 Chrome(全屏模式)以带应用启动页的方式打开。这些是 PWA 的最低要求,除了离线缓存带来的性能提升,它基本上给人一种网站就是应用的感觉。这其实是一种用户心理的转变,从只把浏览器看作“网站”的工具,逐渐认识到它其实是一个应用平台。谷歌似乎趋向于推动这种观点,为发展更多的功能、性能和用户体验/用户界面的提升扫清了道路,这样才能真正提供“像应用一样的体验”。

深入的说,PWA 实际上是一系列浏览器技术以及网络开发技巧和工具的集合,使网站更像“应用”。我把这些内容分解到了以下几个类别。

提供增强的“应用般”体验

  • 在移动设备上的用户体验/用户界面体验优化

    • HTML/CSS/Javascript
  • 更接近原生设备的访问以及强大的网络功能
  • 更快速流畅的性能表现

当前的 PWA:超越最初定义的可能性

以下是对于前述三个体验优化方向的详细阐述。

用户体验/用户界面的改进

用户体验/用户界面设计和视觉问题解决对于让你的网站更像应用至关重要,这可能表现在动画效果、输入/字体大小、滚动问题,以及其他 CSS 错误的细节之处。重视前端开发团队至关重要,因为他们可以打造出这样的用户体验。在设计和用户体验的广泛领域内,我们可以通过一些 Web 文档建构的核心元素(HTML/JSS/JS)实现增强型特征,例如:

  • Hotwire Turbo:这是一个利用线上 HTML,只通过 AJAX 或 WebSockets 更新你网页有变动的部分的开源框架。它为了实现 SPA 那样的性能优化,仅用到了部分 JavaScript。对于你的单体应用或模版渲染系统,这种途径最佳,不需要多费周折去解耦你的前后端。
  • 专门的移动 SPA 框架:市场上有一些可以为你的网站带来类应用用户体验的解耦式框架。Onsen UI 和 Framework 7 就是两个可帮你创建快速、反应灵敏的网站用户界面的优秀工具。当然,你未必必须依靠这些框架,如前所述,有力的前端团队通过应用最新的、类似移动设备设计技巧就能打造出你向往的 UI 设计。

这个幻灯片 详细讲述了应如何在你的 PWA 中保持 HTML/CSS/JS 的最新状态。

Web 的能力

Chromium 团队持续在改进浏览器体验方面努力不懈,你可以在 Project Fugu 中追踪他们在这个全方位网络功能改进项目的进展。WebKit 即持续致力于优化其浏览器体验和能力。

Swift API 还可以与 WKWebView 进行交互,以增强原生体验。

谷歌提供了一项名为 Bubblewrap 的服务,与 Trusted Web Activity(TWA)共同工作。它的作用仅是将你的基于 PWA 的网站包装在一个原生的 APK 包中,从而可以将其提交到应用商店。这就是我之前提到的关于安卓的 PWA Builder 链接的工作方式。在我之前的文章里,你可以了解更多关于 WKWebView 和 TWA 的信息。

速度和性能

改进你的应用性能的方法多得数不清。你可以先从 谷歌 PageSpeed tools 进行检查。

使用 PWA 的各种奖励:

  • Lighthouse 得分和 SEO 的提升。
  • 统一的代码库。
  • 顺滑无阻的测试过程。
  • 对开发周期即时反馈。
  • 使用了管理型的 PaaS Web 部署流程。
  • Web 技术的学习和使用面向广大开发者。
  • 唯一一种可以提供完善网络体验的跨平台开发解决方案。
  • 自由发挥设计,不受限于跨平台框架的 UI 组件束缚。
  • 即使网络连接状况不佳,也能触达用户。

当然,使用 PWA 也还有一些问题需要考虑:

  • 功能可能有限:与原生设备使用体验相比,PWA 还有所逊色,但浏览器正在大步赶超过来。你可以查阅 Thomas Steiner 对 Project Fugu 如何弥补应用空白的论点,或者搜索 “What web can do” 查看你的浏览器能做什么。通常,你的 PWA 项目有很大可能是大部分不会因为功能/能力受限而耗尽资源的应用。
  • 标准化欠缺:Thomas Steiner 在文章中也提及了 “PWA 标准” 的问题,目前还使我们一头雾水。这也造成 PWA 主题的混淆,使开发者在追求“心有戚戚焉”的突破瞬间时颇感困扰。缺乏明确的定义,使得 PWA 的推动力度降低,且导致营销或管理层因为无法定义 PWA,所以也就不会主动提出需要 PWA。
  • iOS App Store 的问题:目前的 App Store 并未列出 PWA,于是找到 PWA 就比找到原生应用困难。但这并非绝境,你依旧可以让你的网络应用提供比原生应用更棒的体验。做的好的话,你甚至能获得苹果公司的真心赞赏,因为最重要的评价标准就是提供良好的移动体验。曾经在 PWA 成为术语之前,就在原生 iOS 应用中运用 WKWebView 的 Ionic,在他们的论坛上 分享了有趣的见解。只要你懂行,便不会有任何问题。在 我以前在 Opensource.com 上的文章 的“网络应用如何进入应用市场”部分,你能找到更多内容。
  • 某些情况下的安全问题:浏览器采用 cookie 作为认证,这种早在浏览器诞生时就已经使用的方法,可能并不适合你的项目。其中,浏览器提供了出色的密码管理,并一直在研发和引入其他认证方法,例如 Webauthn。而 关联域 中的使用提供了更多的安全层。

相比其他方式,我认为“网络正在崭露头角”,在未来的发展中,随着网络的新功能不断涌现,当前的缺点将逐渐被减弱。我不认为原生开发会消失,只是 WebView 和原生代码之间的集成会更加无缝。

结语

虽然 PWA 还在早期开发阶段,但它们有潜力彻底改变我们使用网络的方式。每天我都会看到新的网站在挑战 PWA 能做到什么。不管管理层是否知道他们正在建立一个 PWA,我经常会发现网络应用和开发团队如何扩展网络技术的使用或者选择一个优化良好的移动网站而不是原生应用,这都让我感到惊讶。

(题图:DA/649961e9-b67b-487c-ba5f-c6df5f923bfb)


via: https://opensource.com/article/22/10/pwa-web-browser

作者:Alex Borsody 选题:lkxed 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

不论云服务的开放程度如何,你都能为自己的环境选择合适的方式。

对于 Linux 用户来说,市场上有一种新型的电脑出现,我们称之为“云”。

如同你桌面上的个人电脑,背包里的笔记本电脑,或是你租用的虚拟私有服务器一样,你可以选择不同的云计算供应商。虽然品牌名称和你以往熟悉的硬件品牌不一致,但其核心概念是相同的。

要运行 Linux,你需要一台电脑。要在云上运行 Linux,你需要一个云服务供应商。就像你的电脑中的硬件和固件一样,你的计算堆栈可以使用多大的开源程度也是有区别的。

作为一个开源的用户,我更偏向于拥有尽量开放的计算集成环境。在对云计算市场进行详细的调研后,我形成了关于云服务供应商的三层观点。你可以根据这个体系作为指南,对你将选择的云供应商作出明确的决策。

开放堆栈

一个完全开放的云是从底层开始就建立在开源技术之上的云。由于云科技中有很大一部分从一开始就是开源的,因此技术层面的开放性堆栈并不难以实现。然而,也有云供应商以专有的方式重新发明轮子,这让用户很容易误入使用了许多封闭源码组件的云服务商的陷阱中。

如果你在寻找一个真正开放的云,那么你应该寻找一个提供 OpenStack 作为基础的云供应商。OpenStack 提供云的软件基础设施,包括通过 Neutron 实现的软件定义网络(SDN)、通过 Swift 实现的对象存储、身份和密钥管理、镜像服务等等。按照我的硬件电脑比喻,OpenStack 就是驱动云的“内核”。

当然,我并不是字面上的意思,但如果你的云供应商运行 OpenStack,那相当于你可以直接到达堆栈的底部。从用户的角度看,OpenStack 是你的云存在并拥有文件系统、网络等的原因所在。

在 OpenStack 的主体上,可能有一个像 Horizon 或 Skyline 这样的网络用户界面,可能有像 OpenShift 或 OKD(并不是一个缩写,但前身是 OpenShift Origin)这样的额外组件。所有这些都是开源的,它们帮助你运行容器,这些容器是内嵌应用程序的极简 Linux 镜像。

因为 OpenShift 和 OKD 不需要 OpenStack,这就构成了我对云世界的下一个视野级别。

开放平台

你并不总是可以选择你的云正在运行的堆栈。你的云可能运行的是 Azure、AWS,或者类似的东西,而不是 OpenStack。

这些就是云世界的“二进制碎片”。你对它们如何工作,或者为什么工作一无所知;你只知道你的云存在,并且有一个文件系统,一个网络堆栈,等等。

就像桌面计算一样,你可以在获得的服务器上运行一个“操作系统”。言下之意,有一种观点认为 OpenStack 本质上就是云计算的操作系统。然而,通常情况下,用户直接交互的是 OpenShift。

OpenShift 是一个你可以使用 Podman 和 Kubernetes 管理容器和 容器荚 Pod 的开源“桌面”或工作区。它让你在云上运行应用程序,就像你在笔记本电脑上启动一个应用一样。

开放标准

最后,同样重要的一点是,有些情况下你在选择云服务供应商上没有什么选择。你被放在一个运行着专有“内核”、专有“操作系统”的平台上,你能影响的只剩下你在那个环境里运行什么。

但掌握开源的力量,你就能建立你自己的平台。你可以选择在容器内部使用的组件。你可以,而且应该,围绕开源工具设计你的工作环境,因为这样一来,如果你有机会更换服务供应商,你可以将你的所有工作迁移到新的供应商那里。

这可能需要你自行实现一些在你当前受限(非开源)平台上已经内置的功能。例如,你的云供应商可能会用一个包含在他们平台“免费”提供的 API 管理系统或持续集成/持续交付(CI/CD)管道来吸引你,这需要你有清醒的认识。当一个非开放的应用被免费提供时,通常会以其他形式带来一些成本。其中一种成本是,一旦你开始在它的基础上构建,你会更加不愿意迁移,因为你会离开你已建立的一切。

你应当为自己重建这些封闭“特性”,并将其转化为开源服务。在容器中运行 JenkinsAPIMan。找出你的云提供商声称用专有代码解决的问题,然后使用开源解决方案来确保,当你离开寻找开放的供应商时,你可以迁移你已经构建的系统。

开源计算

对于太多的人来说,云计算是一个开源居于次要地位的领域。实际上,开源在云上的重要性与它在你的个人电脑和驱动互联网的服务器上同样重要。

寻找开源的云服务。

当你受困于无法获取源代码的环境时,就肩负起在你的云内使用开源软件的责任吧。

(题图:DA/9dc5a9d0-d664-492f-890a-b437ce39c4d6)


via: https://opensource.com/article/22/5/cloud-service-providers-open

作者:Seth Kenlon 选题:lkxed 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

和我一起重温怀旧时光,回顾我使用 DG/UX UNIX 操作系统和数据通用公司的 AViiON 工作站和服务器的经历。

我尝试寻找一些我以前使用过的旧操作系统 DG/UX 的信息。遗憾的是,关于它的信息已经不多了。这个小型操作系统深得我心,虽然我知道我的经历不会改写历史,但我还是愿意记录下我与之相关的经验,传承历史。

这款 Unix 操作系统 数据通用公司 Data General 开发,主要服务于 Eclipse MV 迷你计算机系列以及随后的 AViiON 工作站和服务器。我并未在 Eclipse 系统上工作过,我的工作主要在 AViiON 系统上进行。这些系统坚固得就像坦克,使用起来也异常简洁。

Data General AV/4000 | Picture copyright WolfeDen.org

操作系统概述

我在 1990 年代中期开始接触 DG/UX,当时它已经存在了一段时间。DG/UX 1 在 1985 年 3 月发布,是基于 UNIX System V Release 2,且融入了 4.1BSD 的优秀特性构建的。几年后,DG/UX 3.10 就添加了 TCP/IP 网络、NFSX Window System。记得 CDE 吗?

CDE (Common Desktop Environment)

DG/UX 4 在 1988 年发布(这个“4”在后面让我非常困扰...),此版本是系统的一次重大设计革新,基于 System V Release 3。同时,其文件系统可以通过逻辑磁盘设施跨越多个磁盘。

DG/UX 5.4 版本的改变非常有意义,这也是我开始使用的版本。这个版本将传统的 Unix 文件缓冲区缓存替换为了统一的、按需分页的虚拟内存管理。

该操作系统比其他一些 Unix 变体更强大,例如,它内置了完整的 C) 语言编译器。我们同时还有一支 COBOL 程序员团队,不过我记得 COBOL 是作为插件使用的。现在,虽然大家都觉得 C 语言编译器是理所当然的存在,但在那个时代,它是一份无比珍贵的礼物。我编写过许多为管理任务服务的脚本,同时我还为特定的工作需求编写了几个 C 程序。

这款操作系统体积小巧,简单易用。System V 和加入的 BSD 工具是完美的结合,可以说,这是最优秀的两全其美的产物。不论是安装还是升级,都非常的简便,并且对内存或者处理器资源的需求也非常低。

内置在系统中的 卷管理器 简单但功能强大。基本上所有的磁盘管理都可以在线上完成,无需将文件系统切换为离线状态。在一个保险/风险管理工作环境中,这一特性是非常重要的。我们可以扩容、迁移、进行镜像或者缩容,这些功能也可以对交换区进行操作,在不中断系统运行的条件下原地迁移磁盘存储。

机器

我曾接触过的 AViiON 机器分两种类型:一种是 AV300 pizza box 工作站,另一种是配有 CLARiiON 磁盘阵列的 AV9500 服务器。

Data General AViiON AV/300D came in Pizza Box style | Picture Credit Pizza Box Computer

在 AViiON 中,DG/UX 支持使用 多处理器。在一个保险/风险管理工作环境中,这是一项很大的优势,因为并不是所有的 Unix 包都支持这个功能。此外,DG/UX 还能无缝地与 CLARiiON 阵列配合工作。

有了像 CLARiiON 这样的 RAID,为特定账户配置空间非常容易。但一个以前的管理员在创造账户时总是会选择“使用第一个可用空间”。很快我们碰到了一些问题,比如:一个单独的查询就会点亮全部 125 个磁盘上的指示灯 —— 一个账户的数据分布着整个阵列设备。

By Michael Moll - photo taken by Michael Moll, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=512844

当我成为主管理员后,我就着手修复这个问题,把一个阵列指定给一些较大的帐户,小帐户分组到两个阵列上。整个修复过程花了我一个星期的晚班时间,但是 DG/UX 让重排文件到指定阵列的整个过程变得异常轻松。

RAID 本身也异常稳定。在某个时期,我们使用过 IBM 1GB 的磁盘。这些硬盘的内部机构有时候会卡住,能让它们回复正常工作的唯一方法就是把他们取出来,在地板上像旋转陀螺那样旋转(没错,我是认真的!)。偶尔,磁盘可能彻底报废,无法再转动。现在,RAID 会在阵列内复制每个磁盘的数据,因此数据仍旧存在,尽管效率将受到影响。有一次,我不得不从另一台计算机上“借用”一个磁盘,让一个阵列能够维持运行,直到我们得到替代品。当天,CLARiiON 的表现极为出色,我们并不想再继续这样冒险,因此我们决定替换所有磁盘,而 DG/UX 的备份/恢复工具使这项工作毫无障碍的进行。

技术支持

关于技术支持并没有太多可以讲的,因为它真的很棒。我从未在技术支持上遇到过问题,每个问题都得到了礼貌、准确的回答,如今这点已经很少见了。

你还记得我前面提到的那个“4”吗?就是那个后来让我感到困扰的数字?我曾经因此而拨打技术支持电话。在 1995 年,我收到了操作系统升级的磁带,但我们那时正在运行的是 5.4 版本。我见到 4.10 版本的磁带时非常惊讶,我原以为这是个错误,我被寄给了错误的磁带,我并不想将系统降级。

事实证明,我收到的是正确的磁带。那个“4”是为了向 System V Release 4 版本致敬。我有时还会觉得这很奇怪 — 升级一个操作系统,却让版本号降低。下面是一些版本的列表说明:

  1. DG/UX 5.4 - 3.00 - 1994 年 1 月
  2. DG/UX 5.4 - 3.10 - 1994 年 7 月
  3. DG/UX 5.4 - 4.00 - 1995 年 1 月
  4. DG/UX - 4.10 - 1995 年 8 月
  5. DG/UX - 4.11 - 1995 年 12 月

DG/UX 和 AViiON 的结束

我在 1995 年底离开了这个岗位,但听说在世纪之交 EMC 收购了数据通用公司,以便能够获得 CLARiiON 阵列和软件。考虑到 CLARiiON 的稳定性,这个决定我认为是理解的。据我记得,EMC 在收购后的几年内还在支持 DG/UX 操作系统和 AViiON,然后就停止支持了。我内心希望他们能一直保留这个操作系统,但那个时候,Unix 世界已经被像 IBMSun MicrosystemsHP 这些大公司主导,同时还有像 Linux 这样的新兴力量在逐渐崭露头角。

数据通用公司和 DG/UX 无疑是拥有一段美好历史的。它们的卓越支持和操作系统是今天绝难比拟的。我特别喜欢那个操作系统,它也是一款绝对值得被铭记的操作系统。

(题图:DA/e651f994-3695-4bfd-89cc-c6b7b1ad0309)


via: https://itsfoss.com/dg-ux-os/

作者:Bill Dyer 选题:lujun9972 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在日本开源峰会中,Linux 和 Git 的创始人 Linus Torvalds 深入探讨了 Rust 在 Linux 中的应用、Linux 维护者压力问题,以及 AI 对 Linux 和开源开发未来的影响。

尽管 Linux 的创始人 Linus Torvalds 最近鲜少公开露面,但在 Linux 基金会的 日本开源峰会 上,他与其好友,Verizon 开源部门负责人 Dirk Hohndel 共同探讨了 Linux 的当前状况。

首先,两人对下一个 Linux 内核版本 Linux 6.7 进行了讨论。在出发前往东京前,Torvalds 已经发布了此版本的 第四个发布候选版。这意味着,如果一切顺利,且 Torvalds 未发现任何问题,我们将在圣诞节左右看到新版本的 Linux 内核。

正如 Torvalds 解释的那样,他不希望把 “合并窗口” 放在圣诞,因为这会 “毁掉我的圣诞节”。而现在,“我们正在等待,以确保不存在任何可能成为绊脚石的问题”。为确保正在为下一个版本 6.8 而准备的维护者和开发者们不会因为知道 “圣诞节后我的合并窗口将开启而陷入 恐慌 Panic ,我们可能会将其推迟一到两周,使时间安排更为舒适,因为没有人愿意在圣诞期间繁重的工作。”

当提到维护者的话题,Hohndel 提出了 “维护者疲劳以及这个角色的疲劳和压力” 的讨论。正如我最近的报道,Linux 内核的维护者对于这个关键而高要求的角色感到 压力渐增

对此,Torvalds 做出回应:“找到开发者比较容易;我们有很多的开发者。一些人认为,只有能做任何事情的超级开发者才有资格成为维护者,但实际情况并非如此。”

Torvalds 接着说,“要成为一名维护者,你需要有足够的鉴赏力来评判别人的代码。有些能力可能是与生俱来的,但大部分则需要通过实践来获得。你必须能看别人的代码,并能区分,‘这是好的实践还是坏的实践’?通常这只是多年实践的结果。”

尽管如此,Torvalds 还是强调,“我们有很多优秀的维护者,但另一方面,你必须坚守在岗位,或者需要找到能够和你协同工作的维护者,这样你就能规划好你的休假和其他事项。”

对于 Torvalds 来说,“始终在岗并不是问题,因为我热爱我所做的事情。几个月前我去度假,我带了我的笔记本电脑。如果我没有随身带着笔记本电脑,我可能会感到无比无聊。这就是我生活的方式,但我明白并不是每个人都适合这样的生活,尤其是当你要投入生活中好几年的时间时。”

这也是 Torvalds 需要积极学习和提升的一部分,“代码容易写,有对错可寻。但人际关系则较为复杂,必须学会与开发者或者维护者相处,尤其当维护者都有各自不同的目标。他们想将自己负责的区域推向一个方向,而其他的维护者可能会想要将它朝其他方向引导。这种情况会带给人巨大的压力。”

在 2018 年,Torvalds 决定放弃他愤怒的态度,他 休假一段时间,去改正他对其他开发者的态度。有所改观后,Torvalds 回归 了 Linux 内核工作。自从那时起他变得更为温和,正如他在东京提到的,他不再 “对某公司竖中指,我已吸取了教训。”

总结一下,Torvalds 指出,“人们往往认为开源全是关于编程的事,但实际上很多是与沟通相关。维护者就是翻译的人,我不仅指的是语言,更是代码的环境,代码存在的理由。这是一项艰巨的任务。但是,如果你想成为维护者,相信我,顶层总有你的位置。”

此外,Linux 内核社区的老龄化也是一个值得关注的问题。如 Hohndel 所说,“如果我看五年后,很多 (顶尖的 Linux 内核)的人们将步入 60 岁,甚至有人将接近 70 岁。”

对此,Torvalds 承认,“我们中的很多人都在步入老年,但部分原因是因为我们有一些已经工作超过 30 年的维护者。他们依然活跃,仍然会回来找我。我们拥有一个人们愿意长期坚持的社区。”

Hohndel 评论道,内核社区的老龄化问题是枚 “双刃剑”,Torvalds 同意这个观点,并指出,“我喜欢内核中的 Rust 的原因之一是,那里有一个明显比其他维护者年轻很多的维护者。我们可以明显看到内核的某些区域更能吸引年轻人。”比如在驱动方面,那里更容易找到年轻的人,这一直是我们发展和培养维护者的传统方式,包括 Greg(Korah-Hartman,Linux 稳定内核的维护者)。

Hohndel 和 Torvalds 还谈到了在 Linux 内核中使用 Rust 语言的情况,Torvalds 指出,“这方面有增长,但我们的内核还没有哪个部分真正依赖 Rust。对我而言,Rust 在技术上是有意义的,但以我个人的看法,更重要的是我们不能因为是内核和开发者就停滞不前。”

Torvalds 继续说道:“尽管 Rust 还未真正展现出它的巨大潜力,但我想在明年,我们将开始集成开始积极使用它的驱动程序和一些甚至是主要子系统。所以这是一种需要几年才能在内核中占有重要地位的事情,但无疑,它正在逐渐塑造出这一未来。”

展望未来,Hohndel 谈到我们必须去考虑大型语言模型(LLM)人工智能。他认为人工智能更像是把超级自动更正,因为其实大型语言模型的核心功能就是预测你下一个最可能用到的词,然后从此处进行推理。尽管它看似并不真正聪明,但显然,它对我们的生活以及我们生活的现实产生了深远影响。他问道:“你觉得我们会看到有人提交由大型语言模型写出的代码吗?”

Torvalds 的答复坚定且直接,“我确信这种情况会发生,甚至可能已经发生了。也许现在是在一个较小的范围内,人们更多的是在利用它来辅助编写代码。”但是,和许多人不同的是,Torvalds 并不对人工智能感到担忧。“自动化帮助编写代码的情况显然一直存在,这并不是什么新鲜事。”他说。

实际上,Torvalds 希望 AI 能在“寻找明显的愚蠢错误方面提供帮助,因为很多他看到的错误并不是难以注意的错误,很多都是愚蠢的错误,这并不需要任何更高级的智能才能发现。”他希望有更多工具能在错误更难以发现的情况下发出警告,比如,“这种模式看起来不太常见,你确定这是你想要的吗?” 答案也许是 “不,这不是我的意思,你找到了明显的问题,非常感谢!”我们确实需要一款超级自动更正。他看待 AI 更像是一个可以帮助我们在做好自己事情的一项工具。

Hohndel 接着提问:“那关于 AI 带来的幻觉呢?”对此,一向坦率直言的 Torvalds 表达了他的看法,“我每天都会看到即使没有 AI 的情况下也依然会发生的错误。所以这就是为什么我并不太担心。我认为我们自己仍然很擅长犯错误。”

随后,Torvalds 表达了他对于开源的热爱,“我很高兴开源、开放的理念如今获得了更广泛的接受。我特别记得 30 年前我刚开始这个项目时,人们会质疑我,问我‘为什么呢?你又是怎么盈利的呢?’ 这种问题现在已经不再出现,开源已经成为了这个行业的标准,不论是编程还是数据,大规模的项目需要在公司之间分享,这已经成为了人们的共识。”

Hohndel 指出,“Linux 基金会的目标就是鼓励超越个人、公司,甚至超越整个社会,在一个中立的地方进行合作。在这样一个中立而公正的场所,人们可以聚集在一起实现一些事情,这是非常重要的。”

最后,Torvalds 总结道,“这就是我为什么在 Linux 基金会工作,因为我拒绝在任何 Linux 公司工作。我不想让任何一个公司或任何一个商业实体成为特殊地位。我们需要一个中立的地方,这就是为什么我决定把我的姓名给了 Linux 基金会。”

(题图:DA/e811695a-aa34-4805-b634-03c516688323)


via: https://www.zdnet.com/article/linus-torvalds-on-state-of-linux-today-and-how-ai-figures-in-its-future/

作者:Steven Vaughan-Nichols 译者:ChatGPT 校对:wxy

我了解到,如果你能找到适合你的方法,不管老师和其他学生怎么说,你都可以学到任何你感兴趣的开源技能。

我生于 1982 年,以人类的年岁计算,这只过去了 40 年(在写这篇文章的时候)。然而就计算机发展而言,那已经是很久以前了。十岁的时候,我得到了我的第一台电脑,一台 Commodare 64 计算机。后来,我买了一台 Amiga,到了13岁的时候,我买了一台 “IBM 兼容” 机(那时,大家都这么称呼它)。

高中的时候,我用图形计算器做了很多基本的编程。高二的时候,我学习了基本的 C 语言编程,然后到了高三,我开始做更高级的 C 语言编程,开始应用库、指针和图形界面。

我从编程学生成为老师的旅程

在我的大学时代,我学习了 Java,所以 Java 成为了我的主要语言。我还为一种叫做个人数据助理(PDA)的设备编写了一些 C# 语言的程序,这是现代智能手机的前身。因为 Java 语言是面向对象的、跨平台的,并且使得 GUI 编程变得容易,我想以后我的大部分编程工作都会用 Java 来完成。

在大学里,我也发现自己有教学的天赋,所以我帮助别人编程,而当我选修计算机科学时,他们也帮助我学习数学。在大学后期,我选修了一些 C 语言编程的课程,目的是学习基本的嵌入式编程和测量仪器的控制。

30 岁之后,我用 C 语言作为教学工具,教高中生学习用 C 语言编程。我还用 Fritzing 教高中生如何编写 Arduino 程序。我对 C 语言编程的兴趣在去年再次被唤醒,当时我找到了一份工作,帮助大学生学习计算机科目中的差异。

我如何接触 C 语言和其他语言进行编程

每个人学习的方式都不一样。作为一个患有 阿斯伯格综合症 Asperger's 和多动症(ADHD)的 神经多样性 neurodiverse 人士,我的学习过程有时与其他人很不一样。当然,每个人都有不同的学习风格,尽管神经多样性人士可能比其他人更喜欢某种学习风格。

我倾向于用图片和文字来思考。就我个人而言,我需要一步一步地解码事物,一步一步地理解它们。这使得 C 语言适合我的学习风格。当我学习代码的时候,我通过学习观察一行行的代码,比如我面前的 # include <stdio.h> ,逐渐将代码合并到我的大脑中。根据我在互联网上获取的对其他神经多样性人群的描述,他们中的一些人似乎也有这种学习风格。我们“内化代码”。

有些自闭症人士在记忆大段代码方面比我强得多,但过程似乎是一样的。在理解诸如结构、指针、指针的指针、矩阵和向量之类的概念时,用图片来思考是很有帮助的,比如在编程教程和书籍中可以找到的那些。

我喜欢使用 C 语言来理解工作是如何在较低的级别上完成的,例如 文件输入和输出(I/O)、网络编程等等。这并不意味着我不喜欢处理字符串操作或创建数组等任务的库。我也喜欢用 Java 语言创建数组和向量的简单性。然而,对于创建用户界面,尽管我已经在 C 语言中看过这样的代码,但是我更喜欢使用图形化编辑器,比如 Netbeans 和类似的编辑器。

我理想中用于创建应用程序的 C 语言 GUI 开源工具

如果我想象一个理想的用 C 语言创建 GUI 的开源工具,它将类似于 Netbeans,例如,通过拖放来创建 GTK 接口。还可以在按钮上绑定 C 语言函数,等等,来使它们执行操作。也许有这样一个工具。我承认我没怎么仔细查找过。

为什么我鼓励年轻的神经多样性的人学习 C语言

游戏行业 是一个很大的产业。一些研究表明,神经多样性的孩子可能比其他孩子更专注于游戏。我会告诉一个神经多样性的高中生或大学生,如果你学习 C 语言,你可能会学到一些基础知识,例如,为显卡编写高效的驱动程序,或者编写高效的文件 I/O 例程来优化他们最喜欢的游戏。我还要诚实地说,学习需要时间和精力,但是值得付出努力。一旦你学会了它,你就可以更好地控制硬件一类的东西。

对于学习 C 语言,我建议一个神经多样性的孩子安装一个初学者友好的 Linux 发行版,然后在网上找到一些教程。我还建议一步一步地分解事物,并给它们绘制图表,例如,指针。我这样做是为了更好地理解这个概念,这对我很有效。

最后,这就是它的意义所在: 不管老师和其他学生怎么说,找到一种适合你的学习方法,用它来学习你感兴趣的开源技能。这是可以做到的,任何人都可以做到。

(题图:DA/f0d98968-4c13-4395-8414-3690bc20b0ae)


via: https://opensource.com/article/22/5/my-journey-c-neurodiverse-perspective

作者:Rikard Grossman-Nielsen 选题:lkxed 译者:CanYellow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

它的影响至今仍能感受到。

自 Turbo Pascal 问世以来已过去 40 年,它凭借在其时先进的集成开发环境(IDE)和超越常规的性能,彻底改写了编程领域的格局。然而,我们现今并未广泛使用它,这是为何呢?

1983 年,Turbo Pascal 的问世,这代表了在 IBM PC 兼容机早期的程序设计工具工作方式的重大变化。相比于传统工作方式下耗时的磁盘访问和多次编译、链接过程,Turbo Pascal 能在内存中直接完成所有操作,让速度大幅提升,因此得名 “Turbo”。

后来在微软参与 C# 项目的 Anders Hejlsberg 被广泛称誉为这门语言的创造者。而 Borland 的老板 Philippe Kahn 第一时间就看中了这个一站式工具的潜力和需求所在。

Turbo Pascal 的价格也相对便宜 —— 在竞争对手可能要花费数百美元的情况下,Turbo Pascal 的零售价只有 49.99 美元。不过,要是客户打算分发二进制文件,其开发商 Borland 仍会额外收取费用。

尽管第一版的 Turbo Pascal 存在一些限制。例如,源代码文件不能超过 64 KB,且仅能为 DOS 和 CP/M 生成 .COM 可执行文件,尽管还支持其他架构和操作系统。它还能从单张软盘启动运行,在一个硬盘代价昂贵、且难以得到,单驱动器成为常态的时代,这省却了用户频繁更换磁盘的麻烦。

仅几个月后,Turbo Pascal 就推出了第二版,此版本进行了一些微小的改动,后续在 1986 年发布了第三版。然而,真正让 Turbo Pascal 有了翻天覆地变化的,是 1987 年的第四版。例如,取消了对 CP/M 和 CP/M-86 的支持,开始在 DOS 环境下生成 .EXE 格式的可执行文件,打破了 .COM 文件的限制。

第四版还引入了带有下拉菜单的全屏文字用户界面。到了 1988 年的第五版,我们看到了熟悉的默认蓝色背景编辑器。在本文作者看来,1989 年的 5.5 版是 Turbo Pascal 的巅峰之作。它引入了面向对象的编程特性,包括类和继承,以及一款逐步调试器。

第六版和第七版分别引入了对内联汇编和用于创建 Windows 可执行文件和 DLL 的支持,但第七版也标志着 Borland 的 Turbo Pascal 到达了终点。尽管后面仍推出了 Turbo Pascal for Windows,但它最终被 Delphi 所取代。

然而,如 Visual Basic 3 这样的工具的火爆,使得 Borland 在 Windows 系统下再未取得过像它在 DOS 下那样的辉煌。

至于 Turbo Pascal,最后 Borland 以免费软件的方式发布了几个版本,包括用于 DOS 的第 1 版,第 5.5 版和第 7 版。

或许这款语言曾引起 Pascal 语言的纯粹主义者们的反感,如今这个 IDE 与现代工具相比可能显得有些笨拙。但在 40 年前,它引发了一个新的开发时代,其影响至今仍能感受到。

(题图:MJ/9d1f3b17-5b29-429d-8a86-e8520309d8d0)


via: https://www.theregister.com/2023/12/04/40_years_of_turbo_pascal/

作者:Richard Speed 译者:ChatGPT 校对:wxy