Adobe联创去世,没他就没有PDF,乔布斯也因他逆风翻盘

news2024/11/16 11:32:07
量子位 | 公众号 QbitAI

Adobe联合创始人John Warnock去世了,享年82岁。

他是PDF格式的发明人之一,贡献了PDF中的核心技术PostScript——

如果没有它,打印机就无法打印复杂页面。可以说,Warnock的这项发明,在上世纪80年代彻底变革了媒体和出版行业。

图片

Adobe现任CEO在讣告中表示:

对Adobe社区和整个行业来说这都是悲伤的一天,他几十年来一直是行业的灵感来源。

图片

比如乔布斯在苹果电脑早期接连商业失败后,就通过与Warnock的合作完成一次翻盘。

Adobe改变媒体和出版业,还拯救了苹果

上世纪70年代,打印机还无法像今天一样打印任何文字或图像内容。

当时主流的点阵打印机能处理字符,但只能支持内置的有限几种字体。

图片

要打印图像就得换成处理矢量图形的“绘图仪(Plotter)”,价格昂贵且速度缓慢。

图片

直到施乐帕克研究中心(Xerox PARC)造出第一台激光打印机,才将二者统一在一起,图文混排终于成为可能。

1978年,Warnock开始在PARC工作,他要解决的是激光打印机无法处理复杂页面的问题。

比如大量线段在一个点相交,打印机就会报一个“Page Too Complex”的错误,无法继续工作。

图片

那个时间点,苹果创始人乔布斯造出了第一台个人电脑,施乐造出了第一台激光打印机。

离后世称为“桌面出版业革命”的爆发,只差“如何控制激光打印”这最后一块拼图。

Warnock与Geschke其实在施乐已经知道该怎么做了,也就是创造一种页面描述语言。

两人也真的把这种语言造出来了,名为Interpres,而且是一种独立于设备的标准语言,能够驱动施乐公司所有的激光打印机。

但不知为何,施乐管理层拒绝将Interpress商业化

后来多年以后Warnock回忆当时的情况,管理层的说法大概是:

我们将保守这个秘密,因为它太棒了,如果我们公开,日本可能会抢先用上。

总之Warnock和Geschke满头问号,不理解高层的想法,只是确信施乐在犯一个大错误。

1982年两人带了一批研究员离开施乐,打算重新再创造一种页面描述语言PostScript,并且由自己的公司控制。

Adobe公司就此诞生。

公司名字就来自硅谷诞生地Palo Alto附近的一条小溪“Adobe Creek”。

图片

来自 IEEE Spectrum

在Interpress的基础上,PostScript不把字符存储为点阵,而是轮廓以及哪些部分要填充颜色,这样一来就与处理图形的方式统一了。

后来Adobe取得另一项技术突破,称作“Reducer”算法,把复杂的形状分解成易于用PostScirpt描述的简单形状。

按两人的规划,PostScript是为大型印刷工作站准备的,因为当时的个人计算机(PC)性能还非常弱小,PostScript比大多数PC软件的复杂度高一个数量级。

就像IBM那时候认为全世界只需要几十台IBM大型机一样,Warnock也认为全世界只需要很少几台PostScript打印机。

乔布斯的出现改变了事情发展的轨迹。

苹果公司在靠个人电脑赚钱之前已经投入了2.5亿美元,早期的Apple III、Lisa等型号都算不上成功。

在与微软和IBM的竞争中,乔布斯认为如果电脑配套的激光打印机能打印高质量商业信函,将成为杀手锏。

当乔布斯看到Warnock在做的事后,说服他将Adobe转型成软件公司,向硬件制造商如苹果销售许可授权,而不是自己生产大型印刷工作站。

Adobe同意这个想法,并与苹果签署了协议。

1985年,苹果的Apple LaserWriter打印机首次搭载了PostScript,为了运行这个复杂的系统,苹果把当时最强大的硬件放在打印机里,打印机本身的计算能力就相当于一台高级计算机。

尽管Apple LaserWriter还不完善(比如极其复杂的图像计算时间长达一个小时),而且价格极贵(6995美元),但也取得商业上的成功。

Adobe公司也一举成名。

乔布斯在1984年用250万美元购买了Adobe 15%的股份,6年后以8900万美元的价格出售。

更重要的是,最终这笔投资为苹果带来了超过100亿美元的销售额。

……

随着个人计算机性能在摩尔定律的支持下不断攀升,PostScript终于能在操作系统里用于图形界面显示了。

1991年,Warnock基于PostScript提出了一个名为“Camelot”的系统。

Camelot的目标是“从任何应用程序获取文档,将这些文档的电子版本发送到任何地方,并能在任何机器上查看和打印”。

