30-летняя история приложения PCalc

Обязательное вступление. Лет 15 назад, работая тогда еще внештатным копирайтером компании Deep Apple, я взялся переводить историю MP3-проигрывателя SoundJam (вроде бы), который чуть было не стал приложением iTunes. Это был эпический текст, не менее монументальная история и несколько недель работы. К сожалению, текст побился со временем где-то в недрах сервера DeepApple.com, но когда-нибудь я снова его осилю. Потому что… это всегда интересно посмотреть как рождались, развивались и… умирали популярные приложения. Это жизнь, которую проживаешь вместе с авторами. И поэтому когда сегодня набрел на историю калькулятора PCalc, которому на днях исполнилось 30 лет — ни секунды не сомневался. Это надо перевести. И потом не потерять. Устраивайтесь поудобнее, это действительно интересно. — Дмитрий Дружбин, основатель и штатный редактор Fixed.one.

Многие люди, использующие сегодня PCalc на своих блестящих устройствах, не подозревают, что это приложение существует гораздо дольше, чем они думают. В некоторых случаях сильно-сильно гораздо дольше.

23 декабря 2022 года PCalc исполняется тридцать лет, поэтому я решил воспользоваться возможностью и посмотреть, как оно развивалось в течение последних двух-трех десятилетий.

PCalc фактически начался в 1992 году как… проект панели управления центральным отоплением.

Я был тогда студентом факультета вычислительной техники Университета Глазго и посещал занятия по взаимодействию человека и компьютера, посвященные созданию хороших пользовательских интерфейсов. Один из проектов курса заключался в разработке имитации панели управления для системы центрального отопления — установка температуры, возможность включать и выключать отдельно тепло и воду, ну и так далее. Она должна была быть реализована в виде стека Hypercard. К сожалению, он не сохранился, но поверьте — мой дизайн был безупречен.

Я решил, что он должен выглядеть аутентично, и вручную изготовил набор черно-белых цифр на ЖК-дисплее и маленькие кнопки, которые можно было нажимать. Скеоморфизм существует гораздо дольше, чем коринфская кожа. Хех.

Примерно в то же время мы начали кодировать с помощью THINK Pascal, а я в свободное время начал изучать API программирования Macintosh. Тогда то я и пришел к выводу, что не собираюсь быть следующим Жаном Мишелем Жарром. А еще мне очень нравилось, как работает пользовательский интерфейс Mac OS по сравнению с моим старым Atari. Поэтому я продал все свои синтезаторы и ST и купил один из последних Mac Classics — 4 мегабайта оперативной памяти, 40 мегабайт жесткого диска и 1-битный дисплей с разрешением 512×342 точек.

Я искал небольшой проект, чтобы научиться правильно программировать на моем новом Маке и вспомнил графику, которую я сделал для панели управления. Я подумал, что она подойдет и для калькулятора. Обратите внимание на «небольшой проект, просто чтобы сделать X», это будет упоминаться много раз в течение этого рассказа.

Встроенный в Mac OS калькулятор того времени был очень простым, и я решил написать калькулятор, который мог бы работать с двоичными и шестнадцатеричными числами, чтобы помочь мне в программировании. Так родилась идея PCalc. Я купил книги «Внутри Macintosh», тома I, II и III, и сел разбираться во всем этом. Тогда у нас не было Интернета — ну, по крайней мере, веб-страниц, — так что это было практически все, на что я мог опираться. В конце концов, я начал работать над внутренней логикой и создал пользовательский интерфейс вокруг всего этого. Система 7 была новой, поэтому я в конце концов получил копию массивного тома VI, чтобы посмотреть, что там изменилось. Я не думал, что мне нужно что-то из того, что было между томами III и VI.

Приложению нужно было название, и я выбрал PCalc — официальное сокращение от Programmers’ Calculator. На самом деле это был калькулятор программиста. Программистом был я. Я просто написал то, что хотел использовать сам. Я начал делиться им с несколькими друзьями на курсе и потихоньку улучшал его в течение следующих шести месяцев, пока он не стал действительно полезным и делал гораздо больше, чем просто помощь в программировании. Я также добавил в него цветной интерфейс, хотя на самом деле у меня не было Mac, который мог бы отображать цвета.

Больше скриншотов оригинальной версии смотрите здесь. Оригинальный файл «Read Me» находится здесь.

23 декабря 1992 года я решил, что выложу его в свободный доступ в качестве подарка этому миру.

