Hi, if BASIC were to be written today, what changes would you have made, if any, consistent with the meaning of the acronym? I am thinking about the physical limitations and the pressures to make the language like some of it's now little used competitors.
For example, I have always wondered why those "doit" instructions - FOR/RETURN/ DO/WHILE etc are not all part of one instruction with several parameters.
Some of the differences between different BASICS are surely unnecessary and not consistent with the original basis for it's creation.
Perhaps sales of BASIC are not to or for beginners anymore? Perhaps the "educational" factor once used to sell the language is not of much interest?
Has modern BASIC evolved into a development language for experts?
"jj" <in...@amd.com> wrote in message news:fug623$le2$1@aioe.org... > Hi, if BASIC were to be written today, what changes would you have made, > if any, consistent with the meaning of the acronym? I am thinking about the > physical limitations and the pressures to make the language like some of > it's > now little used competitors.
> For example, I have always wondered why those "doit" instructions - > FOR/RETURN/ > DO/WHILE etc are not all part of one instruction with several parameters.
You should really read the book, Back to BASIC by Kemeny and Kurtz, the authors of the original BASIC. There's a good reason for having separate keywords in a teaching language.
> Some of the differences between different BASICS are surely unnecessary and > not > consistent with the original basis for it's creation.
How true! Again, read Back to BASIC. It's the story of why BASIC was created and how "Street BASIC" corrupted the original vision of the language.
> Perhaps sales of BASIC are not to or for beginners anymore? Perhaps the > "educational" factor > once used to sell the language is not of much interest?
True BASIC is doing very well in the elementary educational world.
> Has modern BASIC evolved into a development language for experts?
It's sickening for a BASIC programmer to see what C programmers have done in the name of BASIC. I sometimes wish Dartmouth had copyrighted the name BASIC and kept stricter control over it.
> <snip> >>It's sickening for a BASIC programmer to see what C programmers have done >>in the name of BASIC. > Just curious as to what you might be referring to?
Look at many versions of "BASIC" around such as FreeBASIC. They've added pointers, unions, function overloading and enumeration to mention a few things. Maybe even heap management in a few variations! These are all contrary to the original intent of BASIC. Kemeny and Kurtz didn't even want the user to know that there's an internal difference in the way integers and floating-point numbers are stored! The details of the underlying computer should be inaccessible to the BASIC programmer. The computer on which BASIC is running should be irrelevant.
><ArarghMail804NOS...@NOT.AT.Arargh.com> wrote in message >news:dnbq045hsosllvap1r9pans69a0cqe43r0@4ax.com... >> On Mon, 21 Apr 2008 08:24:21 -0400, "Tom Lake" <tl...@twcny.rr.com> >> <snip> >>>It's sickening for a BASIC programmer to see what C programmers have done >>>in the name of BASIC. >> Just curious as to what you might be referring to?
>Look at many versions of "BASIC" around such as FreeBASIC. They've added >pointers, >unions, function overloading and enumeration to mention a few things. Maybe >even >heap management in a few variations! These are all contrary to the original >intent of >BASIC. Kemeny and Kurtz didn't even want the user to know that there's an >internal >difference in the way integers and floating-point numbers are stored! The >details of >the underlying computer should be inaccessible to the BASIC programmer.
Hmm, I see what you mean. But dropping all the extras makes it pretty useless except for Beginners. And slow. Maybe the answer is to come up with a new name for an expanded language whose beginnings started with BASIC. Any ideas?
>The computer on which BASIC is running should be irrelevant.
Data interchange could get interesting in that case. Everything would have to be stored in text files, but then you get character set differences, -- ArarghMail804 at [drop the 'http://www.' from ->] http://www.arargh.com BCET Basic Compiler Page: http://www.arargh.com/basic/index.html
To reply by email, remove the extra stuff from the reply address.
> > <snip> > >>It's sickening for a BASIC programmer to see what C programmers have done > >>in the name of BASIC. > > Just curious as to what you might be referring to?
> Look at many versions of "BASIC" around such as FreeBASIC. They've added > pointers, > unions, function overloading and enumeration to mention a few things. Maybe > even > heap management in a few variations! These are all contrary to the original > intent of > BASIC. Kemeny and Kurtz didn't even want the user to know that there's an > internal > difference in the way integers and floating-point numbers are stored! The > details of > the underlying computer should be inaccessible to the BASIC programmer. The > computer on which BASIC is running should be irrelevant.
Agreed. The point of BASIC is to be problem-oriented, not machine- oriented. Additions should hide the way that the machine works, not expose it.
> Perhaps sales of BASIC are not to or for beginners anymore? Perhaps > the "educational" factor once used to sell the language is not of > much interest?
That's certainly not true of BBC BASIC, which started off life both as a 'beginners' and an 'educational' language (way back in 1981) and very much still fulfils those roles today.
> Has modern BASIC evolved into a development language for experts?
As has been alluded to, that has happened to some BASICs *at the cost of* their suitability for beginners. Personally I deprecate that. On the other hand I disagree with those who think BASIC shouldn't evolve at all; as an 'educational' language it needs to reflect some of the developments in programming techniques that have taken place over the last 30 years.
I have been privileged to have been involved with BBC BASIC from its earliest beginnings, and to have overseen (and recently been responsible for) its development. In bringing it 'up to date' in the last few years I have tried very hard to be sensitive to its original aims. Some 'modern' features have been added, but (hopefully) not at the expense of what BASIC originally stood for.
On Tue, 22 Apr 2008 03:51:21 GMT, wrote: > On Mon, 21 Apr 2008 22:12:32 -0400, "Tom Lake" <tl...@twcny.rr.com> > wrote: >><ArarghMail804NOS...@NOT.AT.Arargh.com> wrote in message >>news:dnbq045hsosllvap1r9pans69a0cqe43r0@4ax.com... >>> On Mon, 21 Apr 2008 08:24:21 -0400, "Tom Lake" >>> <tl...@twcny.rr.com> <snip> >>>>It's sickening for a BASIC programmer to see what C programmers >>>>have done in the name of BASIC. >>> Just curious as to what you might be referring to?
>>Look at many versions of "BASIC" around such as FreeBASIC. They've >>added pointers, >>unions, function overloading and enumeration to mention a few >>things. Maybe even >>heap management in a few variations! These are all contrary to the >>original intent of >>BASIC. Kemeny and Kurtz didn't even want the user to know that >>there's an internal >>difference in the way integers and floating-point numbers are >>stored! The details of >>the underlying computer should be inaccessible to the BASIC >>programmer.
> Hmm, I see what you mean. But dropping all the extras makes it > pretty useless except for Beginners.
...which was what Kemeny & Kurtz had in mind, wasn't it?
> And slow. Maybe the answer > is to come up with a new name for an expanded language whose > beginnings started with BASIC. Any ideas?
I think perhaps the OP had in mind existing languages which call themselves *BASIC* which are only superficially similar to the original. Things like XBasic, or anything from MS. (Actually, maybe MS's VARIANT data type was close to something K&K wanted in the first place... a data type that could hold *anything*, and the programmer doesn't have to think about the contents, just *uses* it.)
>>The computer on which BASIC is running should be irrelevant. > Data interchange could get interesting in that case. Everything > would have to be stored in text files, but then you get character > set differences,
That would drive me nuts. Probably push me away from the language entirely.
-- A bug can make your DOS session run off into the bushes and not come back. -- Jeff Duntemann
>>The computer on which BASIC is running should be irrelevant. > Data interchange could get interesting in that case. Everything would > have to be stored in text files, but then you get character set > differences,
Not everything. Remember, BASIC is only supposed to have two data types: Real numbers and strings. The ANSI committee (of which Tom Kurtz was a member) defined BASIC's real number format to be IEEE floating-point. Strings are ASCII characters. You could transfer numbers and words between all versions of BASIC that way without the user ever being aware of what goes on "under the covers"
On Apr 22, 6:46 pm, "Tom Lake" <tl...@twcny.rr.com> wrote:
> Remember, BASIC is only supposed to have two data types: > Real numbers and strings.
ANSI BASIC may have only real numbers and strings but many other BASICs have more data types (most have integer data types, or at least variant types that may be integer). BASIC in 2008 isn't "a" language, it's a set of more-or-less incompatible dialects. You can't say it is "supposed" to have any particular characteristic.
> The ANSI committee (of which Tom Kurtz was a member) defined > BASIC's real number format to be IEEE floating-point. Strings > are ASCII characters. You could transfer numbers and words > between all versions of BASIC that way
What about the "versions of BASIC" developed before there was such a thing as IEEE floating point, i.e. prior to 1985? For example BBC BASIC (1981) uses a 40-bit floating-point format (although BBC BASIC for Windows can optionally use IEEE 64-bit floats).
>> Hmm, I see what you mean. But dropping all the extras makes it >> pretty useless except for Beginners.
>...which was what Kemeny & Kurtz had in mind, wasn't it?
>> And slow. Maybe the answer >> is to come up with a new name for an expanded language whose >> beginnings started with BASIC. Any ideas?
>I think perhaps the OP had in mind existing languages which call >themselves *BASIC* which are only superficially similar to the >original. Things like XBasic, or anything from MS. (Actually, maybe >MS's VARIANT data type was close to something K&K wanted in the first >place... a data type that could hold *anything*, and the programmer >doesn't have to think about the contents, just *uses* it.)
Well, yes for a system neutral version, a VARIANT data type makes sense(, except for speed issues). It would even make more sense if for numbers if it used the smallest or maybe the natural machine sized integer initially and at each overflow move up to the next size as needed.
>>>The computer on which BASIC is running should be irrelevant. >> Data interchange could get interesting in that case. Everything >> would have to be stored in text files, but then you get character >> set differences,
>That would drive me nuts. Probably push me away from the language >entirely.