Intel-only binaries?
Since Apple started migrating to Intel, I've only heard of Apple and third compiling binaries either for PowerPC only, or universal binaries. Yet I remember that in last year's keynote, Steve Jobs said that XCode had an option to compile Intel-only binaries.
Is there any performance disadvantage on Intel to compiling universal binaries (as opposed to Intel-only binaries)? When do you think we'll start seeing Intel-only binaries? Who do you think will be the first to do so, if it's not Apple?
I'm mainly asking for speculation, not cold, hard facts.
Is there any performance disadvantage on Intel to compiling universal binaries (as opposed to Intel-only binaries)? When do you think we'll start seeing Intel-only binaries? Who do you think will be the first to do so, if it's not Apple?
I'm mainly asking for speculation, not cold, hard facts.
Comments
However, apps like the iLife apps will be easy to continue to be universal as it will be just a check box in the build process, the pro apps are going to be harder to justified as being universal as time goes by. This is because code is going to have to be maintained to handle the difference in endian, the use of SSE over AltiVec, even assembly language code maintance. My guess between 3 - 4 years, Adobe and co will offically drop support of the PPC in new versions. Apple will be earlier.
I keep thinking if that happens Apple would then make Rosetta backwards, I'm almost sure they have a Universal Binary version of it for PPC Macs. That would only make sense, right?
Originally posted by wgauvin
[snip] This is because code is going to have to be maintained to handle the difference in endian, the use of SSE over AltiVec, even assembly language code maintance. My guess between 3 - 4 years, Adobe and co will offically drop support of the PPC in new versions. Apple will be earlier.
Managing endian differences can already be done using C libraries that have been out for ages. These libraries primarily get used when transmitting data over a network (or internet) because you don't know what CPU the transmitting and receiving machines use, so you use the IEEE specified data formats so all computers can talk to each other. Also, formats like .jpg, .mov, etc. have their data formats specified so a file reader/writer would already have endianness issues worked out.
Apple also built an Accelerate framework. This allows coders to go against this framework, which then creates the necessary Altivec/SSE code at compile time. I would imagine this wouldn't give as tight code as hand optimized assembly, but would allow developers to get an accelerated v1 universal binary out the door. As the hand optimized code gets built, said company can use this point to sell upgrades from the 4000% faster! point of view.
Apple really has gone all out to give developers information and resources necessary to make the jump from PPC to PPC & intel. Now it's up to the developers to get cracking.
Pro apps or games that need a fast computer to run adequately are the first that will move to Intel-only binaries. Why? Because the PPC apps just won't cut it anymore for them so why provide a PPC binary if the last of the PPCs can't run them?
Most apps that don't need such horsepower should continue to be Universal Binaries for years to come.
It could be argued that the Quad G5 and Dual 2.5 and Dual 2.7 will be able to handle pro apps and games for the next few years...it'll be up to the developer to decide whether there are enough people on these machines to justify releasing a UB.
Originally posted by akheron01
Oh come on, don't you guys remember 68k apps and FAT apps and then later came PPC native applications. Apple has done this all before, no biggie.
There is a difference. Unlike System 7, MacOS X is built on a cross-platform base. It is the successor to OpenSTEP which was also cross-platform and which ran on several platforms, not just two. Apple is putting a lot of time and money into Universal Binaries. This is not just a transitional stratergy.
Making a Intel only build is as easy as a UB build. But there's really no reason to go with a Intel only build, except if you REALLY want to save some space. And thats not worth it in most cases IMO.
Agree. There is no reason for developers to stop building PPC apps because using Apple developer tools it's easy just to make both types of apps
Originally posted by alberto
Agree. There is no reason for developers to stop building PPC apps because using Apple developer tools it's easy just to make both types of apps
It's also a preventive measure...if Apple were to revert back to PPC 5 or 6 years down the road, the apps will work right out of the box.
Building Universal Binaries kinda forces developers to write clean and architecture-independant code (makes them consider endian issues as well as not use architecture specific code...except maybe SSE ).
Originally posted by Gene Clean
It also makes them unoptimized, and alien to some of the benefits of one platform over the other (AltiVec for example, or SSE3).
True...that would be the price to pay.
It won't stop people from releasing Intel-only binaries...there are already a few floating around right now.
Originally posted by T'hain Esh Kelch
Making a Intel only build is as easy as a UB build. But there's really no reason to go with a Intel only build, except if you REALLY want to save some space. And thats not worth it in most cases IMO.
Actually the price you pay by supporting both PPC and Intel is you have to test both PPC and Intel and that costs money. I expect quite a number of software developers will be eager to drop PPC support.
Games manufacturers also stand to gain a fair bit in porting times if they decide to switch Intel only. That said there are years of PPC support ahead.
Today I just ordered a dual 1.8 GHz G4 upgrade for my Digital Audio Power Mac, maybe its just wishful thinking on my part