From: Georg Bauhaus on 20 Jun 2010 17:13 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 20 Jun 2010 20:29 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 20 Jun 2010 21:14 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 21 Jun 2010 04:14 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 21 Jun 2010 04:29
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 |