From: Vinzent Hoefler <JeLlyFish.software@gmx.net>
Subject: Re: ada paper critic
Date: Sat, 15 Jun 2002 05:02:47 +0200
Date: 2002-06-15T05:02:47+02:00 [thread overview]
Message-ID: <3d0aae5c_1@news.bluewin.ch> (raw)
In-Reply-To: mailman.1024065183.4624.comp.lang.ada@ada.eu.org
"Alderson, Paul A." <Paul.Alderson@avistainc.com> wrote:
> I'm not talking about just style either,
>but the actual syntax of the language. For example:
>
>Ada code:
>
> MY_BIG_BLOATED_PACKAGE_NAME.MY_BIG_BLOATED_VARIABLE_NAME :=
>MY_OTHER_BIG_BLOATED_PACKAGE_NAME.MY_BIG_BLOATED_ARRAY_OR_FUNCTION(MY_BIG_BL
>OATED_GLOBAL_LIT_PACKAGE.AND_OF_COURSE_A_BIG_BLOATED_LITERAL);
Try this:
|declare
| MBBPN_MBBVN renames
| MY_BIG_BLOATED_PACKAGE_NAME.MY_BIG_BLOATED_VARIABLE_NAME;
| MOBBPN_MBBAOF renames
| MY_OTHER_BIG_BLOATED_PACKAGE_NAME.MY_BIG_BLOATED_ARRAY_OR_FUNCTION;
| MBBGLPAOCABBL renames
| MY_BIG_BLOATED_GLOBAL_LIT_PACKAGE.AND_OF_COURSE_A_BIG_BLOATED_LITERAL;
|begin
| MBBPN_MBBVN := MOBBPN_MBBAOF (MBBGLP_AOCABBL);
|end;
:-)
You never heard of renaming? In C terms you would call it a macro,
IIRC. :-)
>C code:
>
> (for an array)
> nDaysInMonth = nMonthTable[JAN];
|Days_In_Month := Month_Table (Jan);
What's your problem?
And why do you write n before each variable name? Shouldn't the second
read anMonthTable for an *a*rray of *n*umbers?
Oh I forgot, this is the standard way to bypass the lack of genuine
types in C by *simulating* them.
>The main point here is that the Ada code above requires one to go and lookup
>what MY_BIG_BLOATED_ARRAY_OR_FUNCTION is.
Why? It works. And it still works when you change a heavily
calculating function into a simple look-up-function called array.
> Is it a function or an array?
>Who knows?
Who wants to know? In most cases it does not really matter.
>The other not so subtle point is that Ada programs tend to use
>very large variable names.
Ada programmers tend to use *descriptive* names.
And do you really think
|#include <my_io_package.h>
|my_io_package_global_variable = ... ;
is substantially better?
Again, the standard way to bypass the scoping problem of C where
everything is global by definition and name clashes often occur?
> And since we want
>the package name to be descriptive everything referenced inside it uses
>allot of textual real-estate. Therefore I personally think of Ada as a
>write only language.
LOL
> 1.) Ada is not taught anymore. (Never really ever were that many
>classes for it.)
Stuttgart (Germany) teaches it, AFAIK.
> 2.) Ada development environments lag 10 years behind MSVC for
>example.
So MSVC runs under *nix? I doubt that.
> 3.) Ada has no nice string handling capabilities.
|while (dest*=src*)
| ;
is more nice than
|Dest := Src;
> 4.) Ada has no in-expensive development suits that are easy to use.
gnatmake My_Program.ada
What can be easier?
> 5.) The Ada language is based upon hardware notions such as integers
>being a certain size and etc.
That's bullshit, sorry.
> (Would not it have had been better to make numeric
>declarations fit their use instead
> of forcing the programmer to think about the computer
>hardware?)
Exactly that's what Ada does with Digits attributes for example.
Instead of caring about what floating point type to use to meet the
requirements you simply *specify* the requirements and let the
compiler choose the most appropriate representation.
> Example:
> If I want a number that represents the month in
>terms of a whole value
> would not the following be a better way:
>
> month : 1..12;
Yes. And that is what I do in Ada:
|type Month is range 1 .. 12;
What is the point you argueing about here?
> Do I care that a byte or int is allocated? If I do
>then I'll say so!
Yes. Exactly. Ada.
BTW, what is the size of the int you are talking about? 16, 32, 64
bits?
> One might argue that you CAN DO RANGES, but my
>pre-emptive counter point is
> that one does not have to use pointers in C either!
Huh? Surely I miss something but I do not see the what range
constraints should have to do with pointers.
And
|int main (int argc, char *argv[]) {}
uses no pointers?
>Meaning why does integer exist?
For cases where you do not care about types? As base type for deriving
constrained types from?
> 6.) GENERICS GENERICS GENERICS
> If the programmer used generics heavily and you must certify
>to level-A you either:
...simply use SPARK that does not include generics. :-)
[lint]
>additional cost and not part of the language. But it still is available and
>essentially gets you Ada type checking
Woah! Lint gives you Ada type checking? I doubt that.
>and great analysis of your code
That what the Ada *compiler* is already supposed to do.
>(even style!).
You do not need that in Ada. It's self-styling. :-) At least if you do
not try to write C with Ada syntax.
If that really fails:
For the first time : use -gnaty.
For the second time: fire the programmer.
> So pretty much in my eyes all current languages are severely
>flawed in one aspect or another. It all really boils down to good software
>people - not the language.
I doubt that. Good software people and a good language are always the
better choice.
Perhaps you should take a look at this:
|http://www.adaic.com/whyada/ada-vs-c/cada_art.html
Personally, I even can imagine that chances are good, that a better
language compensates for worse software people.
> Just remember things have gone boom using Ada
>and things have gone boom using C. So it seems that the language can't
>prevent these things!
It cannot prevent, that's right. But it *helps* you in preventing
those nasty <boom>s, so in Ada the <boom>s are more seldom.
> The overall point is that Ada is not the answer to
>everything.
Looks like the only statement that contains more than 10% of truth.
But it holds true for *every* language so it is not really an argument
on *anything*.
Vinzent.
next prev parent reply other threads:[~2002-06-15 3:02 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-06-14 14:31 ada paper critic Alderson, Paul A.
2002-06-14 15:16 ` Darren New
2002-06-14 15:58 ` Andrew Maizels
2002-06-14 17:00 ` chris.danx
2002-06-14 18:44 ` Jeffrey Carter
2002-06-14 20:26 ` Immanuel Scholz
2002-06-14 22:06 ` Ehud Lamm
2002-06-14 22:01 ` Immanuel Scholz
2002-06-14 22:38 ` sk
2002-06-15 11:28 ` Immanuel Scholz
2002-06-15 18:10 ` sk
2002-06-15 14:30 ` Ted Dennison
2002-06-15 17:36 ` sk
2002-06-16 3:08 ` Gautier
2002-06-16 0:05 ` AG
2002-06-16 21:05 ` Gautier
2002-06-14 23:10 ` tmoran
2002-06-15 14:19 ` Ted Dennison
2002-06-15 23:04 ` Darren New
2002-06-15 23:38 ` Darren New
2002-06-17 10:56 ` Immanuel Scholz
2002-06-17 19:56 ` Brian Rogoff
2002-06-17 20:47 ` Marin David Condic
2002-06-18 18:10 ` Brian Rogoff
2002-06-18 18:51 ` Robert A Duff
2002-06-18 19:08 ` Hyman Rosen
2002-06-18 20:47 ` Robert A Duff
2002-06-19 5:28 ` Robert I. Eachus
2002-06-18 14:01 ` Robert A Duff
2002-06-14 20:58 ` Ted Dennison
2002-06-14 21:30 ` Immanuel Scholz
2002-06-15 1:24 ` Larry Kilgallen
2002-06-15 3:02 ` Vinzent Hoefler [this message]
2002-06-15 21:54 ` AG
-- strict thread matches above, loose matches on Subject: below --
2002-06-14 22:28 Gautier direct_replies_not_read
2002-06-15 14:43 ` Ted Dennison
2002-06-14 22:18 Beard, Frank [Contractor]
2002-06-15 1:38 ` Jeffrey Carter
2002-06-14 22:08 Beard, Frank [Contractor]
2002-06-14 20:36 Beard, Frank [Contractor]
2002-06-14 21:34 ` Immanuel Scholz
2002-06-15 4:14 ` Lyle McKennot
2002-06-14 20:06 Gautier no_direct_reply_please
2002-06-14 20:48 ` Baugereau
2002-06-15 14:38 ` Ted Dennison
2002-06-14 19:42 Gautier no_direct_reply_please
2002-06-15 15:08 ` Simon Wright
2002-06-15 22:52 ` Robert A Duff
2002-06-16 0:38 ` AG
2002-06-17 14:15 ` Marin David Condic
2002-06-18 13:52 ` Robert A Duff
2002-06-18 15:41 ` Darren New
2002-06-18 18:04 ` Jeffrey Carter
2002-06-19 1:04 ` Rod Haper
2002-06-16 22:19 ` Ted Dennison
2002-06-16 23:02 ` Robert A Duff
2002-06-17 7:07 ` Kevin Cline
2002-06-18 20:54 ` Robert A Duff
2002-06-18 22:15 ` Larry Kilgallen
2002-06-14 0:49 Immanuel Scholz
2002-06-14 1:28 ` Immanuel Scholz
2002-06-14 1:43 ` Dale Stanbrough
2002-06-14 4:53 ` David Marceau
2002-06-14 6:40 ` Dale Stanbrough
2002-06-14 6:49 ` Hyman Rosen
2002-06-14 12:18 ` Baugereau
2002-06-14 16:30 ` David Marceau
2002-06-14 17:34 ` Baugereau
2002-06-14 19:01 ` Wes Groleau
2002-06-14 19:43 ` Baugereau
2002-06-15 3:02 ` Vinzent Hoefler
2002-06-15 9:49 ` Pascal Obry
2002-06-17 15:53 ` Dan Andreatta
2002-06-17 18:20 ` Pascal Obry
2002-06-17 20:56 ` Michael Bode
2002-06-17 21:18 ` Pascal Obry
2002-06-16 21:52 ` Ted Dennison
2002-06-14 20:02 ` Immanuel Scholz
2002-06-14 3:14 ` Ted Dennison
2002-06-14 4:35 ` Dale Stanbrough
2002-06-14 8:05 ` David Marceau
2002-06-14 12:31 ` Dale Stanbrough
2002-06-14 15:08 ` Darren New
2002-06-17 0:17 ` Robert A Duff
2002-06-14 19:05 ` Wes Groleau
2002-06-16 3:34 ` Dale Stanbrough
2002-06-16 3:32 ` Dale Stanbrough
2002-06-14 8:25 ` Dmitry A. Kazakov
2002-06-14 12:19 ` Immanuel Scholz
2002-06-14 14:51 ` Dmitry A. Kazakov
2002-06-14 15:09 ` Darren New
2002-06-16 22:49 ` Dmitry A.Kazakov
2002-06-16 15:07 ` Jim Rogers
2002-06-17 4:06 ` Darren New
2002-06-17 4:52 ` Jim Rogers
2002-06-17 9:45 ` David Marceau
2002-06-17 15:42 ` Darren New
2002-06-17 3:59 ` Darren New
2002-06-17 22:19 ` Dmitry A.Kazakov
2002-06-14 12:58 ` Larry Kilgallen
2002-06-14 22:16 ` Dale Stanbrough
2002-06-15 1:22 ` Larry Kilgallen
2002-06-15 0:51 ` Dale Stanbrough
2002-06-15 11:49 ` Immanuel Scholz
2002-06-15 21:45 ` Robert A Duff
2002-06-14 14:59 ` Ted Dennison
2002-06-16 3:27 ` Dale Stanbrough
2002-06-16 22:18 ` Wes Groleau
2002-06-16 22:38 ` Ted Dennison
2002-06-14 15:00 ` Ted Dennison
2002-06-14 20:13 ` Wes Groleau
2002-06-14 18:52 ` Jeffrey Carter
2002-06-15 22:03 ` Robert A Duff
2002-06-16 1:58 ` Jeffrey Carter
2002-06-16 3:19 ` Dale Stanbrough
2002-06-16 22:20 ` Wes Groleau
2002-06-17 1:57 ` Larry Kilgallen
2002-06-17 2:16 ` Jeffrey Carter
2002-06-14 15:25 ` John R. Strohm
2002-06-15 4:05 ` Lyle McKennot
2002-06-17 13:32 ` Marin David Condic
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox