![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
>> First, I expect more production code has been written
>> in BASIC than Haskell.
>
> By which measurement? Number of applications? Number of lines of code?
Either of those.
> What counts as "production"?
Put up for sale and purchased? Business-critical computations run with it?
> Which dialects of BASIC count? (For
> example, where I work, we have a 4,000 line QBasic monstrosity which we
> use for scientific work, for reasons beyond my comprehension. Does
> QBasic count? Or is that too modern?)
See? That's exactly what I mean. How many businesses ran 8-bit software on
apples or radio shack or whatever? How many mainframe programs were written
in Haskell?
If you're going to start counting the variants of BASIC that don't suck by
your metric (e.g., VB.NET, VB6, etc) then I can guarantee there's orders of
magnitude more production code in BASIC than Haskell. I can guarantee
there's more demo code in BASIC than Haskell.
> I'm doubtful that BASIC has more production code than Haskell in terms
> of number of lines of code. OTOH, since I have no scientific data on
> which to decide either way, it's kind of an empty point.
You're too young, grasshopper. Back when BASIC was the language of choice
for personal computers, there was a crapload of production code in BASIC.
> Excel macros, makefiles and shell scripts are all strictly more powerful
> than BASIC in at least one objective way: they all support recursion.
> BASIC does not.
Makefiles don't support recursion except by invoking themselves externally.
It's only relatively recently that shell script have supported recursion in
the language itself.
Plus, when you're trying to solve a problem like building software,
recursion is a point *against* your solution.
>>>>> Truth is, if you compare almost any pair of complex objects, usually
>>>>> one is so clearly superior to the other that there's nothing to argue
>>>>> about,
>>>>
>>>> Except, you know, Holy stuff.
>>>
>>> That would be the other half of that sentence, yes.
>>
>> I would disagree on that.
>
> I said "when you compare two things, usually one is obviously superior
> to the other, *or* both have their uses". Which seems pretty
> uncontroversial to me.
I don't think you'll find too many people that agree that both Catholicism
*and* Islam "both have their uses". If you believe in either one, the other
is an evil plot from Satan to damn you to hell. If you don't believe in
either one, neither has a use. (Exaggerating, of course.)
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Wed, 06 Oct 2010 09:20:03 +0100, Invisible wrote:
> Excel macros, makefiles and shell scripts are all strictly more powerful
> than BASIC in at least one objective way: they all support recursion.
> BASIC does not.
10 GOSUB 50
20 END
50 PRINT "RECURSION"
60 GOSUB 50
70 RETURN
Uh, wha? No recursion?
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> See? That's exactly what I mean. How many businesses ran 8-bit software
> on apples or radio shack or whatever? How many mainframe programs were
> written in Haskell?
Well, since mainframes were more or less extinct by the time Haskell was
invented, I'm going to say "not many".
Come to think about it, if you're going to judge "the best language" as
being "the most widely used language", wouldn't that mean that Z80
assembly wins by several thousand miles?
> If you're going to start counting the variants of BASIC that don't suck
> by your metric (e.g., VB.NET, VB6, etc) then I can guarantee there's
> orders of magnitude more production code in BASIC than Haskell. I can
> guarantee there's more demo code in BASIC than Haskell.
VB isn't BASIC. It's an entirely unrelated language that just happens to
have a similar name and bares a vague resemblance to the syntax. Much
like Java and JavaScript (oh, excuse me, ECMAScript) have nothing to do
with each other.
Personally I greatly dislike VB, but there's little debate that it's
more powerful than the original BASIC.
>> Excel macros, makefiles and shell scripts are all strictly more
>> powerful than BASIC in at least one objective way: they all support
>> recursion. BASIC does not.
>
> Makefiles don't support recursion except by invoking themselves
> externally.
What, a make target can't invoke itself? I thought it could.
> It's only relatively recently that shell script have
> supported recursion in the language itself.
Well... if you say so. I'm only commenting on the state of these
languages today (because that's all I know about).
> Plus, when you're trying to solve a problem like building software,
> recursion is a point *against* your solution.
I disagree.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Uh, wha? No recursion?
Cute. Now try doing that while actually processing some data. Oh, wait,
you can't - no local variables. :-P
Of course, BASIC is Turing-complete. You can implement variable scoping
manually yourself. But that's not the same as the language having real
support for recursion...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> It defies belief that anybody could disagree
Certainly the primitive versions of the language were pretty primitive. But
then, people were doing primitive things. How much of a namespace do you
need when your computer only has 4K of RAM?
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> Come to think about it, if you're going to judge "the best language" as
> being "the most widely used language",
I wasn't conflating those two. You're changing "useful" to "best". You said
BASIC was useless. I pointed out it was more used then Haskell. Now you're
saying "that doesn't make it the best", which wasn't my contention. Merely
that you don't have to be the best to be useful.
>>> Excel macros, makefiles and shell scripts are all strictly more
>>> powerful than BASIC in at least one objective way: they all support
>>> recursion. BASIC does not.
>>
>> Makefiles don't support recursion except by invoking themselves
>> externally.
>
> What, a make target can't invoke itself? I thought it could.
What do you mean by "invoke" here?
>> It's only relatively recently that shell script have
>> supported recursion in the language itself.
>
> Well... if you say so. I'm only commenting on the state of these
> languages today (because that's all I know about).
Yes. And I'm suggesting that before you argue about "dead" languages like
pre-VB BASIC, you learn some of the history. :-)
>> Plus, when you're trying to solve a problem like building software,
>> recursion is a point *against* your solution.
>
> I disagree.
Why? What is the good use for recursion there? If your goal is to invoke
various compilers etc, where does recursion fundamentally aid in the process?
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> support for recursion...
The only support for recursion that you *need* is to save the PC.
You realize that many of the languages designed while BASIC was being
designed didn't have recursion either, because the assembly languages they
ran on didn't have recursion?
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Wed, 06 Oct 2010 16:33:52 +0100, Invisible wrote:
>> Uh, wha? No recursion?
>
> Cute. Now try doing that while actually processing some data. Oh, wait,
> you can't - no local variables. :-P
You can, local variables aren't required, you just have to code around
that limitation.
You can certainly cause stack overflows (since that's how RETURN gets
back to the entry point).
> Of course, BASIC is Turing-complete. You can implement variable scoping
> manually yourself. But that's not the same as the language having real
> support for recursion...
You said "no recursion". I showed there was some. Give up now. ;-)
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Wed, 06 Oct 2010 15:17:30 -0400, Jim Henderson wrote:
> On Wed, 06 Oct 2010 16:33:52 +0100, Invisible wrote:
>
>>> Uh, wha? No recursion?
>>
>> Cute. Now try doing that while actually processing some data. Oh, wait,
>> you can't - no local variables. :-P
>
> You can, local variables aren't required, you just have to code around
> that limitation.
>
> You can certainly cause stack overflows (since that's how RETURN gets
> back to the entry point).
>
>> Of course, BASIC is Turing-complete. You can implement variable scoping
>> manually yourself. But that's not the same as the language having real
>> support for recursion...
>
> You said "no recursion". I showed there was some. Give up now. ;-)
http://www.atarimagazines.com/compute/issue26/130_1_RECURSIVE_BASIC_SUBROUTINES.php
Just in case you needed further evidence of recursive capabilities.
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> It defies belief that anybody could disagree
>
> Certainly the primitive versions of the language were pretty primitive.
> But then, people were doing primitive things. How much of a namespace do
> you need when your computer only has 4K of RAM?
Also, even after machines got faster and bigger, there were still benefits
of a small primitive language. I remember when Acorn released the first CPU
with on-board cache, suddenly the entire BASIC interpreter could fit in the
cache - which meant BASIC became a very fast (for an interpreted language).
I assume more complex interpreted languages couldn't manage this.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |