From: Georg Bauhaus on
On 6/20/10 8:06 PM, Ludovic Brenta wrote:

>> Unless you can come up with a programming platform/language/system that
>> costs you less right now, in people, in hardware, in software, you have the
>> snowball's chance in Hell of making it happen. Good doesn't matter, cheap
>> wins every time.
>
> I'm not so pessimistic, at least I will not give in without a fight :)
>
> If you already know Ada, then to the evil bean counters, the training
> costs zero; you can offer to give introductory training to a couple of
> your colleagues yourself, reducing the immediate cost of training. If
> you explain that your use of Ada saves you 20% of the development cost
> *this quarter* and 50% the next quarter, you can win.

Speaking of cost of training, what exactly is the substance
of the arguments that try to relate cost to language choice?

Java, C#, C, C++, and other favored "standard technologies"
have grown reasonably complex. Mastering complexity is
not a skill you can pick up next week end, can you?
It needs to be learned, and exercised.

Complex things simply cannot be easy to learn without effort.

The "canonical" repertoire associated with a language
is insufficient for productive work when the problem is
non-trivial, as is usually the case:
If you know C, you do not necessarily know p-threads
or similar. Or libraries. Or your compiler docs.
If you know Java, you do not yet known enterprise
style Java, nor the concurrency construction library
classes, nor the details of Java generics, nor
annotations.
If you know C# 2.0, there is news for you in C# 3.0
and C# 4.0 (LINQ syntax, parallelism in certain loops,
task libraries, more syntax ...).
If you know O-O C++, and possibly templates, you do
not know the STL yet, nor Boost, nor advanced techniques
that rely on compile time resolution mechanism of C++,
I'd think.

All of these skills need to be learned in order to to achieve
proficiency in problem solving. Learning them is a time consuming
process. But prior knowledge of core Java, C#, C, C++ cannot
include the extra skills automatically, can it?

What is the respective cost in all these cases?
Does knowing the language actually save a substantial
amount of time or money?


Seen in this light, suppose someone insists on relatively
low cost of a language. It is low allegedly, because
inexpensive wage labor seems so easily available.
This person must fear being exposed by the accountants!
They might calculate the actual cost of training.


Georg
From: Ludovic Brenta on
Georg Bauhaus writes on comp.lang.ada:
> On 6/20/10 8:06 PM, Ludovic Brenta wrote:
>
>>> Unless you can come up with a programming platform/language/system
>>> that costs you less right now, in people, in hardware, in software,
>>> you have the snowball's chance in Hell of making it happen. Good
>>> doesn't matter, cheap wins every time.
>>
>> I'm not so pessimistic, at least I will not give in without a fight
>> :)
>>
>> If you already know Ada, then to the evil bean counters, the training
>> costs zero; you can offer to give introductory training to a couple
>> of your colleagues yourself, reducing the immediate cost of training.
>> If you explain that your use of Ada saves you 20% of the development
>> cost *this quarter* and 50% the next quarter, you can win.
>
> Speaking of cost of training, what exactly is the substance of the
> arguments that try to relate cost to language choice?
>
> Java, C#, C, C++, and other favored "standard technologies" have grown
> reasonably complex. Mastering complexity is not a skill you can pick
> up next week end, can you? It needs to be learned, and exercised.
>
> Complex things simply cannot be easy to learn without effort.

Actually, a common excuse for people who refuse to try Ada is to say
that the cost of learning Ada, the compiler, the libraries and the IDE
is expensive. Of course they will dismiss the cost of learning the C
traps and pitfalls, recursive makefiles, compiler, libraries and IDE as
"negligible" since "everyone" knows them already.

The trap to avoid is to use rational arguments with irrational people.
That does not work; they always find another excuse. If they were
rational, you would not have to convince them; they would already be
using Ada :)

So, I think the proper approach is to debunk their irrational fears of
Ada and expose the real cost of bugs in the C software, which they have
been ignoring up to now. Show them that no, C is not "good enough".

--
Ludovic Brenta.
From: Nasser M. Abbasi on
On 6/20/2010 5:29 PM, Ludovic Brenta wrote:

> Show them that no, C is not "good enough".
>

This is what I said earlier. show them, but with small clear code
examples, side-by-side, Ada vs. C, show why in each example, Ada is better.

Making lectures to C programmer about how much better Ada is in the
abstract, will not work, it will sound like a politician making a
typical speech about how good a job they will do if elected.

btw, if someone is really good in C, and very careful, and stick to the
standard, they can produce solid code.

Many large applications are written in C all the time, the problem I
think, is that it takes more skill and effort to produce as reliable
code in C as with Ada, but it can be done, given more effort, skill,
time and money, and lots of coffee.

--Nasser


From: Georg Bauhaus on
On 6/21/10 2:29 AM, Ludovic Brenta wrote:

> Actually, a common excuse for people who refuse to try Ada is to say
> that the cost of learning Ada, the compiler, the libraries and the IDE
> is expensive.

When people argue about the cost of learning Ada (in terms
of language, compiler, and libraries) they have accepted
the terms of a kind of rational discourse. You can continue
quite logically,

"So there will be relative advantages, then, after having
learned Ada?"

From: Maciej Sobczak on
On 20 Cze, 01:01, use...(a)scriptoriumdesigns.com wrote:

> So, what points would you emphasize to each (manager, programmers) to
> make the Ada sale?

Contrary to what was already said in this thread, I would advice *not*
to do it via comparisons of little code examples. It is relatively
easy to write correct C program of small size and therefore there will
be no visible problem that Ada might possibly solve. Also, since the C
syntax is "lighter" visually, it will be taken as a proof that C is
actually more readable.
Don't laugh here, we're talking about simple programs and people who
are already used to C. Hello World in C *is* more readable to them
than Hello World in Ada, no matter what you're going to say about
maintainability of packages. It is just impossible to sell large scale
features with small scale examples.

I think that the only way to sell Ada in a C shop is to forget about
source code altogether and instead refer to the costs of whole
production cycle. If you do not have any data points internally (and
you don't), refer to others. I find John McCormick's student project
statistics particularly relevant.

Last but not least - there is a difference between C and C++ and there
is a difference between respective communities as well, even if it's
usually forgotten on this group. If your fellows are "real C
programmes", you're doomed and forget about selling Ada to them - they
will just don't see the point, ever. Just forget. But if they are C++
programmers and they already understand the importance of large-scale
constructs like namespaces, object-orientation, encapsulation,
abstraction, design patterns, controlled memory usage, and so on, then
this is where you can start your pitch, because they will already
understand what you're talking about and most importantly, they
already feel the need for such things.

And don't forget to highlight (repeatedly!) that Ada can link to C and
C++ libraries, because this argument shows that the transition can be
smoother and that some existing investments can be preserved. This is
actually the reason for why the transition from C or C++ to Ada makes
much more business sense than the transition from C++ to Java, even
though sheeple will usually go for the latter.

Oh, yes - don't despair if you fail. I think it usually takes more
than one iteration...

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

YAMI4 - Messaging Solution for Distributed Systems
http://www.inspirel.com/yami4