mboost-dp1
BBC Basic
- Forside
- ⟨
- Forum
- ⟨
- Tagwall
Jeg er arg modstander af Dijkstras famøse citat:
... da jeg har brugt Basic enormt meget startende med C64 basic hvor jeg lavede mine første programmer, frem til betalt arbejde i VB6, gentagne gange. Og det var Basics elendige performance der fik mig til at lære C meget tidligt, fordi jeg drømte om at få adgang til maksimal performance for computeren. Jeg kan takke Basic for at have startet og formet hele min IT karriere.
#1 BBC Basic virker som en ret god version af sproget. Jeg kan kun bifalde at unge roder med den slags, så tidligt som muligt! Dijkstra go f. yourself :D
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.
... da jeg har brugt Basic enormt meget startende med C64 basic hvor jeg lavede mine første programmer, frem til betalt arbejde i VB6, gentagne gange. Og det var Basics elendige performance der fik mig til at lære C meget tidligt, fordi jeg drømte om at få adgang til maksimal performance for computeren. Jeg kan takke Basic for at have startet og formet hele min IT karriere.
#1 BBC Basic virker som en ret god version af sproget. Jeg kan kun bifalde at unge roder med den slags, så tidligt som muligt! Dijkstra go f. yourself :D
#2
Basic har udviklet sig over tid og mange Basic varianter idag er grundliggende ligeså gode sprog som diverse curly bracket sprog.
IBM BASICA/MS GW-Basic -> MS QBasic -> MS VB/VBA/VBS -> MS VB.NET
Borland TurboBasic -> PowerBasic
DEC BASIC-PLUS -> DEC BASIC Plus 2 -> VMS Basic
Men som sædvaneligt skal man lige huske konteksten.
Dengang var der to typer programmeringssprog:
- implicitte erklæringer af variable og goto som grundliggende kontrol struktur (Basic, Fortran 66 etc.)
- krævet erklæringer af variable og blok kontrol strukturer (Algol, Pascal etc.)
Han sammen med bl.a. Wirth kæmpede for at den sidste type skulle blive den dominerende.
Og de vandt. Fortran og Basic forsvandt ikke, men de adopterede den anden stil.
Basic har udviklet sig over tid og mange Basic varianter idag er grundliggende ligeså gode sprog som diverse curly bracket sprog.
IBM BASICA/MS GW-Basic -> MS QBasic -> MS VB/VBA/VBS -> MS VB.NET
Borland TurboBasic -> PowerBasic
DEC BASIC-PLUS -> DEC BASIC Plus 2 -> VMS Basic
Men som sædvaneligt skal man lige huske konteksten.
Dengang var der to typer programmeringssprog:
- implicitte erklæringer af variable og goto som grundliggende kontrol struktur (Basic, Fortran 66 etc.)
- krævet erklæringer af variable og blok kontrol strukturer (Algol, Pascal etc.)
Han sammen med bl.a. Wirth kæmpede for at den sidste type skulle blive den dominerende.
Og de vandt. Fortran og Basic forsvandt ikke, men de adopterede den anden stil.
#2
Og det var iøvrigt ikke kun Basic han var ude efter.
Fortran:
"FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use."
Cobol:
"The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense."
"With respect to COBOL you can really do only one of two things: fight the disease or pretend that it does not exist."
PL/I:
"PL/I --"the fatal disease"-- belongs more to the problem set than to the solution set."
APL:
"APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums."
Og det var iøvrigt ikke kun Basic han var ude efter.
Fortran:
"FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use."
Cobol:
"The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense."
"With respect to COBOL you can really do only one of two things: fight the disease or pretend that it does not exist."
PL/I:
"PL/I --"the fatal disease"-- belongs more to the problem set than to the solution set."
APL:
"APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums."
#4 Okay, de citater er pænt sjove med en drys af sort humor. Jeg fornemmer at han var en komikertype der godt kunne lide at sige chokerende ting med et smil på læben. Thumbs up.
Jeg er selvfølgelig helt på hans side hvad angår kampen mod GOTO i de seriøse sprog. Implicit vs explicit erklæring af variable synes jeg mere er et spørgsmål om domæne. Der er stor forskel på scripting og system sprog.
Men jeg vil ikke tilgive hans Basic udtalelse helt. Netop linjenumre og GOTO er med til at gøre sproget endnu mere tilgængeligt for en absolut begynder. Det forpester ikke hjernen med dårlige ideer. Det at have lidt under GOTO og linjenumre gør at det er en sand velsignelse at lære om funktioner og kontrolstrukturer senere.
Jeg er selvfølgelig helt på hans side hvad angår kampen mod GOTO i de seriøse sprog. Implicit vs explicit erklæring af variable synes jeg mere er et spørgsmål om domæne. Der er stor forskel på scripting og system sprog.
Men jeg vil ikke tilgive hans Basic udtalelse helt. Netop linjenumre og GOTO er med til at gøre sproget endnu mere tilgængeligt for en absolut begynder. Det forpester ikke hjernen med dårlige ideer. Det at have lidt under GOTO og linjenumre gør at det er en sand velsignelse at lære om funktioner og kontrolstrukturer senere.
larsp (5) skrev:
Jeg er selvfølgelig helt på hans side hvad angår kampen mod GOTO i de seriøse sprog.
Jeg synes faktisk at et sprog skal have GOTO. Der er situationer hvor det er praktisk. Det er ikke noget man skal bruge meget og det er noget man kun skal bruge med et klart flow. Typisk kun hoppe nedad for at springe over noget kode - det kan naturligvis laves med if blokke men en goto ned i bunden kan faktisk være mere læseligt end 3-5 niveauer if blokke.
larsp (5) skrev:
Implicit vs explicit erklæring af variable synes jeg mere er et spørgsmål om domæne. Der er stor forskel på scripting og system sprog.
Problemet dengang var statisk type variable med implicit type erklæring udfra navnet.
Fortran: variabel navne som starter med I-N er integer mens A-H og O-Z er floating point.
Basic: variabel navne som ender med % er integer mens $ er string.
De blev erstattet af sprog hvor variable skulle erklæres med type. Og Fortran og Basic fik compiler options til at kræve erklæring.
Et antal årtier senere er der så to nye muligheder:
- dynamisk type variabel
- statisk type variabel med type inferens
Fremskridt eller "fremskridt" - ikke alle er begejstrede for disse.
arne_v (6) skrev:Jeg synes faktisk at et sprog skal have GOTO. Der er situationer hvor det er praktisk. Det er ikke noget man skal bruge meget og det er noget man kun skal bruge med et klart flow. Typisk kun hoppe nedad for at springe over noget kode - det kan naturligvis laves med if blokke men en goto ned i bunden kan faktisk være mere læseligt end 3-5 niveauer if blokke.
Ah ja, jeg lavede ofte en konstruktion med GOTO handle_error i bunden af funktionen, i basic, hvor der blev ryddet op og meldt tilbage med fejlkode. Det er jo egentlig en poor mans try / catch konstruktion.
I C undgår jeg goto helt, og laver den nødvendige branching for at håndtere fejl, eventuelt med en success boolean som følgende branches kan teste. Det er ikke super kønt. Men det synes jeg heller ikke goto løsningen er. Fejlhåndtering er altid det sværeste at gøre elegant i programmering. I kritisk kode der er lavet meget grundigt kan status og fejlhåndtering inkl. generering af fejlbeskeder nemt fylde 3/4 af koden.
arne_v (6) skrev:Problemet dengang var statisk type variable med implicit type erklæring udfra navnet.
Fortran: variabel navne som starter med I-N er integer mens A-H og O-Z er floating point.
Basic: variabel navne som ender med % er integer mens $ er string.
Implicit som i at variabel navnet specificerer typen ... damn. Den idé havde jeg lykkeligt glemt alt om.
Ang. Fortran, er det en konvention eller er det dødelig alvor og den måde compilerern afgør hvilken type det er??? Det er godt nok grimt og overraskende for de ikke-indviede i såfald. Men det minder da lidt om såkaldt hungarian typing som var populært en overgang i Visual Basic.
larsp (8) skrev:
Ang. Fortran, er det en konvention eller er det dødelig alvor og den måde compilerern afgør hvilken type det er???
Compiler behavior.
program first
i = 3
j = 2
x = 3
y = 2
write(*,*) i, j, i/j, x, y, x/y
end
udskriver:
3 2 1 3.00000000 2.00000000 1.50000000
larsp (8) skrev:
Det er godt nok grimt og overraskende for de ikke-indviede i såfald. Men det minder da lidt om såkaldt hungarian typing som var populært en overgang i Visual Basic.
Tilbage i 90erne promoverede MS hungarsk notation for variabel navngivning.
(det er opkaldt efter Charles Simonyi som ledede den gruppe der udviklede MS Office)
Vel mest i C++ men også i VB/VBA/VBS.
Umiddelbart gav det vel mest mening i VBS.
Det var "the way" på Windows indtil MS droppede det med .NET (.NET bruger kun I for interfaces).
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.