Several years ago Apple reversed their position on Java and have been ignoring it ever since. This is merely the last act in the Java play at Apple. Goodnight sweet prince!
Several years ago Apple reversed their position on Java and have been ignoring it ever since. This is merely the last act in the Java play at Apple. Goodnight sweet prince!
That's standard practice. You make it easy to port apps to your platform until you gain traction and until your exclusive technologies do, then make it hard to port away from your platform by phasing out technologies that would enable that.
A Java app that runs fine on OSX but that's easy to port to (or directly run on) Windows or Linux does Apple no good while an application written in Objective-C depending on the latest *Kit stuff locks both developer and user into Apple's walled garden.
Their move from GCC to clang is no coincidence.
Erm... what? Clang has already been ported to Windows (and other platforms). Their move from GCC to clang comes from GCC sucking goat's balls at error reporting and being integrated into an IDE. You might want to note Apple produces an IDE so that's kind-of a big deal for them, and a big reason for the existence of LLVM and related technologies (Clang, LLDB, ...) is very much that they can be used as libraries and easily integrated into tools.
Seriously, you should be careful, your anti-apple-tag shows a bit too heavily in that comment.
If they ever perceive a threat from their competition, Clang/LLVM provides a lot more maneuvering space than GCC ever would.
And yes, GCC is a very hard thing to integrate into tools and it's that way by design.
Any reference for that claim? This would seem to be an absurd design decision. It's more work to design this way but the benefits are enormous.
I can't find a citation for this at the moment, but RMS has said on several occasions that GCC has to be difficult to integrate into other tools just for the sake of pushing the GPL. For example, this was his explanation for why improvements to GCC's intermediate representation formats (GIMPLE and friends) were refused for a long time.
Weird. Though not as bad as the worst of Microsoft's shenanigans, this strikes me as in the same class of uncivil moves that the FSF complains about proprietary software vendors pulling.
Why? Did you buy a copy of GCC?
We are using two different definitions of "open". Back in the 80's Unix was considered "open" because you could compile a program for various flavors and the various flavors could share data on the same network (contrary to other platforms of the time). GCC is open not because it runs on many platforms, but because you can freely inspect, change it and redistribute it. Those are two completely different meanings.
But if end users are hacking stuff, then they are also developers. Replace "end users" with "developers" and it gets interesting:
"So basically anything that would make it easier for developers to ship stuff that developers aren't allowed to hack is bad."
So making it hard to hack X for people trying to make Y hard to hack is okay. Seems a bit weird.
It mostly means that they can use the libraries without having to open-source Xcode itself. A compiler is not exactly a competitive advantage for a company as big as Apple.
> And yes, GCC is a very hard thing to integrate into tools and it's that way by design.
Uh yes and?
LGPL would be fine for that.
Looks a lot like a 3-clause BSD, but it's a cross between MIT and BSD. The point on LGPL is that if GCC were LGPL, Apple would be able to link it to Xcode.
Apple might not make money directly with its compiler, but for its 3rd party developers to be stuck with a mediocre compiler is definitely a disadvantage for Apple.
Hypothetical: The hardware under the hood is identical to that of a Dell. Compare an application written for both, but the one running on the Dell uses Intel's highly optimized compiler while Apple uses one that's not tuned for any particular platform, and therefore performs somewhat poorly on x86.
Result: Apple has a 20% performance deficit.
Now say that application is Photorealistic RenderMan or Cinema4D or Modo.
That 20% performance deficit, that has nothing to do with the hardware, just created a significant cost disadvantage for a mac user -- to implement a renderfarm, the mac adds either 20% in rendering time, or 20% in extra hardware costs to offset the rendering time (which ends up costing more still in logistics).
Result? Apple would lose a potentially non-trivial sale.
Having an optimized in-house compiler would probably also help to improve OpenGL performance on the mac -- because odds are the entire OS is compiled with the same compiler...
Though it may not be a significant direct revenue generator, having a good compiler would probably still be very beneficial for Apple AND its customers, not to mention developers.
Not only that, but making tweaks and optimizations (remember that Apple's compiler has to target a very narrow subset of what general Clang, or GCC, target) to an internal version even while releasing the sources for the "base" version would also give Apple a competitive advantage.
Since they own the product, the licence would not bother them much - they could just relicense it - but I assume that by using GPL they would be educating their customers in subjects they would rather keep them ignorant.
edit: Apple doesn't own Clang or LLVM. Copyright belongs to individual contributors. However, since it's BSD, Apple's ability to tune a "secret-sauce" version to its hardware is unhindered.
64-bit processors allow similar assumptions on Windows, too.
Curious. Is the copyright Apple's?
http://archives.free.net.ph/message/20070721.195500.f37fa735...
"GCC 4.2.1 will be the last release of GCC covered by version 2 of the GNU General Public License. All future releases will be released under GPL version 3."
http://archives.free.net.ph/message/20071009.202219.6b725019...
"The compilers in this release are covered by GNU General Public License version 3."
It's a peculiar exception - and Apple is almost certainly never going to be in violation of it. Still, the point is that Apple's lawyers are terrified that it could somehow taint iOS/OS X/iTunes if someone comes to believe that Apple might be in violation of it. Why take the chance? Clang is a compliant and fast c/c++ compiler at this point, and is mostly clean code (which is more than can be said of gcc).
I am not saying Apple wants to patent-troll downstream developers, but that's a risk that's worth noting.