English Amiga Board


Go Back   English Amiga Board > Main > Amiga scene

 
 
Thread Tools
Old 17 August 2015, 02:14   #241
idrougge
Registered User
 
Join Date: Sep 2007
Location: Stockholm
Posts: 4,338
Quote:
Originally Posted by Mrs Beanbag View Post
ok, this isn't a Language vs Language, i could write a short book called "What's Wrong With C", but BASIC is being touted as a simple language that's easy to learn and it really isn't imho
I certainly think it is, especially put in the context of its time of invention, or compared to mainstream languages used since then. It contains a minimum of syntactic clutter and pandering to a preprocessor. People who like curly-braces may not agree about the syntactic clutter bit, but curly-braces are syntactic clutter, and so is end-of-statement markers. For teaching a beginner programming, it's better to get to "hello world" straight away instead of having to explain declarations, prototypes, arguments and return values, as one must do in any language inspired by C.

Personally, I find myself the most productive writing in ARexx, but I suspect it's also not a programmer snob's favourite.
idrougge is offline  
Old 17 August 2015, 18:22   #242
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,187
Quote:
Originally Posted by idrougge View Post
Personally, I find myself the most productive writing in ARexx, but I suspect it's also not a programmer snob's favourite.
Have you ever tried AmigaE? It's a great OOP language with BASIC-like syntax. About the only feature I've found lacking in it is that you have to write your own wrapper code for multi-dimensional arrays.
Samurai_Crow is offline  
Old 17 August 2015, 23:58   #243
idrougge
Registered User
 
Join Date: Sep 2007
Location: Stockholm
Posts: 4,338
Yes and no. I've read a lot of its documentation, but never written anything real in it. But it's certainly an interesting language that doesn't use arbitrary ascii garbage for its syntax.
idrougge is offline  
Old 18 August 2015, 20:17   #244
Megol
Registered User
 
Megol's Avatar
 
Join Date: May 2014
Location: inside the emulator
Posts: 377
Quote:
Originally Posted by Mrs Beanbag View Post
ok, this isn't a Language vs Language, i could write a short book called "What's Wrong With C", but BASIC is being touted as a simple language that's easy to learn and it really isn't imho
To a certain level it is: it is mostly implemented as an interpreter and support direct execution of statements both of which helps experimenting. Having a lot of stuff predefined without needing some type of including/importing statements helps too.

IMO one will soon hit a brick wall and have either to switch language or use some extended BASIC dialect. But I repeat myself

Quote:
Originally Posted by idrougge View Post
Yes and no. I've read a lot of its documentation, but never written anything real in it. But it's certainly an interesting language that doesn't use arbitrary ascii garbage for its syntax.
Your fixation with symbol use is strange to me given that BASICs tend to use sigils to indicate type type of a variable which IMHO is much less logical and readable.
The problem with the C syntax isn't (again IMHO) the use of symbols, it is the unstructured layout that allows programmers to output almost unreadable messes. Properly formatted C is easy to read, badly formatted it is near unreadable for humans. Not Perl unreadable though...
Megol is offline  
Old 19 August 2015, 12:18   #245
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
Quote:
Originally Posted by idrougge View Post
I certainly think it is, especially put in the context of its time of invention, or compared to mainstream languages used since then. It contains a minimum of syntactic clutter and pandering to a preprocessor. People who like curly-braces may not agree about the syntactic clutter bit, but curly-braces are syntactic clutter, and so is end-of-statement markers. For teaching a beginner programming, it's better to get to "hello world" straight away instead of having to explain declarations, prototypes, arguments and return values, as one must do in any language inspired by C.
why do you keep bringing up C even after i've said i'm not advocating C. There are loads of things wrong with C but curly braces are the least of it: they may be butt ugly but they're nothing complex or difficult. I wouldn't advocate C for a beginner mostly because of the pointer arithmetic, rather than the syntax. JavaScript, however, is perfectly viable as a beginner's language, for all its quirks.

But let's think about what curly braces actually do in C. They delineate code blocks. That is a necessary thing because a loop or a conditional statement (or whatever else) has to have a body. Other languages do it in different ways. Python does it just by indentation, which forces the programmer to write in a neat way, and one can immediately see the structure of the code without having to read any of the keywords.

