comp.lang.ada
 help / color / mirror / Atom feed
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.




  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