- 史前时代:Sumer
- 印刷时代
- “A Pocket Book, Containing Severall Choice Collections in Arithmetick, Astronomy, Geometry, Surveying, Dialling, Navigation, Astrology, Geography, Measuring, Gageing” (1677)
- “A Million of Facts, of Correct Data, and Elementary Constants, in the Entire Circle of the Sciences, and on All Subjects of Speculation and Practice.” (1840) — that’s a mouthful!
- “Specimens of tables calculated, stereomoulded, and printed by machinery” (1857). These are actually calculated with an automated calculator. No small feat at the time.
Sumer clay tablet (c.a. 2400 B.C.)
- 电子时代:VisiClac
- A screenshot from VisiCalc (originally released in 1979)
Richard Mattessich 的《Budgeting Models and System Simulation》论文
预示了今天计算机电子表格背后的基本原则
- the use of matrices / 使用二维矩阵
- (budget) simulation / 预算模拟
- the calculation that support each matrix cell / 最重要的,支持每个矩阵单元的计算
“电子表格”来源于“传播”
意思是报纸或杂志上的内容,包括两个对面的页面,从中间的折叠处延伸出来,将两个页面视为一个大页面。
"Forward Referencing/Natural Order Calculation"
电子表格开发中的一项关键发明是由 Rene k. Pardo 和 Remy Landau 完成的
他们在1970年申请了电子表格自动自然顺序计算算法的美国专利。
虽然该专利最初被专利局以纯数学发明的名义拒绝
但经过12年的上诉,Pardo 和 Landau 在联邦巡回上诉法院赢得了一场具有里程碑意义的官司
并于1983年推翻了专利局(Patent Office)的专利原则
然而,1995年美国联邦巡回上诉法院裁定该专利无法执行。
电子表格由一个表格组成,其中的单元格按行和列排列,并由 x 和 y 位置引用。
X 位置,即列,通常用字母“ a”、“ b”、“ c”等表示
而行通常用数字1、2、3等表示。
单个单元格可以通过寻址其行和列(例如“ C10”)来引用。
这种单元格引用的电子概念最初是在 LANPAR (由 Rene Pardo 和 Remy Landau 共同发明)中引入的
也是 VisiCalc 中使用的一种变体,被称为“ A1符号”。
电子表格具有范围的概念,即一组单元格,通常是连续的。 例如,第一列的前十个单元格的范围是“ A1: A10”。
LANPAR 创新了前向引用 / 自然顺序计算,直到 Lotus 123和微软的 MultiPlan Version 2才重新出现。
电子表格的关键特性是公式能够引用其他单元格的内容,而这又可能是公式的结果。
将公式链接在一起的能力赋予了电子表格的威力。
许多问题可以分解成一系列单独的数学步骤,这些步骤可以分配给单元格中的单个公式。
其中一些公式也可以应用于范围,比如将范围内的所有数字相加的 SUM 函数。
电子表格与数据库有许多共同的原理和特点,但电子表格与数据库不是一回事。
电子表格本质上只是一个表,而数据库是许多表的集合,它们之间具有机器可读的语义关系。
虽然一个包含三个工作表的工作簿确实是一个包含多个可以相互交互的表的文件,但它缺乏数据库的关系结构。
电子表格和数据库是可互操作的ーー表格可以导入数据库成为其中的表格,数据库查询可导出到电子表格中
影响电子表格历史的比较重要的4个人
Dan Bricklin、Bob Frankston:VisiCalc 的创作者;
Mitch Kapor:受 VisiCalc 的启发, 加入了图形化界面、数据库管理等功能创造了 Lotus 1-2-3 ;
Charles Simonyi:于1981年加入微软,负责招聘和管理开发 Multiplan、 Excel、 Word 和其他应用程序的团队;
The Origins and Impact of VisiCalc
2003年,计算机历史博物馆举办了一次演讲《The Origins and Impact of VisiCalc》,演讲嘉宾是以下 4 人;
- Dan Bricklin、Bob Frankston
- 受 VisiCalc 的启发,Mitch Kapor 加入了图形化界面、数据库管理等功能创造了 Lotus 1-2-3 ;
- Charles Simonyi 于1981年加入微软,负责招聘和管理开发 Multiplan、 Excel、 Word 和其他应用程序的团队;
Mitch Kapor
他是 VisiCalc 开发者的朋友
参与创办 Lotus ,他协助开发了 Lotus 1-2-3 电子表格;
2003 年成立 Mozilla 基金会,创办 FireFox
作为一个活跃的天使投资者,Kapor 参与了 Dropcam、 Twilio、 Asana、 Cleanify 和 Uber 的首轮融资。
Kapor Capital,自2009年以来一直在投资,包括对 Uber 的早期天使轮投资;
Lotus 1-2-3
Lotus 的解决方案被宣传为三位一体的集成解决方案
处理电子表格计算、数据库功能和图形图表,因此得名“1-2-3”
作为一个电子表格,它还提供整体制图 / 图表和基本的数据库操作。
1-2-3是整个20世纪80年代和90年代的电子表格标准
1-2-3迅速赶超了 VisiCalc,以及两家 VisiCalc 竞争对手 Multiplan 和 SuperCalc。
20世纪90年代初,Lotus 被微软超越,再也没有复苏。
IBM在1995年收购了 Lotus,并继续销售 Lotus 产品,直到2013年才正式结束销售。
不像 Multiplan,它非常接近 VisiCalc 的模型,包括“ A1 ”字母和数字单元符号,斜杠菜单结构/命令字符;
Lotus 推出的其他新产品包括一个图形制作器,它可以显示多种形式的图形(包括饼图、条形图或线形图)
第二版的Lotus 1-2-3,被称为Symphony
有人叫它Lotus 1-2-3-4-5,在1-2-3的基础上又拼装了文字处理和通信功能。
Charles Simonyi
Xerox PARC
Butler Lampson 招募其进入施乐工作室
与 Alan Kay, Butler Lampson, and Robert Metcalfe 一起开发了 Xerox Alto,最早的个人电脑之一
他和 Lampson 一起开发了 Bravo,第一个 WYSIWYG 文档程序
Microsoft
微软早期员工之一,拥有的微软股票使其升价过10亿美金
在微软主要主持 Microsoft Office各个部件程序的开发工作,为Microsoft Office主宰世界市场立下汗马功劳。
1981年,写信毛遂自荐给比尔盖茨,重用他主持Multiplan软件的开发工作,Multiplan即Microsoft Excel的前身。
盖茨则保证他成为世界上最高薪的软件开发人员。
向微软介绍了他在施乐公司学到的面向对象程序设计技术。
他开发了命名变量的匈牙利命名法约定。 这些标准最初是他博士论文的一部分。
微软内部广泛使用匈牙利命名法。
Multiplan 的初期项目代号是 "EP" (for "Electronic Paper"),1982年作为 VisiCalc 的竞争对手推出。
在MS-DOS系统上,Multiplan败给了Lotus 1-2-3
Excel 研发代号Doug Klunder,做Lotus 1-2-3能做的,并且做的更好
Excel 虽然提供了大量的用户界面特性,但它仍然保留了第一款电子制表软件VisiCalc的特性;
自1993年版本5以来,它已经取代 Lotus 1-2-3成为电子表格的行业标准;(90年代之后的电子表格标准)
VisiCalc
世界上第一套电子表格软件 Spreadsheets;
1979年10月跟着 Apple II 推出,乔布斯私人评论中称呼其成就了 Apple 电脑,成为当时最受人们欢迎的软件;
Dan Bricklin,他构思了这个想法;
Bob Frankston,他编写了 VisiCalc;
Dan Fylstra,他的 VisiCorp 将这个产品带到了一个令人惊讶的世界。
自那时以来,电子表格中最重要的变化是什么?
改变的是,输出的表现方式有了很大的进步,开发了许多新的应用程序。
最有趣的是,它并没有改变多少。
基本概念是相同的: 组织相互引用的行和列,绝对和相对的复制操作,以及不专门用于任何特定目的的网格。
你可以按照你认为合适的方式安排事情。
现在,当然,它是在小学里教的,所以人们很早就学会了电子表格和电子表格思维。
VisiCalc 的特别之处
它以所见即所得的方式进行交互
- Point to change a value
- 基于存储在引用其他单元格的单元格中的公式,即时自动重新计算
- Scroll left/right/up/down
- 输入、定义、格式和输出都被合并到一个自然的、逐个示例的界面中
Visicalc 提出的隐喻不仅仅是一个“用户界面”
是在视觉结构和自然交互的背景下,在构建公式或相关公式集合时赋予了巨大的表达力...
我认为 VisiCalc 最强大的两个关键概念如下
- Programming-by-example/示例编程:键入公式,通过指向和选择电子表格中的其他单元格来指示“变量”。 这些“单元格引用”包含在公式中,当它们发生更改时,公式的值将根据新值重新计算。 因为公式可以用循环等来定义,所以可以构造一个自然的循环 / 迭代。
- The "Replicate" command:”复制”命令,通过调整公式单元格引用以”相对地”跟随公式的位移,或”绝对地”定义影响所有单元格的全局参数,允许以自然方式构造迭代计算。迭代构造的“复制”风格的好处在于,它允许规则性,而不需要规则性(重复结构中的任何单独公式都可以作为特殊情况重写)。用单独的公式定义语言构建数组的金融建模工具远没有 VisiCalc 隐喻的灵活性。 而且他们没有“以身作则的编程”。 “范围”概念也相当简洁,它允许任何矩形子网格作为各种聚合函数的操作数。 与传统的编程数组不同,范围引用可以重叠,并且在复制包含范围引用的公式时遵循相对 / 绝对规则。 这使得非常有趣和强大的循环关系能够自然而明显地表示在逐例编程的比喻中
Bob Frankston 就此次演讲,撰文回忆 VisiCalc 的细节。
- 1963年就开始使用电脑
- 1970年,MIT 毕业,参与了 Multics 的项目
- 1979年,与 Dan Bricklin 创办 Software Arts 公司,创作发行 VisiCalc
- 1986年-1990年,在 Lotus Development 工作,创建了 Lotus Express
- 1993年-1998年,在微软公司工作
历史背景
1978年11月,我开始编写 VisiCalc 程序,1979年10月,我们发出了第一批拷贝。
这个想法在很久以前就已经渗透在 Dan 的脑子里了,在我开始编程之前,我们已经讨论了一年多的不同方法。
正如 Dan 所描述的那样,我设想的是一群人围坐在一张桌子旁,桌上的小设备指向一个屏幕。
每个人都有能力在共享屏幕上绘制图形和公式。 公式将根据需要重新计算。
最大的突破是 Dan 在苹果公司的 Integer Basic 中整合了一个简单版本。
它有一个由行和列组成的网格。
虽然与共享图形屏幕相比,使用带有行和列的字符网格似乎没什么意思,但它是使产品可用的关键
因为它为人们提供了一个可以使用的框架。
没有必要描述这些方程,因为它们很容易并且隐含地由它们在网格中的位置来定义。
我们还免除了一个指向设备,因为游戏的机器桨不能胜任任务。
苹果的屏幕有40列25行。 这是一个很小的区域,使用键盘上的箭头键很容易移动。
由于所有事情都可以通过键盘来完成,熟练的用户工作起来非常迅速。
Dan 就读于哈佛商学院,所以请我帮他写这个项目。
当我们创建 VisiCalc 的时候,Dan 和我已经在专业和学术上工作了十多年。
我从1963年开始在初级中学编程,从1966年开始创建专业的在线服务。
在那个时代,我们这些在线系统工作的人将对程序的使用方式负全部责任,而不仅仅是实现细节。
虽然有一些公司项目需要大量人员将设计和实施项目分解成小步骤,
但我们中的很多人都是从想法出发,然后根据自己的经验调整项目。
通过在线系统工作,我们通过简单地给予其他人访问权限来部署程序
并且可以在了解程序实际使用方式的同时快速发展该程序。
当我们也是用户的时候,这个过程工作得最好。
Design Principles 设计原则
VisiCalc was a product, not a program.
创作之处是把他当作一个产品来设计的,那个时代的人往往不这么认为,觉得就是一个程序,但是 VisiCalc不同。
在实践中,当我们针对个人电脑的局限性、价格以及最重要的用户可以理解的东西进行设计时,情况就变得复杂。
the principle of least surprise. / 拟物化的设计
我们的模型是一个电子表格——一个简单的纸张网格,它将被放置在一个表格上。
纸格子为处理一系列数字提供了一个有组织的隐喻。
虽然电子表格是有组织的,我们也有背面的信封模型,其中对待任何表面作为一个临时垫工作的想法。
由于我们已经习惯于使用功能强大的计算机而不用担心时钟的运行
我们已经有了专注于用户需求而不是计算机需求的经验。
虽然Dan本可以编写这个程序,但是他没有自由去关注这个程序应该做什么,而不是如何去做。
我可以理解他的理由,并最终接受我不得不改变自己辛辛苦苦编写的代码。
我们能够找到一些方法来利用程序有限的空间来决定包含或不包含哪些功能。
最初的版本把入口区域放在屏幕的底部。
通过使用这个简单的原型,Dan 发现将入口区域放在屏幕顶部更好,我对演化中的程序做了改动。
除了原型设计之外,Dan 还为用户制作了一个参考卡。
如果我们不知道如何解释参考卡上的一个功能,我们将改变程序。
复制公式的原始方法太复杂了,所以我们只是改变了设计,而不是试图解释它。
The User Experience /用户体验
The Layout of the Screen 布局
The inverted L framed the grid though we didn't show actually grid lines since the screen was small.
倒置的 L框架的网格,虽然我们没有显示实际的网格线,因为屏幕很小
The status information was shown at the top:
状态信息显示在顶部:
B8 showed where the position of the cursor though you normally just thought of it as "there".
B8显示了光标的位置,虽然你通常认为它是“那里”
The R showed that we were doing row-order calculation.
R 表明我们正在进行行序计算
The ! meant that that two arrow keys went up and down.
“ ! ”表示两个箭头键上下移动
The amount of memory available was latter added to the status line. We had to be careful to make this number match the number shown in the manual since users didn't necessarily distinguish accidental properties from intrinsic properties so we need to be careful about even something that seemed obvious. By the time we shipped it was increasingly common for machines to have 48KB of memory which seemed a lot.
The black area showed formulas as they were typed. We also showed the typing in the cell itself.
黑色区域显示输入的公式,我们还显示了单元格本身的输入
The date and time at the bottom showed the version of the program -- we didn't have a clock so this wasn't part of the actual program.
底部的日期和时间显示了程序的版本---- 我们没有时钟,所以这不是实际程序的一部分
Each row had a number. In this example it is left justified but we made sure it was right justified for the product. We departed from common notation by numbering the rows and using letters for the columns. This was because we had only 63 columns and 255 rows. These numbers were chosen to limit the number of bits we had to use. There had to be enough columns for a full year of production planning plus some extra. The large number of arrows allowed for it to be used for multiple sets of data such as a payroll table.
键盘的使用和与 VisiCalc 的交互
在讨论键盘之前,值得注意的是,早在1979年,人们认为键盘是使用电脑的障碍。
毕竟,只有秘书才能打字,而我们其他人需要能够与计算机交谈。
因此,几十年来,人们一直致力于让计算机理解语言。
事实证明,大多数人都会打字(至少是那些使用电子表格的人) ,因为打字是完成大学学业所必需的基本技能。
事实上,演讲是一种非常有问题的与电子表格交互的方式。 事实上,电子表格本身是一种沟通工具,而不是语音。
既然我已经提到了箭头键,那么我就提前说明一下,当输入公式或标签时,箭头键的工作方式非常不同。 如果您在需要指向某个单元格时按下箭头键,您将看到与公式一致的位置,并且一旦您键入下一个字符(如 + -) ,该单元格将被提交,您可以继续编辑公式。 但是,如果您处于操作员位置,并按下箭头,它就会将公式输入到单元格中,并将焦点移动到新单元格中。 同样,很少有用户意识到这些是非常不同的功能,因为正确的事情“只是发生在”正确的地方。
the larger goal of giving the user the illusion of infinite choice and freedom
这是一个更大的目标的一部分,即给用户无限的选择和自由的幻觉,即使只有很少的选择被允许。 实际上,在这种情况下,只有少数选择是有意义的。 因此,在指向单元格的上下文中,箭头自然地指向而不是终止公式。
我们使用同样的原则来避免错误消息。 其中一个动机非常简单---- 错误消息占用了很多空间。 相反,我们按照解释的方式展示了这个公式。 如果你输入的东西没有意义,它只是没有做错事情。
为了保持这种错觉,我们必须区分单元格名称(A1)和 SUM 之类的函数。 我们用“@”作为函数的前缀。 这似乎是可以接受的,而且显然用户对此没有异议。
在 VisiCalc 中有少量的命令,我们使用 / 作为“命令键”。 记住,没有功能键。 Visicalc 和人们习惯于期望 / 成为 IBM PC 上的命令键,即使对于文字处理器来说也是如此。 当我实现 lotusexpress 并要求为命令提供一个函数键时,我收到了一些抱怨。 今天,F10已经成为这个角色的标准。
本身之所以被选中,是因为它对我来说似乎是显而易见的,而且在其他方面也是可用的。 但对于丹来说,这也是个不错的选择,因为他的手指碰巧有点弯曲,而且很容易够到钥匙。
命令本身是用来帮助记忆的,但是我们只显示字母,因为全名可能是未实现的帮助系统的一部分。 我们的目标是建立一个交互式帮助系统,允许你在任何时候看到命令的全名和键盘选项,但是我们估计实现一个交互式帮助系统需要2000字节,这是一个无法承受的奢侈。
总的来说,尽管 VisiCalc 是为临时用户设计的,但是熟练的用户还是得到了很好的奖励,因为它拥有了一个界面,不需要用户把手从键盘上移开,甚至不需要看屏幕就能看到鼠标指针停在哪里。 箭头是移动一个人的位置的可靠方式(好吧,只要不滚动很远)。
苹果有一个重置键,在第一个版本中,没有办法防止用户不小心按下重置键而丢失所有的工作。 这对于一个产品来说是完全不能接受的,所以我们加入了一个简短的命令序列,可以输入到 Apple 中][监视器来继续 VisiCalc。 因为我们不知道 VisiCalc 在哪里打断了,所以我们不能假设继续是安全的,只允许用户保存电子表格。
数值计算和公式 Calculations and Formulas
a bad decision
错误决策1
我们早期做出的一个决定就是使用十进制算术,这样错误就会和会计师使用十进制计算器看到的错误一样。
现在回想起来,这是一个糟糕的决定,因为人们并不在乎,而且它的计算速度比二进制时要慢得多。
错误决策2
One design decision was to not do precedence in the formulas.
一个设计决策是在公式中不使用优先级。 如果你输入3 + 5 * 4,你会得到32而不是23。
我们推理出简单的计算器用户希望每个操作都在输入时进行。
事后看来,这是一个错误。人们期望优先级,而且计算器上的顺序操作符没有按照编写的整个计算过程来看待。
早期场景
be used to calculate the United States budget. Of course, as it turned out, that was one of the real applications.
这是早期最真实的应用场景,为美国家庭的预算准备,记账场景。
早期的函数用@前缀表示,每个函数都有自己的故事;
@sum 求和函数处理的范围是 (as in A1+AIU-A2),看起来很简单,但我们确实需要处理范围;
@average 平均值函数要跳过空单元格;
@count 计数函数,用于查找非空单元格的计数;
@lookup 函数,是处理我1979年的税单(tax form)的场景创建的;
@npv 净现值函数,使用一个不同于 COBOL语言中使用的公式。 Cobol 委员会后来被要求与 VisiCalc 兼容。
@sin,像这样的超越函数,本来不打算支持的,但是受评论家影响,我们不得不在1-2周查阅书籍实现了他们。
"Forward Referencing/Natural Order Calculation"
由于公式是相互依赖的,所以(重新)计算的顺序有所不同。
第一个想法是遵循依赖链,但这将涉及保留指针,这将占用内存。
我们意识到普通的电子表格很简单,可以按照行或列的顺序计算,错误通常很快就会显现出来。
后来的电子表格吹嘘“自然秩序”是苹果的主要特色,但我认为我们做出了正确的权衡。
Programming Decisions/程序设计决策
This section is for geeks so I won't try to translate all of the terms. OK, so what's going on behind the curtain?
面对一个16KB 的目标,其中包括足够的空间来实际存放一个有用的电子表格,我进入了严格的设计模式。
我通常不会担心我的代码的大小,因为它需要大量的工作,通常不会有什么不同,而且确实存在陷入过早的设计决策的风险。
对于 VisiCalc,我别无选择。 由于还没有人使用过这个程序,所以对它了解不多,这使得它更加困难。 丹研究原型的能力给了我们一些线索,让我们知道我们要去哪里。 我开始通过编写初始化代码 SSINIT (SpreadSheet Init)来模拟这个程序,这样我们就有了一个显示工作表的框架。 现在我所要做的就是填写下面的东西。
scaffolding
其中一个指导原则就是始终拥有正常运行的代码。 这是脚手架,所有我需要做的就是充实它。 或者不是。 因为这个程序集中在一起,省略一个特性是一种选择,它给了我们灵活性。
VisiCalc 的源代码可读性很高。
尽管非常强调效率,但是甚至强调可读性。 任何可能让阅读代码的人感到惊讶的事情都被仔细地记录了下来。 我的假设是,我自己会忘记这些关键点。 它也帮助了其他愿意阅读代码的人,但最主要的受众是我,在编码的迷雾中。
Tools and Environment
我们使用 Multics 上的 ECD 工具开始编程。 我晚上工作,电脑时间每小时1美元。
苹果版本是 VisiCalc 的关键版本。 在我们发布之前,我们增加了运行演示程序的能力,并最终将其发展成为高级 VisiCalc 的宏功能。在苹果之后,我们为 Commodore Pet 和 Atari 800创建了版本,因为两者使用相同的处理器。 布拉德坦普顿(现任 EFF 主席)帮助我们建立了康莫多宠物港口。
Dan Bricklin 在卡耐基梅隆大学的演讲
纽约时报的社论,1978: Spreadsheets = Sorcery
电子表格之父—Dan Bricklin 在卡耐基梅隆大学的一次讲座
其中提到 VisiCalc 的很多有趣的信息,推荐观看视频,从12:45 and 23:30 。
从视频中感受到 2 点
- 在1978年那个年代,对一个只用过纸笔计算的人来说,Spreadsheets是一件十分魔幻的事情!
- 在 Dan Bricklin 的许多syntax, format and interaction的设计仍然在当今的sheets中继续保留着。
Dan Bricklin 的TED演讲视频
电脑之前被大众当成玩具,VisiCalc 改变了这一点 Harvard Business School Dan Bricklin 、Bob Frankston.
VisiCalc 的起源演讲
商业管理软件
Business Management Software,Radio Shack catalog 于 1980 年的评价
作为一种专业的管理和计划工具,VisiCalc 取代了计算器、铅笔和纸张
用于解决诸如销售预测、所得税、财务比率、工程变更等问题。
您可以设置一个特定的应用程序,当输入新数据时,它会重新计算并在整个程序中显示最新版本。
编辑功能允许您更改、插入或删除标题、数字或公式; 格式化命令允许您设置自己的图表和表格。
终于有了一种替代我们中的许多人花费在数字上的长时间的方法。
那些使用列式本、计算器和铅笔来生成预测、计划、预算等等的人将会对 VisiCalc 感到兴奋。
它几乎适用于任何涉及行和列方法来分析数字的任务。
Visicalc 适用于预算、税务计划、财务比率计算、成本估算、销售预测、制造进度表、预计、工程、个人预算。
由于任何计划活动都是一系列的修改、更正和耗时的重新计算,我们通常没有时间检查所有可能影响结果的场景
Visicalc 的能力,即时提供重新计算的“如果”问题是戏剧性的看到。
一旦使用数据和公式建立了 VisiCalc 模型,您就可以看到 VisiCalc 立即重新计算与您更改的项目有关的所有值。
屏幕上几乎可以立即显示行和列的总数,从而节省工作时间。
budgeting
tax planning
financial ratio calculation
cost estimation,
sales forecasting,
manufacturing build schedules,
pro-formas,
engineering calculations,
and even personal budgeting.
Sheets 的基本观点
Sheets 的每个单元格可以被组合制造出各种可能性,就像乐高的 Block 一样。
一组渗透率的数据
- 20亿人使用 Excel (WindowsCentral, 2016), odds are most of them have at least access to Microsoft Excel.
- 全球渗透率20%,微软相信每5个人中至少由一个人用过 Excel (“What’s new in Microsoft Excel”, Sept 2017)
- 工作技能描述里出现最多的,每3个岗位里面就由1个需要 Excel 技能 (Indeed.com Job Trends, June 2017).
- In 2010, RescueTime found that about 25% of computer users used Excel on a daily basis and that about 2% of all time spent on a computer anywhere was spent using Microsoft Excel, second only to email software — and presumably web browsers. (RescueTime.com — I’d love to find newer, similar numbers — let me know if you know of something).
- https://medium.com/grid-spreadsheets-run-the-world/3-things-you-dont-understand-about-spreadsheets-part-1-7dfd6b3759cb
- #1 Spreadsheets are programs 电子表格=程序 Felienne Hermans — likes to say: “Spreadsheets are code” https://www.youtube.com/watch?v=TMIBfzSqguQ
- Spreadsheets are programs
- Excel is the most popular software development environment in the world!
- In fact, I’d argue that currently spreadsheet programs are the only mainstream environments that come close to Bret Victor’s ideas on instant feedback and “Inventing on Principle” Bret Victor’sInventing on Principlehttps://vimeo.com/36579366
- Relationships between data elements are encoded in a declarative way(functional ) 数据元素之间的关系以声明方式编码
- These data elements are automatically reevaluated when anything they depend on is altered ( reactive)这些数据元素在它们所依赖的任何东西被改变时自动重新计算
- mix data, logic and presentationa key strength and weakness
- t’s a strength in the eyes of regular users that don’t think about such abstractions and can just start typing in data (without thinking about data types or data models), logic in the form of formulas (without thinking about testing, code reuse or documentation) and presentation (without thinking about client development, device form factors, etc.). In fact they use spreadsheets to build everything from pure databases to print-out forms with no data or logic element. Without a second thought. 在普通用户的眼中,这是一种优势,他们不考虑这种抽象,只是开始输入数据(不考虑数据类型或数据模型)、公式形式的逻辑(不考虑测试、代码重用或文档)和表示(不考虑客户端开发、设备形式因素等)。 事实上,他们使用电子表格来构建从纯数据库到没有数据或逻辑元素的打印表单的所有东西。 不假思索地
- But it’s equally a weakness in the eyes of professional software developers where such lack of abstraction is blasphemy as they need to think about testing and quality assurance, maintenance, co-development and operations. 但在专业软件开发人员眼中,这同样是一个弱点,因为缺乏抽象是对他们的亵渎,因为他们需要考虑测试和质量保证、维护、共同开发和操作
- computer science is that of three tiered architectures:
- data 数据层
- The “data layer” in modern web systems typically lives in relational databases. 存于关系数据库中
- logic 逻辑层
- The “logic layer,” is often a combination of both server-side code and front-end code. The server-side code might be something like Python and the front-end code is typically JavaScript.
- "逻辑层"通常是服务器端代码和前端代码的组合。 服务器端代码可能类似于 Python,而前端代码通常是 JavaScript。
- presentation 展现层
- Finally, the “presentation layer” — what the person actually sees — is coded in HTML and CSS. Usually there is a host of other technologies involved just to get started.
- 最后,"表示层"——人们实际看到的东西——是用 HTML 和 CSS 编码的。 通常,刚开始的时候还会涉及到许多其他的技术。
- Spreadsheets made the PC market 电子表格塑造了 PC 的应用市场
- 电脑之前被大众当成玩具,VisiCalc 改变了这一点October 1979.Harvard Business SchoolDan BricklinBob Frankston.
- VisiCalc 的起源演讲https://youtu.be/YDvbDiJZpy0
- “I imagined a magic blackboard, that if you erased one number and wrote a new thing in, all the other numbers would automatically change […] I imagined that my calculator had mouse hardware on the bottom of it and a head-up display like in a fighter plane.”- Dan Bricklin,
- "我想象着一块神奇的黑板,如果你删除一个数字,然后写入一个新的数字,其他所有的数字都会自动改变... ... 我想象着我的计算器底部有鼠标硬件,还有一个像战斗机那样的平视显示器。" 丹・布里克林TEDxBeaconStreet 2016
- example spreadsheets
- “First, we created a number of example spreadsheets in VisiCalc of applications that were aimed at markets that we felt would be heavy users. […] We had the classic pro forma financial statement, inventory planning, real estate analysis, and insurance analysis. We had a series of things like that, each of them kind of a useful application. […] So we created a way for people to see tangible applications of the product.” "首先,我们在 VisiCalc 中创建了大量应用程序示例电子表格,这些应用程序面向我们认为可能会成为重度用户的市场。 [ ... ... ]我们有经典的形式上的财务报表,存货计划,房地产分析和保险分析。 我们有一系列类似的东西,每一个都是有用的应用。 (... ...)因此,我们创造了一种方式,让人们看到产品的实际应用。"
- Steve Jobs : 1984 “VisiCalc … propelled the … success [of Apple] … more than any other single event”"VisiCalc... ... 推动了苹果的... ... 成功... ... 超过了其它任何单一事件。"
- The first versions of Microsoft Excel were written for Apple.
- Not as a standalone GUI on top of DOS, but as a GUI for — you guessed it — Microsoft Excel.
- Spreadsheets run the world
- 1.2 billion people use Microsoft Office (WindowsCentral, March 2016), odds are most of them have at least access to Microsoft Excel.
- Microsoft believes that 1 in 5 adults in the world use Excel (“What’s new in Microsoft Excel”, Sept 2017)
- Excel is the number one skill mentioned in job ads, mentioned in approximately 1 in 3 job ads! (Indeed.com Job Trends, June 2017).
- In 2010, RescueTime found that about 25% of computer users used Excel on a daily basis and that about 2% of all time spent on a computer anywhere was spent using Microsoft Excel, second only to email software — and presumably web browsers. (RescueTime.com — I’d love to find newer, similar numbers — let me know if you know of something).
- spreadsheets have serious shortcomings:Excel-hell
- They are error prone and difficult to test.它们很容易出错并且难以测试
- Their underlying logic is opaque and hard to understand for others than the author (and even for the author when she comes back to a spreadsheet a few months later).基本逻辑不透明
- They are largely a single-user, desktop tools and not “native” citizens of the web. Online spreadsheets are still fairly basic compared to Microsoft Excel’s power running on a local machine, but what is worse: With the exception of (some) collaboration features, they are largely a transfer of the desktop-client metaphor to a client running in the browser with little notice of the things that are truly different when you’re running “in the cloud”.非原生数字
- 50%+ IT 领导者和专业人士:"主要"或"完全"使用电子表格进行分析。 (Gartner 2015)
- 49% 的分析用户说他们更喜欢使用电子表格进行数据整合(Ventana Research )
- 51% 的人说他们更喜欢通过电子表格访问大数据分析(Ventana Research )
- 场景
- Project planners: Way more projects are planned and tracked in Excel than any purpose-built project planning software. 项目计划人员: 在 Excel 中计划和跟踪的项目比任何专门制作的项目计划软件都多
- Travel planner: Planning a family vacation, group travel or a multi-destination business trip? Odds are, there is a spreadsheet. 旅行计划: 计划一次家庭度假、团队旅行还是多个目的地的商务旅行? 可能的情况是,有一个电子表格
- CRM: Small companies track their customers, sales funnel and even customer communications in Excel. 客户关系管理(CRM) : 小公司在 Excel 中跟踪他们的客户、销售漏斗甚至客户沟通
- Real estate hunting: Options are collected in a spreadsheet. 房地产猎头: 在电子表格中收集期权
- Lending apps: What did I lend whom and when? 借贷应用程序: 我借给谁什么,什么时候借的?
- Library apps: Cataloging my personal library 图书馆应用程序: 为我的个人图书馆编目
- Todo apps: Despite the plethora of them, I’m convinced more todo lists are tracked in Excel, than any of them (even all combined) 待办事项应用程序: 尽管它们有很多,但我相信在 Excel 中被跟踪的待办事项列表比任何一个都多(即使是所有的加起来也是如此)
- Employee directory, and more generally HR software: The spreadsheet is the small organization’s “Workday”. 员工目录,以及更一般的人力资源软件: 电子表格是小组织的"工作日"
- Expense reports: Who needs Concur? 支出报告: 谁需要 Concur?
- Food and exercise log: Whatever needs to be manually entered is just as well tracked in Excel as in a purpose built app. 食物和锻炼日志: 任何需要手动输入的东西在 Excel 中都可以很好地跟踪,就像在一个专门的应用程序中一样
- Time sheets: Why use anything fancier? 工作时间表: 为什么要使用更新奇的东西?
- Inventory tracking: A spreadsheet provides the ultimate flexibility. 库存跟踪: 电子表格提供了极大的灵活性
- Invoicing: Oh yes, many companies will create their first invoices in Excel. A mom & pop business may never grow out of it. 发票: 哦,是的,许多公司会在 Excel 中创建他们的第一张发票。 家庭经营的企业可能永远无法摆脱这种局面
- Group food orders: Too custom, random and ad-hoc for a custom software, but someone will have made a spreadsheet. 分组食物订单: 对于自定义软件来说太自定义、随机和特别,但是有人会做一个电子表格
- Party planner: Same. 派对策划人: 一样
- Is my solution superior enough to a home-grown spreadsheet for my target users to switch?
- Small databases
- multi-dimensional
- hierarchical
- even relational
- Models
- Projections
- Analysis
- Calculators
- Business Processes
- Spreadsheets by the numbers
- Microsoft claims no less than 1.2 billion users of Microsoft Office
- 2/3 of Excel’s install base ever use it
- 800 million users for Microsoft Excel.
- Applying Jenny’s 2/3 estimate here would land us around 160–180 million Google Sheets users.
- 800 million Microsoft Excel vs 160–180 million Google Sheets
- The demographics
- Young people use Google Sheets.
- Young companies are also more likely to use Google Sheets
- The “pros” use Excel
- serious spreadsheet nerds use Excel.
- These users see Google Sheets as a mere toy
- Sluggish, and lacking many basic capabilities.
- Spreadsheet consumer
- 基本的安装或者登录服务,查看表格
- Spreadsheet basic user
- Enters data and basic formulas +, -, *, /, SUM(), AVERAGE(), ROUND()
- Spreadsheet intermediate user
- Uses more sophisticated functions such as IF(), FIND(), NOW(), SUBTOTAL(), …
- Uses - but does not create - pivot tables
- May name cells and ranges
- Spreadsheet pro
- Uses VLOOKUP() (and soon thereafter INDEX(MATCH()) )
- Creates pivot tables
- May use Data Tables
- Spreadsheet developer
- Has the Developer tab turned on
- Creates forms (Excel) or uses Google Forms
- Records macros
- Spreadsheet scripter
- Writes VBA code (Excel) or Apps Scripts (Google)
- Uses PowerQuery and PowerPivot
- “The best tool available today for exploring real-life questions of quantity and change is the spreadsheet.”— Bret Victor, “Kill Math”
- 当今探索现实生活中有关数量和变化问题的最佳工具是电子数据表。
- “VisiCalc represented a new idea of a way to use a computer and a new way of thinking about the world. Where conventional programming was thought of as a sequence of steps, this new thing was no longer sequential in effect: When you made a change in one place, all other things changed instantly and automatically.”— Ted Nelson, The Whole Earth Software Catalog"
- VisiCalc 代表了一种使用计算机的新思路和一种思考世界的新方式。 传统的编程被认为是一系列的步骤,而这种新的东西不再是顺序的: 当你在一个地方做了一个改变,所有其他的东西都会立即自动地改变。"
- Spreadsheet-like-data-integration: Using spreadsheet-like interfaces to enable end-users to do data integration.- Examples: dashdash and Actiondesk. Supermetrics does a similar job, but goes the opposite way, providing an add-in to existing spreadsheets.
- Spreadsheet-to-API: Enabling API access to data in existing spreadsheets.- Example: sheetlabs
- Spreadsheet-as-CMS: Using spreadsheets to edit and control web site content.- Example: sheet2site
- Spreadsheet-to-app: Low-code / no-code ways for turning spreadsheets into web or mobile applications.- Examples: glide, AppSheet, Open as App, Appizy , SpreadsheetWEB, Molnify, SheetSu
未来的趋势
- 一种理解趋势: 电子表格的强大以及隐喻(metaphor)的理解
- an end-user development approach
- see themselves as programmers to create their own “IT solutions”
- Spreadsheets → Small database applications (automation services )
- 一些初创公司的实践
- 初创公司
- Airtable
- CODA
- dashdash
- Notion
- GRID
- 解决方案
- Low-code Development Platforms
- Modern Business Intelligence and Analytics
- Productivity Software
- 企业服务中分类
- maybe a new product category
- Spreadsheets-as-a-Backend
- https://stackshare.io/spreadsheets-as-a-backend
- Spreadsheet platforms
- Spreadsheets-as-a-Platform
- Spreadsheets 的历史
- VisiCalc
- 追根溯源,本身就是PC上最早的商业软件平台were the original business software platforms for the PC
- 现今的企业服务类别都可以从中找到影子,是从中发展出来的a lot of the enterprise software categories of today evolved
- CRMs
- ERPs
- financial planning software
- 由电子表格的模版转变为解决方案
- “templates” in early spreadsheet software before breaking off into purpose-built solutions and some into entire industries of their own.
transforming the core of the knowledge worker’s stack from the current ’90s approach into the 21st century.
- presentation software
- email clients
- groupware
- new category is going to transform the way we do
- not only spreadsheets
- but also documents
- presentations
- communication
- custom business applications.
Hans Rosling 教授
启发
启发 Grid.is 创始人去做出一个工具认识世界;一个启发视频、一个工具、一本书、一个出发点
- Hans Rosling 用前所未有的方法诠释数字统计
- 成立 Gapminder 基金会 ,开发了Trendalyzer软件,后被Google收购,Motion Chart Google Gadget插件
- 《事实:扭轉十大直覺偏誤,發現事情比你想的美好》
- 多数人并不了解自己所处的世界,这个世界正在变得越来越好
演讲
- 2007-03:以新的视角解读当今世界的贫困问题
- 2009-02:论HIV:新的事实与惊奇的视觉数据
- 2009-08:让我的资料改变你的心智
- 2009-10:亚洲的崛起--如何及何时
- 2010-07:谈世界人口成长
- 2010-09:最近十年的好消息
- 2010-12:与神奇的洗衣机
- 2012-04:宗教信仰与婴儿
- 2013-02:在低收入国家避孕药上需要accss
其他的
- https://medium.com/@hjalli/writing-a-business-plan-what-to-cover-f9d968af8272
- Vision 愿景
- Team 团队
- Problem 问题
- Solution / Product 解决方案 / 产品
- Technology 技术
- Business model & pricing 商业模式及定价
- Target market & size 目标市场和规模
- Marketing 市场营销
- Sales 销售
- Status / Traction (Why now?) 状态 / 牵引力(为什么是现在?)
- Competition 竞争
- Financials 金融业
- Funding and exit 资金和退出
- https://medium.com/@hjalli/10-famous-and-useful-demo-data-sets-1e267d7b5c03
- Titanic passengers 泰坦尼克号的乘客
- Size: 14 attributes, 1311 lines
- Useful for: Ad-hoc and predictive analysis (what do those that survived have in common?)
- URL: https://github.com/Geoyi/Cleaning-Titanic-Data
- World Population Prospects 世界人口
- Size: Estimated and projected population by sex and 5-year age group for 241 countries and country groups, annual for 150 years
- Useful for: Hierarchies, medium-sized data, time-series, data concatenation.
- URL: https://esa.un.org/unpd/wpp/Download/Standard/Population/
- Gapminder’s GDP per capita vs. child mortality GDP与儿童死亡率
- Size: Two 240 year time-series for approx. 200 countries and regions
- Useful for: Animated scatterplots, data storytelling
- URLs:
- GDP per capita: https://github.com/open-numbers/ddf--gapminder--gdp_per_capita_cppp
- Child mortality: https://github.com/open-numbers/ddf--gapminder--child_mortality
- Significant Earthquakes Database 全球地震数据
- Size: Approx. 5500 earthquakes with about 50 attributes for each.
- Useful for: Geospatial data. Hierarchical data.
- URL: https://www.ngdc.noaa.gov/nndc/struts/form?t=101650&s=1&d=1
- Enron emails
- Size: 500,000 emails of various lengths with a handful of meta-data fields each.
- Useful for: Unstructured data. Network analysis.
- URL: https://www.cs.cmu.edu/~./enron/
- Anscombe’s quartet
- Size: 4 data sets with 11 2-dimensional data points (22 values) each
- Useful for: Demonstrating the power of visualization; how summary statistics can be deceiving; and the effect of outliers.
- URL: https://en.wikipedia.org/wiki/Anscombe%27s_quartet
- Les Miserables 悲惨世界中的人物
- Size: 76 character nodes with 254 weighted edges
- Useful for: Network graphs
- URL: https://networkdata.ics.uci.edu/data.php?id=109
- TLC Trip Data 纽约的出行数据
- Size: Approx. 20 attributes for a few million trips monthly since 2009
- Useful for: (Somewhat) Big Data, Geospatial data
- URL: http://www.nyc.gov/html/tlc/html/about/trip_record_data.shtml
- Napoleon’s March
- Size: 3 small data sets with geo-locations, city names, dates, troop sizes and temperatures.
- Useful for: Geospatial data, visualization recreation, data variety, data storytelling
- URL:https://www.cs.uic.edu/~wilkinson/TheGrammarOfGraphics/minard.txt
- TPC benchmarks (Transaction Processing Performance Council)
- Size: Can generate almost any size of fairly complex relational database structures.
- Useful for: Big Data; testing and benchmarking of heavy data loads.
- URL: http://www.tpc.org/information/benchmarks.asp
- https://medium.com/@hjalli/there-is-no-big-in-data-bccf0496c4
- Anything you will ever see in your life is “small data”.
- A bar chart only shows as many data points as the number of bars on the chart. 条形图只显示与图表中条形数目相同的数据点
- Despite millions of trades and price changes per year, a line chart of a stock’s price can not logically show more data points than the number of pixels across your screen (probably approximately 2000 at most). 尽管每年有数以百万计的交易和价格变化,一张股票价格折线图逻辑上不能显示比屏幕上的像素数更多的数据点(最多大约2000个)
- A scatter plot falls down as points start to significantly overlap, and the data will be better represented as a heat-map or other aggregated views of the data. 散点图下降,因为点开始显着重叠,数据将更好地表示为热图或其他聚合视图的数据
- Maps are possibly the densest data visualizations there are, and a full-screen map is possibly the only visualization where every pixel on your screen could be said to hold meaningful information. Yet what we take away from looking at a map are usually only a handful of data points: “Get on route 9; On 95, take exit towards Portsmouth; Drive a couple of miles to exit 22; You’ll see the office on the right”. 地图可能是最密集的数据可视化,全屏地图可能是唯一可视化的地方,在你的屏幕上的每个像素都可以说包含有意义的信息。 然而,我们从地图上看到的通常只是一些数据点:"上9号公路; 在95号公路上,从出口到朴茨茅斯; 开几英里到22号出口; 你会看到右边的办公室。"
- Humans are never looking at Big Data, but aggregations, selections and extrapolations of big data sets distilled as “small data”.
- Big Data analytics is about efficiently identifying, surfacing and sometimes generating (aggregates, samples, etc.) small, representative samples of the Big Data and serve them up to us humans.
- The only true consumers of Big Data are machines.