BASIC, on the other hand, has no consistent way to delineate a code block at all. There is no way to tell that a pair of statements encloses a block other than by knowing about those statements already, thus intertwining syntax and semantics. Bad enough that there are umpteen different ways to start a code block, each one has a special way to end it as well, so you have to learn symbols in pairs... IF...END IF, FOR...NEXT, WHILE...WEND &c.. the human brain might be able to cope with this, but if it requires a complex parser it is not a simple language.

Megol already mentioned some of the other things i was going to say, but in addition to that, there is even more "ascii garbage" that BASIC syntax typically uses. For instance, arithmetic operators and parenthesis. For instance, one can write:
Code:
Let A = (B+C)*2
That seems nice and clear to me, despite containing non-alphanumeric characters, but maybe you would prefer something like this:
Code:
Let A equal calculate B plus C first times 2
I jest, but, this is more-or-less how Smalltalk works. Or if you really like parenthesis, you might like Lisp, which is about the simplest programming language there is aside from Rule 110. I didn't say "easiest".

But that's not even the worst of it. I think the worst of it is that you can't really talk of "BASIC syntax" at all. Every BASIC statement has its own syntax. Let's just look at a simple print statement:
Code:
Print "There are ";n;" sheep"
Let's just accept that a semicolon is a fine thing to have in a statement, but what does it MEAN? The answer is that it doesn't mean anything outside of a Print statement. One cannot do:
Code:
Let A$="There are ";n;" sheep"
because a ';' is not a string concatenation operator that works on the argument passed to Print. It is only part of Print's special and unique syntax. Well you could define it as a string operator, and that would be nice... but you'd have a job trying to work out what putting a semicolon on the END of a string means (although we all know what it does on the end of a Print statement).

And then there's the ascii-garbage equals sign, '='
Code:
10 Let A=5
20 If A=5 Then Print "A is 5"
30 For I=0 To 10 Step 2
...
The equals sign means something different in every one of these statements. The meaning of = on line 20 is responsible for so many errors made by people who learnt to program in BASIC and then graduated onto a more sensible language. But on the 30th line it is difficult to know what it means at all. I know what it does, but it is literal nonsense. In any case, one cannot do:
Code:
Let A=0 To 10 Step 2
For I in A ...
Which is a shame, because that would be hella cool. One could it imagine it working also on arrays and strings...
Code:
Let A="Hello world!" : REM Type inference!
For I in A:
   Print I
Result: each character of the string on its own line...

But alas, it was never meant to be, because BASIC was invented in 1964 when "real" programming was only done in assembly language and none of the staple concepts of modern programming had been invented.

Quote:
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration" - Edsgar Dijkstra https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF

The benefits you mention are common to pretty much any interpreted language, and there are a lot to choose from.
Mrs Beanbag is offline  
Old 19 August 2015, 12:42   #246
tomcat666
Retro Freak
 
tomcat666's Avatar
 
Join Date: Nov 2001
Location: Slovenia
Age: 51
Posts: 1,648
Quote:
Originally Posted by Dunny View Post

Which will be rolled out across the UK over the coming months.

D.
So the new ZX Spectrum will be rolled out to all UK schools ? WOW
tomcat666 is offline  
Old 19 August 2015, 13:01   #247
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,187
Back on topic. To make homebrew games easier to write and such, Mike Parent is starting a series of bounties for AmosPro programmers. If accepted, I'll be doing my part by making a shared library for tilemap manipulations that can be used by any 68k language that supports shared libraries. The library itself will be written in C but support will be extended to AmosPro and AmigaE as well. It will be based on the example codes by Georg Steger found in http://aminet.net/package/dev/src/ScrollingTrick.
Samurai_Crow is offline  
Old 19 August 2015, 15:19   #248
Dunny
Registered User
 
Dunny's Avatar
 
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,007
Quote:
Originally Posted by tomcat666 View Post
So the new ZX Spectrum will be rolled out to all UK schools ? WOW
Possibly, we don't know yet - it depends on how successful we are.

Quote:
Originally Posted by Mrs Beanbag View Post
In any case, one cannot do:
Code:
Let A=0 To 10 Step 2
For I in A ...
Which is a shame, because that would be hella cool. One could it imagine it working also on arrays and strings...
Code:
Let A="Hello world!" : REM Type inference!
For I in A:
   Print I
Result: each character of the string on its own line...
Actually, I can do this:

Code:
10 FOR EACH a$ in ["Hello world!"]: PRINT a$: NEXT a$
or

