Visual Basic syntax Marc Stiegler (marcs@skyhunter.com)
Thu, 19 Nov 1998 22:06:25 -0800

[I'm resending this because it didn't seem to make it into the archive.
Peter, might this be a CritMail bug? The E CritMail archive
is at "http://eros.cis.upenn.edu/~majordomo/e-lang/index.html">http://eros.cis.upenn.edu/~majordomo/e-lang/index.html". Thanks, --MarkM]

owner-e-lang@eros.cis.upenn.edu using -f Received: from alpha2.ctaz.com (alpha2.ctaz.com [207.173.255.131])

	by eros.cis.upenn.edu (8.8.5/8.8.5) with ESMTP id JAA09546
	for <e-lang@eros.cis.upenn.edu>; Mon, 16 Nov 1998 09:08:08 -0500
Received: from Pskyhunt ([207.173.250.152]) by alpha2.ctaz.com
          (Post.Office MTA v3.5.2 release 221 ID# 0-53535U50000L50000S0V35)
          with SMTP id com for <e-lang@eros.cis.upenn.edu>;
          Mon, 16 Nov 1998 07:19:04 -0700
Message-ID: <000b01be116b$f7ba30e0$4dd6fea9@Pskyhunt> Reply-To: "Marc Stiegler" <marcs@skyhunter.com> From: "Marc Stiegler" <marcs@skyhunter.com> To: "E Language Discussions" <e-lang@eros.cis.upenn.edu> Subject: Visual Basic syntax
Date: Sun, 15 Nov 1998 12:16:22 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;

boundary="----=_NextPart_000_0004_01BE1091.C2071920"

X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.3155.0
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3155.0
Sender: owner-e-lang@eros.cis.upenn.edu
Precedence: bulk
Status: U
X-UIDL: 911226222.23351.tehama-in.paix.cp.net

I had an unusual opportunity this past week: I taught an 8 hour course in Visual Basic. First, of course, I had to learn Visual Basic :-)

Markm, I'm not sure how much you know about this syntax you are trying to make an alternative in E. Let me make sure you know what they expect as loop flow constructs:

While( ) ... Wend
Do While( ) ... Loop
Do Until( ) ... Loop
Do ... Loop While( )
Do ... Loop Until( )
For i in (set or list) ... Next i
For i = 1 to 3 ... Next i

As you can see, these puppies have little in the way of consistency among them. It is a polyglot of stylistic conventions. All of VB, in fact, is a polyglot of stylistic conventions (a well-done polyglot, by the way, if I were trying to build a language by accretion, I doubt that I could do better). As such, I suspect that it would not noticeably traumatize VB programmers to learn the { } convention for flow control. Meanwhile, the idea of reading code with a mix of {} and endIf traumatizes me, and probably a lot of other people.

I think that making keywords case insensitive for the VB folks is a good idea, I think that that will help them get into the language. I applaud the philosophy of language design that made you decide to have an alternative flow control for them. But I reluctantly draw to the conclusion that, though I applaud the philosophy, I think this time it is a step farther than makes sense. I recommend removing the alternate VB flow control syntax.

Meanwhile, on the topic of inheritance in VB, I have to believe the people on this email list when they claim that VB has it. But neither the book VB for Dummies, nor the VB for Applications Help system in Excel97, reference it. I sure couldn't find it. And so if I were programming in VB, I would not use it. I conclude that one important reason why VB programmers don't use inheritance is that it is so poorly documented, no one knows about it.

--marcs