Although for most apps, the compiler will take care of this. Usually, optimization beyond what the compiler does for you is usually only necessary in a few small timing-critical parts of an app.AidenShaw said:As you saw in the G5 video, there are many subtle optimizations to get the best out of any system.
Even different model chips within a single architecture. That's why compilers often have switches for chip-specific optimizations (386/486/586/686/Athlon/A64, 601/603/604/G3/G4/G5).AidenShaw said:Sometime these optimizations will benefit all architectures, sometimes what helps one chip will hurt another.
Reminds me of the Java mantra - write once, test everywhere.AidenShaw said:And for a commercial product, regression testing and QA need to be done on every architecture. So even if fat binaries are easy for the programmer, they double or triple the amount of work for the QA teams.
I'd call 386/486/586/686 at least four different architectures (while Netburst is mostly a P6 architecture, it has some visible differences). There are also visible changes between the original P6, the Pentium II, and the Pentium III.shamino said:Even different model chips within a single architecture. ... (386/486/586/686/Athlon/A64, 601/603/604/G3/G4/G5).
You can definitely make that argument.AidenShaw said:I'd call 386/486/586/686 at least four different architectures (while Netburst is mostly a P6 architecture, it has some visible differences). There are also visible changes between the original P6, the Pentium II, and the Pentium III.
AidenShaw said:http://www.programmersparadise.com/...g=Paradise&txtCategory=&txtProductID=I23+0BKJ
The smiley means that you're joking, I assume![]()
Intel compilers are not cheap, not cheap at all....
My hunch is Apple will do that with Intel's compiler but I still wonder why IBMs XLC compiler isn't used to compile OS X for PPC.rand() said:But that doesn't mean you won't see binary distributions of OS X compiled with Intel's compiler. Apple would be smart to use the best optimized compiler and get the absolute best performance out of X - especially if James' remarks about "optimizing the compiler for Apple" are true.
gio64 said:I feel that Intel/Apple connection will go far ahead of simple supply/Manufacturer relashionship.
I am afraid that Apple will simply rely on Intel for the entire production of some of their models.
It's a speculation, but it is a possibility, since the more Intel engineering will go in the product, the more reliability and components efficiency you can expect; and Apple certainly doesn't have a whole lot of experience in working with Intel hardware...
Having done significant commercial and enterprise development back in the NeXT days (involving fat binaries on at least 3 platforms), at least 95% of the time it was as simple as that. <gasp!> Since most of this is based on that work way back when, I'm making the assumption it will work about the same in OSX.AidenShaw said:[...]
And for a commercial product, regression testing and QA need to be done on every architecture. So even if fat binaries are easy for the programmer, they double or triple the amount of work for the QA teams. ("triple" when x64 64-bit is added to the x86 32-bit and PPC binary.)
The "just check a box" line for the fat binaries is fantasy (or fallacy).
Wow, "lunchbox" sure sounds busy lately...Kevin Smith, director of Intel Compiler Labs...
Is Photoshop completely Objective-C? How about Office? Firefox? How about Fortran applications? ....gweedo said:I guess I may be making the massive assumption that you are actually using the Apple frameworks, and not rolling your own libraries for everything under the sun. Endian'ness, etc. is all taken care of for you if you use them properly. If you are writing vanilla C code (vs. Objective-C using all the associated frameworks), then ya, you have to manage architecture differences yourself.
AidenShaw said:Is Photoshop completely Objective-C? How about Office? Firefox? How about Fortran applications? ....
To date Apple have still been doing their own engineering and design work on the computers, even if others build them. They continued to roll their own chipsets and so on. not that it really matters in the end, but some are concerned that Apple may give up on doing their own engineering altogether and concentrate on making pretty cabinets.pjkelnhofer said:Why are you afraid of this? Aren't some of the current motherboards that Apple uses actually manufactured by Foxconn, who I believe also manufactures many of the Intel branded motherboards. I know for sure that they manufacture the iMacs. So really what is the change?
Most developer's do NOT optimize for the PPC right now--they optimize their general program flow. Also, Apple (since Panther) has provided optimization routines, so that any developers taking advantage of those will automatically gain Intel optmizations with universal binaries. Additionally, all of the system calls ALL apps have to make are optimized by Apple. That said, there is a core of apps (an Apple's Pro and iLife are amoung them) that ARE invested in Altivec optmizations; some of these apps will transition to the Apple optimization calls, thus gaining cross-platform optimization, with the others having to deal with optimizing on both platforms.Sol said:Mac developers will have some tough choices to make in the next two years. The PowerMacs will use new PPC CPUs but consumer Macs will use x86 processors so what are they supposed to do? They could write Universal Binaries that would run un-optimized on both, they could write and optimize for PPC only or for x86 only. In the mean-time Windows developers have only x86 to write for so their jobs are simpler.
For the reasons stated above, most developers will NOT have to write for both platforms--Apple's software hides most of the transition for them. A majority of what isn't hidden only needs to be written once (i.e., routines that have to byte-swap), so its a one-time hit. Also many cross platform apps probably have Intel optimizations already--so they can just reuse those for the Mac. The most likely fall out is less Altivec optimization being done. For example, I would very much doubt that Photoshop would be impacted--Adobe probably has a huge investment in Intel optimizations that the Mac side will be able to immediately take advantage of, or if not immediately, it would be a "one time" hit to make it available. And once done, no further work on the Mac side would be needed to be optimized for Intel.Sol said:This is why I hate the Intel Macs. However faster than PPC the x86 hardware is supposed to be, Windows applications will be faster because Mac developers will have to write for two very different architectures in what is seen as a niché market.
I think the biggest risk is that a Windows-only shop that might be looking into porting to the Mac market may decide to wait and see if they can get away with what you described. In theory, people are buying Macs for ease of use and productivity, so being forced to use crappy Windows apps would be considered a last resort, and they'd still buy a good Mac version.Sol said:I suspect most applications will not have OS X native versions at all and will rely on something like WINE or Virtual PC to run on OS X.
cubist said:They are VERY EXPENSIVE, and in my previous experience, not all that good. Yes, the code they produce is fast in places, but there are bugs both in the compiler itself and in the generated code. I would not recommend them even for Windows developers.
Probably not.AidenShaw said:Is Photoshop completely Objective-C? How about Office? Firefox? How about Fortran applications? ....
Prior to the MacTel announcement, Mathematica was already ported to Windows, Mac OS and a wide variety of UNIX platforms. I'm sure they were able to quickly make a MacTel version because their engineers had already done all the hard work of making the code portable. So all they really need to do is change some definitions somewhere to turn on x86-specific code-paths and turn off PPC-specific code-paths, and recompile.gweedo said:That would be akin to magic, yes. However, Mathmatica is not a simple app and for sure not all ObjC... it didn't sound like they had significant problems.