Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info.

50 MPW Advantages

From Higher Intellect Vintage Wiki
Jump to navigation Jump to search
MPW.GIF

Why MPW is an Important Tool for All Developers

BACKGROUND

MPW is an open, configurable, and scriptable development environment which provides you with the flexibility you need to support the most complex Macintosh software development projects you can imagine. It is unique in that it combines the familiarity of a traditional command-line interface with the benefits of the modern Macintosh graphical user interface. MPW is a past winner of the MacUser magazine Eddy award for software excellence in the "Best New Programming Language for Programmer" category.

MPW can be used as a general-purpose C/C++ development environment since it includes an editor, assemblers and C/C++ compilers for generating MC680x0 and PowerPC code, and the necessary build support tools such as linkers and a resource compiler. But its appeal is much broader since it includes dozens of additional tools for performing a variety of file-related operations that would be difficult or awkward to do in any other way. As a result, many programmers invest in MPW even if they are also using other popular development environments such as Metrowerks CodeWarrior or Symantec C++ for Macintosh.

WORK ENVIRONMENT

1Unlike most other programming editors, the MPW editor lets you edit files of any size, not just those that will fit in available memory.
2The MPW editor includes a customizable tool bar inside each window, making access to the bar handier than in systems where the bar doesn't move with the window.
3Individual editing windows can be hidden (without being closed) to reduce screen clutter.
4Unlike some other development environments, the MPW editor supports multiple levels of Undo.
5Any command or sequence of commands can be entered manually from an editing window, executed from a text file, or triggered upon selection of a menu item.
6"Commando" dialogs provide you with a helpful visual interface for specifying command parameters.
7MPW commands support UNIX-style piping and filtering for data processing flexibility.
8UNIX tools can be trivially ported to run in the MPW environment. Some examples of those that have been ported are awk, bison, yacc, lex, diff, flex, sed, perl, python, tags, and gcc.
9Results of MPW commands can be redirected to any open window or to a new or existing file.
10Commonly-used commands can be kept in the Worksheet window for rapid, convenient access.
11All of the MPW key bindings can be customized to suit your preferences. For example, you could emulate the vi or emacs editor command keys.
12You can easily assign your own names to any set of commands.
13Windows can be set to auto-save their contents, eliminating the need to explicitly save.
14You can print out highly-customized source listings which include headers, line numbers, borders, watermarks, and page breaks.
15Text markers can be added by hand or programmatically by scripts and can be navigated using the marker browser.
16MPW has a great animated about box!

TOOLS

17MPW includes MrC, a highly-optimizing C/C++ PowerPC compiler you can use to squeeze extra performance out of your code.
18The Rez resource compiler gives you the opportunity to define resource types textually, using comments and mnemonic constants to improve readability and maintainability.
19Using the DeRez tool, you can generate source code for all resources, including those you may have created using a visual editor.
20Tools are provided to perform a variety of useful housekeeping operations on resource forks, including corruption detection and equivalency tests.
21Tools are provided for comparing two text files and providing a complete description of their differences. The CompareFiles script makes merging two versions of a source file very easy.
22Tools are provided to simplify the sorting, merging, and purging of lists of information.
23MPW has full-featured macro assemblers for both MC680x0 and PowerPC development.
24The MPW linker can combine code written in C, C++, Assembler, and third-party compilers, such as Pascal and Fortran, that supports the standard Object Module Format.
25For convenience, the output of many tools is in the form of executable statements. In the case of an error statement, you can execute it to go directly to the offending line of source code.
26MPW has commands that let you manipulate invisible files.
27The SetFile command lets you set the attributes of a file, including type, creator, creation date, modification date, icon location, etc.
28The Choose command lets you programmatically mount and unmount servers.
29The Backup command makes it easy to synchronize a working folder with a master backup folder.
30The VersionList command lets you display version information for any file or set of files.
31The SetVersion command lets you programmatically create or increment version number resources.
32MPW has a variety of tools for examining post-compilation files, including 680x0 object files, XCOFF files, PEF containers, and SYM files.

BUILD SYSTEM

33MPW supports the use of Make files, allowing fine-tuned control over the build process.
34The Make system lets you apply different compiler options to different source file compilations. Most other development environments use the same set of options for all source files in a project.
35"Starter" Make files can be quickly created with the CreateMake tool.
36The Make system allows you to build multiple targets and "fat" binaries. This is not possible with some development environments.
37Multiple builds can be chained together, thus allowing very complex build requests to be executed easily and without intervention.

HELP SYSTEM

38MPW provides convenient hot-key access to the Macintosh Programmer's Assistant help databases. Simply highlight the name of a toolbox routine in the editor and press the hot key to display information about it.
39MPW provides a hot key to return the template for the selected toolbox function.
40MPW has comprehensive man-page help for its own commands.

SCRIPTING SYSTEM

41MPW has an integrated scripting system you can use to perform operations of arbitrary complexity.
42The MPW scripting language supports regular-expression pattern matching, making possible complex text manipulation operations.
43The MPW scripting language allows the use of wildcard characters, making it easier to specify a group of files on which to operate.
44You can easily extend the MPW scripting system by writing your own commands.
45The MPW scripting system is fast.
46MPW has the ability to launch any application and to control any AppleScript-aware application.
47You can trigger MPW scripts remotely from other applications that are able to send AppleScript commands.

PERFORMANCE ANALYSIS

48MPW comes with MrPlus, PPCProff, and 68K Perf, a rich set of performance measurement and analysis tools.

TEAM DEVELOPMENT

49MPW comes with Projector, an integrated source code control system. You can also access third-party source code control systems from MPW, including Perforce, CVS, and SourceSafe.
50A standalone version of Projector, called SourceServer, can be used with any development environment that is able to send Apple event commands to it.

Summary

MPW is useful for everyone, even those using other development environments for day-to-day compile-debug-test cycles. You just can't beat its broad array of support tools and its automation capabilities.

See Also