I'm interested in the Ada programming language, but I'm a bit concerned about the compiler situation. It looks like there is only one open source Ada compiler — GNAT. GNAT is part of the GCC, but most of its development seems to come from the for-profit AdaCore company. Should I be concerned about the lack of other Ada compilers in this case?
What is there to be concerned about? GPL software will always remain as GPL software.
Maintenance of the compiler might grind to a halt without AdaCore's contributions. Ada is a large language, and there aren't many programmers who program in Ada. If AdaCore stops contributing to GNAT, compiler development would simply stagnate, which makes GNAT and Ada far less attractive for new software development.
>>3
I don't understand the pitfalls of a compiler that isn't actively being developed. Does your Ada based project suffer from code rot when the Ada compiler isn't injected with fresh code from a living developer?
Does your Ada based project suffer from code rot when the Ada compiler isn't injected with fresh code from a living developer?
No, but performance will decline relative to other programming languages that have actively developed compilers. Take the case of Common Lisp's CMUCL and SBCL. Although still actively developed, development is slower than in their earlier years when their performance nearly matched C. Now the gap between SBCL and GCC's C compiler is widening because GCC's C compiler is far more actively developed.
Of course, my Ada programs will still work even if GNAT is no longer developed. However, I will be missing out on future speed improvements relative other languages.
So your concern for any compiler is all about the theoretical possibility to improve the compiler's performance in producing performant binaries. In my opinion, I am completely unconcerned for this. I believe in my ability to calculate run time and run space processing with big O notation. I believe in my ability to divide computations with multi-threading-multi-processing technology. I believe in not wasting my programmer resources into premature optimization.
I appreciate that there are plenty of software applications in which tight computer resource accounting can translate into serious business cost savings. I don't know your situation, but I've never worked on any development project that had that kind of constraint.
tl;dr I really don't care that GNU's C compiler can produce a faster fizzbuzz than SBCL does
>>5,6
Ada has a very small runtime, shouldn't most of the opportunity for further optimization be handled by the GCC backend anyway?
>>7
I would assume that's the case. I haven't studied the GCC architecture, but I do know that different languages have a front end that compile to the GCC intermediate representation. From that, it is compiled into the targeted machine bytecode. I would guess that the optimizing work is done when it is compiled into the targeted machine bytecode.
>>1
There are 2 compilers. AdaCore's GNAT compiler (GNAT-GPL) will force you to use GPLv3. FSF's (GCC) GNAT won't.
>>9
What did you mean by this? Aren't both compilers GPLv3?
>>11
I see. When you use AdaCore's free GNAT compiler, it will link to the standard library which is licensed under GPLv3. This means in order to distribute your software binary that is linked with the standard library, your software license must be compatible with the standard library GPLv3 license. The difference with GNU's GCC is that GCC provides an exception: the GCC RUNTIME LIBRARY EXCEPTION https://www.gnu.org/licenses/gcc-exception-3.1.html
>>12
I wonder when the GNU Project is going to conduct a massive bait and switch by suddenly removing the GCC Runtime Library Exception, in line with its goal to infect all software with the viral GPL.
>>13
uwotm8?