电脑桌面计算器下载(经历多次重写,苹果平台最强科学计算器PCalc背后的故事)

今天给各位分享电脑桌面计算器下载的知识,其中也会对经历多次重写,苹果平台最强科学计算器PCalc背后的故事进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

原文链接:https://pcalc.com/mac/thirty.html

未经允许,禁止转载!

作者|JamesThomson译者|弯月责编|王子彧出品|CSDN(ID:CSDNnews)PCalc二十周年之际,我曾写过一篇文章(https://pcalc.com/mac/twenty.html),一眨眼又过去了十年,如今PCalc已经三十周岁了!

现在,很多人都在各色设备上使用PCalc,却没有意识到这款苹果应用的年龄远比他们想象中长得多。对于有些人来说,这款应用甚至比自己还要年长。

截止到2022年12月23日,PCalc就30岁了,所以我想借此机会回顾一下过去三十年中这款应用的发展历程。

起源

PCalc诞生于1992年,但实际上最初它是为中央供暖控制面板设计的。

当时我是英国格拉斯哥大学的一名学生,就读于计算机科学专业。我选了一门人机交互课程,学习如何构建良好的用户界面。这门课程的一个项目是为中央供暖系统设计一个模拟控制面板,可用于控制温度、单独开关暖气和热水等等。我们需要使用HyperCard(为苹果Mac和AppleIIGS电脑开发的应用程序和编程工具)技术来实现这个应用。可悲的是,如今该技术已经销声匿迹了,但我的设计几近无可挑剔。

我认为,用户界面看上去必须真实,所以我手工制作了一套1位的黑白界面来模拟LCD数字和一些可以按下去的小按钮。可见仿制品从很早以前就有了。

大概在同一时期,我们开始使用THINKPascal编程,我也开始利用业余时间探索Macintosh编程API。最终,我发现自己并不会成为下一个Jean-MichelJarre(法国著名电子音乐艺术家,电子音乐先锋),但与旧款的Atari的相比,我更喜欢Mac的用户界面。所以,我卖掉了所有的合成器(比如RolandJuno-106)和AtariST,然后买了一台最新的Mac经典款——4兆内存、40兆硬盘和512×342分辨率的1-bit显示器。

于是,我开始寻找一个小项目来学习如何在这台新的Mac机器上编程。后来,我想起了以前为控制面板设计的图形界面,我认为我也可以设计一款相同的计算器。

当时,MacOS内置的计算器非常简陋,所以我决定编写一款能够执行二进制和十六进制运算的计算器,用以辅助我编程。而这正是PCalc诞生的契机。我买了《InsideMacintosh》这本书的1~3册,然后坐下来认真研读。那时,我们还没有互联网,所以这几本书就是我所有的资料。最终,我编写好了内部逻辑,并围绕着这段逻辑构建了一个用户界面。由于当时System7还很新,所以我又买了厚厚的第六册,想看看系统究竟又哪些变化。我觉得我不需要中间的4~5册。

接下来,我需要给这款应用程序起个名字,最后我选用了PCalc,即Programmers’Calculator的缩写。事实上,这确实是一款面向程序员的计算器。而那个程序员就是我。我根据自己的需求编写了这款应用程序。后来,我将这款应用程序分享给了课上的几个朋友,并在接下来的六个月里慢慢改进它,直到它变得越来越实用,而不仅仅是辅助编程。另外,我还添加了一个彩色界面,尽管我的Mac机器还无法显示颜色。

有关原始版本的更多屏幕截图,请参见此处(https://pcalc.com/mac/screens.html)。原版的《ReadMe》在这里(https://s3.amazonaws.com/tlasystems/PCalc%20-%20Read%20Me%20First.pdf)。

1992年12月23日,我决定将它作为礼物,免费发布给全世界。

当时是1992年,FTP站点非常热门。我们班发现了一款名叫Fetch的应用程序——当时这款应用程序的传播速度非常快,我们都利用它来下载其他应用程序。很快,我发现有一个名叫Info-MacArchive的全球镜像站点,我可以将自己的应用发送到这个网站,然后就能自动传播到全世界,供所有人下载。于是,我仔细阅读了传送指南,并打包上传了PCalc。

下面是我打包上传PCalc后收到的电子邮件:

Date:Wed,23Dec9217:41:10GMT

From:thomsonj<thomsonj@dcs.gla.ac.uk>

Subject:[*]PCalc1.0Submission

Enclosedisabinhexfilecontainingasubmissionforyourarchives.

PCalcisaneatsimulationofaprogrammablescientificcalculator.

Pleasenotethatit*requires*System7.x.x.

IfyouuseSystem6.0.xorearlier,hereiswhatyouaremissing:

Programmablefunctionsviaasimpleminilanguage.

System7.x.xsavvy:

Canbecontrolled&programmedviaAppleEvents.

BalloonHelpforeverybutton,menu&dialogitem.

ResolvesAliases.

32-bitclean.

Multifinderaware.

Large16+3digitdisplay.

Hierarchicalmenuofuserfunctions.

Includesmanyfunctionsforconvertingbetweendifferentweightsandmeasures.

Quick,oneclick,conversionbetweendecimal,hexadecimalandbinarynumbers.

AND,OR,NOT,XOR,ROL,RORandotherextrafunctionsinhexandbinarymode.

30nameduserconstants,10foreachmode.

‘Undo’ofanyaction.

Enhancedgraphicswhenviewedona256colouror16gray(orbetter)screen.

Colourgraphicsandhelpscreensarestoredinseparateplug-inextensions.

RunsonanyMacwithSystem7.x.xorgreater,withorwithoutColorQuickdraw.

Andofcourseit’sfreeware.Ifyouonlydownloadonecalculatorthisyear,givethisatry…

[Archivedas/info-mac/app/pcalc-10.hqx;122K]

后来,我收到了很多非常不错的反馈,在之后的一年里我不断优化PCalc。1993年版本1.0.2发布,公告如下:

Version1.0.2fixessomebugsthatcausedproblemsoncolourmacs,notably

thosewith16and24-bitdisplays.Vastspeedincreasestooonsome8-bit

screens.Shouldn’tturnbrightorangeatinconvenientmomentseither.Some

othersilentbug-fixesandsupportforthe’,’keyasadecimalseparator.

(Moreimportantly,thereareatonofneweastereggs;-)

的确,我真的应该将《InsideMac》的4~5册买下来,学习如何处理颜色。

至于公告中提到的彩蛋(eastereggs),其中之一是如果你将42放入三个特定的内存寄存器,然后点击屏幕,就会播放DouglasAdams(英国广播剧作家和音乐家,尤以《银河系漫游指南》系列作品出名)的一段录音:“Don’tPanic!”(不要惊慌!),同时屏幕上还会显示我最喜欢的《银河系漫游指南》中的一句台词:

顺便说一句,不久之后,Douglas成为了我的另一个应用程序DragThing的Beta测试员。不过,我从来没有问过他如何看待我在PCalc发布公告中引用他的台词。PCalc的图标中总是有一个42,每次截屏时,我都会在屏幕上显示一个42,因为42是《银河系漫游指南》中的“终极答案”。我曾有幸在WWDC上与Douglas握过手,他也认出了我并示以微笑。我本来计划在下一次的WWDC中再次与他见面,但他却在这之前便匆匆离世了,就在几周前,我们还互发过邮件,这件事对我的打击很大。这就是PCalc的图标中总是有一个42的原因——为的是向他致敬。我不太了解他,但他总是对我的工作充满热情,这对于他的一个忠实粉丝来说,可谓意义非凡。

不管怎么说,在我攻读学位期间,PCalc已经走向了全世界。在那之后,我一直忙于其他事情,首先是编写DragThing,后来又在苹果找了一份工作,负责OSX的Finder和Dock的开发,当然那又是另一个故事了。

2000年,我回到了格拉斯哥,又开始寻找另一个小项目来学习新的MetrowerksCodeWarrior开发环境以及PowerPlant应用框架。尽管PCalc已经七年未曾更新,但我仍然会收到PCalc的反馈邮件,而且这个项目的大小非常适合快速构建实用的东西。于是,PCalc2诞生了。我将核心的Pascal运算代码转换成了C,并用C++编写了一个新的用户界面。PCalc2仍然可以在老式的68K机器上运行,而且不仅能在PowerPC机器上运行,还可以在经典款的MacOS和新的OSX上运行,而且两者都有合适的用户界面。

此外,鉴于Dragthing备受好评,我决定PCalc或许应该收取一点费用。过去七年中,我一直未更新PCalc,原因之一就是因为初始版本完全是免费的,也许向用户收取费用将成为我不断更新PCalc的动力。

在2001年的WWDC上,我把名片塞到了一个新面孔PhilSchiller的手中,并向他介绍了PCalc。之后,我记得他的助手给我发了一封电子邮件,索要PCalc的序列号,我很高兴地发给了她。后来,我了解到史蒂夫·乔布斯使用了PCalc,并据称并不是特别讨厌它。SteveWozniak当年也买了很多份PCalc。

直到2002一月,苹果的OSX还是未能推出一款像样的计算器(可能有人会说即便是现在也没有),而新的iMacG4s即将面世,苹果联系到了我,并要我授权在美国发售的iMac上加入PCalc。虽然我们达成协议每份PCalc只收取很小的一笔版权费,但哪怕是再小的数字乘以近百万份也是非常可观的!

遗憾的是,这种合作并没有持续多久,MacOS10.2就发布了,随之而来的是一个苹果新编写的科学计算器。有传言说,苹果公司的某个高层得知他们向一位未曾蒙面的前苹果员工支付了版权费。但是,我无法证实这一点。但不管怎样,PCalc没有再被捆绑出售,这件事也就告一段落了。

重写PCalc

2005年,我再次重写了PCalc。这一次的目的是学习了新的CarbonHIToolboxAPI,这是一种完全不同的编程方式,有点像PowerPlant,只不过是苹果出品的。

PCalc3拥有当时风靡一时的拉丝金属外观,深受大家喜爱。此外,还有一个全新的DashboardWidget,虽然核心代码相同,但用户界面是用HTML和JavaScript编写的。Widget在那个年代可是代表着未来。

不过,此次更新我并没有收费,因为很久没有发布新版本,我有点愧疚。

时值2006年,我想到PCalc3的项目规模非常适合移植到英特尔机器上,而且我还可以顺便学习如何移植。我拿到了一台英特尔的Mac原型机,构建了一个英特尔和PowerPC通用的可执行文件,等准备在一月中旬推出。在随后的几年中,Mac版推出了许多更新。

但随着2007年iPhone诞生,以及2008年苹果应用商店的推出,你猜猜看这个新平台上推出的理想应用是哪款?

我在PCalcDashboardWidget版代码的基础之上,花了一两天的时间就在iPhone跑通了。以此为起点,我又使用Cocoa构建了一个全新的界面。PCalc摇身变成了一款触屏便携式设备的完美应用,它从一款在屏幕上用鼠标点击按钮来操作的模拟计算器,变成了你手中的一台近乎真实的计算器,感觉再也不像是假的了。

PCalc在英特尔Mac发布后的第一天就入驻了苹果商店,同一天大约有400多款应用同时推出,而它的表现非常优秀。最终,我们的大部分收入均来自PCalc,而不是DragThing,而且主要来自iOS而不是MacOS,所以我们后续的很多工作都优先iOS版本,然后再移植回Mac。我甚至将Mac上的DragThing主题引擎移植到了iPhone版的PCalc上。将一个在MacPro上运行的绘图引擎放入手掌大小的界面中,这在当时看来是一件不可思议的事情。

当然,5318008-gate(https://tla.systems/blog/2009/09/30/pcalc-prevents-iphone-profanity/)是一个小意外,大家见谅。

后来iPad、视网膜显示屏、更多iPad、更高版本的iPhone,以及其他众多设备陆续推出,而我们的PCalc不仅在Mac应用商店中推出,而且还支持视网膜显示屏,以及iOS版本的许多功能。

事实上,PCalc4在2014年在Mac应用商店中独家推出。

在MacCatalyst出现之前,这个新版本实际上是基于iOS源代码的,这降低了开发难度,因为我不必反复编写所有代码。此外,我将核心代码分解成了一个单独的可移植块,这样就可以在其他地方使用了。

第一个使用这个新的计算引擎的是iOS和macOS通知中心的迷你计算器,你可以使用它进行快速计算。

这个小部件被苹果推荐,而且没有发生任何不愉快的事情。那段时间我的压力很大,在宣传的影响下,销售额大增,所以我花大手笔买了一台Retina5KiMac,并度过一个愉快的假期。

第二次使用是2015年历史上最小的PCalc。

苹果手表版的PCalc是一次有趣的练习,尝试如何在如此小的屏幕上嵌入完整的计算器界面。当然,80年代我有一块计算器手表,所以我就自己制作。

相比之下,同年我还推出了历史上最大的PCalc,这一次是在苹果电视上。

虽然我不清楚是否有人要求在电视上安装计算器,但当时我决定凡是苹果允许的地方,我都将装上PCalc,只是出于固执。

2016年,苹果增加了一个功能,允许iOS应用提供替代图标,于是我开启了一个小项目来制作一些新图标。那段时间里,我做了很多这样的项目来让自己保持理智,至少可以分散注意力。

到目前为止,我已经制作了50多个图标,包括十几个骄傲的旗帜。那一年,我了解了很多不同骄傲旗帜的起源!

升级为应用

与此同时,关于苹果制造AR/VR耳机的谣言四起,我决心学习3D图形学。大学时期,我曾修过一门课程,但在接下来的22年里,情况发生了一些变化。

不管怎样,PCalc的About页面开始有点失控了。最初只是一个3D物理玩具,你可以向PCalc图标扔香蕉,最终变成了一个小型驾驶游戏,荣登全球排行榜,甚至还有一个物理奖杯。

如今,这款游戏已变大变强,成为一个单独的应用。

2017年,PCalc获得了一个吉祥物和一套iMessage贴纸——DavidLanham用Pascal绘制了一个可爱的熊猫。

有一段时间,我很喜欢David在Facebook发布的各种贴纸。不过他从来没有画过熊猫(除了上面的红色熊猫),我觉得我可以花钱让David为我制作一套贴纸,然后放入PCalc。

你可能会注意到,About页面的屏幕截图中有一些骰子。2019年,我也在网上玩D&D,我的好朋友JasonSnell建议我应该为iPhone做一个骰子应用。于是,PCalc的第一个衍生产品诞生了!

DicebyPCalc从动手到在应用商店发布,我花了两周的时间,并借鉴了PCalc的About页面上的大量代码和概念。

虽说是只花了两周的时间,但我并没有就此止步。后来,整个项目不仅过度设计,而且大幅拖延。我设计了五十多套骰子,如今甚至有拍照模式。无需多说,如今Mac、苹果手表和苹果电视上都有这款游戏。这也成为了我探索苹果新技术(比如MacCatalyst和SwiftUI)的试验台,同时也让我看到将来PCalc该如何发展。

我们说回PCalc。2020年,苹果的iOS和Mac上推出了一种新型的小部件——非交互式小部件。这意味着我不能使用这种技术构建计算器了。难道是因为我的原因吗?或许吧。如今,iOS上仍然保留了旧的小部件,但Mac上已经完全消失了。所以我需要将整个小部件移到别处,并将所有代码移植到菜单栏中。

好了,关于电脑桌面计算器下载和经历多次重写,苹果平台最强科学计算器PCalc背后的故事的问题到这里结束啦,希望可以解决您的问题哈!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平