comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Inspirels Ada on cortex tutorial linker issue
Date: Sun, 4 Sep 2016 08:08:37 -0700 (PDT)
Date: 2016-09-04T08:08:37-07:00	[thread overview]
Message-ID: <58f01916-6cac-4793-be48-c80646034481@googlegroups.com> (raw)
In-Reply-To: <nqe4k5$to3$1@dont-email.me>


> >>  From a practical point of view, configuring a piece of
> >> stereotypical C code means autoc***.
> >
> > Nonsense. I have written
> 
> (So, there exists at least 1 x, therefore all x, in practice? ;-)

No. Rather - therefore there is no such thing as a stereotypical C code.

> How about this explanation of autoconf: people don't understand,
> from a technical point of view, just why they are using autoconf.

I agree with that. I have seen autoconf scripts checking whether there is a Fortran compiler installed, even though the given project was not using Fortran. Or whether there are standard functions. People have been blindly copying autoconf script pieces from each other without trying to understand what they do, only to deteriorate the whole ecosystem with time.
But this is not due to C limitations.
According to Wikipedia (https://en.wikipedia.org/wiki/Autoconf):

"Autoconf is agnostic about the programming languages used [...]"

> The motivation would, I guess, be this: I do just what the others
> usually do,

Which is a property of all things that are popular beyond technical justification. If Ada was as popular as C, you would have hordes of incompetent Ada "coders", too. And autoadaconf, too.

>        The Eleventh Commandment
>     configure, make, make install

Yes. One guy asked me to provide the configure script, because he refused to use a package that did not have it. I have instructed him to create an empty configure script instead.
But I still don't blame the C language for that.

> I claim that at least the stereotypical setup of Ada is better
> in that Ada does try to address some issues at the language level
> like C does to a lesser degree.

OK, so again from the same Wikipedia page:

"GNU Autoconf is a tool for producing configure scripts for building, installing and packaging software on computer systems where a Bourne shell is available."

Let pick the most important parts:
- building
- installing
- packaging

These are the voids that autoconf is (or rather was) trying to fill in the GNU ecosystem. What does Ada offer in these areas?
Let's see:

- Building - nothing. Every compiler vendor has their own, mutually incompatible approach for building programs. It was already pointed here how useful is GNATMake with Janus/Ada, for example.
- Installing - nothing. No, really. Seriously. Nothing.
- Packaging - nothing. Void. Null.

There are further things that you might ask for, like library dependency management utilities, remote repository management tools, etc. The more you ask, the less you will find in the Ada ecosystem.

There are systems like Debian where Ada benefits from the general, system-wide approach for these things (and of course from the voluntary effort of people who are doing the hard work). Thus, I can apt-get install whatever and it will just work. But like it or not, the infrastructure for all these useful tools was founded by those who you detest. It is *not* the Ada's achievement that Ada programs can be built, installed, packaged, downloaded and have their dependencies managed on such systems.

> To achieve C portability and ease
> of change, it takes a lot of knowledge and discipline, and also, typically,
> independent thinking of a courageous individual programmer using C.

Substitute Ada for C in the above and it is still true. Even more so if you take into account how much thinking independence is required to even consider Ada for new projects.

> > If autotools do not work for you, it's not the fault of C
> 
> Are you certain that the definition of C, its means for expressing
> configuration, or variations (#if[def], say, or its type system
> when LSP is desired?) will have no influence on how it is used
> with Make, "discipline", etc? Would it not give rise to autoconf?

I am certain that Ada did not give rise to autoadaconf. Instead, Ada programmers rely on the infrastructure built by C programmers, as explained above.

> So that's one data point I had actually been hoping to see:
> How useful is elaboration, a requirement that Ada does address?

I do not find it to be a critical language feature. Ada *does* have its killer features, but elaboration control is not one of them.
Actually, it is known that depending on the combination of compiler options, it is possible to have a program that will build on one compiler, but not on the other.

-- 
Maciej Sobczak * http://www.inspirel.com

  parent reply	other threads:[~2016-09-04 15:08 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-23  5:23 Inspirels Ada on cortex tutorial linker issue Devin
2016-07-23  6:57 ` Simon Wright
2016-07-23  7:34   ` Devin
2016-07-23  8:07     ` Devin
2016-07-23 16:32       ` Simon Wright
2016-07-24  2:32         ` Devin
2016-07-24  7:41           ` Simon Wright
2016-07-25  4:35             ` Devin
2016-07-25  8:07               ` Simon Wright
2016-08-20 22:09 ` Maciej Sobczak
2016-08-21  1:30   ` Devin
2016-08-21  1:37     ` Devin
2016-08-21 14:38       ` Maciej Sobczak
2016-08-22  4:00         ` Devin
2016-08-22 11:37           ` Brian Drummond
2016-08-29 17:49             ` Nicholas Colin Paul de Gloucester
2016-08-29 21:51               ` rieachus
2016-08-30 14:55                 ` Nicolas Colin Paul de Gloucester
2016-08-31  0:01                   ` Dennis Lee Bieber
2016-08-31 10:15                     ` Simon Wright
2016-08-31 12:42                 ` Maciej Sobczak
2016-09-01  9:15                   ` Alejandro R. Mosteo
2016-09-01 16:33                   ` AdaMagica
2016-09-02  0:36                     ` Jeffrey R. Carter
2016-09-02 12:05                       ` Maciej Sobczak
2016-09-02 12:53                         ` Dmitry A. Kazakov
2016-09-02 15:24                           ` G.B.
2016-09-02 21:33                             ` Maciej Sobczak
2016-09-03  9:20                               ` G.B.
2016-09-03 13:33                                 ` Alejandro R. Mosteo
2016-09-04 15:08                                 ` Maciej Sobczak [this message]
2016-09-02 13:40                         ` AdaMagica
2016-09-03 11:58                           ` Brian Drummond
2016-09-03 12:12                             ` Björn Lundin
2016-08-30 12:33               ` Brian Drummond
2016-08-30 13:01                 ` Simon Wright
2016-08-30 15:06                 ` Nicolas Colin Paul de Gloucester
2016-08-31 10:34                   ` Brian Drummond
2016-08-31 20:58                     ` Simon Wright
2016-09-01 11:08                       ` Brian Drummond
2016-08-31 12:47                 ` Maciej Sobczak
2016-09-01  0:02                   ` Dennis Lee Bieber
2016-09-01  9:03                     ` Alejandro R. Mosteo
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox