Macintosh Programmer's Workshop ( MPW ) es un entorno de desarrollo de software para el sistema operativo Mac OS clásico , creado por Apple Computer . Para los desarrolladores de Macintosh , fue una de las herramientas principales para crear aplicaciones para System 7.x y Mac OS 8.x y 9.x. Inicialmente, MPW estaba disponible para su compra como parte del programa de desarrolladores profesionales de Apple, pero Apple lo convirtió en una descarga gratuita después de que CodeWarrior lo reemplazara . En Mac OS X, fue sustituido por el IDE Project Builder , que posteriormente se convirtió en Xcode .
Diseño
MPW proporcionaba un entorno de línea de comandos y herramientas, incluyendo ensambladores para 68k y PowerPC, así como compiladores para Pascal , C y C++ . El entorno de shell era similar a los shells de Unix en su diseño, pero estaba diseñado en torno al conjunto de caracteres y la interfaz gráfica de usuario (GUI) de Macintosh , reemplazando el entorno de terminal habitual con una interfaz de "hoja de trabajo". Esto permitía al usuario seleccionar y ejecutar secciones arbitrarias de un script de shell o rehacer comandos sin tener que volver a escribirlos. Además, las herramientas de línea de comandos solían incluir una interfaz gráfica estandarizada llamada Commando, que proporcionaba acceso limitado a las capacidades de línea de comandos del programa. Los depuradores no estaban integrados en MPW como en la mayoría de los IDE actuales, pero los compiladores de lenguaje admitían el formato de archivo de información de depuración simbólica utilizado por el depurador. MPW admitía un depurador a nivel de código fuente llamado SADE (Symbolic Application Debugging Environment). SADE no era una herramienta de MPW, sino que se ejecutaba como una aplicación independiente con una interfaz de usuario similar a la de MPW.
Los compiladores de Apple tenían algunas características que no eran comunes en otras plataformas ; por ejemplo, el compilador de Pascal era orientado a objetos, mientras que los compiladores de C y C++ incluían soporte para cadenas con prefijo de longitud (necesarias para las API orientadas a Pascal).
Pascal fue el lenguaje preferido original de Apple para el desarrollo de software de Macintosh, [ 2 ] y MPW se lanzó inicialmente solo con soporte para Pascal. El compilador AC se lanzó con MPW 2.0. El compilador C de MPW fue escrito bajo contrato para Apple por Greenhills , una variante para Macintosh del compilador C de Green Hills diseñado especialmente para Apple y que era similar a la versión que estaba disponible para Lisa Workshop. [ 3 ] [ 4 ] Además, el compilador C de MPW original era conocido por sus mensajes de error informales y frecuentemente humorísticos ("ya hicimos esta función"), [ 3 ] así como por dirigirse ocasionalmente a los usuarios por su nombre. [ 5 ] Estas peculiaridades no se mantuvieron después de la transición a PowerPC, cuando Apple reemplazó los originales con compiladores escritos por Symantec. El soporte para Pascal ya no se proporcionó a mediados de los 90 debido a la disminución de la popularidad del lenguaje. MPW siempre estuvo dirigido a una audiencia profesional y rara vez fue utilizado por desarrolladores aficionados debido al considerable precio del paquete; Para cuando se convirtió en software gratuito, ya había sido superado por las ofertas de Symantec y Metrowerks , así como por las propias herramientas de desarrollo de Apple, heredadas de NeXT y distribuidas gratuitamente con OS X. Ocasionalmente también estaba disponible como entorno de envoltura para compiladores de terceros, una práctica utilizada por Metrowerks y Absoft , entre otros. Apple ha interrumpido oficialmente el desarrollo de MPW y la última versión de OS X que lo ejecuta es la 10.4 'Tiger', la última en admitir el entorno Classic. Apple mantuvo un sitio web y listas de correo que daban soporte al software mucho después de su descontinuación, pero ese sitio ahora redirige a la página de Xcode.
MPW Shell
La consola MPW permitía redirigir la salida a archivos y ventanas. Si un archivo estaba abierto, la salida se guardaba tanto en el archivo como en la ventana abierta. Esta redirección de salida requería una modificación significativa de las llamadas al sistema de archivos, de modo que las herramientas no necesitaban realizar ninguna acción especial para heredar esta función: la consola MPW se encargaba de todo.
El lenguaje de comandos MPW Shell se basaba en el lenguaje csh de Unix , pero se amplió para admitir las principales características de la interfaz gráfica de usuario (GUI) de Macintosh. Contaba con comandos sencillos para crear menús, diálogos (mensajes) y nuevas ventanas de shell. El cursor se podía controlar y los scripts o herramientas de MPW se podían adjuntar fácilmente a un elemento del menú. Se podían especificar atajos de teclado para los comandos. El tamaño y la ubicación de las ventanas se podían controlar. Estas características eran populares en entornos de producción comerciales, donde los complejos procesos de compilación y empaquetado se controlaban mediante elaborados scripts.
El intérprete de comandos tenía algunas diferencias importantes con respecto a sus contrapartes de Unix. Por ejemplo, el Mac OS clásico no tenía nada comparable a la función `fork()` de Unix , por lo que las herramientas MPW se llamaban efectivamente como subrutinas del intérprete de comandos; solo una podía estar en ejecución a la vez, y las herramientas no podían ejecutar otras herramientas. Estas limitaciones inspiraron el proyecto MacRelix, un "sistema tipo Unix" para el Mac OS clásico. [ 6 ]
Aspecto y sensación
Funcionalmente, una hoja de trabajo es una combinación entre un documento de editor de texto y una ventana xterm . Cada ventana de hoja de trabajo está vinculada de forma persistente a un archivo. El usuario puede escribir cualquier cosa en cualquier parte de la ventana, incluidos comandos, que se pueden ejecutar mediante la tecla Intro del teclado; la salida del comando aparece en el punto de inserción. A diferencia de una ventana xterm, una hoja de trabajo MPW siempre está en modo de edición visual y puede ser reorganizada libremente por su usuario. Por lo tanto, una hoja de trabajo puede ser simplemente un script de comandos, un documento de texto o una combinación de ambos : un documento integrado que describe el historial, los procedimientos de mantenimiento y los resultados de las pruebas de un proyecto de software. El editor de texto comercial BBEdit conserva una función que denomina "hojas de trabajo de shell" en Mac OS X. El editor de texto Emacs proporciona búferes de shell, una función similar que funciona en todas las plataformas.
Otras herramientas
MPW incluía una versión de make . Su sintaxis era conceptualmente similar a la de make de Unix, pero utilizaba el carácter "f" largo de MacRoman para indicar dependencias. Más importante aún, dado que las limitaciones del intérprete de comandos impedían que make ejecutara herramientas por sí mismo, debía funcionar creando un script de acciones de compilación/enlace para ejecutarlo y luego enviándolo al intérprete de comandos. Si bien esto era suficiente la mayoría de las veces, impedía la creación de makefiles que pudieran tomar decisiones sobre la marcha basándose en los resultados de una acción anterior.
Aunque no se implementaron como herramientas MPW, el paquete también incluyó varios depuradores a nivel de código fuente a lo largo de su historia; SourceBug y SADE (Symbolic Application Debugging Environment) se utilizaron en sistemas MC680x0, mientras que el Power Mac Debugger (conocido durante el desarrollo como R2Db [ 7 ] ) proporcionaba servicios de depuración tanto locales como remotos para sistemas PowerPC, estos últimos mediante el uso de un programa servidor conocido como "debugger nub" en la computadora que se estaba depurando.
Herramientas MPW para la escritura
MPW incluía un conjunto de bibliotecas C estándar suficientes para que los desarrolladores pudieran crear sus propias herramientas MPW. Muchas utilidades de Unix podían portarse con pocos cambios. Una dificultad radicaba en la convención de salto de línea de Mac OS , que era diferente a la de Unix. Otra dificultad era el separador de rutas "," en Mac OS, pero muchas utilidades de Unix asumían "/". Además, muchas utilidades de Unix asumían que las rutas no contendrían espacios, una práctica común en Mac.
Durante varios años, el conjunto de herramientas GNU incluyó soporte de portabilidad para MPW como parte de libiberty . Esto se utilizó para dar soporte a los compiladores cruzados alojados en MPW que usaban General Magic y otros desarrolladores.
Historia
MPW fue creado a finales de 1985 por Rick Meyers, Jeff Parrish y Dan Smith (ahora Dan Keller). Originalmente se iba a llamar Macintosh Programmer's System, o MPS. (Cabe destacar que, casualmente, los tres apellidos empiezan con MPS). Como resultado, «MPS» siempre ha sido la firma del creador del MPW Shell. Dado que MPW iba a ser el sucesor de Lisa Workshop, decidieron cambiarle el nombre a Macintosh Programmer's Workshop. Antes de la llegada de MPW, las aplicaciones para Mac debían desarrollarse en una Lisa.
El compilador MPW Pascal desciende del compilador Lisa Pascal. Larry Tesler de Apple trabajó con Niklaus Wirth para crear extensiones de Object Pascal que Ken Doyle incorporó en una de las últimas versiones del compilador Lisa Pascal. Esto permitió MacApp .
Entre los primeros colaboradores se encontraban Rick Meyers (líder del proyecto e intérprete de comandos de MPW Shell), Jeff Parrish (editor de MPW Shell), Dan Smith (comandos de MPW Shell), Ira Ruben (ensamblador y muchas de las herramientas, incluidas Backup, PasMat y otras), Fred Forsman (Make, Print, SADE y procesador de macros de ensamblador), Al Hoffman (compilador de Pascal), Roger Lawrence (compiladores de Pascal y C, incluidos los mensajes de error), Ken Friedenbach (enlazador), Johan Strandberg (Rez, DeRez, RezDet), Steve Hartwell (bibliotecas de C) y Dan Allen (MacsBug, editor). El Grupo de Matemáticas Numéricas de Apple también contribuyó con bibliotecas matemáticas.
MPW 1.0 se completó el 24 de septiembre de 1986. Se corrigió una fuga de memoria del shell el 10 de octubre de 1986, y nació MPW 1.0.1. MPW 2.0 se completó el 20 de julio de 1987. MPW 3.0 se terminó el 30 de noviembre de 1988 e incluyó un compilador C completamente nuevo. [ 8 ] Casi al mismo tiempo, se puso a disposición la versión beta del compilador C++ así como MacApp 2.0 (para Object Pascal). [ 9 ] MPW 3.1 y 3.2 llegaron en los años siguientes, con MPW 3.3 lanzado en mayo de 1993, agregando soporte para herramientas distribuidas y enlace incremental. [ 10 ] MPW 3.4 se completó el 14 de julio de 1995 y MPW 3.5 se completó el 17 de diciembre de 1999. MPW 3.6 estaba en desarrollo cuando se detuvo el trabajo a finales de 2001.
Durante los últimos años de MPW, Greg Branche apoyó a MPW de manera no oficial a través de la lista de correo Apple MPW-dev. Se planeó cerrar la lista, y el servidor lists.apple.com que la alojaba, el 17 de enero de 2014, [ 5 ] una decisión que posteriormente se revirtió. [ 11 ]
Legado
MPW aún se puede usar para desarrollar aplicaciones para Mac OS X , pero la compatibilidad se limita a aplicaciones Carbon para computadoras PowerPC . Para desarrollar aplicaciones para Mac OS X basadas en otras tecnologías, es necesario usar Xcode u otro entorno de desarrollo compatible con OS X. MPW también incluía un sistema de control de versiones llamado Projector; este ha sido reemplazado por sistemas de control de versiones modernos y ya no es compatible con Mac OS X.
Véase también
Referencias
- ↑ "Referencia de comandos MPW - Taller para programadores de Apple Macintosh" .
- ↑ Webster, Bruce (febrero de 1986). "Herramienta de programación y el Atari ST" . BYTE . pág. 331. Consultado el 9 de mayo de 2015 .
- 1 2 Lentz, Robert (15 de mayo de 1994). "Mensajes de error de MPW C" . Archivado del original el 2 de junio de 2015.
- ^ Allen, Dan (1 de enero de 1988). "Dr. Dobb's: taller para programadores de Macintosh" . Dr. Dobb . Consultado el 21 de febrero de 2021 .
- 1 2 "Re: ¿Podría la última persona en irse apagar las luces?" . Archivado del original el 28-05-2014 . Recuperado el 27-05-2014 .
- ↑ "Orígenes de MacRelix" .
- ↑ Abreviatura de RISC 2-machine Debugger; Falkenburg, Dave; Topping, Brian. "Debugging on PowerPC" . MacTech .
- ↑ Poole, Lon (abril de 1989). "Desarrollos para desarrolladores" . Macworld . Vol. 6, n.º 4, pág. 93.
- ↑ Poole, Lon (abril de 1989). "C++ y MacApp 2.0" . Macworld . Vol. 6, n.º 4, pág. 91.
- ↑ Cohen, Raines (24 de mayo de 1993). "Lanzamiento de MPW 3.3 a través de APDA" . MacWeek . Vol. 7, n.º 21, pág. 12.
- ↑ "¡Indulto!" . Archivado del original el 14-02-2014 . Consultado el 27-05-2014 .
Lecturas adicionales
Enlaces externos
- Sitio web oficial de MPW en Wayback Machine (archivado el 14 de mayo de 2011)
- Desarrollo de sistemas operativos Macintosh
- Software clásico exclusivo para Mac OS, desarrollado por Apple Inc.
- Compiladores de C (lenguaje de programación)
- shells de comandos
- Editores de texto clásicos de Mac OS
- Herramientas de desarrollo descontinuadas
- Herramientas de programación clásicas de Mac OS
- Software clásico exclusivo para Mac OS