Starting in the early nineties, the PowerPC chip became the primary CPU architecture used in Macs for the next decade and a half. While it had potential, both it and the corporate politics behind it ultimately became a hinderance for Apple when competing with the vast and growing x86 and developing x64 architectures from Intel and AMD.
Apple made the transition to the x86 and x64 architectures very smooth with the use of Rosetta and Universal Binary applications, but this effort also resulted in a lot of remaining PowerPC code that is either still being used or is being packaged with Intel code in Universal Binary applications.
This is not a problem for most users, but since Apple is finally doing away with all PowerPC support in OS X 10.7 Lion, people who may still be using older older PowerPC code will find no option to run it. In addition, some people might wish to get rid of the unused PowerPC code in Universal Binary applications.
Identifying PowerPC applications
One way to find if an application is a PowerPC application is to get information on it in the Finder, and check in the "General" section to see what kind it is. The architecture will be shown in parentheses next to the word "Application."
While this will identify a single application, it may be a bit cumbersome to do this for all of your applications, therefore there is another approach that may be more convenient, which is to use the System Profiler utility. With the System Profiler open, go to the "Software" section and click "Applications." The tool will list all applications on the system (both from the Applications folder and elsewhere) along with various attributes about them including version, bitness, date last modified, and the kind (architecture).
When you see an application that's identified as a PowerPC application, you can select it to see more attributes about it, including its location, which you can use to find the program file on your hard disk. From here you can either try to find an updated version of the application or an alternative application that is built with native Intel code.
Slimming universal apps
While universal applications will run on both PowerPC and Intel architectures, unless you plan on moving a specific copy of an application between computers with different architectures then there is no point in keeping the code that is not used. The code will not harm anything so just leaving it be will not affect much, but removing it may clear up some hard-drive space (depending on the applications and how many you have) or people may just want to do it for fun.
There are several ways to strip the unused code from an application package, but the easiest is to use a utility with maintenance and cleaning options such as XSlimmer, Monolingual, Snow Leopard Cache Cleaner, and Drive Genius. These programs will run the slimming routines on the application file and remove the PowerPC code from it, making the file smaller and thereby freeing up more hard drive space.
If you care to try this procedure using the Terminal, you can do it by running the "ditto" command, which is used to copy hierarchies of files but can be set to filter out application code based on architecture. To do this for a single application, run the following procedure:
Open the Terminal
Type "sudo ditto --arch i386 " followed by a single space
Drag the desired application to the Terminal window to complete the full path to that application.
Ensure there is a space and enter the name of the new application file (the command should look something like the following).
sudo ditto --arch i386 /Applications/MyApp.app MyApp.app
When you press enter, the command will create a new application in your home directory that is stripped of the PowerPC code, and that can then be moved back to your Applications directory, replacing the old application.
Keep in mind that while stripping unused code from an application can be done and will free up some hard-drive space, it also might break the code-signing of the application. This currently should not affect the program, but some system services like the firewall may require user input to allow the service to keep running for the program.