From: Laurent Guerby <guerby@acm.org>
Subject: Re: newbie can't get exceptions to work!
Date: 10 Apr 2001 20:21:47 +0200
Date: 2001-04-10T18:15:08+00:00 [thread overview]
Message-ID: <86wv8sfwec.fsf@acm.org> (raw)
In-Reply-To: Pine.BSF.4.21.0104091147440.6359-100000@shell5.ba.best.com
Brian Rogoff <bpr@shell5.ba.best.com> writes:
> On 9 Apr 2001, Laurent Guerby wrote:
> > broken case statements,
>
> Broken semantically. Using the name switch wouldn't make a difference.
> Besides, I much prefer ML or Haskell pattern matching to Ada's case
> statement. More readable, more powerful, terser, better.
Well, that's no longer syntax ;-). The horror I was refering too was
the optional break as you might have guessed. Also I find the
mandatory enumerate all rule in alternatives of Ada is quite useful.
I agree that pattern matching is something very nice to have anyway.
> > named and order free arguments and agregates,
>
> Would be nice. There is some discussion about adding this to Ocaml now
> too. You can use labelled params, but commuting arguments are still up in
> the air.
I must admit I don't understand why every language doesn't have this
feature, especially all those conceived after Ada like OCaml. I
suspect we should mandate Ada history and design rationale lectures to
all language creators, a lot of engineering went into Ada, and we've
had a lot of time to judge the work done.
My favourite citation here is from Steve McConnell in "code Complete":
Finally, the goto was incorporated into the Ada language, the
most carefully engineered programming language in history.
> > and operator character choice,
>
> True, but I must say that the += and friends are nice. Of course an Ada
> version would be +:= and still nice.
That's a possibility. Another is to have a way to generate tersely
procedural versions of operators, may be (ok ugly ;-)
procedure Inc is procedural "+";
-- Inc (X : in out T; Y : in T) is begin X := X + Y; end Inc;
Not really functional BTW ;-).
> And while I don't like the syntax, the ? : of C is also nice, but,
> as you know, I'm a functional kind of guy now.
This is not just syntax here, Ada doesn't have a way to do the same as
C here because of strictness in argument evaluation. I recently
designed a small language with an Ada-style syntax and I added "if"
expressions :
X : constant T := if C1 then V1 elsif C2 then V2 else V3;
This is something I think people miss in Ada, may be someone should
wrote an extension proposal ;-).
> > And I would absolute religious belief in keeping those
> > historical mistakes around (see Java).
>
> I can't parse that. Let me guess, "And I would add, an absolute ..."?
You have a powerful syntax recovery parser in your brain ;-).
> > If {} vs begin/end is issue for a new language, allow both and end of
> > the story.
>
> That would be a mistake. Personally, I can go either way, begin-end or {}.
> I'm just annoyed at the bizarre thinking that puts one of these as greatly
> superior to the other. I really find () to be a bummer about Ada syntax
> and I don't agree that wordier is always better.
As other people pointed out, another advantage of end syntax is the
"end thing" which is quite nice. I think that if you allow declarations
to float around, the argument about terseness of {} becomes moot, eg:
procedure P is
variable X : T := Initial;
while Cond (X) loop
constant Tmp : T := G (X);
if Cond (Tmp) then
Do_Thing (Tmp, X);
end if;
Next (X);
end loop;
end P;
would not gain much from {}.
And I of course forgot the mandatory () for function calls without
args silliness ;-).
> > PS: also, on a french keyboard, {} [] are a major pain to type ;-).
>
> Hey man, get an American keyboard!
No, I just program in Ada at home and work ;-) ;-).
--
Laurent Guerby <guerby@acm.org>
next prev parent reply other threads:[~2001-04-10 18:21 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-05 3:19 newbie can't get exceptions to work! Jeff Shipman
2001-04-05 4:25 ` Ed Falis
2001-04-05 11:00 ` martin.m.dowie
2001-04-05 14:21 ` Ted Dennison
2001-04-05 17:50 ` Fraser Wilson
2001-04-05 4:34 ` Jeff Shipman
2001-04-05 4:59 ` Wilhelm Spickermann
2001-04-05 14:14 ` Ted Dennison
2001-04-05 16:37 ` Wilhelm Spickermann
2001-04-06 13:09 ` Marc A. Criley
2001-04-06 15:04 ` Ted Dennison
2001-04-06 16:43 ` Robert A Duff
2001-04-06 17:39 ` Ted Dennison
2001-04-06 21:50 ` Robert A Duff
2001-04-06 20:11 ` Brian Rogoff
2001-04-06 22:20 ` Robert A Duff
2001-04-06 23:04 ` Brian Rogoff
2001-04-07 5:48 ` Jeffrey Carter
2001-04-10 1:29 ` Robert A Duff
2001-04-07 19:30 ` Robert A Duff
2001-04-07 21:17 ` Brian Rogoff
2001-04-07 21:25 ` Ayende Rahien
2001-04-07 22:57 ` David Starner
2001-04-08 12:10 ` Ayende Rahien
2001-04-08 2:12 ` Larry Hazel
2001-04-08 12:12 ` Ayende Rahien
2001-04-09 16:20 ` Larry Hazel
2001-04-10 2:38 ` Ayende Rahien
2001-04-10 3:25 ` James Rogers
2001-04-08 22:18 ` Brian Rogoff
2001-04-09 15:14 ` Ted Dennison
2001-04-09 17:23 ` Brian Rogoff
2001-04-09 18:23 ` Laurent Guerby
2001-04-09 19:15 ` Brian Rogoff
2001-04-10 18:21 ` Laurent Guerby [this message]
2001-04-10 19:44 ` Brian Rogoff
2001-04-11 18:03 ` Laurent Guerby
2001-04-11 18:33 ` Samuel T. Harris
2001-04-14 0:06 ` Robert A Duff
2001-04-12 1:42 ` Mike Silva
2001-04-12 2:38 ` Brian Rogoff
2001-04-12 23:23 ` Laurent Guerby
2001-04-13 2:44 ` Brian Rogoff
2001-04-11 13:24 ` Ayende Rahien
2001-04-11 13:14 ` Mats Karlssohn
2001-04-11 15:08 ` Ayende Rahien
2001-04-11 21:42 ` Fraser Wilson
2001-04-12 23:55 ` Robert A Duff
2001-04-10 2:12 ` Robert A Duff
2001-04-10 3:47 ` Brian Rogoff
2001-04-10 13:40 ` Ada keywords (was: Re: newbie can't get exceptions to work!) Marin David Condic
2001-04-10 14:26 ` Jean-Pierre Rosen
2001-04-09 20:49 ` newbie can't get exceptions to work! Ted Dennison
2001-04-09 21:44 ` Brian Rogoff
2001-04-09 21:59 ` Ted Dennison
2001-04-10 2:54 ` Ayende Rahien
2001-04-10 14:00 ` Ted Dennison
2001-04-10 17:44 ` Fraser Wilson
2001-04-10 6:59 ` Mats Karlssohn
2001-04-10 14:18 ` Ted Dennison
2001-04-10 16:27 ` Mark Biggar
2001-04-11 11:55 ` Mats Karlssohn
2001-04-11 14:34 ` Samuel T. Harris
2001-04-11 15:50 ` Pat Rogers
2001-04-12 6:27 ` Mats Karlssohn
2001-04-11 11:49 ` Mats Karlssohn
2001-04-11 15:38 ` Robert A Duff
2001-04-13 16:12 ` Matthew Woodcraft
2001-04-10 1:41 ` Robert A Duff
2001-04-10 3:03 ` James Rogers
2001-04-10 3:58 ` Brian Rogoff
2001-04-10 21:48 ` Ted Dennison
2001-04-11 15:09 ` Ayende Rahien
2001-04-11 21:57 ` James Rogers
2001-04-11 23:13 ` Brian Rogoff
2001-04-12 6:33 ` Mats Karlssohn
2001-04-12 16:38 ` Brian Rogoff
2001-04-17 7:04 ` Mats Karlssohn
2001-04-17 9:08 ` Jean-Pierre Rosen
2001-04-12 15:16 ` Ted Dennison
2001-04-12 21:22 ` James Rogers
2001-04-10 4:26 ` Brian Rogoff
2001-04-11 15:30 ` Robert A Duff
2001-04-11 17:33 ` Brian Rogoff
2001-04-10 1:26 ` Robert A Duff
2001-04-10 2:11 ` Brian Rogoff
2001-04-14 0:00 ` Robert A Duff
-- strict thread matches above, loose matches on Subject: below --
2001-04-05 5:26 Christoph Grein
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox