Re: LPC900/80C51 Compiler Toolchain
- From: David Brown <david@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 03 Aug 2007 09:53:26 +0200
ChrisQuayle wrote:
Chris Hills wrote:
OK then can some one PROVE how FOSS compilers are more advanced or *at least* as good as commercial ones?
Have been wary about getting into this, but it irritates me that the commercial vendors are quite happy to steal new ideas from open source at no cost to improve their product, but then have the chutzpah to suggest that gcc is inferior. Neither are they willing to disclose their own improvements that might contribute generally to the state of the art. Of course, in the commercial world ip matters, but probably most of the really good new ideas in software in the last decade or so have come out of open source or academia, so what have the commercial vendors got to offer that makes them so good ?. After seeing how Linux has bloated over the past few years, have had a few things to say about open source myself, but the gcc suite is one exception that disproves any general criticism.
Many Linux *distributions* have bloated - Linux itself has not bloated (it's got bigger and better, but not bloated). There are plenty of open source projects that have suffered from "bloat", and plenty of distros that have grown huge, but the great thing about open source systems is that you mix and match what you need, and can get big, fancy, powerful software ("bloated" software) or small, lean and dedicated software.
It's no good saying they use advanced techniques without at least giving some idea of why I should pay $k's over something that works and that I can download and build for free. For example, I still use (old) gcc 2.7.2 for 68k work. An unpretentious compiler that i'm familiar with, produces acceptable code and still have to catch it out with even the most complex data structures and constructs etc. Have not found a show stopper bug in several years use, which is more than I can say about some commercial product. I think the commercial vendors are at a very
(If you want to try a newer version, go to www.codesourcery.com. They maintain the gcc m68k port, and there have been a fair number of improvements over the years, especially for ColdFire parts.)
serious disadvantage now. Tool development is such a labour intensive and skilled process, with shrinking market, that they have to charge high prices just to stay in business, never mind keep up with the state of the art. A highly unstable market, with thousands of devices and variants to support and guessing which will be successfull and sell volume. Not a business I would want to be in at all.
There are some situations where commercial developers have advantages over open source developers - it is often easier to get restricted information (advance information, or extra technical details) from the microcontroller manufacturers. Even for those manufacturers which directly support gcc ports, there can be restrictions with some PHB wanting to keep details secret, which therefore cannot end up in open source code.
There is also currently only one serious, powerful open source compiler system - gcc. So for architectures that don't fit gcc's models, there are currently no top-quality open source alternatives (sdcc is, as far as I understand it, a perfectly reasonable compiler - but it is not a top-ranking 8-bit compiler in the same way that gcc is for many 32-bit targets).
The other thing that commercial developers can do that open source developers typically do not, is spend time and money on everything *around* the compiler - documentation, installation, IDEs, debuggers, dedicated support teams to help you out when the software license locking system has lost its keys, etc. These sorts of things take time and effort, and are often not the most interesting parts of the job - it's fine if you are paid to do it, but for many open source developers and their employers, margins are smaller and it's harder to find the time and money to spend on less essential parts.
As I see it, there is plenty of place for both commercial and open source development tools (and both high-price and "cheap and cheerful" price commercial tools) at the moment. What is interesting is the changes for newer architectures - steadily more manufacturers are going straight for a gcc port for newer 32-bit architectures, rather than the more traditional approach of working closely with a commercial developer. The development process for these ports is often not very open (they work behind closed doors, and release binaries and corresponding source files in lumps), making it somewhat of a middle road.
It's not just the compiler either - The gcc suite has an excellent set of binary utilities, linker, make and archiver / librarian etc, which blend together seemlessly in a unix environment to produce a really top class development suite. Again, miuch more than can be said for some of the commercial vendors. If you want a good laugh, have a look at the utilities associated with earlier versions of the IAR H8 compiler and the command line options. Even Keil C wasn't that brilliant in terms of added value and that's a compiler that i've used extensively and respect quite a lot, even if the code it produces looks horrendous at times.
Many commercial toolsets are now using open source utilities, as well they should - for most parts not directly related to code generation, common open source versions of the tools are far better than anything anyone else makes. A good example is the Quartus design suite for Altera FPGAs - the compilation and routing parts are all closed source from Altera, but the glue that holds it together is cygwin, tcl, and perl - all open source versions. Their soft cpu is generated with closed-source programs, using tcl and perl, with Eclipse for the IDE and gcc for compilation.
So Chris, what's the unique selling point ?. Have failed to be convinced thus far....
Chris
- Follow-Ups:
- Re: LPC900/80C51 Compiler Toolchain
- From: ChrisQuayle
- Re: LPC900/80C51 Compiler Toolchain
- From: Chris Hills
- Re: LPC900/80C51 Compiler Toolchain
- References:
- Re: LPC900/80C51 Compiler Toolchain
- From: ChrisQuayle
- Re: LPC900/80C51 Compiler Toolchain
- Prev by Date: Re: Question to all area-aware designers out there
- Next by Date: Re: ZigBee real using
- Previous by thread: Re: LPC900/80C51 Compiler Toolchain
- Next by thread: Re: LPC900/80C51 Compiler Toolchain
- Index(es):
Relevant Pages
|
|