The license used by LLVM does help it gain support, but the main
advantage is less about the license, and more about being well designed for
current developments in compiler software.
Right. I didn't
actually argue that LLVM's license was an advantage (though I happen to believe
that it is, at least for attracting serious paid development like Apple is
giving it.) Rather, I argued that GCC's code was badly written, partly on
purpose. This is a technical negative for GCC, driven by extreme
ideology.
The reason for this particular difference with GCC is
mostly because LLVM is newer, and designed specifically for new
development.
Sure, but GCC could easily have evolved to the
same point a few years earlier if it were allowed to.
Assuming GCC
does re-license their code to BSD style tomorrow,
Not. Going.
To. Happen. But for the sake of argument, sure :-)
I doubt it will
significantly gain any new contributors. Instead, most likely, the best parts of
GCC will get integrated into LLVM for better performance and compatibility
(those that have not already been cloned yet that is :p), and many more
developers will start using LLVM ;).
Yes. Reiterating both
your and my point that LLVM was specifically designed for easy experimentation,
and GCC was specifically designed to disallow easy
experimentation.
Another thing that extremely important is that
currently, LLVM have core developers who are more open to new development and
faster at integrating new changes into their code.
This is a
classic chicken and egg, snowball, network effect. If you design something that
allows for rapid prototyping, expect to attract all the rapid prototypers into
the developer community.
On the other hand with GCC, the red tape
issues goes
beyond licensing or internal/external API. It's not really that
particular "politics" that's the core problem with GCC nowadays. It's true that
it didn't help, and has hurt it quite a bit. However, the real problem with GCC
is the many core developers involved with it are unwilling to significantly
accommodate needed change.
And yet, it seems to be coming. Too
little, too late? Time will tell.
At some point, if there are no
change to GCC development, GCC will probably become no longer relevant for most
people.
Which would be a shame, because competition between
multiple open source projects has produced some great
results.
Personally, I think LLVM is a good development right now,
but there are some risks we are taking with this route (though not necessarily
equally risky for everyone). Hopefully, things will work out right. But I get a
feeling that once LLVM gains much wider support and is improved further, we
might find that we need another alternative yet again due to different
"politics".
The only real risk I see is the one PJ alluded to,
where somebody uses Clang/LLVM in a proprietary product, while simultaneously
suing every other potential user for patent infringement. The other major
"risk" that people always reference in this sort of free vs. open debate is that
you will not attract developers with a non-GPL license. I discount that risk --
to the extent that it's true, GCC will continue to evolve and thrive by
attracting the GPL-centric developers (which will be a good thing) and to the
extent that it's false, well, then, it wasn't really that much of a risk, was
it?[ Reply to This | Parent | # ]
|