|
Post by sarossell on Apr 21, 2020 22:25:00 GMT -5
I honestly don't get it. How did BASIC go from THE programming language from 1975 through the entire personal computer revolution of the 1980s, to THE established legitimate business development platform with Visual Basic, to somehow lingua non grata virtually overnight sometime around the turn of the century?
If you bought a computer during the two decades between 1975 to 1995, it had BASIC on it. It STILL has BASIC if you're running MS Word or Excel with Visual Basic for Applications embedded in the background!
BASIC began in 1963 at Dartmouth, found its feet in New Mexico with Microsoft and the Altair in 1975, dominated the personal computer market in the 80s...It was untouchable! That stupid memo from that gum-flapping, Dutch, jack-ass Djisktra in 1975 ended up being a joke on him since that VERY YEAR, Bill Gate and Paul Allen started one of the most successful businesses in the history of this planet...SELLING BASIC! So, that idiot's not to blame, right?
As computers evolved from 8-bit to 16, 32, and now 64-bit systems with the GUI desktop environment becoming a given aspect of daily computing, was BASIC unable to keep up? Of course it kept up! Visual BASIC, Gfa BASIC, Liberty BASIC...just to name some of the bigger players all managed to provide the means to design and build professional, modern GUI applications. So, that can't be the cause, right?
Point in fact, if BASIC was ever to have been kneecapped, it would have been from Microsoft themselves due to their incredible incompetence in marketing BASIC throughout the 80s and 90s. Microsoft BASIC started as BASICA, then BASIC-80, BASIC-86, GW-BASIC, QuickBASIC, QBasic, PDS, Visual Basic for DOS, Visual Basic for Windows, Visual Basic .Net, and Small Basic. Seriously?! Now I could understand if each name represented an advancement in the language. And in some cases it was, but not always. QBasic inexplicable eliminated the compiler which made a VERY brief return with PDS but then disappeared again with Visual Basic until version 5! Then by version 6, they scrapped it and moved on to .Net, which everyone knows is decidedly NOT BASIC! And just recently, they decided to scrap .Net too!! Fine by me. No loss there.
My point though is this; while Microsoft's BASIC essentially died from it's own incompetence around 2002 when they went to .Net, there were still plenty of other versions of BASIC that had NOT sold their soul. Liberty BASIC is one of the best of them and dates back to 1992(?)!! But can this world really be so simple that "if it's not Microsoft BASIC, it's crap!" Well, that can't be true! They came out with Small BASIC! That was Microsoft BASIC! So what made BASIC a dirty word? More to the point, why did the world overlook over 50 different versions of BASIC in the wild and decide that Python was somehow better? Have you seen a Python GUI app? It looks like a Tandy Color Computer screwed an ashtray!
Right now, there are at least a solid dozen versions of BASIC that can spin circles around the form, fashion and function of a Python GUI app and yet...here we are.
And Liberty BASIC has proven that you don't have to go all whOOPsie like XOJO to get the job done either! (OOP; Object-Oriented Programming) (XOJO; Don't get me started.)
I'm genuinely perplexed. Can someone, ANYONE please make some sense out of this for me?
Much obliged.
-Scott :@)
|
|
|
Post by Rod on Apr 22, 2020 2:09:51 GMT -5
Because it is too easy. No one was going to pay megabuck rates to programmers if someone fresh out of school could pick it up and run with it. No it had to be unfathomable and look super complex with a myriad of strange wording. That way you got paid, but you never made it look easy, you always took your time and grumbled occasionally for good effect.
|
|
jordi
Full Member
A simple solution is the smarter one.
Posts: 106
|
Post by jordi on Apr 22, 2020 3:44:25 GMT -5
In my humble opinion, I think that how people's brains work is changing dramatically in the last decades.
I mean, in prehistory, an individual was able to do lots of different things at a good level, but was not specialist at all. That was good for their survival. They had to be a jack of all trades. You can't ask them to do nuclear physics, but you can be sure that with them you will survive and overcome many situations.
In modern but past times, individuals became more specialized but you can still find people with all-purpose brains capable of doing many things at a good level. For example Robert Penfold in electronics, one of my favorite authors.
In recent times, we can often find people who are highly specialized: they do one single thing at a very high performance. Many people doing a single thing to perfection make a society that works well. The problem comes when they individually are confronted to personal challenges.
The computer languages are made by the minds of people. As a result, languages become more specialized, and more complex, and hard to understand except by those whose mind is prepared for those languages.
Basic is a general purpose language for general purpose minds. Those who don't have a general purpose mind can understand it too. That is nice, then why they prefer to promote hard languages?
Because as Rod says, it gives an arcane meaning to many things they do that is economically good. Also, they may be working is something so specialized and resource intensive and low level that it needs those other languages.
The computer user is also told to use other people's programs, and not make theirs. I love the part of basic that allows you to build your program in a short time to solve a problem with simplicity. But many people are simply not creative. Those who program are creative.
The people who make languages are not usual. And those who do, usually have a very specialized mind that doesn't let them explain and create things for those who don't. They speak another language.
People like Carl who have a high skill in specialized languages and also can create and understand people who don't are even less frequent, and a miracle in our days.
Microsoft killed their basic because the programmers are changing, everybody's mind is changing, and for them, their .net stuff is easy, gives them the bucks as Rod says, and it makes them feel like Merlin the Wizard.
I think basic may have a rebirth if people saw the advantages of doing your programs yourself, or programming as a fun thing. Liberty basic actually makes it fun. Other languages are masochism.
|
|
|
Post by meerkat on Apr 22, 2020 9:09:01 GMT -5
I love BASIC. Always have and always try to use it. I've developed applications for large private and public sector applications. The truth is - Basic just couldn't do the job. I have used Sheer Power www.sp4gl.com/ and was very successful in the past. It could handle the job. Unfortunately they have not kept up with toady's technology. And no graphics. I liked Progress Software in the past. It was close to Basic.. So, in my case, I had no choice, but to find alternatives. Anyway I keep trying to find something. Run Basic is set up to do client/server applications, if you can get around the bugs. And the only DB is SQLite. I tried a large application with it and was not successful. Had to rewrite it in another language. I'm trying to get LB to work with Apache. And it seems to work so far. I'll keep my fingers crossed. Still having some issues with interactive HTML. I'm developing a screen interface design tool. Also a way to download exe's, when needed, to try to eliminate JavaScript. If all that works, then maybe?? I'll keep trying!! www.sp4gl.com/
|
|
|
Post by svajoklis on Apr 22, 2020 9:27:49 GMT -5
I have been following threads like these for a while, and it really seems like I'm missing some key point.
I have been spending some time with Liberty BASIC, rewriting old games from the classic "Basic Computer Games" book. The classic Microsoft BASIC that was used back then is REALLY hard to follow, and translating things into Liberty BASIC only helps out so much. The GOTO based programming is extremely hard to follow at times, with simple if elseif else blocks being implemented in an intricate way. There is a certain charm to that, but at that very same time it's more of an exercise of battling with the language rather than implementing code.
I haven't figured out "continue" statements inside loops, since there can only be one "next X" statement, so it's a case of iffing all the code to let it fall through if a continue is needed. There are no structs to structure/pass data without resorting to manual hierarchical naming. Calling functions is resorted to primitives.
I see Python, Visual Basic .NET (which at least put BASIC along the bigger C#, F#) being put under the train, no mentions of Rust, Go, C, C++, Web technologies (yeah, I know JS is crap, I deal with that every day, I love it at the same time). I would strongly disagree, that BASIC is for the "creative" people only, and other languages are for simpletons. More often than not language is judged on the power of its standard library, which for Liberty BASIC is quite sparse. GUI programming with resorting to manually calling/wrapping .dll calls is possible in other languages just as well.
Other languages are as hard as you want them to be. At some points when using Liberty BASIC I want to use those parts only to find them missing. It would be completely unreasonable to force people either to limit themselves to using a small set of functions. And it would be unreasonable to ask each and every programmer to define their own "Standard Library" with required functions. If hundreds of people can create, test, use, retest, fix a rock-solid standard library, I would take that over the sense of pride of implementing basic things myself any day.
Like I heard someone once say: you have to decide whether you are setting off to write a game or you are setting of to write a game engine. Those two things are completely separate and apply to other programming endeavors as well. If my goal was to make a network component I wouldn't just go ahead and reimplement whole TCP stack just to say that people who got it pre-made are lazy and uncreative.
|
|
jordi
Full Member
A simple solution is the smarter one.
Posts: 106
|
Post by jordi on Apr 22, 2020 9:45:08 GMT -5
I don't mean creative in that way. I think people with abstract specialized minds are creative too.
I mean that in the past this is what personal computers (not business or enterprise computers) were for: use basic to solve a problem that you have in your home. You bought a computer to do something and play but also to program it and help yourself. The idea of what is a computer has changed: now it's a machine to play and use programs That OTHERS do, not you.
Many problems can be solved with basic, don't need a lower level language.
And as I said the computer user is also told to use other people's programs, and not make theirs. As many people are not creative, they are happy with that.
|
|
|
Post by Carl Gundel on Apr 22, 2020 9:53:53 GMT -5
Microsoft abandoned BASIC because it represents a very real democratizing influence that elevates people from consumers to producers. I know that sounds like a conspiracy theory, but you can reframe that as a business strategy if it suits you.
People today are itching for real authentic experiences, to build things and to use their minds and their hands. Witness the whole Maker movement. The big software houses are culpable for the lack of truly easy and fun ways to start programming which should hit you smack in the face when the computer boots up. Windows, Mac, and Linux. Even the famous Raspberry Pi doesn't do it right, starting with their adoption of Linux as Raspian for their OS. The beginner really needs a platform that demonstrates all the essential ideas in the smallest artifact. In that sense Raspian is lousy.
|
|
jordi
Full Member
A simple solution is the smarter one.
Posts: 106
|
Post by jordi on Apr 22, 2020 10:00:39 GMT -5
Microsoft abandoned BASIC because it represents a very real democratizing influence that elevates people from consumers to producers. I know that sounds like a conspiracy theory, but you can reframe that as a business strategy if it suits you. People today are itching for real authentic experiences, to build things and to use their minds and their hands. Witness the whole Maker movement. The big software houses are culpable for the lack of truly easy and fun ways to start programming which should hit you smack in the face when the computer boots up. Windows, Mac, and Linux. Even the famous Raspberry Pi doesn't do it right, starting with their adoption of Linux as Raspian for their OS. The beginner really needs a platform that demonstrates all the essential ideas in the smallest artifact. In that sense Raspian is lousy. Completely agree. All those people are the public for Basic. Those people that want to create their things.
|
|
|
Post by svajoklis on Apr 22, 2020 10:10:32 GMT -5
BASIC is an interpreted language mostly, at least classically it was. Linux, if you skip the desktop environment and don't expect coding blocks to appear after boot, boots into bash, an interpreted command language.
You download Liberty BASIC, install, run the IDE, you are in. You download Python, install, run the IDE (IDLE), you are in.
> Many problems can be solved with basic, don't need a lower level language.
Yes, but people don't start off and don't even go to a pure C98 solution - there are tools and solutions. I'd gladly use bash to batch process files or even perform other basic actions rather than trying to figure out file access in F# just for that.
Are Python ifs implemented in a cryptic, CPython internals specific way? Do C# for loops require knowledge of the CLR? Each of these tools you can download, run, and start using the basic building blocks - integers, strings, conditionals, loops, functions, to create your own "basic home task" solutions if you will. The only difference I see is that in Python, if I want to, let's say, parse text, then I can open the regex documentation and dig in with examples. With Liberty BASIC I would have to resort to implementing the FSA to parse them myself. If by "creativity" you mean being unable to solve relatively straight-forward tasks, or, again, implementing completely common constructs, then I am at a loss.
IMHO Python really fills that "democratizing" role where you can pip install some, let's say, image processing library, and perform tasks with that. You don't have to crack out the ol' trusty JPEG technical spec and don't have to figure out the internals of image processing. You CAN if you want to, and all the tools are there. In what way the absence of things like these is empowering?
|
|
|
Post by Carl Gundel on Apr 22, 2020 10:13:37 GMT -5
Other languages are as hard as you want them to be. At some points when using Liberty BASIC I want to use those parts only to find them missing. It would be completely unreasonable to force people either to limit themselves to using a small set of functions. And it would be unreasonable to ask each and every programmer to define their own "Standard Library" with required functions. If hundreds of people can create, test, use, retest, fix a rock-solid standard library, I would take that over the sense of pride of implementing basic things myself any day. Like I heard someone once say: you have to decide whether you are setting off to write a game or you are setting of to write a game engine. Those two things are completely separate and apply to other programming endeavors as well. If my goal was to make a network component I wouldn't just go ahead and reimplement whole TCP stack just to say that people who got it pre-made are lazy and uncreative. You can use BASIC to do commercial applications if you really want to, but BASIC is really best suited to individuals. If you are free to decide for yourself what sort of compromises you are willing to make, then a small language with a small library can be perfect for you. I have also worked on large professional projects using Java and Smalltalk. These programming systems have very complete and mature libraries that do all the things that professionals require today. The problem is that they also do not fit for the beginner or casual programmer because they require a large investment in learning before you are ready to start writing code, and then you have to study the library in order to figure out how to do things. And then, if you step away for weeks or months to work on something else you might come back to realize that you forgot a lot of what you knew and need to refamiliarize yourself. AND THEN the tools vendor obsoletes and deprecates the library functions and you have to relearn and change your code. So... BASIC is for beginners, and hobbyists, and people who need a programming language but they are not paid programmers and can't afford to spend all their time learning new languages and keeping up with the technology. That's one way to look at it anyways.
|
|
|
Post by svajoklis on Apr 22, 2020 12:19:35 GMT -5
Well I guess there's that, with Liberty BASIC what you see is what you get. Wanting more complex stuff would require moving on, but at the same time the simplicity has it's own charm.
|
|
|
Post by Carl Gundel on Apr 22, 2020 12:28:41 GMT -5
Well I guess there's that, with Liberty BASIC what you see is what you get. Wanting more complex stuff would require moving on, but at the same time the simplicity has it's own charm. Exactly. Some people adore big, and powerful, and rich programming systems. Some people can't stand them. Liberty BASIC and similar systems offer an easy way (comparatively) to play in the programming sandbox. It's powerful enough to do some fancy things, but if it's a toy programming system you want it can be that too.
|
|
|
Post by sarossell on Apr 22, 2020 13:46:19 GMT -5
I'm always impressed by the level of thoughtful insight I observe in this forum. You folks are smart! I participate in a handful of other forums on various subjects and with the exception of one for economics and history, the kind of responses I usually get from the other forums is "'Cuz reasons!" or "Shuddup commie!"
I genuinely love how, for so many years, Liberty BASIC has managed to unabashedly stand right on the line between fun and marketable without getting bogged down with nostalgia or fad (and I consider OOP as fad - mark my words).
I am so looking forward to seeing where v.5 takes us. Particularly since I now have to learn Xojo. How do you spell that sound you make when you dry heave several times and eventually puke? I mean, don't get me wrong, Xojo is a fine product developed by fine people. It's just NOT BASIC. They long ago fell on the slippery slope while standing on the coattails of Microsoft, only to find that coat discarded along the way. They sold their REALBasic soul to become something they weren't only to find that the thing they idolized (Visual Basic .Net) was a sham. Ya gotta be true to your roots!
:@)
|
|
|
Post by Chris Iverson on Apr 22, 2020 15:08:24 GMT -5
Honestly, I think it's the people and systems themselves that have changed.
Well, the people haven't changed much, but the type of people getting computers has changed massively.
Back then, the only people getting home computers and tinkering with them were the people interested in doing so in the first place. Anyone who bought one of those computers was interested in seeing what they could do with it.
Since then, computers have gone from a niche hobby to an absolute necessity for ANYONE, in the modern age. The vast majority of people using computers today don't want to bother with any of that. They just want to click the thing and be sure it goes "doink".
Alongside that, the computers themselves were a lot simpler. Although it might be slower than compiled code, you could reasonably expect whatever BASIC interface the system came with to be able to access and control absolutely everything on the system.
As computers got more and more powerful, they also got more and more complex to take advantage of that power. WIMP-style GUI interfaces were a game changer, but no BASIC could do that early on, when those types of GUIs were starting to come around. Sure, they all gained the ability to later, but people wanted those interfaces before that point. In these cases, it was mostly C code, mainly because the OSes themselves were written in C, and it turns out it's really easy to interface C code with C code. In those first times, if you wanted to make those kinds of programs before anyone else, before anyone had made other tools to do so, you had to do it in those languages.
This was very prevalent in the UNIX-world, which was rapidly spreading, so most of the UNIX utilities were written in C. Then they needed a better shell to control things with, and the shell gained it's own scripting code. If you wanted to do simple stuff, you wrote a shell script. If you needed to do complicated stuff, you wrote C.
This carried over into the Windows world as well, since Windows(and I think some later versions of MS-DOS) was written in C. Windows also provided a lot of very useful libraries for having it do all kinds of useful stuff, but they were C-interface libraries. You needed something that could compile to code that could interface with those. At first, that was C. Many other languages sprang up later that could interface with those, as well(since one thing Microsoft made sure to do was implement a stable ABI, so that any language out there would know how to invoke the library functions properly).
BASICs could also no longer access as much of the systems, anymore. Modern OSes do an ungodly amount of work just getting to the point where programs YOU write in whatever language behave properly. Hardware management, non-cooperative multitasking, memory management, security, networking, filesystems.
And all this was happening as more and more people bought into computing, not as a hobbyist, but as a consumer that simply needed the thing to do what they wanted it to do, and was willing to pay other people to make it do the thing. They didn't care that a program was written in BASIC or not. They cared if it could do what they wanted it to do on their new shiny system.
This apathy towards it is going in a downward trend, unfortunately. Heck, it's not just computing. It's all electronic appliances. Everything used to come with wiring diagrams, for God's sake! You wanted to know how the radio you bought worked? Or to fix it? You could go get a soldering iron and tear it apart. You'd probably blow it up at first, but that was part of the fun.
Nowadays, you're lucky if you're able to buy a wiring diagram for something, to say nothing of the specialized tools needed to work with miniature electronics. Good luck using your soldering iron with surface-mount components that are half the size of the smallest soldering iron tip you have.
And that's without companies being outright hostile to the idea. Looking at you, Apple, Mr. "Let's-sue-independent-repair-companies-that-have-the-TERRIBLE-stunning-audacity-to-believe-they-can-fix-our-junk". (In case you can't tell, I'm rather unhappy with how right-to-repair and right-to-tinker have been treated recently.)
I think one of the best ways to describe it is, for the vast majority of people, when it comes to computers, the magic is gone. For the youngest generations, it was never there in the first place. It's a thing they've had all their lives, and it's just pedestrian to the point they don't bother thinking about it. It wasn't this fascination that many of us had with the machines, these objects that we could have fun deciphering the mysteries of.
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.
Heck, I think many people from my generation accidentally prove that best. I was born in 91, so I didn't have a computer as a young child, but it slowly grew to be more available as I grew up.
The best indication of people just trying it I think comes from the early days of social media. Sites like xanga, myspace, even Neopets. That's how we all communicated with each other. However, there was one important feature of each of those.
Your profile. Your own personal page, whatever you want to call it, was fully customizable. You could experiment with it, and all your friends would see the result of your experiments. Heck, the whole world could!
Thousands of web developers my age only got into it because they started playing with those features just to show stupid junk to their friends. HTML, CSS, and Javascript are some of the most arcane junk out there(especially back then), and yet thousands of kids soaked it up to make the most ugly, garish pages possible, that they thought looked cool. It was pure creation.
Many of those people would've never gotten into that line of work if they didn't have those results available. The "hey, look at this weird thing" factor.
And that creative spirit is still there in kids. It's just sadly not really focused on computers, anymore. There's(relatively) just as many kids making stupid, ugly YouTube videos as there were kids making stupid, ugly webpages.
|
|
|
Post by Carl Gundel on Apr 22, 2020 15:30:01 GMT -5
I don't understand. Could you say all that again, differently? Thanks. Just kidding of course. Well said. Honestly, I think it's the people and systems themselves that have changed. Well, the people haven't changed much, but the type of people getting computers has changed massively. <snip> And that creative spirit is still there in kids. It's just sadly not really focused on computers, anymore. There's(relatively) just as many kids making stupid, ugly YouTube videos as there were kids making stupid, ugly webpages.
|
|