|
Post by sarossell on Apr 22, 2020 15:52:52 GMT -5
Honestly, I think it's the people and systems themselves that have changed. You make a solid point. The computers became appliances more than tools. And the new computer users wanted appliances. It's gotten so bad in fact that the Brits found it necessary to rekindle their computer literacy efforts with the Raspberry Pi. They succeeded admirably, but in my estimation, they made a poor decision from the very beginning; the reason it's called a Pi is because it was originally designed to run ONLY Python. The spelling of "Pi" was chosen to give it a "sciency" feel and the Raspberry was kind of an inside joke at sicking its tongue out at the other more expensive fruit computer out there; the Apple.
That one decision; to promote Python, proved far more effective than a later effort to do the exact same thing with the exact same hardware but with a new version of BASIC called Fuze. It looked as if it was really going to get some traction in educational circles but it eventually failed. In this case, we have the same demographic of young tinkerers and hobbyists who were given the option of BASIC (a really well designed and documented version by the way!) or Python and they snubbed BASIC. Both Fuze and Python used the same WiringPi libraries, so that wasn't a factor. Neither can create very attractive GUI interfaces. Neither is faster than the other. And BASIC is clearly easier to use! So, what gives?!
I agree that the PC market has changed and the users along with it, but in this specific case with the RasPi, BASIC still lost. Why?!
:@)
|
|
|
Post by Carl Gundel on Apr 22, 2020 17:12:53 GMT -5
And I'm not saying that feeling isn't alive and well. I think actual hobbyists getting into computers is more alive than ever. It's just a much, much, much smaller proportion of people that are using computers today. I really think there should be some way to be able to use these tools to stoke creativity in people again. Many people, who would never imagine such a thing, would absolutely love what they can do with technology once they actually tried it. They just don't have a frame of reference for how they could create with it. So, BASIC needs a killer app.
|
|
|
Post by sarossell on Apr 22, 2020 20:36:16 GMT -5
So, BASIC needs a killer app. Interesting. What would that look like? Would it be strictly a RasPi thing? Robotics? IoT home control? Artificial Intelligence? :@)
|
|
|
Post by svajoklis on Apr 23, 2020 5:30:23 GMT -5
Of course over time OSes got more complex. At the same time you don't need to be a programmer to do something on Mac or Windows. Linux requires some knowledge, but you could be using it well without opening terminal - Ubuntu is a good example of Linux made for general public if you will.
I still don't understand this fixation on BASIC. Does writing a simple Python script that opens and modifies file require some intricate knowledge of cooperative multitasking and NTFS permissions? Not even C++ is that picky about it. It does give flexibility - if you are doing basic things, like reading simple integers or strings, then it doesn't ask much more than an equivalent BASIC program would.
It really feels like you are missing something that is long in the past. I understand the romantic nature of that time, when after booting a Commodore 64 or a ZX Spectrum you were presented with a flashing cursor and had to break out the manual. Does anyone really expect current computers to behave the same? Should opening a terminal bring out a BASIC prompt? I see a lot of projects, heck, even Small Basic from Microsoft, that try to capture that learning experience. At the same time those tools seem to be oriented to very young children, and because systems have become much more complex over time, the thrill of adding three numbers and having some branching is really taken for granted. It's like saying "those darn kids have it so easy with their antibiotics, we laid there in beds, doing our best not to croak while having an infection and REALLY fighting it, not taking some complicated shortcuts that no one, apart from hardcore medicine specialists, can understand".
At the end of the day most languages provide the same basic building blocks: variables, string functions, console read/write. I still haven't encountered anything that puts BASIC over everything else. Is there a BASIC project that has implemented (not wrapped!) OpenGL libraries? If you do need multitasking for splitting multiple calculations over a few cores (which almost all computers have these days), how do you do it then? Or do you just skip it because it's newfangled and hard?
BASIC, if it compiles to machine code executables, is no different than Rust, C++, Go (which I find really sexy). If it is interpreted, then it steps over to JavaScript, Python territory.
If anything this outlook is what stops BASIC from being out there. With old-school looking interfaces (QB64, albeit attractive looking, is still emulating an 80s/90s style TurboPascal look), sparse libraries (Pure BASIC really goes out of the way to be feature rich, Small Basic has wrapped some stuff too), and explicit instructions of calling raw API for Windows instead of actual wrappers, BASIC really does lag behind.
Like I said, languages are mostly judged by their standard libraries, then after syntax. If you assume all languages provide similar capabilities, then BASIC is just a syntax over same old classic procedural programming.
|
|
|
Post by Carl Gundel on Apr 23, 2020 8:03:16 GMT -5
Like I said, languages are mostly judged by their standard libraries, then after syntax. If you assume all languages provide similar capabilities, then BASIC is just a syntax over same old classic procedural programming. I think that once you know a bunch of languages it might be easy to feel this way. You're too close to the problem. BASIC isn't just a syntax. It's a mindset, or at least that's how I think about it. You talk about extensive libraries. How many people have asked me to add everything and the kitchen sink to Liberty BASIC? I lost track so long ago. I've always resisted adding to the language because it needs to remain simple. Most languages just get bigger and bigger but I think to keep the spirit of BASIC (not just a syntax on top of procedural programming) you need to keep it small. Don't misunderstand me please. I'm not claiming to have done this as well as could be done, not even close, but it is a guiding principle for me. Or as Einstein said. "Everything should be made as simple as possible, but not simpler."
|
|
|
Post by sarossell on Apr 23, 2020 8:09:13 GMT -5
I still don't understand this fixation on BASIC. It really feels like you are missing something that is long in the past. Ah, we've now reached the true core of the issue for me. My "fixation" on BASIC is NOT nostalgic, nor am I pining for some outdated methodology or a feel for the past "glory" of simpler times. And I certainly have no love for line numbers or GOTO statements. My focus is strictly a practical one; I need to write GUI programs that do not exist. BUT, I do NOT wish to BE a programmer! And that is the EXACT reason BASIC was invented in the first place!
John Kemény and Thomas Kurtz invented BASIC at Dartmouth College for the sole purpose of allowing NON-scientist students the ability to write programs without having to pursue a friggin' degree in Computer Science. It was an intentionally simple language just one step above Logo - which is all the more hilarious when you consider the caustic remarks that Dutch jackass Djiskstra spewed out about it in his infamous memo back in '75. Of course BASIC (at the time) was a crap programming language. It was designed for liberal arts students, not physicists!
In my case, I need a program to rename ridiculously long and complicated media filenames that needs to follow a long list of rules in order to interpret what kind of file it is, remove unimportant information, rearrange words, add dates or season and episode numbers, add demarcation symbols, and finally provide a display of the reworked filename before changing it to allow me to make any last minute unexpected changes. You just can't do that with a script. Also, nobody else is ever going to write such a specific application with MY rules. If they did, it would be WAY overkill. And I don't want to have to learn C++ to get it done - that's overkill as well. That's where BASIC fits in perfectly - particularly Liberty BASIC.
I also have a very specific form of calculator I use for research involving compression. It needs to display very large numbers and format numbers in a visual manner that can be manipulated easily in a GUI display. Again, a bash script isn't going to cut it. You could use Python, but even at that level of simplicity, it's overkill. I'm a "liberal arts student" who just wants to be able to write a simple BASIC program to get a simple problem solved. And that's what programming is all about; solving problems.
I have three other programs I'd like to write that at best might need a flat text-based "database" or SQLite if I really get excited. They need a GUI interface, but anything beyond BASIC would be like building a model airplane with a Honda Robot! I just want to have fun while programming, not program for fun and profit. See the distinction? It's not a fixation. It's a niche need.
And trust me, on many occasions, I have looked for a modern language that could do the same thing as BASIC that wouldn't require a huge learning curve. Hell, every time I run across a language I've never heard of before, I instantly go to Rosetta Code to see what the code for "Hello World!" and "99 Bottles of Beer" looks like. If the syntax is ridiculously long or insanely cryptic, forget it! I don't need to include libraries, declare variables types, and define friggin' OOP objects to print text!!! Even Python for some reason just has to add parenthesis and tabs that are just not necessary. And don't even get me started on the ridiculously incomprehensible syntax even Python uses just to create a simple For..Next loop!
Now, add to this relatively simple equation the preference to write, compile and use my specific programs on a Mac...Grr! Yes, I would dearly love to be able to use modern hardware and modern methods to solve my modern-day problems. You show me a language that doesn't look like Stephen Hawking barfed into a blender, that lets me write and compile simple GUI program on a Mac, and I'll kiss you right on the mouth! Tongue, no tongue, you choose.
:@p
|
|
|
Post by svajoklis on Apr 23, 2020 10:08:15 GMT -5
Thank you for your detailed answers, I love getting to know your point of view.
I completely agree with your view, that more often than not it is just easier to use what you know. Indeed, some of the solutions do seem overkill in other programming languages.
My view is of a person that deals with programming every day, heck, it's my full time job. I do not consider myself a software engineer by any means, yet at the same time I often forget how much more knowledgeable I am than most non-programmers. I love seeing people from other walks of life getting their hands dirty with programming.
I have looked into the statements of Dijkstra and they seem way out of line. While he did say that pretty much "BASIC sucks @$$", he did not provide a why. Spewing things on each other doesn't seem programmer-like to me. At the end of the day different tools are being used for different purposes, and if you, Sarossell, use Liberty BASIC as your daily driver - great. If Linus Torvalds uses hardcore C to develop a whole kernel - more power to him. It seems like Dijkstra was more concerned about people not concentrating on the nitty gritty details and BASIC for him seemed too hand-holdy. It would be great to get to know your outlook on that without the overt animosity.
|
|
|
Post by sarossell on Apr 23, 2020 10:49:42 GMT -5
without the overt animosity. My apologies. My style of writing can often bleed into the sarcastic or histrionic, but it's never...well, rarely...directed AT a single person - unless they deserve it, which isn't the case here by any stretch. Like many, I tend to assume a third-person role when communicating online, where consequences of chosen words are almost never required to stand face to face with an audience. I meant no disrespect. I value this forum and it's members far too much.
In short, I may well have allowed nearly forty years of frustration to leak out a bit in my last message. Again, my apologies.
As for Djisktra, he was infamous for flapping his gums, but equally infamous for failing to backup his accusations or recriminations. When asked what programming languages he DID recommend, he faltered. When asked what could be done to improve programming, he was arrogantly dismissive. Essentially, he was just an over-educated, self-important, blow-hard. And the joke was on him as I said...Microsoft that same year started what would eventually become a multi-billion dollar company by selling BASIC!
In fact, one of the few comments he made regarding the future of programming centered on what would eventually be called Object-Oriented Programming. He advocated a more stringent, structured and complex programming paradigm that would require far more time PREPARING to program than actually coding. From his examples, it seemed as if he was more interested in developing a legacy of methodology than actual code to solve a problem. I dismiss the man and his work completely with one minor exception, his disdain for IBM.
:@)
|
|
jordi
Full Member
A simple solution is the smarter one.
Posts: 106
|
Post by jordi on Apr 23, 2020 11:26:37 GMT -5
I think that it's not that you can't do with simplicity something in other languages. You can, languages are very evolved today and can do anything.
And of course, something is simple when you already know how to do it in the most complex way. But for the newcomer it's not. And sometimes, some problems, have a simple solution always. If I want to open a door, I can turn the knob. I can also make a machine to open the door, or break all the wall and open the door. But the simple solution is there too. No one says Basic is the one and only solution. It's just the most simple language to learn programming for the ones that never programmed, and a relax for someone who already knows. There are things that can't be done, but the purpose of basic is to fix simple problems in a simple way, and encourage people to program when they don't know. In my opinion, other languages offered today are not as close to human language.
|
|
|
Post by sarossell on Apr 23, 2020 12:03:41 GMT -5
I think that it's not that you can't do with simplicity something in other languages. You can, languages are very evolved today and can do anything.
With one minor exception, I agree with everything you said (as I often happily find to be the case). However, regardless of how evolved a language may be, and that it CAN achieve simple things if need be, the learning curve necessary to know what you DON'T need is massive. I know absolutely nothing about C except some videos I saw of how NOT to use it, and it seems there are efficient programmers who know how to optimize code with C, and then there are line-stuffing, paycheck hounds who can do the exact the same thing but with a ridiculous amount of code in order to get paid more. And while that may be true of ANY language, again, I'm not interested in climbing that learning curve to become a programmer. I just want to solve my problem and move on.
:@)
|
|
|
Post by svajoklis on Apr 23, 2020 12:25:10 GMT -5
Sarossell, I wouldn't be so dismissive of other languages in that way. And we have to keep in mind the role C plays in the grand scheme of things - low level programming, where you can almost guess what machine code will result from your higher level C code. C++ is more manageable in that regard. Go and Rust go "one level above that" and seem fun to code in. Again, I stand by my point, that on one hand you can be limited by your tools, and if you want to be protected from "unknowns" in that way - it's cool, but it is not a point against that tool. You can write obfuscated code in BASIC if you really wanted to, hell some programs from Basic Computer Games look downright like a tasty spaghetti-meatball plate, and replacing those constructs with whiles and fors only helps so much.
I'm sorry, if I wasn't too clear about my words, I meant feelings against Dijkstra. Thank you for your insight about his position, and it does seem like it deserves scrutiny.
Carl mentioned working on Java and Smalltalk. Sarossell, is BASIC the only language you really got to know well enough to do stuff on it?
I get that seeing only ways "not to do things" can be off-putting. Even Liberty BASIC has its quirks (which I completely overlooked at first!) where by you can't goto out of a for loop!
|
|
jordi
Full Member
A simple solution is the smarter one.
Posts: 106
|
Post by jordi on Apr 23, 2020 12:37:31 GMT -5
I think that it's not that you can't do with simplicity something in other languages. You can, languages are very evolved today and can do anything.
With one minor exception, I agree with everything you said (as I often happily find to be the case). However, regardless of how evolved a language may be, and that it CAN achieve simple things if need be, the learning curve necessary to know what you DON'T need is massive. I know absolutely nothing about C except some videos I saw of how NOT to use it, and it seems there are efficient programmers who know how to optimize code with C, and then there are line-stuffing, paycheck hounds who can do the exact the same thing but with a ridiculous amount of code in order to get paid more. And while that may be true of ANY language, again, I'm not interested in climbing that learning curve to become a programmer. I just want to solve my problem and move on.
:@)
Yes we are saying the same. Let's say I want to rub my ear. I can use basic and say "rub ear". In a basic interpreter the computer already knows because someone coded it what is a ear. I can use C in any flavour or Java and explain the computer what is the ear and what is to rub. I create an object ear and a method rub. I can also find a library somewhere that rubs ears. I can define a thread to rub the ear. I can make an object server that creates hands that rubs ears! Isn't it fantastic? But all I want is to rub my ear. Then tomorrow I want to build a very complex program that compares the ears of all humanity. I can use a powerful object oriented language for that in a cloud of computers. Basic can't, but those can. That program is easy for a pro programmer maybe. For a casual or hobbyist is impossible. Where is the problem? I see no problem. Now tell people to learn complex solutions for simple programs. They won't. Everything had it's place. As I see it, no other language can take the place of basic.
|
|
|
Post by svajoklis on Apr 23, 2020 14:48:48 GMT -5
If we expect someone who writes code to acknowledge if and while loops, even basic gosubs and subroutine calls, then what is the reason behind drawing a line at something containing something else? And, again, suddently it's a jump from "I want to write a hello world program" to "I want to write a massively parallel GPU driven distributed enterprise-level battle-hardened solution". Good thing BASIC interpreter knows what an ear is.
I am not getting an inspiring vibe here, and I am coming in hard into a forum dedicated to a BASIC dialect that has persisted for more years than I can remember coding at all by a long shot. There must be something more tangible, than "those darn kids these days with their... data and actions related to that data packed together!". If someone really wanted to they could paint themselves into a corner with a Notepad.
Sure, most likely no other language can take the place of BASIC. Or maybe no language really wants to.
I hear a lot about statisticians, scholars cracking out Python to run some simple calculations, even parsing some data and doing something on it, just because there is a well documented library that does just what they need. I can't fathom a situation where someone like that says "gee-whiz, I sure feel overwhelmed by typing 'import time' and then 'time.now()' way down there, I wish I could do just 'now()'. Better yet, I would feel a lot more accomplished if I reimplemented ISO timestamp parsing from strings, yeah. Could reinvent regular expressions too while I'm at it". This outlook amazingly balances between being insulting and being praise for a common person's ingenuity, that outshines years and years of hard work by teams of very smart and dedicated people.
|
|
|
Post by sarossell on Apr 23, 2020 14:58:21 GMT -5
As I see it, no other language can take the place of basic. Absolutely. BASIC has its place and purpose in the world. It's the world that's missing the point.
|
|
|
Post by sarossell on Apr 23, 2020 15:10:31 GMT -5
I am not getting an inspiring vibe here... Sure, most likely no other language can take the place of BASIC. Or maybe no language really wants to.
I can't quite read your mood, svajoklia. I hope we're all still within the margins of polite propriety here.
I can't express enough my admiration and praise for BASIC, particularly Liberty BASIC. I don't know how to be any more inspiring than that.
As for no other language taking the place of BASIC or wanting to, that was my original question. Python HAS taken the place of BASIC whether it "wanted" to or not. My question was simply, "Why?" It didn't need to. BASIC was just fine, but the world decided it needed a far more complex "easiest" language. It's like someone asked,
"What's the SECOND easiest language after Pascal to teach kids?"
"WHAT?!!! Why not just teach them BASIC?"
"BASIC?! I need something more than Logo and turtle graphics!"
"Right! BASIC."
"But BASIC is line numbers and GOTO statements."
"What? Where ahve you been? No it isn't! It hasn't been like that for DECADES!"
"Yeah, but..."
"BUT WHAT?!!!!!!! Ya got nuthin'!!! You just want to mangle children's minds with unnecessarily complicated code...Oh sh%#, I'm quoting Djikstra."
{:@(
|
|