Code:
10 DIM a(32)
20 FOR EACH b IN a()
30 PRINT b
40 NEXT b
or even

Code:
10 INPUT a$
20 IF a$ IN ["Yes", "yes", "YES"] THEN PRINT "Yay!" ELSE PRINT "Boo!"
and of course

Code:
10 IF b IN [1 TO 10,20,30 TO 40] THEN ...
20 IF c$ IN ["0" TO "9", "A" TO "F"] THEN ...
Where the first tests that b is between 1 and 10 inclusive, or is 20, or is between 30 and 40 inclusive. The second tests for hexchars.

Yes, it's not part of the original Dartmouth spec (and in fact is very close to Pascal) but then the original Sinclair BASIC did things that aren't in the spec - though their string handling was genius and stands up well even today - so what's wrong with making my interpreter do things a little better?

D.
Dunny is offline  
Old 19 August 2015, 16:47   #249
Daedalus
Registered User
 
Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,348
Quote:
Originally Posted by Mrs Beanbag View Post
The equals sign means something different in every one of these statements. The meaning of = on line 20 is responsible for so many errors made by people who learnt to program in BASIC and then graduated onto a more sensible language. But on the 30th line it is difficult to know what it means at all. I know what it does, but it is literal nonsense.
I know what you're saying here, but in my mind, the equals means the same thing in all of those cases - it means "Equals". It's the "If" that changes things in the second case there. For someone learning to program, checking the result of an assignment as If (a = 5) does in C seems crazy. Why would you ever need to check if such a simple instruction was carried out? (Yes, I know there are cases where this is useful but that's much more advanced than these examples). And the For loop is actually assigning the value to the variable, so it's the same as the first statement just as part of a larger statement. Besides, that's the same in C, even the same keyword, only with added semicolons to confuse things (are they not end of statement markers?)

String handling in more modern BASICs is much more flexible and standard than maybe you think. For your example, in Blitz the Print statement uses commas to separate arguments, just like every other statement with multiple arguments:
Code:
Print "Hello ", name$, " and welcome!"
Blit shape1, x, y

Alternatively you can join strings and use them as one argument, again, just like with any other command:
Code:
 
Print "Hello "+name$+" and welcome!"
a$ = "Hello "+name$+" and welcome!"
The "Let" keyword is all but extinct these days too Anyway, I think these are all just minor things. I do believe BASIC is more instantly accessible - as a kid I always found C very intimidating - and that could be the difference between getting someone interested in programming and giving up at the first hurdle because they didn't understand what stdio.h is, and why it looks different to the other lines.
Daedalus is online now  
Old 19 August 2015, 20:04   #250
Megol
Registered User
 
Megol's Avatar
 
Join Date: May 2014
Location: inside the emulator
Posts: 377
Quote:
Originally Posted by Daedalus View Post
I know what you're saying here, but in my mind, the equals means the same thing in all of those cases - it means "Equals". It's the "If" that changes things in the second case there. For someone learning to program, checking the result of an assignment as If (a = 5) does in C seems crazy. Why would you ever need to check if such a simple instruction was carried out? (Yes, I know there are cases where this is useful but that's much more advanced than these examples). And the For loop is actually assigning the value to the variable, so it's the same as the first statement just as part of a larger statement. Besides, that's the same in C, even the same keyword, only with added semicolons to confuse things (are they not end of statement markers?)
C was designed to be concise and powerful. It is, the problem is that the majority of programmers using it shouldn't be.

That one can use assigns in a if statement is because C - unlike many languages - actually is designed and that case falls out naturally.
Code:
a=b=c=12;
And it is very useful:
Code:
if(a=input_stream_stuff()) {
  ...
}
Or even:
Code:
for(;a=input_stream_stuff();) {
  ...
}
Quote:
String handling in more modern BASICs is much more flexible and standard than maybe you think. For your example, in Blitz the Print statement uses commas to separate arguments, just like every other statement with multiple arguments:
Code:
Print "Hello ", name$, " and welcome!"
Blit shape1, x, y
That is just another example on how BASIC isn't a single language. While it may work well in your example (assuming the Blitz print statement can take a list of arguments and print each of them in order) how does it fit into the normal BASIC design?
In standard BASIC commas and semicolons are used as a statement-specific formatting indicator, so if commas are used as argument separators how are semicolons handled? Via a hack...

Quote:
Alternatively you can join strings and use them as one argument, again, just like with any other command:
Code:
 
Print "Hello "+name$+" and welcome!"
a$ = "Hello "+name$+" and welcome!"
Yes. If the BASIC one uses support it. And if one doesn't need the code to be portable to other BASICs which probably uses a different mechanism.

Like:
Code:
A$="Hello"
STR(A$, LEN(A$), LEN(N$))=N$
STR(A$, LEN(A$), 13)=" and welcome!"
Quote:
The "Let" keyword is all but extinct these days too Anyway, I think these are all just minor things. I do believe BASIC is more instantly accessible - as a kid I always found C very intimidating - and that could be the difference between getting someone interested in programming and giving up at the first hurdle because they didn't understand what stdio.h is, and why it looks different to the other lines.
Nowadays the equivalent of "let" is in many modern languages but for a different reason: indicate to the compiler/interpreter that type inference should be used. Not one of the problems in BASIC IMHO.
Megol is offline  
Old 19 August 2015, 21:14   #251
Daedalus
Registered User
 
Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,348
I code both in C and in BASIC, so like I said earlier in my post, I do understand the reasons and advantages of checking an assignment like that. Nevertheless, it is confusing if you're new to programming, and I've had to explain it to people in the past. == might make perfect sense to you because you're using it for so long but it is *not* intuitive to anyone who hasn't seen it before.

I know different BASICs are different, and that there isn't really a "normal" BASIC (well, there is a standard but nobody uses it), but as I said earlier in the thread, switching between dialects was never a problem for me when I was learning on the BBC / C64 / Atari 800XL. I just needed to look up in the manual what the equivalent was and work around the difference. I recently ported a small game I wrote from Blitz Basic to Visual Basic, and it took a couple of hours in total, including changing over OS-specifics like the window menus (which suck in .NET), building the interface, converting the AmigaGuide to HTML Help, converting the graphics format and so on. No big deal. I've spent similar lengths of time "porting" C code between two C compilers, so it's not like C is totally portable either.

Semicolons in Blitz are for comments, nothing else. Just like AmigaDOS. So every parameter is separated by commas. Same in VB except comments are apostrophes. To be honest I can't think of a BASIC dialect that uses semicolons as an argument separator, but like you're keen to point out, that just shows how the dialects differ.

Your examples of string handling seem quite odd to me, it's a long time since I've seen a BASIC that has needed to do that sort of operation to join strings. Pretty much every BASIC nowadays lets you use an operator to join strings, and lets you use strings pretty much like a numeric variable - something C is sorely lacking.
Code:
a$="Hello World!"
is much nicer, and more intuitive than
Code:
#include<string.h>
char a[20];
strcpy(a, "Hello World!");
for example.
Daedalus is online now  
Old 19 August 2015, 21:31   #252
TCD
HOL/FTP busy bee
 
TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 31,613
I love how 'Why is the homebrew scene...' became 'Which language is the best'...

Seriously though there's the right tool for the right job. Always. It's not that one language is perfect for everything. For example if I think about how to exchange one letter in the string of Daedalus' last example multiple times the 'which language is more easy to use' verdict totally changes
TCD is offline  
Old 19 August 2015, 21:55   #253
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,764
Quote:
Originally Posted by Daedalus View Post
Code:
a$="Hello World!"
is much nicer, and more intuitive than
Code:
#include<string.h>
char a[20];
strcpy(a, "Hello World!");
for example.
You could just write it like this:
Code:
unsigned char a[] = "Hello world!";
Also, having to declare variables is a blessing and something I miss in, for example, Lua, because it helps against bugs.

Old school BASIC belongs in the past
Thorham is offline  
Old 19 August 2015, 23:24   #254
Dunny
Registered User
 
Dunny's Avatar
 
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,007
Quote:
Originally Posted by Megol View Post

Quote:
Alternatively you can join strings and use them as one argument, again, just like with any other command:
Code:
Print "Hello "+name$+" and welcome!"
a$ = "Hello "+name$+" and welcome!"
Yes. If the BASIC one uses support it. And if one doesn't need the code to be portable to other BASICs which probably uses a different mechanism.
Can you name a BASIC that doesn't support string concatenation with the "+" operator?

In the original Dartmouth BASIC (and indeed any BASIC), the PRINT command requires one of two things as a print-item - either a print separator or an expression. If your BASIC supports such things as

LET a$=b$+c$

Then PRINT will handle inline string concatenation as part of its expression evaluator.

Furthermore, I'd like to see how Blitz, using its commas to separate print items, manages to output a newline or tab? I suspect (I've not investigated though!) that it must use special characters inline in the string arguments?

Dartmouth used the semicolon for concatenation of items (both strings and numerics which by their nature cannot be concatenated using an operator without a conversion function on one of the terms), the comma for tabulation and the apostrophe for newline/carriage return. It's not a "hack", but I agree that it's the only command that uses these conventions - using them with a string variable assignment wouldn't work and would break delineation of the two datatypes.

D.
Dunny is offline  
Old 19 August 2015, 23:28   #255
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
Quote:
Originally Posted by Dunny View Post
Actually, I can do this:
Code:
10 FOR EACH a$ in ["Hello world!"]: PRINT a$: NEXT a$
Nice work, D, great minds think alike i guess...

But now the standard BASIC syntax for FOR loops is redundant, you can get rid of it!

"Dim" is a horrid keyword, though... but with type inference you could simply assign arrays defined with some nice syntax to a variable.

Quote:
Originally Posted by Daedalus View Post
I know what you're saying here, but in my mind, the equals means the same thing in all of those cases - it means "Equals". It's the "If" that changes things in the second case there.
Well i know what you're saying here, too... it's intuitive... the thing is, "intuitive" is often the opposite of "simple". Natural human language is very complex, and frequently ambiguous. We are quite good at interpreting context and making sense of such sentences, but learning to program is about learning to think down to the level of the computer. If we try to get computers to "know what we mean", we are storing up trouble for the future...

Let's go deeper... obviously we can conceive of more complex conditionals, for example:
Code:
If A>5 And (A<10 Or A=20) Then ...
so how do you parse that... it is natural and convenient to treat the expression as an arithmetic expression consisting of binary operators, whose result can be 0 or -1. Then one can end up with such strange but valid statements (and in AMOS this is valid) as this:
Code:
A=(B=5)
there the '=' sign means two different things in the one statement!

Quote:
And the For loop is actually assigning the value to the variable, so it's the same as the first statement just as part of a larger statement. Besides, that's the same in C, even the same keyword, only with added semicolons to confuse things (are they not end of statement markers?)
The C syntax for For loops is terrible, i'm not going to reply to these Tu Quoques, as i've said, i'm not advocating C, especially not for the beginner.

Quote:
String handling in more modern BASICs is much more flexible and standard than maybe you think. For your example, in Blitz the Print statement uses commas to separate arguments, just like every other statement with multiple arguments:
Blitz is not exactly standard in this regard, as Megol says, it raises questions on what "BASIC" actually means. Which is wonderfully self-referential.

Quote:
Code:
 
Print "Hello "+name$+" and welcome!"
a$ = "Hello "+name$+" and welcome!"
Well this is perfectly standard string concatenation, but try putting a numerical variable in the middle instead of a string. Print lets you do that with semicolons. You can't do that with '+' though without explicitly converting your ints or floats to a string first.

Quote:
I do believe BASIC is more instantly accessible - as a kid I always found C very intimidating - and that could be the difference between getting someone interested in programming and giving up at the first hurdle because they didn't understand what stdio.h is, and why it looks different to the other lines.
Always with the C again! Anyone would think there were only two programming languages... nothing could be further from the truth, in fact a new language becomes industry standard somewhere about every 5 minutes or so, it's almost getting silly!

I think maybe it would have been better if some variant of Pascal had become the standard home computer ROM language.

Quote:
Originally Posted by TCD View Post
I love how 'Why is the homebrew scene...' became 'Which language is the best'...
from my point of view it has only become "which language is the worst"

Last edited by Mrs Beanbag; 19 August 2015 at 23:33.
Mrs Beanbag is offline  
Old 19 August 2015, 23:42   #256
TCD
HOL/FTP busy bee
 
TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 31,613
Quote:
Originally Posted by Mrs Beanbag View Post
from my point of view it has only become "which language is the worst"
I'll just assume you don't code for a living. If you do.. just follow these simple rules:

TCD is offline  
Old 19 August 2015, 23:48   #257
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
haha, well, as someone who DOES code for a living, i know what "TODO" means...

it means "forget about this until you have to explain it to someone else who has to work on the code 5 years later"

anyway i am inventing my own language, and i'll let you know how that goes
Mrs Beanbag is offline  
Old 20 August 2015, 00:32   #258
Dunny
Registered User
 
Dunny's Avatar
 
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,007
Quote:
Originally Posted by Mrs Beanbag View Post
But now the standard BASIC syntax for FOR loops is redundant, you can get rid of it!
Good god, no! It's a standard

Quote:
"Dim" is a horrid keyword, though... but with type inference you could simply assign arrays defined with some nice syntax to a variable.
It's short for "DIMension" which is what you do - you set an array's dimensions. Later BASICs hijacked this and used it to declare... well, all your variables. Which is wrong. If you absolutely must declare your variables before you use them, then I'd use a DECLARE keyword personally...

Quote:
Let's go deeper... obviously we can conceive of more complex conditionals, for example:
Code:
If A>5 And (A<10 Or A=20) Then ...
so how do you parse that... it is natural and convenient to treat the expression as an arithmetic expression consisting of binary operators, whose result can be 0 or -1.
Which is right and proper. In cases like this, it behooves one to follow one's instincts, and that is to treat all the operators as just that - operators (or in this case, inequalities). That expression is actually just perfect, senseful English.

Quote:
Then one can end up with such strange but valid statements (and in AMOS this is valid) as this:
Code:
A=(B=5)
there the '=' sign means two different things in the one statement!
And that's a serious fault in AMOS. The whole reason for the LET keyword was to make this sort of thing clearer. Yes, LET is not necessary - I never use it outside Sinclair BASIC - but to the beginner it's necessary to set up the construction of a variable assignment. LET <var>=<value> makes sense when you say it out loud - or if you don't want to appear insane in front of your peers, think it to yourself.

"LET a equal 5"

Straight out of elementary school maths lessons.

"LET a equal the result of b equals 5"

Where a numeric value is assigned for truthiness that statement, with LET, makes perfect sense. AMOS, not having LET, means it looks ambiguous (and therefore confusing to the beginner) even though to the interpreter it's totally fine and rigidly defined as to its meaning.

So BASIC, done well, is not a bad thing when it is used in its proper place, i.e for the beginner to get a leg up on what it means to write a list of instructions for a computer to follow.

D.
Dunny is offline  
Old 20 August 2015, 03:14   #259
beezle
Banned
 
Join Date: May 2015
Location: Australia
Posts: 67
He he, this thread has actually ended up answering the very question it asked.
Not via specific responses, but rather the outcome as a whole....
Too much talk, too many people trying to "out clever" each other, too much focus on semantics, etc.

If this is how people with knowledge spend their Amiga related time, then it's been answered :-)


p.s. I'm as guilty as anyone, but the irony amused me.
beezle is offline  
Old 20 August 2015, 11:29   #260
Mrs Beanbag
Glastonbridge Software
 
Mrs Beanbag's Avatar
 
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
Quote:
Originally Posted by Dunny View Post
It's short for "DIMension" which is what you do - you set an array's dimensions.
i know what it stands for, but it means treating arrays as special rather than just a type. also you shouldn't have to fix the size at creation.

Quote:
And that's a serious fault in AMOS. The whole reason for the LET keyword was to make this sort of thing clearer. Yes, LET is not necessary - I never use it outside Sinclair BASIC.
Now i'm just confused. It's a serious fault in AMOS even though it's the same in pretty much every BASIC?

Quote:
LET <var>=<value> makes sense when you say it out loud - or if you don't want to appear insane in front of your peers, think it to yourself.
But this is precisely my point. Natural language is no good to computers. That's exactly what's wrong with BASIC. Learning how to use BASIC is not learning how to program. That's why people fail to progress, because it doesn't prepare anyone for the sort of super-pedantic logic that makes computers tick. Rather, it does the opposite, by pandering to fuzzy thinking.

Quote:
"LET a equal the result of b equals 5"
I'm not sure "Let A=(B=5)" makes any more sense, tbh.
Mrs Beanbag is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
What is the technically most impressive A500 game? mc68060 Amiga scene 67 03 June 2015 22:32
The Tales of Grupp - Another impressive homebrew ZX Spectrum title! Neil79 Retrogaming General Discussion 3 24 February 2015 19:19
New One Of "Homebrew" 68k Amiga Magazine Idea fishyfish Retrogaming General Discussion 6 16 April 2013 08:57
Impressive and Amazing PD Software! Any thoughts? hamster Retrogaming General Discussion 0 18 July 2004 01:42

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 11:08.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.38862 seconds with 16 queries