原文鏈接:https://pcalc.com/mac/thirty.html
未經允許,禁止轉載!
(資料圖)
作者 | James Thomson 譯者 | 彎月
責編 | 王子彧
出品 | CSDN(ID:CSDNnews)
PCalc 二十周年之際,我曾寫過一篇文章(https://pcalc.com/mac/twenty.html),一眨眼又過去了十年,如今 PCalc 已經三十周歲了!
現(xiàn)在,很多人都在各色設備上使用 PCalc,卻沒有意識到這款蘋果應用的年齡遠比他們想象中長得多。對于有些人來說,這款應用甚至比自己還要年長。
截止到 2022 年 12 月 23 日,PCalc 就 30 歲了,所以我想借此機會回顧一下過去三十年中這款應用的發(fā)展歷程。
起源PCalc 誕生于 1992 年,但實際上最初它是為中央供暖控制面板設計的。
當時我是英國格拉斯哥大學的一名學生,就讀于計算機科學專業(yè)。我選了一門人機交互課程,學習如何構建良好的用戶界面。這門課程的一個項目是為中央供暖系統(tǒng)設計一個模擬控制面板,可用于控制溫度、單獨開關暖氣和熱水等等。我們需要使用 HyperCard(為蘋果 Mac 和 Apple IIGS 電腦開發(fā)的應用程序和編程工具)技術來實現(xiàn)這個應用??杀氖牵缃裨摷夹g已經銷聲匿跡了,但我的設計幾近無可挑剔。
我認為,用戶界面看上去必須真實,所以我手工制作了一套 1 位的黑白界面來模擬 LCD 數(shù)字和一些可以按下去的小按鈕??梢姺轮破窂暮茉缫郧熬陀辛恕?/p>
大概在同一時期,我們開始使用 THINK Pascal 編程,我也開始利用業(yè)余時間探索 Macintosh 編程 API。最終,我發(fā)現(xiàn)自己并不會成為下一個 Jean-Michel Jarre(法國著名電子音樂藝術家,電子音樂先鋒),但與舊款的 Atari 的相比,我更喜歡 Mac 的用戶界面。所以,我賣掉了所有的合成器(比如 Roland Juno-106)和 Atari ST,然后買了一臺最新的 Mac 經典款—— 4 兆內存、40 兆硬盤和 512x342 分辨率的 1-bit 顯示器。
于是,我開始尋找一個小項目來學習如何在這臺新的 Mac 機器上編程。后來,我想起了以前為控制面板設計的圖形界面,我認為我也可以設計一款相同的計算器。
當時,Mac OS 內置的計算器非常簡陋,所以我決定編寫一款能夠執(zhí)行二進制和十六進制運算的計算器,用以輔助我編程。而這正是 PCalc 誕生的契機。我買了《Inside Macintosh》這本書的 1~3 冊,然后坐下來認真研讀。那時,我們還沒有互聯(lián)網,所以這幾本書就是我所有的資料。最終,我編寫好了內部邏輯,并圍繞著這段邏輯構建了一個用戶界面。由于當時 System 7 還很新,所以我又買了厚厚的第六冊,想看看系統(tǒng)究竟又哪些變化。我覺得我不需要中間的 4~5 冊。
接下來,我需要給這款應用程序起個名字,最后我選用了 PCalc,即 Programmers ’ Calculator 的縮寫。事實上,這確實是一款面向程序員的計算器。而那個程序員就是我。我根據自己的需求編寫了這款應用程序。后來,我將這款應用程序分享給了課上的幾個朋友,并在接下來的六個月里慢慢改進它,直到它變得越來越實用,而不僅僅是輔助編程。另外,我還添加了一個彩色界面,盡管我的 Mac 機器還無法顯示顏色。
有關原始版本的更多屏幕截圖,請參見此處(https://pcalc.com/mac/screens.html)。原版的《Read Me》在這里(https://s3.amazonaws.com/tlasystems/PCalc%20-%20Read%20Me%20First.pdf)。
1992 年 12 月 23 日,我決定將它作為禮物,免費發(fā)布給全世界。
下面是我打包上傳 PCalc 后收到的電子郵件:Date: Wed, 23 Dec 92 17:41:10 GMT
From: thomsonj
Subject: [ * ] PCalc 1.0 Submission
Enclosed is a binhex file containing a submission for your archives.
PCalc is a neat simulation of a programmable scientific calculator.
Please note that it *requires* System 7.x.x.
If you use System 6.0.x or earlier, here is what you are missing:
Programmable functions via a simple mini language.
System 7.x.x savvy:
Can be controlled & programmed via Apple Events.
Balloon Help for every button, menu & dialog item.
Resolves Aliases.
32-bit clean.
Multifinder aware.
Large 16+3 digit display.
Hierarchical menu of user functions.
Includes many functions for converting between different weights and measures.
Quick, one click, conversion between decimal, hexadecimal and binary numbers.
AND, OR, NOT, XOR, ROL, ROR and other extra functions in hex and binary mode.
30 named user constants, 10 for each mode.
"Undo" of any action.
Enhanced graphics when viewed on a 256 colour or 16 gray ( or better ) screen.
Colour graphics and help screens are stored in separate plug-in extensions.
Runs on any Mac with System 7.x.x or greater, with or without Color Quickdraw.
And of course it"s freeware. If you only download one calculator this year, give this a try...
[ Archived as /info-mac/app/pcalc-10.hqx; 122K ]
后來,我收到了很多非常不錯的反饋,在之后的一年里我不斷優(yōu)化 PCalc。1993 年版本 1.0.2 發(fā)布,公告如下:
Version 1.0.2 fixes some bugs that caused problems on colour macs, notably
those with 16 and 24-bit displays. Vast speed increases too on some 8-bit
screens. Shouldn"t turn bright orange at inconvenient moments either. Some
other silent bug-fixes and support for the "," key as a decimal separator.
( More importantly, there are a ton of new easter eggs ;- )
的確,我真的應該將《Inside Mac》的 4~5 冊買下來,學習如何處理顏色。
至于公告中提到的彩蛋(easter eggs),其中之一是如果你將 42 放入三個特定的內存寄存器,然后點擊屏幕,就會播放 Douglas Adams(英國廣播劇作家和音樂家,尤以《銀河系漫游指南》系列作品出名)的一段錄音:"Don"t Panic!"(不要驚慌?。瑫r屏幕上還會顯示我最喜歡的《銀河系漫游指南》中的 一句臺詞:
順便說一句,不久之后,Douglas 成為了我的另一個應用程序 DragThing 的 Beta 測試員。不過,我從來沒有問過他如何看待我在 PCalc 發(fā)布公告中引用他的臺詞。PCalc 的圖標中總是有一個 42,每次截屏時,我都會在屏幕上顯示一個 42,因為 42 是《銀河系漫游指南》中的 " 終極答案 "。我曾有幸在 WWDC 上與 Douglas 握過手,他也認出了我并示以微笑。我本來計劃在下一次的 WWDC 中再次與他見面,但他卻在這之前便匆匆離世了,就在幾周前,我們還互發(fā)過郵件,這件事對我的打擊很大。這就是 PCalc 的圖標中總是有一個 42 的原因——為的是向他致敬。我不太了解他,但他總是對我的工作充滿熱情,這對于他的一個忠實粉絲來說,可謂意義非凡。
不管怎么說,在我攻讀學位期間,PCalc 已經走向了全世界。在那之后,我一直忙于其他事情,首先是編寫 DragThing,后來又在蘋果找了一份工作,負責 OS X 的 Finder 和 Dock 的開發(fā),當然那又是另一個故事了。
2000 年,我回到了格拉斯哥,又開始尋找另一個小項目來學習新的 Metrowerks CodeWarrior 開發(fā)環(huán)境以及 PowerPlant 應用框架。盡管 PCalc 已經七年未曾更新,但我仍然會收到 PCalc 的反饋郵件,而且這個項目的大小非常適合快速構建實用的東西。于是,PCalc 2 誕生了。我將核心的 Pascal 運算代碼轉換成了 C,并用 C++ 編寫了一個新的用戶界面。PCalc 2 仍然可以在老式的 68K 機器上運行,而且不僅能在 PowerPC 機器上運行,還可以在經典款的 Mac OS 和新的 OS X 上運行,而且兩者都有合適的用戶界面。
此外,鑒于 Dragthing 備受好評,我決定 PCalc 或許應該收取一點費用。過去七年中,我一直未更新 PCalc,原因之一就是因為初始版本完全是免費的,也許向用戶收取費用將成為我不斷更新 PCalc 的動力。在 2001 年的 WWDC 上,我把名片塞到了一個新面孔 Phil Schiller 的手中,并向他介紹了 PCalc。之后,我記得他的助手給我發(fā)了一封電子郵件,索要 PCalc 的序列號,我很高興地發(fā)給了她。后來,我了解到史蒂夫 · 喬布斯使用了 PCalc,并據稱并不是特別討厭它。Steve Wozniak 當年也買了很多份 PCalc。
直到 2002 一月,蘋果的 OS X 還是未能推出一款像樣的計算器(可能有人會說即便是現(xiàn)在也沒有),而新的 iMac G4s 即將面世,蘋果聯(lián)系到了我,并要我授權在美國發(fā)售的 iMac 上加入 PCalc。雖然我們達成協(xié)議每份 PCalc 只收取很小的一筆版權費,但哪怕是再小的數(shù)字乘以近百萬份也是非常可觀的!
遺憾的是,這種合作并沒有持續(xù)多久,Mac OS 10.2 就發(fā)布了,隨之而來的是一個蘋果新編寫的科學計算器。有傳言說,蘋果公司的某個高層得知他們向一位未曾蒙面的前蘋果員工支付了版權費。但是,我無法證實這一點。但不管怎樣, PCalc 沒有再被捆綁出售,這件事也就告一段落了。重寫 PCalc
2005 年,我再次重寫了 PCalc。這一次的目的是學習了新的 Carbon HIToolbox API,這是一種完全不同的編程方式,有點像 PowerPlant,只不過是蘋果出品的。
PCalc 3 擁有當時風靡一時的拉絲金屬外觀,深受大家喜愛。此外,還有一個全新的 Dashboard Widget,雖然核心代碼相同,但用戶界面是用 HTML 和 JavaScript 編寫的。Widget 在那個年代可是代表著未來。
不過,此次更新我并沒有收費,因為很久沒有發(fā)布新版本,我有點愧疚。時值 2006 年,我想到 PCalc 3 的項目規(guī)模非常適合移植到英特爾機器上,而且我還可以順便學習如何移植。我拿到了一臺英特爾的 Mac 原型機,構建了一個英特爾和 PowerPC 通用的可執(zhí)行文件,等準備在一月中旬推出。在隨后的幾年中,Mac 版推出了許多更新。
但隨著 2007 年 iPhone 誕生,以及 2008 年蘋果應用商店的推出,你猜猜看這個新平臺上推出的理想應用是哪款?
我在 PCalc Dashboard Widget 版代碼的基礎之上,花了一兩天的時間就在 iPhone 跑通了。以此為起點,我又使用 Cocoa 構建了一個全新的界面。PCalc 搖身變成了一款觸屏便攜式設備的完美應用,它從款在屏幕上用鼠標點擊按鈕來操作的模擬計算器,變成了你手中的一臺近乎真實的計算器,感覺再也不像是假的了。
PCalc 在英特爾 Mac 發(fā)布后的第一天就入駐了蘋果商店,同一天大約有 400 多款應用同時推出,而它的表現(xiàn)非常優(yōu)秀。最終,我們的大部分收入均來自 PCalc,而不是 DragThing,而且主要來自 iOS 而不是 Mac OS,所以我們后續(xù)的很多工作都優(yōu)先 iOS 版本,然后再移植回 Mac。我甚至將 Mac 上的 DragThing 主題引擎移植到了 iPhone 版的 PCalc 上。將一個在 Mac Pro 上運行的繪圖引擎放入手掌大小的界面中,這在當時看來是一件不可思議的事情。當然,5318008-gate(https://tla.systems/blog/2009/09/30/pcalc-prevents-iphone-profanity/)是一個小意外,大家見諒。
后來 iPad、視網膜顯示屏、更多 iPad、更高版本的 iPhone,以及其他眾多設備陸續(xù)推出,而我們的 PCalc 不僅在 Mac 應用商店中推出,而且還支持視網膜顯示屏,以及 iOS 版本的許多功能。
事實上,PCalc 4 在 2014 年在 Mac 應用商店中獨家推出。
在 Mac Catalyst 出現(xiàn)之前,這個新版本實際上是基于 iOS 源代碼的,這降低了開發(fā)難度,因為我不必反復編寫所有代碼。此外,我將核心代碼分解成了一個單獨的可移植塊,這樣就可以在其他地方使用了。第一個使用這個新的計算引擎的是 iOS 和 macOS 通知中心的迷你計算器,你可以使用它進行快速計算。
這個小部件被蘋果推薦,而且沒有發(fā)生任何不愉快的事情。那段時間我的壓力很大,在宣傳的影響下,銷售額大增,所以我花大手筆買了一臺 Retina 5K iMac,并度過一個愉快的假期。第二次使用是 2015 年歷史上最小的 PCalc。
蘋果手表版的 PCalc 是一次有趣的練習,嘗試如何在如此小的屏幕上嵌入完整的計算器界面。當然,80 年代我有一塊計算器手表,所以我就自己制作。相比之下,同年我還推出了歷史上最大的 PCalc,這一次是在蘋果電視上。
雖然我不清楚是否有人要求在電視上安裝計算器,但當時我決定凡是蘋果允許的地方,我都將裝上 PCalc,只是出于固執(zhí)。2016 年,蘋果增加了一個功能,允許 iOS 應用提供替代圖標,于是我開啟了一個小項目來制作一些新圖標。那段時間里,我做了很多這樣的項目來讓自己保持理智,至少可以分散注意力。
到目前為止,我已經制作了 50 多個圖標,包括十幾個驕傲的旗幟。那一年,我了解了很多不同驕傲旗幟的起源!升級為應用
與此同時,關于蘋果制造 AR/VR 耳機的謠言四起,我決心學習 3D 圖形學。大學時期,我曾修過一門課程,但在接下來的 22 年里,情況發(fā)生了一些變化。
不管怎樣,PCalc 的 About 頁面開始有點失控了。最初只是一個 3D 物理玩具,你可以向 PCalc 圖標扔香蕉,最終變成了一個小型駕駛游戲,榮登全球排行榜,甚至還有一個物理獎杯。
如今,這款游戲已變大變強,成為一個單獨的應用。2017 年,PCalc 獲得了一個吉祥物和一套 iMessage 貼紙—— David Lanham 用 Pascal 繪制了一個可愛的熊貓。
有一段時間,我很喜歡 David 在 Facebook 發(fā)布的各種貼紙。不過他從來沒有畫過熊貓(除了上面的紅色熊貓),我覺得我可以花錢讓 David 為我制作一套貼紙,然后放入 PCalc。你可能會注意到,About 頁面的屏幕截圖中有一些骰子。2019 年,我也在網上玩 D&D,我的好朋友 Jason Snell 建議我應該為 iPhone 做一個骰子應用。于是,PCalc 的第一個衍生產品誕生了!
Dice by PCalc 從動手到在應用商店發(fā)布,我花了兩周的時間,并借鑒了 PCalc 的 About 頁面上的大量代碼和概念。雖說是只花了兩周的時間,但我并沒有就此止步。后來,整個項目不僅過度設計,而且大幅拖延。我設計了五十多套骰子,如今甚至有拍照模式。無需多說,如今 Mac、蘋果手表和蘋果電視上都有這款游戲。這也成為了我探索蘋果新技術(比如 Mac Catalyst 和 SwiftUI)的試驗臺,同時也讓我看到將來 PCalc 該如何發(fā)展。
我們說回 PCalc。2020 年,蘋果的 iOS 和 Mac 上推出了一種新型的小部件——非交互式小部件。這意味著我不能使用這種技術構建計算器了。難道是因為我的原因嗎?或許吧。如今, iOS 上仍然保留了舊的小部件,但 Mac 上已經完全消失了。所以我需要將整個小部件移到別處,并將所有代碼移植到菜單欄中。
以上就是迄今為止我們付出過的所有努力。2022 年 PCalc 內部進行了很多改動,添加了在多個窗口中支持多個計算器,該功能首先在 iPadOS 上推出,并有望很快登陸 Mac。但是許多核心的數(shù)學代碼仍然與我在 1992 年編寫的第一個版本非常相似。我敢說,只要還能編寫代碼,我就會一次又一次地重寫 PCalc。我希望你也能像我一樣,在過去幾十年中一直很喜歡 PCalc!標簽:
- 經歷多次重寫,蘋果平臺最強科學計算器 PCalc 背后的故事
- 國家統(tǒng)計局:1-4月社會消費品零售總額149833億元-當前熱點
- 【環(huán)球新視野】國家衛(wèi)健委:2022年87.71%的縣醫(yī)院達到二級醫(yī)院能力
- 天天新消息丨最新!七所在京高校發(fā)布2023年高考招生政策
- 國安主場首勝雖遲但到 “第12人”獲兩隊將帥稱贊
- 打擊“養(yǎng)老詐騙”,全國半年破案3.9萬起,追贓308億元 精彩看點
- 天山鋁業(yè):5月15日融資凈買入375.7萬元,連續(xù)3日累計凈買入4447.41萬元-環(huán)球即時
- 世界觀天下!張雨綺參加戛納電影節(jié),玩梗弄丟行李走紅毯一切隨緣,前夫被曝欠款幾個億
- 【影評】銀河護衛(wèi)隊3——復聯(lián)4之后最佳
- 【世界報資訊】合體王菲女兒唱《天黑黑》!52歲莫文蔚凍齡狀態(tài)超驚人
- 十部門啟動百萬就業(yè)見習崗位募集計劃 促進盡快實現(xiàn)就業(yè)創(chuàng)業(yè)-世界熱點評
- 未成年人頻頻繞開防沉迷系統(tǒng) 平臺違規(guī)出租賬號-環(huán)球觀天下
- 【全球速看料】擴投資多部門再發(fā)力 有力有序推進重大項目建設
- 賣崽青蛙做錯了什么?青蛙人偶罰還是不罰?官方回應-世界快資訊
- 焦點信息:時代光影 百部川揚 | 智慧物流 渠通天下
- 時代光影 百部川揚 | ?高溫保供頌贊歌
- 演唱會有多拉動經濟?會造成這些影響! 播資訊
- 央行“量增價平”續(xù)作中期借貸便利(MLF)——金融支持實體經濟力度不減 世界快消息
- 國內油價調價窗口16日開啟 或迎年內“最大跌幅”
- 2023年“5·19中國旅游日”四川省分會場將在雅安市滎經縣舉行 天天觀熱點
- Verbena flowers in full bloom in Wuhan 世界報道
- 香港科技ETF(159747)盤初大漲超1.7%沖擊三連升,騰訊控股漲超2%
- 5月16日 9:45分 朗特智能(300916)股價快速拉升
- 5.32億保障!政策性農房保險為邢臺新河農戶撐起保護網
- 天天快報!安徽當涂經開區(qū)北區(qū)雨污水管網竣工驗收
- 發(fā)布年度保險理賠報告 探討保險服務八大趨勢|環(huán)球精選
- 要聞:中國平安:創(chuàng)新防災減災“保險+服務+科技”方案 護航高質量發(fā)展
- 天天熱點評!5月25日重磅啟幕!蘇州高鐵新城這場峰會亮點薈萃!
- 在“雙減”中做好科學教育“加法”
- 全球熱頭條丨swot分析t表示什么 SWOT分析方法中的ldquoTrdquo是指_____
- 1 國家統(tǒng)計局:1-4月社會消費品零售總額149833億元-當前熱點
- 2 【環(huán)球新視野】國家衛(wèi)健委:2022年87.71%的縣醫(yī)院達到二級醫(yī)院能力
- 3 天天新消息丨最新!七所在京高校發(fā)布2023年高考招生政策
- 4 國安主場首勝雖遲但到 “第12人”獲兩隊將帥稱贊
- 5 打擊“養(yǎng)老詐騙”,全國半年破案3.9萬起,追贓308億元 精彩看點
- 6 【影評】銀河護衛(wèi)隊3——復聯(lián)4之后最佳
- 7 香港科技ETF(159747)盤初大漲超1.7%沖擊三連升,騰訊控股漲超2%
- 8 聚焦:跑步多久才能起到減肥的作用15歲_跑步多久才能起到減肥的作用
- 9 每日資訊:基礎教育國家級教學成果獎擬授獎成果公示,北京這些學校獲獎
- 10 大興機場線性工程安置房開始交付 大興禮賢2793戶群眾陸續(xù)遷新居