News for hackers. Stuff that matters.
Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @07:02AM (#1814955)
> Steve hawked it in one of the early OS X keynotes as being the future of the Mac platform

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.

Re:Apple deprecates Java by masklinn on Thursday October 21, 2010 @07:23AM (#1814993)
> 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.

Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @07:36AM (#1815020)
Clang/LLVM is BSD while GCC is GPL. That means Apple can extend them all they want without ever giving you, or their competition, any sources.

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.

Re:Apple deprecates Java by calloc on Thursday October 21, 2010 @11:12AM (#1815754)
I would like to point out that Apple employs the guy that builds LLVM/clang and all those projects and yet they are still releasing the source code and everything out there for the public to use.
Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @01:17PM (#1816453)
> Apple employs the guy that builds LLVM/clang

Curious. Is the copyright Apple's?

Re:Apple deprecates Java by housel on Thursday October 21, 2010 @01:38PM (#1816566)
The copyright belongs to each contributor: http://llvm.org/docs/DeveloperPolicy.html#copyright
Re:Apple deprecates Java by moxiemk1 on Thursday October 21, 2010 @11:45AM (#1815940)
My appologies for accidental down vote instead of up vote. :(
Re:Apple deprecates Java by calloc on Thursday October 21, 2010 @02:01PM (#1816680)
Oh, I think I'll live :-). Apology accepted! Cheers mate!
Re:Apple deprecates Java by masklinn on Thursday October 21, 2010 @09:02AM (#1815188)
> That means Apple can extend them all they want without ever giving you, or their competition, any sources.

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?

Re:Apple deprecates Java by Tamerlin on Thursday October 21, 2010 @11:16AM (#1815774)
"A compiler is not exactly a competitive advantage for a company as big as Apple."

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.

Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @01:23PM (#1816486)
> Having an optimized in-house compiler

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.

Re:Apple deprecates Java by koenigdavidmj on Friday October 22, 2010 @01:11PM (#1820464)
Somewhat of an aside, but because Apple jumped to x86 late in the game, they can make more assumptions about their CPU than Windows can (for example, all Intel processors on Macs have SSE2 or higher).

64-bit processors allow similar assumptions on Windows, too.

Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @09:59AM (#1815353)
> It mostly means that they can use the libraries without having to open-source Xcode itself.

LGPL would be fine for that.

Re:Apple deprecates Java by masklinn on Thursday October 21, 2010 @02:09PM (#1816727)
Yeah, but why bother? It's not like Apple has any reason to go LGPL (and actually, now that I looked it up Clang seems to use the same license as LLVM — which makes sense — and that's the University of Illinois/NCSA Open Source License not the 3-clauses BSD, which again makes sense considering LLVM got started at UIUC, so it's not even Apple who decided on the license of the LLVM suite and related tools, they got into LLVM years after the project started and just used the same license for the stuff they built on/around LLVM)
Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @02:50PM (#1816914)
http://en.wikipedia.org/wiki/University_of_Illinois/NCSA_Ope...

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.

Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @08:44PM (#1818114)
On an afterthought, I wonder how much patent protection clang/llvm's license provide for downstream users.
Re:Apple deprecates Java by lemming on Thursday October 21, 2010 @07:55AM (#1815054)
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.

Re:Apple deprecates Java by Hemospectrum on Thursday October 21, 2010 @08:35AM (#1815140)
GCC has always been a centerpiece in the plan for the "viralization" of the GPL, and support for its role in this plan has always driven design decisions in GCC. This policy has caused a lot of headaches even just within the free software community (eg. http://lwn.net/Articles/343608/).

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.

Re:Apple deprecates Java by stcredzero on Thursday October 21, 2010 @01:48PM (#1816605)
...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.

Re:Apple deprecates Java by _delirium on Thursday October 21, 2010 @05:53PM (#1817599)
It makes some sense if you view it from the perspective of users rather than developers. The FSF comes from the perspective of being interested in what rights/freedoms end users have to modify software they receive, which takes precedence over other concerns. So basically anything that would make it easier for developers to ship stuff that end users aren't allowed to hack is bad.
Re:Apple deprecates Java by stcredzero on Thursday October 21, 2010 @07:19PM (#1817857)
So basically anything that would make it easier for developers to ship stuff that end users aren't allowed to hack is bad.

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.

Re:Apple deprecates Java by vflo on Thursday October 21, 2010 @11:39PM (#1818476)
Weird but plausible...
Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @04:36PM (#1817336)
> 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?

Re:Apple deprecates Java by stcredzero on Thursday October 21, 2010 @07:14PM (#1817840)
Making your software hard to interface with is making it less open. It's the same sort of move as making your word processor use an incompletely documented binary format.
Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @08:38PM (#1818099)
> Making your software hard to interface with is making it less open

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.

Re:Apple deprecates Java by stcredzero on Thursday October 21, 2010 @10:07PM (#1818309)
These are both important. Sometimes the letter of the law is convenient. Needing to resort to the letter of the law is not "open" -- a 3rd meaning!
Re:Apple deprecates Java by Someone on Thursday October 21, 2010 @08:30AM (#1815128)
Re:Apple deprecates Java by CountSessine on Thursday October 21, 2010 @01:11PM (#1816420)
Actually, their move from GCC to their own internally developed clang has way more to do with this than some walled-garden fantasy:

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."

Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @01:25PM (#1816505)
The GPLv3 does not apply to code compiled by GCC 4.2.1+. It applies to code you try to fork from it.
Re:Apple deprecates Java by CountSessine on Thursday October 21, 2010 @02:09PM (#1816724)
Actually, if you developed and distributed a non-GPL compatible plug-in for GCC, the GCC license prevents you from linking to the gcc stdlib without distributing built code under the GPL.

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).

Re:Apple deprecates Java by rbanffy on Thursday October 21, 2010 @08:48PM (#1818123)
As I noted elsewhere, I wonder what kind of patent protection if offers to downstream users of derived products. Since BSD-ish licenses don't mandate the passing of redistribution rights, I must assume the patent protection (like OpenJDK users enjoy - much to Oracle's non-enjoyment) isn't there.

I am not saying Apple wants to patent-troll downstream developers, but that's a risk that's worth noting.