Camelot最终演变成了可移植文档格式(Portable Document Format),也就是人们现在天天用的PDF

从高中数学不及格到计算机博士

高中毕业的时候,Warnock数学不及格。

但后来他获得了数学学士和计算机科学博士学位,从本科到博士的生涯都是在犹他大学完成的,师从计算机图形学先驱David Evans和Ivan Sutherland。

1964年,他用一篇仅9页的硕士论文证明了行有限矩阵的Jacobson根式定理

该定理关于行有限矩阵的一个特殊性质,是由Nathan Jacobson于1956年提出的。

Jacobson是世界领先的抽象代数研究者,知名的大学数学教科书Basic Algebra也是出自Jacobson之手。

图片

不仅是硕士论文突出一个“短”,Warnock的博士论文更是获得了“最短论文奖”。

1969年,Warnock发明了在计算机图形学中用于确定隐藏表面的Warnock算法

Warnock将复杂图形递归细分,直到计算机有能力计算为止,进而实现复杂图形的渲染。

图片

Warnock算法原理示意图

该算法解决了隐藏表面问题,使计算机能够渲染的内容从只有线条扩展到实体对象。

这篇论文还在1970年登上了Scientific American杂志的封面。

图片

不只是在学术上颇有建树,Adobe著名的矢量设计软件Illustrator也是Warnock发明的。

Warnock发明它的主要动机是因为他的妻子Marva是一名设计师。

有了Illustrator,Marva以前需要手工完成的许多任务,都可以由程序自动处理了。

1987年,Illustrator正式对外发布,如今仍然是全球矢量编辑软件市场中的佼佼者。

市场研究机构marketsplash的数据显示,全球有75%的设计师选择Illustrator,每月制作出的图片数量高达1.8亿张

图片

此外,Adobe公司也有一款字体正是用Warnock的名字命名。

这款字体出自Adobe首席字体设计师Robert Slimbach之手。

图片

除了这些自身的成就之外,他人同样给予了Warnock很高的评价,哪怕只有一面之缘。

一名计算机图形学者讲述了自己曾在一次聚会上见过Warnock的经历。

彼时还很年轻的他想要加入Warnock关于图形渲染问题的讨论,但“以一种很好的方式”被打败了。

而在Warnock去世之后,这名学者发表了这段带有缅怀之意的评论,称Warnock是自己的灵感来源。

图片

另一名曾见过Warnock的网友也说,“见到Warnock的那一天仿佛就在昨天一样”。

他称赞道,Warnock让他学会脚踏实地,用自己的热情点燃了他的热情。

图片

R.I.P

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/908967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】STL——set的介绍和使用、set的构造函数、set的迭代器、set的容量和增删查改函数

文章目录 1.set的介绍2.set的使用2.1set的构造函数2.2set的迭代器2.3set的容量函数2.4set的增删查改函数 1.set的介绍 set的介绍 (1)set是按照一定次序存储元素的容器。 (2)在set中,元素的value也标识它(value就是key…

LTDC之外部SDRAM

1.配置外部SDRAM(嵌入式基础知识,此处不做分析) 2.编写SDRAM配置代码(copy正点原子例程) sdram.c#include "sdram.h" #include "fmc.h"uint8_t SDRAM_Send_Cmd(uint8_t bankx,uint8_t cmd,uint8_…

区块链与算力网络:创造未来网络的安全与共享

在数字革命的浪潮下,网络技术正焕发着前所未有的活力,而算力网络以其独特的区块链技术应用,为网络的安全性和资源共享带来了新的可能性。本文将带您深入探索算力网络中区块链技术的神奇应用,为您呈现这个充满活力和创新的网络未来…

全方位介绍SRM系统供应商采购管理

SRM系统是一种用于管理与供应商合作关系的解决方案。本文将全面介绍SRM系统供应商采购管理的概念、重要性、功能模块以及应用优势,以帮助企业了解如何通过SRM系统提升采购管理效率和供应链合作关系。 一、SRM系统供应商采购管理概述 1.1 什么是SRM系统供应商采购管…

19 真实的战场:如何在大型项目中涉及GUI自动化测试策略

大型全球化电商网站 GUI 测试的策略设计 组件 -> 模块 -> 端到端 1) 首先,要从前端组件的级别来保证质量,也就是需要对那些自定义开发的组件进行完整全面的测试。通常前端组件会基于 Jest 做比较严格的单元测试。 Jest 是由 Facebook 发…

内网渗透神器CobaltStrike之Profile文件编写(十)

简介 在网络渗透测试和红队模拟攻击中,隐藏命令与控制(C2)流量的特征对于成功绕过入侵检测系统至关重要。Cobalt Strike提供了一个强大的工具——Malleable C2 profiles,用于自定义C2流量,从而使其看起来像正常的网络…

docker搭建opengrok环境2

引言: 虚拟机关闭后重新开启,理论上是需要重新启动一下docker的,以重新启动其中的服务。 命令基础: docker images:查看docker中现有的镜像 docker container ls -all:查看docker中目前在运行的containe…

Centos7 交叉编译QT5.9.9源码 AArch64架构

环境准备 centos7 镜像 下载地址:http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/ aarch64交叉编译链 下载地址:https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/ QT5.9.9源代码 下载地址&#xff1…

现货白银投资什么的?

也许很多投资者听说过现货白银,但并不知道它投资的是什么,过程中是如何进行买卖的,也不知道如果参与其中,自己需要承担什么风险,最终的收益会如何。对于上述的这些问题本文,将为大家简单地介绍一下。 虽然现…

Linux文件类型

注意: 硬链接,与软链接相似,但不是特殊的文件类型。 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当 移动或者删除原始文件时,硬链接不 会被破坏,因为它…

基于JJWT理解JWT,JWS,JWE

JWT , 全写JSON Web Token, 是开放的行业标准RFC7591,用来实现端到端安全验证. 从开发者理解的角度来说: JWT 是一个定义传递信息的标准JWT 的Token是一个Base64编码的字符串, 类似 eyJhbGciOiJIUzI1NyJ9.eyJzdWIiOiJvc2NhciJ9.…

Vue下载及配置(Vue文件和路由文件)

目录 Vue文件2.7.14版本: Vue路由: 结束: Vue文件2.7.14版本: Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性。但它支持所有兼容ECMAScript5的浏览器 Vue文件下载地址:安…

openLayers实战(九):正多边形的绘制

最近在绘制各种图形,越来越乱,看了很多文章,启发了从最最基础的图形开始学习扩展。 遇到什么样的问题? import ol from "ol"; import { Draw } from "ol/interaction"; import { Vector as VectorSource } f…

帆软报表开发-快速入门

帆软学习:帆软学院-培养企业亟需的数据人才 第一章 初识FineReport 1、初识FineReport 1.1、FineReport 是什么? FineReport 是一款简单、高效、智能的报表工具,用以快速搭建的企业级Web报表平台。 FineReport 报表主要功能介绍 ① 主要…

Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO

前言 Livox mid360需要使用Livox-SDK2,而非Livox-SDK,以及对应的livox_ros_driver2 。并需要修改FAST_LIO中部分代码。 1. 安装Livox-SDK2 参考官方教程。 1.1. 安装CMake sudo apt install cmake1.2. 安装编译Livox-SDK2 git clone https://github…

BDA初级分析——可视化图形

一、时间趋势 时间趋势要如何呈现? Excel函数补充 YEAR:提取日期中的年份MONTH:提取日期中的月份DAY:提取日期中的天HOUR:提取时间中的小时 TEXT:将数值转换为按指定数字格式表示的函数 写法&#xff1…

关于lattice planner

使用编程创建驾驶场景。 1.使用Driving scenario Designer 交互方式创建驾驶场景 2.导出matalb function 3.修正这个函数,创建原始场景的变体。 4.调用这个函数,生成drivingScenario object。 5.在simulink中仿真,导入这个objcet &…

无涯教程-PHP - File 函数

文件系统功能用于访问和操纵文件系统&#xff0c;PHP为您提供了操纵文件的所有功能。 运行时配置 这些功能的行为受php.ini中的设置影响。 NameDefaultChangeableChangelogallow_url_fopen"1"PHP_INI_ALLPHP_INI_ALL in PHP < 4.3.4. PHP_INI_SYSTEM in PHP &l…

网络编程(IO模型)

一、阻塞IO 1.最常用&#xff0c;最简单&#xff0c;效率最低的。 2.创建套接字文件描述符后&#xff0c;默认处于阻塞IO模式; 3.read, write, recv, send, recvfrom ,sendto&#xff0c;accept 二. 非阻塞IO 1.防止进程阻塞在IO函数上&#xff0c;但是如果想要获取到有效…

WebRTC音视频通话-iOS端调用ossrs直播拉流

WebRTC音视频通话-iOS端调用ossrs直播拉流 之前实现iOS端调用ossrs服务&#xff0c;文中提到了推流。没有写拉流流程&#xff0c;所以会用到文中的WebRTCClient。请详细查看&#xff1a;https://blog.csdn.net/gloryFlow/article/details/132257196 一、iOS播放端拉流效果 二…