|
Post by Carl Gundel on May 30, 2019 18:57:29 GMT -5
Many people today consider BASIC to be somewhat inferior to newer programming languages. I'd like to argue that this is an unfounded and pretentious position, if not a phenomenon of technology snobbiness.
Over in an Apple II Facebook group I was engaged in a conversation that I see play out over and over in other venues. Someone proposes using BASIC to learn or teach programming. Other people promptly deride the idea, saying that Python is the GOTO language (pun intended) for beginners.
Why Python, I asked them?
"Because it is structured and scoped and popular and prevents mental illness and turns kids into professional programmers someday."
I responded with the fact that modern BASIC is just as structured and proper and curative of mental illness, but the response is:
"Why not just dispense with all that legacy of crusty BASIC stuff?"
Errrr. Mmmm.... dispense with all that stuff that is the legacy of BASIC... because PRINT and INPUT and IF THEN and DIM are pure EVIL, and need to be dispensed of? What exactly makes the keywords that identify BASIC as BASIC so worthy of extermination with extreme prejudice?
I think someone has their fruit of the looms full of ants to be so wrapped around the axle.
I'm going to actually go even more against the grain now. I'm actually going to promote the old line numbered BASIC interpreter as a good thing. Just because you can do pretentiously so called wrong programming things with old BASIC, does that mean that it is immoral to use it and to teach it?
Interpreted BASIC is a small language. Just like the old 8-bit home computers were small. You can actually master things that are small. You can understand them.
Interpreted BASIC is interactive. You can experiment and learn in real time. You can draw a line on the screen without even writing an actual program. You can look stop a program and look at the variables without ever needing to know what a debugger is.
Interpreted BASIC is close to the hardware. Remember PEEK and POKE? This is not a bad language feature. When BASIC was king we learned how computers work. We read through the memory maps and commanded the hardware by directly changing the contents of memory. We wrote our own assemblers in BASIC that POKEd directly into memory.
This old-time BASIC is not a toy language. Is it the swiss army knife of programming? No. Is it a stinky blot on the face of programming? Of course not. It is its own thing and is as legitimate as any other programming language or way of programming.
Back to the question of modern BASIC. I argued that BASIC is now also very modern and structured and full of discipline and virtue. ;-) The response was still "No, Python is right." I realize they probably don't see how dogmatic this position is. I responded, "Then any language which has these qualities (ahem, some BASICs do) should be just as good for teaching programming as Python."
Somehow they still disagreed. Ah well.
|
|
|
Post by Chris Iverson on May 30, 2019 22:03:35 GMT -5
I do see advantages to Python being a first language, but most of those advantages 1) aren't really downsides against BASIC, 2) are advantages against many other languages as well, and 3) don't have much to do with Python as a language. They can be summed up as "ubiquity". Python is a good language for anyone to learn if they're going to be working in modern programming environments, simply because of how much Python is used everywhere. In fact, that's exactly what I think; it's not that it's a good FIRST language to learn; it's that it's a good language to learn period, simply because, if you're working in any kind of modern programming or Linux environment(or both), chances are extremely high that there's Python in there somewhere. There's absolutely nothing wrong with BASIC as a programming language. Most of the foundation and fundamentals of programming can be learned with any language, and the simplicity of a BASIC makes it easier to pick things up and run with them. Heck, even with as much of a polyglot as I am, even at work(my current company uses processes that run on Python, VB6, and Batch files to do various transformations of our input data, and I personally will generally use some combination of CMD/Batch, C#, Powershell, Python, C/C++, Javascript, HTML, and LB at various points throughout my day), I still generally lean to LB as the whip-something-up-quick go-to for getting something done. There are times I'll pick something else, but that's usually if other considerations apply. My working on a TLS library for LB for over a year now should indicate how much I think BASIC is a language that should be left behind
|
|
|
Post by Carl Gundel on May 30, 2019 22:50:55 GMT -5
I do see advantages to Python being a first language, but most of those advantages 1) aren't really downsides against BASIC, 2) are advantages against many other languages as well, and 3) don't have much to do with Python as a language. They can be summed up as "ubiquity". Python is a good language for anyone to learn if they're going to be working in modern programming environments, simply because of how much Python is used everywhere. In fact, that's exactly what I think; it's not that it's a good FIRST language to learn; it's that it's a good language to learn period, simply because, if you're working in any kind of modern programming or Linux environment(or both), chances are extremely high that there's Python in there somewhere. Yup. Python is fine but it is not a special language. There are so many languages and in many ways they can be substituted for each other. Your experience relating to Python is different from mine. I have not seen it used at any of my places of work, at all. Maybe I know someone who uses it, not sure. Agreed. BASIC has always been good for quick tool building and prototyping. Keep up the good work!
|
|
fwm
Full Member
Posts: 105
|
Post by fwm on May 30, 2019 23:40:15 GMT -5
I would like to second this motion! Chris is doing a fantastic job on the TLS library. I have always been a BASIC programmer. Apart from PHP, I shy away from other languages just because I remember how much I enjoyed learning early Commodore 64 BASIC, and then later learning LB through Carl's (et al) tutorials. Like Chris said, it's so easy to launch LB and have something up and running in 2 minutes to get a job done. Having said that, I am enjoying learning the very basics ( ) of C++ which is the language Chris has used to bridge LB and TLS/SChannel network capabilities. But that's as far as I feel I want to go with something that isn't BASIC. I am happy to look through the code, figure it out and (sort of) know what it all does, and go no further. I don't really desire to learn C++ or any other languages because LB offers everything that I need and I always come back to it. Keith.
|
|
|
Post by danteel on May 31, 2019 3:59:39 GMT -5
I agree in the sense that people come up with ridiculous reasons to promote the language they like and crap on ones they see as inferior. I've seen it played out many times as well, usually in the form of "BASIC makes bad programmers" and other nonsense. It is tiring and I completely understand your desire to rant.
But Objective-C is pure evil, I think we can all agree on that.
|
|
|
Post by Carl Gundel on May 31, 2019 7:18:05 GMT -5
I agree in the sense that people come up with ridiculous reasons to promote the language they like and crap on ones they see as inferior. I've seen it played out many times as well, usually in the form of "BASIC makes bad programmers" and other nonsense. It is tiring and I completely understand your desire to rant. But Objective-C is pure evil, I think we can all agree on that. Yeah, Python makes Objective-C obsolete.
|
|
|
Post by mknarr on May 31, 2019 8:42:34 GMT -5
When I first got interested in programming around 1966 of which I knew nothing, I got a book out of our library on Fortran. What a joke. I had no concept of programming logic and I'm guessing trying to learn Fortran on your own in nigh unto impossible. But I persisted, and discovered Princeton Basic. I was working at Western Electric in the new integrated circuit department and we had access to the computer in Princeton through a teletype terminal. Again I got a book from the library on basic and in no time I wrote my first program. Next I wrote a program used to calculate the thickness of Oxide that the girls in the shop used instead of a chart. And that was it, I was hooked. I was a Basic programmer for the department. Next came a Wang desktop calculator, a Radio Shack color computer, a TRS 80, Quick basic and finally LB in 2002 or 3. I am and will always be a basic programmer. Thanks Carl for LB, it does everything I ever wanted to do. I even made money from LB with a commercial program. Like Chris, my son is a software engineer and writes in more languages than I have fingers. He has no interest in Basic but he makes his living programming so we don't argue too much.
|
|
|
Post by Carl Gundel on May 31, 2019 9:22:56 GMT -5
When I first got interested in programming around 1966 of which I knew nothing, I got a book out of our library on Fortran. What a joke. I had no concept of programming logic and I'm guessing trying to learn Fortran on your own in nigh unto impossible. But I persisted, and discovered Princeton Basic. I was working at Western Electric in the new integrated circuit department and we had access to the computer in Princeton through a teletype terminal. Again I got a book from the library on basic and in no time I wrote my first program. Next I wrote a program used to calculate the thickness of Oxide that the girls in the shop used instead of a chart. And that was it, I was hooked. I was a Basic programmer for the department. Next came a Wang desktop calculator, a Radio Shack color computer, a TRS 80, Quick basic and finally LB in 2002 or 3. I am and will always be a basic programmer. Thanks Carl for LB, it does everything I ever wanted to do. I even made money from LB with a commercial program. Like Chris, my son is a software engineer and writes in more languages than I have fingers. He has no interest in Basic but he makes his living programming so we don't argue too much. Cool story. BASIC is one of those languages you can almost learn by osmosis. You just sit and watch someone write some code, and then you play a little. You read a magazine article and type in a code listing. There's nothing so hard that you cannot simply dabble and add to your programming vocabulary. It's weird, but people today like to say things like "BASIC? Isn't that the old language that people typed into the computers from magazines? How archaic." Doesn't that actually say something good about the language? It was approachable enough to be learned that way? How does that get turned into a slight? People would rather copy and paste code from a web page? I'm thinking that's not the most effective way to learn. People can be very good at deriding things, and to their own harm I might add.
|
|
|
Post by brianm on Jun 21, 2019 5:10:21 GMT -5
The BBC have some podcasts Codes that Changed the WorldThe one on BASIC is worth a listen. It states, near the end, that both Apple and Microsoft owe their existence to the BASIC language.
|
|
|
Post by Carl Gundel on Jul 8, 2019 10:06:33 GMT -5
The BBC have some podcasts Codes that Changed the WorldThe one on BASIC is worth a listen. It states, near the end, that both Apple and Microsoft owe their existence to the BASIC language. Microsoft began as a language vendor, and BASIC was their original product. Apple probably also would not have succeeded without BASIC, but that is less certain.
|
|
|
Post by mystic on Jul 8, 2019 14:26:31 GMT -5
I started programming from the TRS-80 days in 1983. Moved on to Commodore 64, Amiga, QBasic, etc... When I found Liberty BASIC (feels like centuries ago now) I was ecstatic! I was really bummed when BASIC went to flavors like Visual BASIC. It left the normal BASIC feel and went off the rails. I still use Liberty BASIC to knock out network programs, and processing stuff like pulling data out of a spreadsheet and manipulating it how I need to. That being said, my only frustration with BASIC is I long for doing a quick menu system like an HTML look and feel for pointing and clicking on links. I know I can build similar menus, but it's a huge pain in the but compared to just the quick HTML formatting. Would love to have some BASIC commands that would act like HTML. However, not go so far as RUN BASIC did by creating an HTML server. Basically, would like the "feel" of web page designs without creating a server. essentially, and .exe program that felt like a web page interface. Hope that made sense.
|
|
|
Post by Carl Gundel on Jul 8, 2019 15:21:32 GMT -5
I started programming from the TRS-80 days in 1983. Moved on to Commodore 64, Amiga, QBasic, etc... When I found Liberty BASIC (feels like centuries ago now) I was ecstatic! I was really bummed when BASIC went to flavors like Visual BASIC. It left the normal BASIC feel and went off the rails. I still use Liberty BASIC to knock out network programs, and processing stuff like pulling data out of a spreadsheet and manipulating it how I need to. That being said, my only frustration with BASIC is I long for doing a quick menu system like an HTML look and feel for pointing and clicking on links. I know I can build similar menus, but it's a huge pain in the but compared to just the quick HTML formatting. Would love to have some BASIC commands that would act like HTML. However, not go so far as RUN BASIC did by creating an HTML server. Basically, would like the "feel" of web page designs without creating a server. essentially, and .exe program that felt like a web page interface. Hope that made sense. You made sense. You're not the first person to mention this idea.
|
|
|
Post by mystic on Jul 8, 2019 18:02:30 GMT -5
You made sense. You're not the first person to mention this idea. I would love to use RB but I cannot install the server program that runs RB. As it is, I skirt the gray area writing and running my own code on work computers. If my program began by launching it's own webserver that would be a serious red flag. If it were built into my LB .exe (and not as a webserver), I could get away with it. Oh well, the trials of working on critical networks.
|
|
|
Post by meerkat on Jul 9, 2019 6:25:06 GMT -5
I love the RB server.. But either way to get to the web would be great.. A HTML interface would add another complete layer. No only do you get Javascript but a lot of other features.. www.w3schools.com/html/default.asp
|
|
|
Post by Carl Gundel on Jul 9, 2019 13:12:48 GMT -5
You made sense. You're not the first person to mention this idea. I would love to use RB but I cannot install the server program that runs RB. As it is, I skirt the gray area writing and running my own code on work computers. If my program began by launching it's own webserver that would be a serious red flag. If it were built into my LB .exe (and not as a webserver), I could get away with it. Oh well, the trials of working on critical networks. This is in regard only to the dynamic layout of user interfaces then? Someone else was asking me to add HTTP serving features.
|
|