Опять же, это было в 1992 году — FTP-сайты были новым трендом. Наш класс обнаружил приложение под названием Fetch, которое быстро распространилось по всему миру. Вы запускали одно приложение, и оно могло дать вам другие приложения. Я быстро понял, что есть такая штука под названием Info-Mac Archive, которая зеркалируется по всему миру, и я могу послать туда свое приложение, и оно будет автоматически зеркалироваться везде, чтобы люди могли его скачать. Итак, я внимательно прочитал все правила подачи заявок и упаковал их.

Вот письмо:

Date: Wed, 23 Dec 92 17:41:10 GMT
From: thomsonj thomsonj@dcs.gla.ac.uk
Subject: [*] PCalc 1.0 Submission

Прилагается binhex-файл, содержащий материал для вашего архива.
PCalc — это изящная имитация программируемого научного калькулятора.
Пожалуйста, обратите внимание, что он требует System 7.x.x.

Если вы используете System 6.0.x или более ранние версии, вот что вы теряете:
Программируемые функции с помощью простого мини-языка.
Фишечки System 7.x.x:
— Возможность управления и программирования через Apple Events.

  • Всплывающая подсказка для каждой кнопки, меню и диалогового окна.
  • Разрешение псевдонимов.
  • 32-битная разрядность. - Поддержка мультииндикатора.

Большой 16+3-значный дисплей.
Иерархическое меню пользовательских функций.
Включает множество функций для преобразования между различными весами и мерами.
Быстрое, в один клик, преобразование между десятичными, шестнадцатеричными и двоичными числами.
AND, OR, NOT, XOR, ROL, ROR и другие дополнительные функции в шестнадцатеричном и двоичном режиме.
30 именованных пользовательских констант, по 10 для каждого режима.
Отмена любого действия.
Улучшенная графика при просмотре на 256-цветном или 16-сером (или лучше) экране.
Цветная графика и экраны справки хранятся в отдельных расширениях плагина.
Работает на любом Mac с System 7.x.x или выше, с или без Color Quickdraw.

И, конечно же, это бесплатное ПО. Если в этом году вы скачаете только один калькулятор, попробуйте этот…

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

Я получил много хороших отзывов и продолжал совершенствовать его в течение следующего года. Версия 1.0.2 от марта 1993 года содержала следующее примечание:

Версия 1.0.2 исправляет некоторые ошибки, которые вызывали проблемы на цветных компьютерах mac, в частности с 16- и 24-битными дисплеями. Также значительно увеличена скорость работы на некоторых 8-битных экранах. Также не должно быть ярко-оранжевого цвета в неудобные моменты. Некоторые другие исправления и поддержка клавиши ‘,’ в качестве десятичного разделителя.

(Что более важно, есть тонна новых пасхальных яиц 😉

Да, мне действительно стоило купить те недостающие тома Inside Mac о том, как делать цвет.

Что касается одного из пасхальных яиц, о которых идет речь, то если поместить 42 в три определенных регистра памяти, а затем щелкнуть по экрану, то звуковая запись Дугласа Адамса скажет «Без паники!», и на экране появится следующая цитата из моей любимой серии «Путеводитель по галактике для путешественников»:

К слову, некоторое время спустя Дуглас стал бета-тестером другого моего приложения — DragThing. Я никогда не спрашивал его, что он думает обо всех отсылках к «Хич Хайкеру» в PCalc, если он вообще их видел. На значке всегда было 42, я стараюсь поместить 42 на экран, когда делаю скриншот, и там всегда была научная константа Ultimate Answer. Однажды на WWDC я имел удовольствие пожать его огромную руку, и он встретил меня искренним признанием и улыбкой. Я должен был встретиться с ним снова на более поздней WWDC, но он внезапно умер незадолго до этого, всего через несколько недель после того, как мы обменялись электронными письмами, и это очень сильно меня ранило. Вот почему на иконке PCalc до сих пор изображена цифра 42 — это дань уважения ему. Я не знал его очень хорошо, но он всегда с энтузиазмом отзывался о моей работе, а для меня, как большого поклонника его творчества, это значило очень много.

В любом случае, я позволил PCalc совершить свой путь по миру, в то время как я действительно выполнял кое-какую работу для своего диплома. После этого я немного отвлекся, сначала написав DragThing, а затем уйдя и получив работу в Apple, где я работал над OS X Finder и Dock. Но это уже другая история.

Когда я вернулся в Глазго в 2000 году, я искал еще один небольшой проект, чтобы изучить новую среду разработки Metrowerks CodeWarrior и сопутствующую структуру приложений PowerPlant. Я все еще получал электронные письма о PCalc, хотя прошло уже семь лет с момента последнего обновления, и это был идеальный объем работы для быстрого создания чего-то полезного. Так родился PCalc 2. Основной математический код на языке Pascal был вручную переведен на C, а новый пользовательский интерфейс был написан вокруг него на C++. PCalc 2 по-прежнему работал на старых машинах 68K, но теперь он мог работать не только на машинах PowerPC, но и на классической Mac OS, а также на новой OS X, с соответствующим пользовательским интерфейсом на обеих.

Основываясь на популярности DragThing, я также решил, что, возможно, мне следует брать за него небольшую плату. Одна из причин, по которой я был счастлив позволить ему провисеть семь лет между релизами, заключается в том, что первая версия была полностью бесплатной. Наличие платящих клиентов стало бы хорошим стимулом для ее обновления.

На конференции WWDC в 2001 году я вложил свою визитную карточку в руку молодого и свеженького Фила Шиллера и рассказал ему о PCalc. После этого, помню, его помощник прислал мне электронное письмо с просьбой дать Филу серийный номер, который я с радостью передал. Позже я узнал, что Стив Джобс использовал PCalc и, как утверждается, не совсем его возненавидел. Стив Возняк тоже купил несколько копий в том году.

К январю 2002 года у Apple все еще не было достойного калькулятора в OS X (некоторые могут утверждать, что это все еще так), и когда новые iMac G4 вот-вот должны были выйти, Apple обратилась ко мне и лицензировала PCalc, чтобы включить его в некоторые iMac, поставляемые в США. Была оговорена очень небольшая лицензионная плата за каждую копию, но любое число, умноженное на миллион, все равно очень неплохо!

К сожалению, это продолжалось недолго — вышла Mac OS 10.2, а вместе с ней и новый научный калькулятор, написанный Apple. Ходили слухи, что кто-то высокопоставленный в Apple выяснил, кому именно они выплачивают авторские отчисления — бывшему сотруднику Apple, которого они в глаза не видели. Но это не точно. В любом случае, PCalc больше не поставлялся в комплекте, и на некоторое время все снова затихло.

В 2005 году я снова переписал PCalc. На этот раз для того, чтобы освоить новые API Carbon HIToolbox — это был другой способ написания приложений, несколько похожий на PowerPlant, но предоставленный Apple.

PCalc 3 получил столь любимый в те времена матовый металлический корпус. Также был новый виджет Dashboard Widget, который имел тот же основной код, но пользовательский интерфейс, написанный на HTML и javascript. Будущее было за виджетами.

Однако я не стал брать плату за обновление — мне было неловко, что я давно не выпускал релиз.

В 2006 году это было идеальное по размеру приложение для переноса на Intel и изучения этого вопроса — я получил один из прототипов Mac на базе Intel, и к середине января у меня был готов универсальный двоичный файл для Intel и PowerPC. За прошедшие годы последовало множество обновлений версии для Mac OS.

Но 2007 год принес нам iPhone, а 2008-й — App Store, и угадайте, какое приложение было идеальным для переноса на эту новую платформу?

Я взял код, который я написал для версии PCalc для Dashboard Widget, и запустил его в течение дня или двух на iPhone. Затем я написал для нее совершенно новый интерфейс, на этот раз на Cocoa. PCalc был идеальным приложением для портативного устройства с сенсорным экраном — он превратился из имитации калькулятора на экране, где вы нажимали на кнопки с помощью мыши, в настоящий калькулятор в вашей руке. Было ощущение, что он больше не притворяется.

PCalc появился в App Store в первый же день вместе с примерно 400 другими приложениями и очень хорошо себя зарекомендовал. В конце концов, большая часть наших доходов стала поступать от PCalc, а не от DragThing, и от iOS, а не от Mac OS, поэтому большая часть усилий была направлена сначала на версию для iOS, а затем перенесена на Mac. Я даже перенес движок тем из DragThing на Mac в PCalc на iPhone. В то время это казалось безумием — взять довольно сложный движок для рисования, работающий на Mac Pro, и перенести его на устройство, которое помещается в руке.

Давайте забудем про 5318008-gate ради моего достоинства.

Потом появились iPad, дисплеи Retina, еще больше iPad, более мощные iPhone и… ну, остальное вы знаете. И тогда у нас появился PCalc в Mac App Store с поддержкой дисплея Retina и множеством функций из версии для iOS.

Фактически, в 2014 году PCalc 4 был выпущен как эксклюзив для Mac App Store.

Задолго до появления Mac Catalyst эта новая версия была основана на исходном коде iOS, что немного облегчило мне разработку, так как мне не пришлось писать все по нескольку раз. Я также выделил основной код в отдельный переносимый кусок, который можно было использовать везде.

Одним из первых применений этого нового механизма вычислений стал виджет мини-калькулятора для Центра уведомлений на iOS и macOS, который можно было использовать для быстрых вычислений.

Он был отмечен Apple, и ничего плохого не произошло. Это было довольно напряженное время, но реклама вызвала такой рост продаж, что я смог купить Retina 5K iMac и провести хороший отпуск.

А еще выпустить самый маленький PCalc в истории в 2015 году.

PCalc для Apple Watch — это забавное упражнение по размещению полноценного интерфейса калькулятора на очень маленьком экране. Конечно, у меня были часы с калькулятором еще в 80-х годах, поэтому я захотел сделать свои собственные.

Напротив, в том же году я представил самый большой PCalc в истории, на этот раз для Apple TV.

Я не уверен, что кто-то просил калькулятор на телевизоре, но к этому моменту я был полон решимости разместить PCalc везде, где мне позволит Apple, просто из упрямства.

В 2016 году Apple добавила возможность для приложений iOS предлагать альтернативные иконки приложений, поэтому я начал небольшой проект по созданию новых иконок. Люди могут помнить, что это было начало довольно стрессового времени в мире, и я делал много таких проектов, чтобы сохранить себя в здравом уме или хотя бы отвлечься.

К этому моменту в приложении насчитывается более пятидесяти иконок, включая дюжину «радужных» флагов. В тот год я узнал много нового об их происхождении!

В то же время начали ходить слухи о том, что Apple выпустит AR/VR-гарнитуру, и я решил, что хочу научиться работать с 3D-графикой. Я прошел курс в своем университете, но за 22 года все немного изменилось.

Как бы то ни было, экран «О программе» PCalc вскоре немного вышел из-под контроля. То, что начиналось как игрушка с 3D-физикой, в которой можно было бросать бананы в значок PCalc, в итоге превратилось в небольшую игру для водителей с мировой таблицей лидеров и даже физическим трофеем.

В настоящее время это отдельное приложение, потому что оно стало немного большим.

Если вы хотите узнать больше о многих скрытых секретах PCalc и об истории пасхальных яиц в целом, я сделал интересный доклад на Hacking with Swift Live.

В 2017 году у PCalc появился талисман и набор стикеров для iMessage в виде милой панды Паскаль, которую нарисовал Дэвид Лэнхем.

Некоторое время я любовался творчеством Дэвида в его различных наборах наклеек на Facebook. Однако он никогда не рисовал панд (кроме неправильных красных), и я понял, что могу просто заплатить Дэвиду, чтобы он сделал для меня набор наклеек и включил их в PCalc. Теперь вы даже можете купить его товар. (Паскаль, не Дэвид).

Вы можете заметить, что на скриншоте About screen есть несколько кубиков. В 2019 году я также играл в D&D в интернете, и мой хороший друг Джейсон Снелл (главный редактор журнала Macworld — прим. переводчика) предложил мне сделать приложение для игры в кости для iPhone. Так появился первый спин-офф от PCalc!

Dice от PCalc заняла у меня две недели от начала до выпуска в App Store, и в ней было использовано много кода и концепций с экрана About.

Я говорю, что это заняло у меня две недели, но я не совсем остановился на этом. Это стало чрезвычайно затянувшимся проектом. Я разработал более пятидесяти наборов кубиков, и теперь в программе есть даже режим фото. Излишне говорить, что теперь она есть и на Маке, часах Apple Watch и приставке Apple TV. Она также стала для меня чем-то вроде испытательного стенда для опробования новых технологий Apple, таких как Mac Catalyst и SwiftUI, с прицелом на то, что я смогу сделать с PCalc в будущем.

Вернемся к PCalc. В 2020 году Apple представила новый стиль виджетов на iOS и Mac. На этот раз неинтерактивные виджеты, что означало, что я больше не могу сделать из них калькулятор. Было ли это из-за меня? Возможно. На iOS старые виджеты сосуществуют и по сей день, но на Mac они исчезли совсем. Поэтому мне нужно было переместить виджет в другое место, и я перенес все приложение в менюбар.

И это мы уже практически в курсе последних событий. В 2022 году PCalc претерпел множество внутренних изменений, чтобы добавить поддержку нескольких калькуляторов в нескольких окнах, что сначала было реализовано на iPadOS, а в скором времени, надеюсь, придет и на Mac. Но большая часть основного математического кода по-прежнему тревожно похожа на ту первую версию, которую я написал в 1992 году.

Можно с уверенностью предположить, что я буду переписывать PCalc снова и снова, пока я могу писать код. И я надеюсь, что вы получали удовольствие от его использования на протяжении десятилетий так же, как и я!

Вы можете найти PCalc для iOS в App Store здесь, а PCalc для Mac здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *