Author Topic: I miss Basic  (Read 8782 times)

0 Members and 1 Guest are viewing this topic.

Offline The E

  • He's Ebeneezer Goode
  • Global Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
This may be true today. VB certainly is closer to Java, or other "real" programming languages, than the original version.
Let there be light
Let there be moon
Let there be stars and let there be you
Let there be monsters and let there be pain
Let us begin to feel again
--Devin Townsend, Genesis

 

Offline blackhole

  • Still not over the rainbow
  • 29
  • Destiny can suck it
    • Black Sphere Studios
This may be true today. VB certainly is closer to Java, or other "real" programming languages, than the original version.

Keep in mind that I started on VB6, not VB.net

 

Offline The E

  • He's Ebeneezer Goode
  • Global Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
But Dijkstra made his comment back in 1975, when BASIC was being used as a teaching tool, and still relied on abominations like GOTO as a control structure.

Disclaimer: I have never, ever done anything with BASIC, in any form whatsoever.
Let there be light
Let there be moon
Let there be stars and let there be you
Let there be monsters and let there be pain
Let us begin to feel again
--Devin Townsend, Genesis

 

Offline blackhole

  • Still not over the rainbow
  • 29
  • Destiny can suck it
    • Black Sphere Studios
True, which means someone shouldn't really be quoting a comment that now has no relevance to the present day :P

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Except I was taught my first programming wiht BASIC in 1998/1999, using not only GOTO but GOTO with LINE NUMBERS.  Dijkstra was right, you can really pick up some bad habits with BASIC.   Honestly Java would probably make a better first language.  Get you in that OO mode.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline blackhole

  • Still not over the rainbow
  • 29
  • Destiny can suck it
    • Black Sphere Studios
Except I was taught my first programming wiht BASIC in 1998/1999, using not only GOTO but GOTO with LINE NUMBERS.  Dijkstra was right, you can really pick up some bad habits with BASIC.   Honestly Java would probably make a better first language.  Get you in that OO mode.

O.o;;;;;

 

Offline kode

  • The Swedish Chef
  • 28
  • The Swede
    • http://theswe.de
"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."
-- Edsger W. Dijkstra

And tbh, I agree. BASIC is ****e.
Or maybe its just an excuse by someone who is better with computers than they are with people :D

What are you implying, really?

I started on visual basic. While anything BASIC-related is a sh*tty programming language, saying that programmer's minds are hopelessly "mutilated beyond hope of regeneration" is stupid and wrong.

Dijkstra was far from stupid. And no, it is not wrong. You do not learn anything about how a computer works from BASIC. There are a lot of bad practices in the language which are very hard to unlearn.
Pray, v. To ask that the laws of the universe be annulled in behalf of a single petitioner confessedly unworthy.
- Ambrose Bierce
<Redfang> You're almost like Stryke 9 or an0n
"Facts do not cease to exist because they are ignored."
- Aldous Huxley
WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH

 

Offline kode

  • The Swedish Chef
  • 28
  • The Swede
    • http://theswe.de
But Dijkstra made his comment back in 1975, when BASIC was being used as a teaching tool, and still relied on abominations like GOTO as a control structure.

Disclaimer: I have never, ever done anything with BASIC, in any form whatsoever.

Oh, I'd argue that goto has it's uses, but not necessarily as a control structure. It's a quck and easy way to kludge memory freeing when **** hits the fan, for example.
Pray, v. To ask that the laws of the universe be annulled in behalf of a single petitioner confessedly unworthy.
- Ambrose Bierce
<Redfang> You're almost like Stryke 9 or an0n
"Facts do not cease to exist because they are ignored."
- Aldous Huxley
WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH

 

Offline castor

  • 29
    • http://www.ffighters.co.uk./home/
"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."
-- Edsger W. Dijkstra

And tbh, I agree. BASIC is ****e.
Or maybe its just an excuse by someone who is better with computers than they are with people :D

What are you implying, really?
In retrospect, we know that his statement does not hold water. So, the guy either didn't have a clue, or then just didn't have the patience to actually teach someone properly. And based on the stuff he did we can rule out the former explanation.

 

Offline The E

  • He's Ebeneezer Goode
  • Global Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
But Dijkstra made his comment back in 1975, when BASIC was being used as a teaching tool, and still relied on abominations like GOTO as a control structure.

Disclaimer: I have never, ever done anything with BASIC, in any form whatsoever.

Oh, I'd argue that goto has it's uses, but not necessarily as a control structure. It's a quck and easy way to kludge memory freeing when **** hits the fan, for example.

GOTO can be useful, no doubt about it. Consider this:
Code: [Select]
int parse()
{
    Token   tok;

reading:
    tok = gettoken();
    if (tok == END)
        return ACCEPT;
shifting:
    if (shift(tok))
        goto reading;
reducing:
    if (reduce(tok))
        goto shifting;
    return ERROR;
}

That is one beautiful use for a goto. Original source here.
However, I guess that Dijkstra merely wanted to point out BASIC's deficiencies as a teaching tool, as it was severely lagging behind the other languages that came up later. That he chose deliberately inflammatory language to get people thinking about his point, and the fact that it is still debated, proved that that discussion had to be made
Let there be light
Let there be moon
Let there be stars and let there be you
Let there be monsters and let there be pain
Let us begin to feel again
--Devin Townsend, Genesis

 

Offline blackhole

  • Still not over the rainbow
  • 29
  • Destiny can suck it
    • Black Sphere Studios
But applying his quote to Visual Basic doesn't work.

 

Offline The E

  • He's Ebeneezer Goode
  • Global Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Yep. But I guess his quote (and the ensuing discussion) had more than a little influence on VB's design.
Let there be light
Let there be moon
Let there be stars and let there be you
Let there be monsters and let there be pain
Let us begin to feel again
--Devin Townsend, Genesis

 
I've used goto's when dealing with error retries.

something like this:

Code: [Select]

Retry:

if (DoStuff ().Failed) then

    if (DisplayRetryMessage ().Answer == Retry) then
        goto Retry
   endif
endif

I know it can be done with loops, but it just looks more awkward.
That's cool and ....disturbing at the same time o_o  - Vasudan Admiral

"Don't play games with me. You just killed someone I like, that is not a safe place to stand. I'm the Doctor. And you're in the biggest library in the universe. Look me up."

"Quick everyone out of the universe now!"

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
The point is that GOTO is pretty much BASIC's primary way of accessing independent chunks of code.  It's not saying it's totally useless, but there are far better ways in just about every other language.  And kode, you don't need to know much about computers themselves to write code.   Many programmers know very little about the hardware they write code for, and higher level programmers probably don't even know the difference between little-endian and big-endian.  Doesn't mean they'll be bad programmers, good object oriented programming, among other things, usually takes away the need for that kind of intimate knowledge of the machine.  The point is that getting engrossed in BASIC can develop habits that make it hard to fully grasp the fundamentals of object oriented programming, and can typically just make programmers lazy.  There are so many programmers I work with, who some of my coworkers consider 'good' programmers, simply because they can work quickly.  But their speed usually comes at the cost of good code design, with many things ending up hardcoded, no thought given to the more advanced features of the language we use, etc.  I've a feeling many of them learned BASIC as a first language, and never thought to expand their programming methods too far beyond what was capable with it.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 
At least we don't need GoSub anymore  :lol:
That's cool and ....disturbing at the same time o_o  - Vasudan Admiral

"Don't play games with me. You just killed someone I like, that is not a safe place to stand. I'm the Doctor. And you're in the biggest library in the universe. Look me up."

"Quick everyone out of the universe now!"

 

Offline castor

  • 29
    • http://www.ffighters.co.uk./home/
But their speed usually comes at the cost of good code design, with many things ending up hardcoded, no thought given to the more advanced features of the language we use, etc.  I've a feeling many of them learned BASIC as a first language, and never thought to expand their programming methods too far beyond what was capable with it.
I have the same experience with some people, with the difference that most of them have no experience with basic at all. So (IMO) the problem has more to do with what they did not learn, rather than what they did learn wrong.

 
Code: [Select]
int parse()
{
    Token   tok;

reading:
    tok = gettoken();
    if (tok == END)
        return ACCEPT;
shifting:
    if (shift(tok))
        goto reading;
reducing:
    if (reduce(tok))
        goto shifting;
    return ERROR;
}

That is a beautiful piece of code.
STRONGTEA. Why can't the x86 be sane?

 

Offline kode

  • The Swedish Chef
  • 28
  • The Swede
    • http://theswe.de
The point is that GOTO is pretty much BASIC's primary way of accessing independent chunks of code.  It's not saying it's totally useless, but there are far better ways in just about every other language.  And kode, you don't need to know much about computers themselves to write code.   Many programmers know very little about the hardware they write code for, and higher level programmers probably don't even know the difference between little-endian and big-endian.  Doesn't mean they'll be bad programmers, good object oriented programming, among other things, usually takes away the need for that kind of intimate knowledge of the machine.  The point is that getting engrossed in BASIC can develop habits that make it hard to fully grasp the fundamentals of object oriented programming, and can typically just make programmers lazy.  There are so many programmers I work with, who some of my coworkers consider 'good' programmers, simply because they can work quickly.  But their speed usually comes at the cost of good code design, with many things ending up hardcoded, no thought given to the more advanced features of the language we use, etc.  I've a feeling many of them learned BASIC as a first language, and never thought to expand their programming methods too far beyond what was capable with it.

I hear there's this new invention called "paragraphs" that make large walls of text appear legible. I suggest you try it out if I am to be able to respond to any points you want made.
Pray, v. To ask that the laws of the universe be annulled in behalf of a single petitioner confessedly unworthy.
- Ambrose Bierce
<Redfang> You're almost like Stryke 9 or an0n
"Facts do not cease to exist because they are ignored."
- Aldous Huxley
WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Sorry man, I'm a runaway train sometimes.  But trust me, I've seen far worse (it may not look bad to me cause of the 1920 width my monitor is at though...).
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline blackhole

  • Still not over the rainbow
  • 29
  • Destiny can suck it
    • Black Sphere Studios
Oh jesus, I just read up on big-endian and little endian. All I can say is THANK GOD FOR COMMON ARCHITECTURES. Also, I never want to write a networking engine. Ever.