Мастерская программиста Macintosh
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2008 г. ) |
![]() | |
![]() Исполняемый сценарий MPW Shell. | |
Разработчик(и) | Apple Компьютер |
---|---|
Первоначальный выпуск | 24 сентября 1986 г |
Стабильная версия | 3.6d7
|
Операционная система | Классическая MacOS |
Тип | Инструмент разработки программного обеспечения |
Лицензия | бесплатное ПО с закрытым исходным кодом |
Веб-сайт | Официальный сайт MPW на Wayback Machine (архивировано 14 мая 2011 г.) |
Macintosh Programmer's Workshop ( MPW ) — среда разработки программного обеспечения для Mac OS классической операционной системы , написанная Apple Computer . Для разработчиков Macintosh это был один из основных инструментов для создания приложений для System 7.x и Mac OS 8.x и 9.x. Первоначально MPW был доступен для покупки в рамках программы профессиональных разработчиков Apple, но Apple сделала его бесплатной загрузкой после того, как его заменил CodeWarrior . В Mac OS X его заменила Project Builder IDE , которая в конечном итоге стала Xcode .
Дизайн
[ редактировать ]MPW предоставил среду и инструменты командной строки , включая 68k и PowerPC, ассемблеры а также Pascal , C и C++ компиляторы . Среда оболочки чем-то похожа на оболочки Unix по дизайну, но разработана на основе набора символов Macintosh и графического пользовательского интерфейса , заменяя обычную среду терминала интерфейсом «рабочего листа», позволяющим пользователю выбирать и запускать произвольные разделы сценария оболочки или повторить команды без повторного ввода. Кроме того, инструменты командной строки обычно имели несколько стандартизированный графический интерфейс под названием Commando, который обеспечивал ограниченный доступ к возможностям командной строки программы. Отладчики современных не были интегрированы в MPW, как большинство IDE , но компиляторы языка поддерживали символьный формат файла отладочной информации, используемый отладчиком. MPW поддерживал отладчик уровня исходного кода под названием SADE (Среда отладки символических приложений). SADE не был инструментом MPW, а работал как отдельное приложение с пользовательским интерфейсом, похожим на MPW.
Компиляторы Apple имели некоторые функции, которые не были распространены на других платформах — например, компилятор Pascal был объектно-ориентированным, а компиляторы C и C++ включали поддержку строк с префиксом длины (необходимых для API-интерфейсов, ориентированных на Pascal).
Паскаль изначально был предпочтительным языком Apple для разработки программного обеспечения для Macintosh. [ 1 ] и MPW изначально был выпущен только с поддержкой Pascal. Компилятор AC был выпущен вместе с MPW 2.0. Компилятор MPW C был написан по контракту для Apple компанией Greenhills , Macintosh-вариантом компилятора C Green Hills, разработанным специально для Apple и похожим на версию, доступную для Lisa Workshop. [ 2 ] [ 3 ] Кроме того, оригинальный компилятор MPW C был известен своими случайными и часто юмористическими сообщениями об ошибках («мы уже делали эту функцию»), [ 4 ] а также иногда обращаясь к пользователям по имени. [ 5 ] Эти причуды не сохранились после перехода на PowerPC, когда Apple заменила оригиналы компиляторами, написанными Symantec. К середине 90-х годов поддержка Pascal прекратилась из-за снижения популярности языка. MPW всегда был ориентирован на профессиональную аудиторию и редко использовался разработчиками-любителями из-за значительной цены пакета; к тому времени, когда оно стало бесплатным, оно уже давно было вытеснено предложениями Symantec и Metrowerks , а также собственными инструментами разработки Apple, унаследованными от NeXT и распространявшимися бесплатно вместе с OS X. Иногда оно также было доступно в качестве среды-оболочки для сторонних разработчиков. партийные составители - практика, используемая, среди прочего, как Metrowerks, так и Absoft . Apple официально прекратила дальнейшую разработку MPW, и последней версией OS X, на которой он работает, является 10.4 «Tiger», последняя версия, поддерживающая классическую среду. Apple поддерживала веб-сайт и списки рассылки , которые поддерживали это программное обеспечение еще долгое время после его прекращения, но теперь этот сайт перенаправляется на страницу Xcode.
MPW Шелл
[ редактировать ]В MPW Shell реализовано перенаправление вывода в файлы, а также в окна. Если файл был открыт, вывод будет идти в файл и в открытое окно. Такое перенаправление вывода потребовало значительного исправления вызовов файловой системы, чтобы инструментам не нужно было делать ничего особенного для наследования этой функции: всю работу выполнила оболочка MPW.
Командный язык оболочки MPW был основан на языке csh Unix , но был расширен для поддержки основных функций графического интерфейса Macintosh. В нем были простые команды для создания меню, диалоговых окон (подсказок) и новых окон оболочки. Курсором можно было управлять, а к пункту меню можно было легко прикрепить сценарии или инструменты MPW. Можно указать сочетания клавиш команд. Размер и расположение окна можно контролировать. Эти функции были популярны в коммерческих производственных средах, где сложные процессы сборки и упаковки контролировались сложными сценариями.
Оболочка имела некоторые важные отличия от своих аналогов в Unix. Например, в классической Mac OS не было ничего похожего на Unix fork() , поэтому инструменты MPW фактически вызывались как подпрограммы оболочки; в любой момент времени может быть запущен только один из них, а инструменты сами по себе не могут запускать другие инструменты. Эти ограничения послужили источником вдохновения для проекта MacRelix — «Unix-подобной системы» для классической Mac OS. [ 6 ]
Смотри и чувствуй
[ редактировать ]Функционально рабочий лист представляет собой нечто среднее между документом текстового редактора и окном xterm . Каждое окно рабочего листа постоянно привязано к файлу. Пользователь может вводить что угодно в любом месте окна, включая команды, которые можно выполнить с помощью клавиши Enter на клавиатуре; Вывод команды появляется в точке вставки. В отличие от окна xterm, рабочий лист MPW всегда находится в режиме визуального редактирования и может быть свободно реорганизован пользователем. Следовательно, рабочий лист может быть чисто командным сценарием, чисто текстовым документом или смесью того и другого — интегрированным документом, описывающим историю, процедуры обслуживания и результаты тестирования программного проекта. Коммерческий текстовый редактор BBEdit сохраняет функцию, называемую «рабочими листами оболочки» в Mac OS X. Текстовый редактор Emacs предоставляет буферы оболочки — аналогичную функцию, которая работает на разных платформах.
Другие инструменты
[ редактировать ]MPW включал версию make . Его синтаксис концептуально был похож на синтаксис make в Unix, но для обозначения зависимостей использовался символ MacRoman длинный . Что еще более важно, поскольку ограничения оболочки не позволяли программе make запускать инструменты самостоятельно, ей приходилось создавать сценарий действий компиляции/компоновки, которые нужно было выполнить, а затем доставлять его в оболочку для выполнения. Хотя в большинстве случаев это было достаточно хорошо, это исключало возможность использования make-файлов, которые могли бы принимать решения на лету на основе результатов предыдущего действия.
пакет также включал несколько отладчиков Хотя пакет не был реализован как инструменты MPW, за всю его историю уровня исходного кода; SourceBug и SADE (символическая среда отладки приложений) использовались в системах MC680x0, а отладчик Power Mac (известный во время разработки как R2Db) [ 7 ] ) предоставлял услуги как локальной, так и удаленной отладки для систем PowerPC, причем последняя использовала серверную программу, известную как «отладчик», на отлаживаемом компьютере.
Написание инструментов MPW
[ редактировать ]MPW включал набор стандартных библиотек C, достаточный для того, чтобы разработчики могли создавать свои собственные инструменты MPW. Многие утилиты Unix можно было портировать с небольшими изменениями. Одной из проблем было соглашение о переводе строки в Mac OS , которое отличалось от Unix. Другим был разделитель пути «:» в Mac OS, но многие утилиты Unix предполагали «/». Многие утилиты Unix также предполагали, что имена путей не будут содержать пробелов, что является обычной практикой на Mac.
В течение ряда лет инструментальная цепочка GNU включала поддержку переносимости MPW как часть libiberty . Это использовалось для поддержки кросс-компиляторов, размещенных на MPW, используемых General Magic и несколькими другими разработчиками.
История
[ редактировать ]MPW была основана в конце 1985 года Риком Мейерсом, Джеффом Пэрришем и Дэном Смитом (ныне Дэн Келлер). Она должна была называться «Система программиста Macintosh» или MPS. (Обратите внимание, что по совпадению три фамилии начинаются с MPS.) «MPS» всегда было подписью создателя В результате этого MPW Shell. Поскольку MPW должен был стать преемником Lisa Workshop, они решили переименовать его в Macintosh Programmer's Workshop. До появления MPW приложения Mac приходилось разрабатывать на Lisa.
Компилятор MPW Pascal является потомком компилятора Lisa Pascal. из Apple Ларри Теслер работал с Никлаусом Виртом над созданием расширений Object Pascal , которые Кен Дойл включил в одну из последних версий компилятора Lisa Pascal. Это позволило MacApp .
Среди первых участников были Рик Мейерс (руководитель проекта и интерпретатор команд MPW Shell), Джефф Пэрриш (редактор MPW Shell), Дэн Смит (команды MPW Shell), Ира Рубен (ассемблер и многие инструменты, включая Backup, PasMat и другие), Фред Форсман (Make, Print, SADE и ассемблерный макропроцессор), Эл Хоффман (компилятор Pascal) Роджер Лоуренс (компиляторы Pascal и C, включая сообщения об ошибках), Кен Фриденбах (компоновщик), Йохан Страндберг (Rez, DeRez, RezDet), Стив Хартвелл (библиотеки C) и Дэн Аллен (MacsBug, редактор). Apple Numerics Group также предоставила математические библиотеки.
Разработка MPW 1.0 была завершена 24 сентября 1986 года. Утечка памяти оболочки была исправлена 10 октября 1986 года, и родился MPW 1.0.1. MPW 2.0 был завершен 20 июля 1987 года. MPW 3.0 был выпущен 30 ноября 1988 года и включал совершенно новый компилятор C. [ 8 ] бета-версия компилятора C++ , а также MacApp 2.0 (для Object Pascal). Примерно в то же время стали доступны [ 9 ] MPW 3.1 и 3.2 появились в следующие несколько лет, а в мае 1993 года была выпущена версия MPW 3.3, в которой была добавлена поддержка распределенных инструментов и дополнительное связывание. [ 10 ] MPW 3.4 был завершен 14 июля 1995 года, а MPW 3.5 — 17 декабря 1999 года. MPW 3.6 находился в стадии разработки, когда работы были остановлены в конце 2001 года.
В годы заката MPW Грег Бранш неофициально поддерживал MPW через список рассылки Apple MPW-dev. Список и сервер lists.apple.com, на котором он размещался, планировалось закрыть 17 января 2014 года. [ 11 ] решение, которое позже было отменено. [ 12 ]
Наследие
[ редактировать ]MPW по-прежнему можно использовать для разработки для Mac OS X , но поддержка ограничена Carbon приложениями для компьютеров на базе PowerPC . Для разработки приложений Mac OS X на основе других технологий необходимо использовать Xcode или другую среду разработки, совместимую с OS X. MPW также включал систему контроля версий под названием Projector; он был заменен современными системами контроля версий и больше не поддерживается в Mac OS X.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Вебстер, Брюс (февраль 1986 г.). «Инструмент программирования и Atari ST» . БАЙТ . п. 331 . Проверено 9 мая 2015 г.
- ^ «Re: [Юмор] Старые сообщения об ошибках MPW C» . Архивировано из оригинала 28 мая 2014 г. Проверено 27 мая 2014 г.
- ^ Аллен, Дэн (1 января 1988 г.). «Доббс - Мастерская программиста Macintosh» . Проверено 21 февраля 2021 г.
- ^ Сообщения об ошибках MPW C , 15 мая 1994 г. - Роберт Ленц
- ^ «Re: Выключит ли, пожалуйста, свет тот, кто уйдет последним?» . Архивировано из оригинала 28 мая 2014 г. Проверено 27 мая 2014 г.
- ^ «Происхождение МакРеликса» .
- ^ Сокращение от двухмашинного отладчика RISC; Фалькенбург, Дэйв; Топпинг, Брайан. «Отладка на PowerPC» . МакТех .
- ^ Пул, Лон (апрель 1989 г.). «Разработки разработчиков» . Макмир . Том. 6, нет. 4. с. 93.
- ^ Пул, Лон (апрель 1989 г.). «C++ и MacApp 2.0» . Макмир . Том. 6, нет. 4. с. 91.
- ^ Коэн, Рейнс (24 мая 1993 г.). «Выпуск MPW 3.3 через APDA» . МакВик . Том. 7, нет. 21. с. 12.
- ^ «Пожалуйста, тот, кто уйдет последним, выключит свет?» . Архивировано из оригинала 28 мая 2014 г. Проверено 27 мая 2014 г.
- ^ «Отсрочка!» . Архивировано из оригинала 14 февраля 2014 г. Проверено 27 мая 2014 г.
Дальнейшее чтение
[ редактировать ]- Уэст, Джоэл (ноябрь 1987 г.). Мастерская программиста по программированию на Macintosh . Бантамские книги. ISBN 0-553-34436-6 .
- Аллен, Дэниел К. (1989). Программирование на Macintosh: передовые методы (1-е изд.). Ридинг, Массачусетс: Аддисон-Уэсли. ISBN 0-201-51737-Х . Глава шестая посвящена MPW.
Внешние ссылки
[ редактировать ]- Официальный сайт MPW на Wayback Machine (архивировано 14 мая 2011 г.)
- Разработка операционных систем Macintosh
- Классическое программное обеспечение только для Mac OS, созданное Apple Inc.
- Компиляторы C (языка программирования)
- Командные оболочки
- Классические текстовые редакторы Mac OS
- Инструменты разработки, выпуск которых прекращен
- Классические инструменты программирования для Mac OS