http://gilgamesh.hamsterrepublic.com/cgi-bin/bugzilla/show_bug.cgi?id=396





------- Comment #3 from [EMAIL PROTECTED]  2007-06-20 16:45 -------
(In reply to comment #2)
> (In reply to comment #1)
> > I've been working with .17 for a while, and while your concerns about it are
> > valid, you have to look at things from their perspective.
> > 
> > What they did was eliminate certain language constructs that were hacky by
> > nature. Things like variable suffixes, which would make code even more 
> > obscure
> > to a non-hardcore programmer ("Ok, so, i% is the percentage of i. Got it!").
> > Or, the CALL 'function', which was just stupid. Same with LET.
> 
> Variable suffixes is actually the one I am most unhappy about. (well second
> only to GOSUB, since I know we have a decent workaround for that) This to me 
> is
> one of the defining characteristics of "basic" as a language. Mainly I like it
> because being able to know a variable is a string at a glance is very helpful.
> The $ suffix is so deeply integrated into my psyche that when I go to a store
> and read a price tag I think "string-nineteen-dollars-and-nintey-five-cents"

Well... yes and no. Ideally, variables would look like "dim message as string",
whose string-based nature is implied by the name "message". "dim i as string"
would just be confusing.

> > .... And, implicit variables are bad bad
> > bad anyway, in a language that supports them (Even in PHP, I tend to write 
> > "$i
> > = 0;" at the top anyway).
> 
> I contend that implicit-on-read is bad, but implicit-on-write is not bad, and
> actually astonishingly convenient.

Implicit on read is bad, that is agreed, and will be so forever.

On write, though... one of the problems is scope.

'start
foo = int(rnd * 2)

IF foo = 1 THEN
  bar = 123
END IF

PRINT bar
'end

Does bar exist or not? We can't tell until run time, which would be fine for an
interpreted language, but alas, this is compiled. So, bar must be added to the
symbol table. But, if it's never initialized, then 

Or, what about this:

'start
foo = int(rnd * 2)

IF foo = 1 THEN
  bar = 123
ELSE
  bar = "blarg!"
END IF

PRINT bar
'end

Now, the existence of bar is undisputed, but its type is! (I will admit that I
haven't tried these examples, so there may be well-defined methods of handling
these situations)

> > By trimming all this cruft, they can simplify existing rules, and hopefully
> > extend the language in a consistent and graceful manner.
> > 
> > That said, none of this magically upgrades existing code. But, there's no 
> > sense
> > blacklisting .17
> 
> I didn't mean to imply I wanted to blacklist 0.17

I realized that after I posted, and I apologize.

> > Lastly, this isn't a bug.
> Which is why I chose severity->feature request :)

Ah, but, there isn't a request for a feature either. At least, not an explicit
one. But, I'll let that slide.


-- 
Configure bugmail: 
http://gilgamesh.hamsterrepublic.com/cgi-bin/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

_______________________________________________
ohrrpgce mailing list
ohrrpgce@lists.motherhamster.org
http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org

Reply via email to