I haven't seen anybody point out one of the
interesting tidbits about the PS2 and free
software, namely that Sony paid Cygnus a great
deal of money to work on GCC and GDB for the PS2 (this is
all public, press releases were a couple years
ago). Some of the generic improvements are now
in the tools you run on Linux.
Not only that, but to all those folks asking
"how do you make money with free software", I'll
note that because I was working at Cygnus at the time, some of that PS2 money went into my pocket!
In fact, I've been paid to work on free software
fulltime for almost 10 years now, and paid fairly
well too.
Right now the numbers of people
working fulltime on free software are small, but
for instance at Apple the number used to be 2,
and now, between GNU tools and BSD kernel work,
the number is more like 25, plus
we've got more positions
open for people to work on free software. So things are changing, slowly,
and in another 10 years many more of you will also be getting
paid to work on free software.
While RMS isn't so good on tactics (and we've
debated tactics a number of times, starting with
when I introduced GCC at Apple while the FSF was
boycotting them - was that boycott useless or what?), in the long
run I think the strength of his philosophical
position will be better appreciated. "Open source"
really is a weak position vulnerable to co-opting,
in fact many of the comments here show the process
starting already.
(And yes, I know Apple does proprietary stuff, duh.
"Tactics")
Apple uses a heavily hacked version of 2.95.2 (how
hacked? try 60K lines of new/changed code...).
Anyway, since I'm here, I have to say I think
Red Hat did what they were forced to do by the
non-appearance of a new GCC release. In the
real world, you have to make tradeoffs, and
using a version in between "official releases"
is just one of those tradeoffs. Many of the
packages in a Linux distro don't match an
official release; for instance, the copy of
my game Xconq in Debian has mods that I never
heard about beforehand, let alone got a chance to approve
or disapprove. But I'm not going to dump on
Debian folks, they have to be able to make their own
decisions.
Heh-heh, I see you know something about the content of the changes...
The AltiVec code is owned by Motorola, not Apple, and so they have to be the ones donating to the FSF. I've lobbied the Motorola folks on this, but they seem to have washed their hands of the issue, and so their code will probably never end up in the GCC mainline. Sigh.
Apple's precompiled header implementation is not even a part of GCC (it's a separate program), so it's not part of the changes I was referring to. Even so, not long ago Zack Weinberg (who's working on GCC frontend opts) came over to visit Apple and we talked about implementation strategies for precompiled headers. Apple expects to be contributing directly to GCC frontend work at some point, but it's not plausible when mainline GCC doesn't even run on our systems. So...
...Most of my daily work is digging out the patches necessary to support the OS X runtime/ABI, which is, um, unique. At the moment I can build libgcc using patched current GCC sources, but it doesn't bootstrap yet. Many of Apple's changes are undocumented and no one remembers why they were made, yet things break if you leave them out! So there's more than a little software archaeology involved:-( Still, merging a long-divergent fork of GCC is God's work, so I keep at it.
I forgot one other point - if you want to promote open source development for Mac OS X, look at the toolkits. Ports of tcl/tk, gtk, fltk, etc will enable many already-mostly-portable apps to come up with little extra effort. I'm personally working on Loki's SDL (http://www.libsdl.org) and it's now far enough along to play SDL Doom on OS X, though it's still lacking sound.
To learn more about OS X porting, look at Apple's developer pages, mail me, or get on macosx-dev@omnigroup.com, which has a lot of useful discussion.
Check out http://www.publicsource.apple.com to get all the sources to Darwin, which is the open-source kernel for Mac OS X, including Apple's hacked-up versions of GCC and GDB etc.
(If you're thinking of whining about those changes are not integrated with mainline GCC, complain to me personally instead; fully 1/2 of my hours for Apple are now allocated to preparing GCC patches to send to the FSF...)
So why *is* open source not more popular on Macs? I think it's the same reason there's not so much on Windows either; it's more work to develop programs than for a Unix variant, there is a large end-user base that just wants binaries and is often willing to pay for them, and there is a relatively stable ABI, so there are fewer reasons to need sources for the purposes of recompiling.
I expect to see some change when OS X comes out, because there is now more awareness of the other benefits of open source, and porting Unix apps is pretty easy (I've done some myself), but I expect it will be a gradual transition as OS X expands its installed base.
I've seen a number of comments disparaging Apple's motives for doing open source. But folks, this is the real thing - Apple has been hiring open source hackers like myself, and part of our jobs is explicitly to improve contacts with the community and come up with creative ways to collaborate. Since I started two months ago, it seems like I've spent as much time discussing open-source strategy with management as actually fiddling with GCC, which is my specific organizational cubbyhole.
I believe Apple will remain committed to open source even without a lot of participation from the rest of the community, but of course we can accomplish much more together. Also, if Apple sees that working with the community at the OS and tools level is enabling it to be more successful overall, that will be a powerful reason to consider open-sourcing other parts of the system; Darwin 1.0 is just the beginning.
There are piles of sources already available, everything from the lowest-level gory stuff in Mach, up to user-land tools, and the only thing in your way is the load on the servers from all the other people downloading!:-) So go for it!
My own specialty is tools, mainly GCC and GDB, and we have some very active and interesting discussion about tools already going on in the Darwin developers list; I'd love to have more people join in. I also posted much more technical detail on Apple's local mods to GCC there, along with some ideas about how to get it added to FSF GCC.
I sent him a thank-you note (pdejager@year2000.com). Here we have a techie
working hard to do the right thing, and his reward
for helping solve the problem is to be called a scumbag charlatan.
Perhaps somebody in the UK should go over to the London Times offices and offer to remove all the Y2K fixes
they're relying on right now, starting with PC
motherboards...
Lesson for the future: when you fix something, don't be quietly proud of your work - issue a press release that
includes a detailed description of what would have happened if you
hadn't fixed it. If you don't explain it to the
non-techies, they'll just assume that it's no big
deal. The average person's exposure to technical problem solving mainly consists of TV and movie characters fixing a bug in alien software with
three keystrokes!
Not only that, but to all those folks asking "how do you make money with free software", I'll note that because I was working at Cygnus at the time, some of that PS2 money went into my pocket! In fact, I've been paid to work on free software fulltime for almost 10 years now, and paid fairly well too.
Right now the numbers of people working fulltime on free software are small, but for instance at Apple the number used to be 2, and now, between GNU tools and BSD kernel work, the number is more like 25, plus we've got more positions open for people to work on free software. So things are changing, slowly, and in another 10 years many more of you will also be getting paid to work on free software.
While RMS isn't so good on tactics (and we've debated tactics a number of times, starting with when I introduced GCC at Apple while the FSF was boycotting them - was that boycott useless or what?), in the long run I think the strength of his philosophical position will be better appreciated. "Open source" really is a weak position vulnerable to co-opting, in fact many of the comments here show the process starting already.
(And yes, I know Apple does proprietary stuff, duh. "Tactics")
Anyway, since I'm here, I have to say I think Red Hat did what they were forced to do by the non-appearance of a new GCC release. In the real world, you have to make tradeoffs, and using a version in between "official releases" is just one of those tradeoffs. Many of the packages in a Linux distro don't match an official release; for instance, the copy of my game Xconq in Debian has mods that I never heard about beforehand, let alone got a chance to approve or disapprove. But I'm not going to dump on Debian folks, they have to be able to make their own decisions.
I guess you didn't follow the link I mentioned early and actually *look* at the sources on http://www.publicsource.apple.com ...
The core (xnu) has all been put under the APSL, as the original licenses allow. It is very carefully kept clear of any GPLed code.
Tools like GCC and bash continue to be under the GPL, which is OK because they are optional programs not required by the OS to run.
Again, all this is documented at Apple's website and in the downloadable sources. Please check your facts there before spreading bad information.
The AltiVec code is owned by Motorola, not Apple, and so they have to be the ones donating to the FSF. I've lobbied the Motorola folks on this, but they seem to have washed their hands of the issue, and so their code will probably never end up in the GCC mainline. Sigh.
Apple's precompiled header implementation is not even a part of GCC (it's a separate program), so it's not part of the changes I was referring to. Even so, not long ago Zack Weinberg (who's working on GCC frontend opts) came over to visit Apple and we talked about implementation strategies for precompiled headers. Apple expects to be contributing directly to GCC frontend work at some point, but it's not plausible when mainline GCC doesn't even run on our systems. So...
Stan Shebs
shebs@apple.com
To learn more about OS X porting, look at Apple's developer pages, mail me, or get on macosx-dev@omnigroup.com, which has a lot of useful discussion.
Stan Shebs
shebs@apple.com
(If you're thinking of whining about those changes are not integrated with mainline GCC, complain to me personally instead; fully 1/2 of my hours for Apple are now allocated to preparing GCC patches to send to the FSF...)
So why *is* open source not more popular on Macs? I think it's the same reason there's not so much on Windows either; it's more work to develop programs than for a Unix variant, there is a large end-user base that just wants binaries and is often willing to pay for them, and there is a relatively stable ABI, so there are fewer reasons to need sources for the purposes of recompiling.
I expect to see some change when OS X comes out, because there is now more awareness of the other benefits of open source, and porting Unix apps is pretty easy (I've done some myself), but I expect it will be a gradual transition as OS X expands its installed base.
Stan Shebs
shebs@apple.com
I've seen a number of comments disparaging Apple's motives for doing open source. But folks, this is the real thing - Apple has been hiring open source hackers like myself, and part of our jobs is explicitly to improve contacts with the community and come up with creative ways to collaborate. Since I started two months ago, it seems like I've spent as much time discussing open-source strategy with management as actually fiddling with GCC, which is my specific organizational cubbyhole.
I believe Apple will remain committed to open source even without a lot of participation from the rest of the community, but of course we can accomplish much more together. Also, if Apple sees that working with the community at the OS and tools level is enabling it to be more successful overall, that will be a powerful reason to consider open-sourcing other parts of the system; Darwin 1.0 is just the beginning.
There are piles of sources already available, everything from the lowest-level gory stuff in Mach, up to user-land tools, and the only thing in your way is the load on the servers from all the other people downloading! :-) So go for it!
My own specialty is tools, mainly GCC and GDB, and we have some very active and interesting discussion about tools already going on in the Darwin developers list; I'd love to have more people join in. I also posted much more technical detail on Apple's local mods to GCC there, along with some ideas about how to get it added to FSF GCC.
Stan Shebs
shebs@apple.com
Perhaps somebody in the UK should go over to the London Times offices and offer to remove all the Y2K fixes they're relying on right now, starting with PC motherboards...
Lesson for the future: when you fix something, don't be quietly proud of your work - issue a press release that includes a detailed description of what would have happened if you hadn't fixed it. If you don't explain it to the non-techies, they'll just assume that it's no big deal. The average person's exposure to technical problem solving mainly consists of TV and movie characters fixing a bug in alien software with three keystrokes!