[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ANN: One Step to GNUstep - pre-release version 0.9
From: |
David Chisnall |
Subject: |
Re: ANN: One Step to GNUstep - pre-release version 0.9 |
Date: |
Mon, 13 Jun 2011 09:49:22 +0100 |
On 13 Jun 2011, at 00:54, Nicola Pero wrote:
> Then there is the point that, if all that matters is the technical "feature
> parity" with Apple, then buy an Apple; why bother with GNUstep.
If that's your view, then why bother with GNUstep at all? Why not work on an
Objective-C framework that doesn't aim for Cocoa compatibility.
> and for many people in the project using a GNU/FSF compiler is important,
> more important than having some small additional feature.
I'd hardly call full support for the language that GNUstep uses a 'small
feature', nor would I put the ability to reuse the front end for IDE
integration or the static analyser in the same category. We've fixed well over
a hundred GNUstep bugs so far that have been found by the static analyser
alone.
> If you consider the track record of Apple dealing with
> open source projects, you'll clearly see the dangers. Apple likes their
> version of "open source", where you can see the code,
> send bug fixes and contribute improvements (so that they save money on
> development costs) but to actually use the result
> you'll have to buy an Apple product;
Let's see, Apple's open source record...
Well, they took the FreeBSD useland, libc, and chunks of the kernel and...
released improvements upstream. The bastards!
They published Launchd under an open source license (APSL) and, when the
FreeBSD Foundation said that this license was too restrictive, Apple's evil
response was... to relicense it under the Apache 2.0 License. Freedom haters!
Then they forked KHTML and, when the KHTML team started complaining about their
patch dumps being difficult to support... they started developing WebKit in an
open subversion repository and soliciting outside contributions and ports to
other platforms. Deliciously evil!
Or are you talking about Apple-originated projects, like CalDAV server and
libdispatch, which Apple callously and ruthlessly exploited the open source
community by giving us large amounts of production-quality code under various
open source licenses?
In your release notes for GCC 4.6, I saw that you thanked some Apple developers
for their assistance in porting features from their branch. Did you mention
that you viewed them as instruments of 'rapacity and amorality' at the time?
> the Apple Objective-C runtime is a great example.
Do you mean the one that they inherited from NeXT under a proprietary license
and released under APSL 2 (a FSF-approved license), or the one that they wrote
from scratch and released under APSL 2? If you want to use it on another
platform then you are free to do so, but the design's pretty horrible so I
don't think anyone does want to...
> With clang they're pushing even further,
> since clang on Linux is basically now the freeware trialware version of Apple
> XCode;
This doesn't even make sense. Clang has almost exactly the same feature set on
OS X and on Linux (__thread only works on Linux, but aside from that they're
equivalent).
XCode adds a lot of features on top, just as it did when it used GCC as the
compiler. For example, XCode uses clang for syntax highlighting, and those
open source hating bastards at Apple have provided a C API with guaranteed
forward compatibility to allow other IDEs to do the same.
XCode provides a nice UI for viewing static analyser results, while Linux users
with the 'trialware' version have to view the same results in a web browser.
Well, actually clang emits the results in plist format, so it would be fairly
trivial for GNUstep code to make use of it...
> of course to get the real thing you have to
> buy an Apple product because the license allows them to have "open source"
> developers (ie, unpaid developers outside of Apple)
> look at the compiler code, debug and improve it, but the actual final product
That's how Free Software is supposed to work! People who mutually benefit from
the existence of a project collaborate to work on it.
> (XCode where the compiler is deeply integrated
> into the real IDE) can only be obtained by purchasing an Apple product. And
> if something ever goes wrong with this model,
> they can still announce that they're merging clang/LLVM into XCode and you'll
> never see a single line of source code of it again.
And then we'll have to rely on the other contributors, like Google (one of the
biggest contributors to LLVM, as they are not moving a lot of their back end
code over to LLVM / Clang - they also employ more of the GCC team than any
other company at the moment).
Open source works best when it's backed by self interest. Apple benefits from
having a decent compiler with a reusable back end and a front end that can be
used for analysis as well as compilation. If they developed it in house then
it would be more expensive than if they got outside contributors to do some of
the work. Replace Apple with Google, Adobe, or any of the other company or
individual that contributes to LLVM / clang in the previous sentence.
> with clang/LLVM they don't have to, so at the next change of strategy, the
> whole thing could suddenly disappear into Apple and all you'll get from them
> will be your next binary-only, Apple Mac OS X-only, shipment of XCode.
And we'll be no worse off than we are with GCC, where they've stopped adding
new features. Apple would keep developing their private fork, non-Apple
contributors would continue to work on the main branch. Take a look at the top
10 LLVM contributors and you'll see a lot of non-Apple people.
> Anyhow, the point of the rant is that I do prefer GCC to clang purely due to
> the different licensing. And I do prefer the GNU runtime
> to your runtime for exactly the same reasons. And I expect that some (not
> all) of the people who try GNUstep may feel the same way
> and may be trying GNUstep precisely because they don't like the Apple
> licenses, environments and corporate practices. They
> would be looking for a better alternative; an environment with higher moral
> standards and stronger rules to stop big corporations
> from abusing the small guys. In that case, giving them a GNU GPLv3 compiler
> (such as GCC 4.6.0) seems an excellent idea.
These people are, of course, free to use whichever platform they want. GNUstep
has had a lot of new developers coming from iOS and OS X over the past few
years. Read any news article about GNUstep, and you'll find OS X developers
complaining because they tried porting their Cocoa code, and it didn't even
compile because the compiler was missing features. That kind of first
impression does the project no good at all.
Like it or not, our main market at the moment is iOS / OS X developers. Once
they're comfortable with GNUstep, you can pull them deeper into the Free
Software ecosystem, but forcing them to use tools that are less powerful than
the ones that they are used to because you consider the license to be too
permissive is not the way to make that happen.
> Making everything depend on clang and your own runtime seems clearly a bad
> idea to me; certainly
> not one that we want to recommend or present as an example.
You are always free to improve GCC to bring it up to feature parity, but you
and the rest of the GCC team largely ignored Objective-C - including one
release that shipped with broken Objective-C because 'Objective-C is not a
release blocker' - for a decade and only started working on it again once clang
provided better Objective-C support on Linux / *BSD than GCC. Given this track
record, I'm not sure I can take your comments about the possibility of Apple
abandoning support entirely seriously.
David
-- Sent from my Apple II
- Re: ANN: One Step to GNUstep - pre-release version 0.9, (continued)
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Richard Stonehouse, 2011/06/13
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Richard Frith-Macdonald, 2011/06/13
- Re: ANN: One Step to GNUstep - pre-release version 0.9, David Chisnall, 2011/06/13
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Wolfgang Lux, 2011/06/14
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Richard Frith-Macdonald, 2011/06/14
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Ivan Vučica, 2011/06/13
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Riccardo Mottola, 2011/06/13
Re: ANN: One Step to GNUstep - pre-release version 0.9, David Chisnall, 2011/06/12
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Nicola Pero, 2011/06/12
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Nicola Pero, 2011/06/13
- Re: ANN: One Step to GNUstep - pre-release version 0.9,
David Chisnall <=
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Matt Rice, 2011/06/13
- Re: ANN: One Step to GNUstep - pre-release version 0.9, David Chisnall, 2011/06/13
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Ivan Vučica, 2011/06/13
- Re: ANN: One Step to GNUstep - pre-release version 0.9, Wolfgang Lux, 2011/06/14
Re: ANN: One Step to GNUstep - pre-release version 0.9, Gregory Casamento, 2011/06/13
Re: ANN: One Step to GNUstep - pre-release version 0.9, Riccardo Mottola, 2011/06/13
Re: ANN: One Step to GNUstep - pre-release version 0.9, Gregory Casamento, 2011/06/13
Re: ANN: One Step to GNUstep - pre-release version 0.9, Nicola Pero, 2011/06/14
Re: ANN: One Step to GNUstep - pre-release version 0.9, Ivan Vučica, 2011/06/14
Re: ANN: One Step to GNUstep - pre-release version 0.9, Lars Sonchocky-Helldorf, 2011/06/14