Author Topic: QB64 vs Python and a humble request  (Read 13414 times)

0 Members and 1 Guest are viewing this topic.

Offline CBTJD

  • Newbie
  • Posts: 60
  • You're only as old as you feel. ...I'm screwed.
    • View Profile
QB64 vs Python and a humble request
« on: April 19, 2020, 10:23:26 pm »
As I've mentioned before, I was recently approached to recommend a programming language for a Maker's Club in Arizona that was decidedly NOT Python. My research turned into a large spreadsheet that covered 26 aspects of the top 13 out of a total of 54 versions of BASIC that are available in the wild. And of those 13 versions, the reason I'm here; QB64 was the hands-down winner, with second place scoring a full 18.6% lower score! I can't stress this enough: QB64 blows away all other versions of BASIC - quite handily in fact.

But it's not perfect. While the built-in editor is really quite clever in providing error reporting and interactive help, it is very legacy PC-centric, making it out of place on modern platforms, and it doesn't provide code completion or folding. Well...Oh darn. Can't have everything, right? More about that later.

For this message, I wanted to share my findings in comparing QB64 with Python. And I must admit, I was surprised by what I learned.

Python and QB64 both have a very long history, but very different paths. Python started in 1990. The path got a little confusing in 2008 when the heavily revised version 3.0 was released and it met with some strong resistance from the version 2.7 hold-outs, but that all got resolved this January when they simply stopped supporting the older version altogether. They tried as early as 2015, but the hold-outs were dug in pretty deep.

It can be argued that QB64 can trace it's roots as far back as 1975 with the first version of Microsoft BASIC. Technically however, it was first released in 2007. But since it was designed from the start to be practically an expandable clone of Microsoft's QuickBASIC, which was released in 1990, I prefer to hold onto that date. That puts it right on par with Python which was released the same year. Ooh, plot thickens!

So on to the comparison of the more important aspects... First, I decided to expand the number of comparison aspects to 28 to include Code Folding and Debugging. These two aspects were not important to the Club since they were not planning on having large code projects that would need them.

Well, after everything is scored, it pains me to say it, but with just one glaring, massive exception, Python handily beats the socks off QB64. (But don't run off just yet!)  First off, there are numerous IDEs available for Python that include all of the fancy editor features QB64 lacks. Also, The Rosetta Code site is chock full of code examples for Python while the entries for QB64 are simplistic and few (I've added a handful myself, but my programming skills are very limited). And the penultimate aspect; the ability to create web pages, seems out of reach for QB64 while Python is an old hat in that rodeo. Not sure that's really all that important, but it was to the Club, so I left it on the list.


BUT!!! The biggest, and most important difference between the two is the simple fact that Python is NOT BASIC!!!

In some ways, it's deceptively close to BASIC:

Code: [Select]
print("Hello world!")
And in some ways, it's deceptively simple:

Code: [Select]
def fibGen(n):
    a, b = 0, 1
    while n>0:
        yield a
        a, b, n = b, a+b, n-1

But once you realize that tabs are required in exacting positions and to do anything beyond these simple examples requires the addition of libraries and pointless OOP elements, it very quickly turns into something that looks like it went through a wood chipper. Or worse, it's so cryptic, you can't figure out what the heck it's trying to do in the first place. I mean, what the heck is this?!


Code: [Select]
import pprint
pprint.pprint([i for i in xrange(10, -1, -1)])


It's a simple For..Next..Step -1 loop. That's it. Yuck.


So, bottom line, QB64 scored 346.5 against Python's score of 378. But by just improving two things, QB64's score could be increased to just barely outpace Python. But that's huge when you think about it! QuickBASIC could take on Python and win?! You bet. And all it would take is these two things:

1) Heavier community involvement on the Rosetta Code site. (That's very achievable.)

and

2) A more extensive and modern cross-platform IDE with automatic code completion, code folding, integrated debugger, GUI designer, icon designer, menu designer, integrated automatic help, and platform specific key assignments (e.g., CMD+C [Copy] for Mac instead of CTRL+C).

Of course, none of this is actually necessary. After all, who cares if Python can do things QB64 can't? It doesn't matter if Python scores higher on some fat, old guys arbitrary spreadsheet.

I just have a dream of one day seeing BASIC back on top in people's minds - particularly new programmers. I would love to see Raspberry Pi programmers gravitating toward BASIC instead of Python. BECAUSE BASIC IS BETTER, DAMMIT!

To that end, I humbly suggest that a more robust IDE editor and greater focus on the Rosetta Code site would be of benefit to the QB64 community, and I offer my assistance any any way I can to help those two come to fruition. It may even be possible to monetize the project by continuing to offer the language and associated software for free but charge for extensive, age-grouped, educational materials and specialized publications for subjects like game design, science, hardware projects, robotics, etc.


I would love to hear your opinions and ideas.


Thanks for reading all this crap!

:@)
CBTJD: Coding BASIC Takes Judicious Dedication

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #1 on: April 19, 2020, 11:58:04 pm »
The only way to get mass appeal for QB64 as a BASIC language for the future is for someone to have an in at Microsoft, and get the board interested in using it to resurrect QuickBASIC. That's a lot harder than it sounds, as BASIC was replaced in schools by RUBY and Python already.

The next best would be to contact Opera, and see if she would be willing to give away computers to her children she sponsors in Africa. You used to be practically neighbors, but I can't stand her, so no connection here. It sure was fun though, watching her on T.V. wading through what she thought was mud during the big mud slide that happened a few years back; but a friend of mine who did toxicology and environmental testing told me they tested that area, and a lot of what she was slugging around in was contaminated with a good deal of raw sewage. Thanks for reading this crap! :D

Anyway, anything else is just however far people could get via Social Media. As far as the IDE goes, it was made the way it was out of a love of nostalgia, and as a brief diversion from the monotony known as the compiler project.

Bill is slowly putting together a tool box and library section, and although this gets us more towards OOP development than actual BASIC, it's not a bad idea to have some non-learning utilities in the language, for productivity sake. Hell, like it of not, that's where modern programming is heading. In fact, in less than 100 years, I suspect A.I. will be writing all code.

I think QB64 has done very well as a hobby language. I think anyone with enough time and ambition, who wants to put more of a spotlight on it, would certainly get more hobbyists involved in both the software, and the forum; so that's a win, even if it wouldn't be promoting the language on a massive scale.

One sad shortcoming to the language as a C/C++ translator is that C is not the language of choice for mobile apps, and as such, QB64 was unable to make a splash in the mobile app scene. Small BASIC is as close as BASIC has come to that market. It's pretty cool, but it's not for creating apps someone could market, in the traditional since.

So wherever your ambitions take you, best wishes. I think it's great that after 30 years, people still have this genuine enthusiasm for this language. For me personally, I've done a couple of projects in C, but if it wasn't for QB, I don't think I would have cared about programming to use it frequently. Sure, I might have coded a couple of projects to use in my practice, but not to the extent of running the practice and enjoying every minute of creating those various programming projects. In my opinion, C should have been named D, for dull. Imagine what would have came next, Dull++.

Pete

 

Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline CBTJD

  • Newbie
  • Posts: 60
  • You're only as old as you feel. ...I'm screwed.
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #2 on: April 20, 2020, 12:46:11 am »
I'm wary of seeing Microsoft involved with BASIC any further than they already have been, if only because they have changed it's name and botched it's compiler implementation countless times. I mean, seriously?! BASICA, BASIC-80, BASIC-86, GW-BASIC, QuiCKBASIC, QBasic, PDS 7.0, Visual BASIC, Visual Basic .NET, and Small Basic. And now they've decided to kill it ALL off. It's not like each name represented a major change in the language - unless you count REMOVING the compiler from QuickBASIC and not providing one again until Visual Basic 5!

No, in fact, the name "BASIC" suffers from an unwarranted bad reputation and needs to be rebranded. I think QB64 is perfect. It has almost as many "_" prefix commands and foundational BASIC commands. And now with $NOPREFIX, is it fair to call it BASIC really? But of course, it isn't called BASIC, it's called QB64, but it doesn't take long for people to catch on that it's compatible with QuickBASIC.

I strongly believe that if QB64 was polished, rebranded, and packaged with Raspberry Pi computers and comprehensive educational materials, we could see kids learning to program in BASIC without ever calling it that. And we'd be doing them a solid, because the paint is starting to chip on the false facade of object-oriented programming as the end-all-be-all paradigm it was sold as. Programmers are starting to come around to the fact that they were bombarded and bamboozled by Java's marketing propaganda and the herd mentality that surrounded it. Even Apple's Swift UI is covertly stepping away from OOP in key areas. And the reason I believe this is because I've been contacted to do exact that from three completely separate sources. I have to wonder if they all read the same book somewhere or saw something that triggered this, but the caustic anger I've witnessed with educators who have watched their computer class student counts dwindle and level of frustration of the remaining students growing to the point of some classes being canceled altogether is very disturbing. The educational circles need BASIC in some form or another.

Regarding the mobile arena however, while Python does hold the lion's share of development at a little over 30%, C++ at 13% is only third place after Java at 22%. So I can't quite agree that the C translator has no place in mobile app development. And of course, that's just on the Android side. Apple is almost entirely Swift UI now.

My biggest challenge is that I have found the right tool in QB64, but I'm not a programmer. I'm a researcher and technical writer. I see all the pieces to the puzzle, but I don't have the skill set to put them together. It's tough enough that running QB64 on the Raspberry Pi is a hack in the first place - but only because it hasn't been formally supported. It works fine, so I'm told. I've started work on the teacher's guide, student handbook, and three different textbooks based on using some rebranded form of QB64, but it will all be for nought if I can't interest some people in getting involved to develop it.

It's very feasible to create a program called something completely different that simply indicates in the materials "Based on the QB64 development language and supplementary applications." In fact, one of the Maker's Clubs have coined the name "RasPi BASIC II". I'm not a fan, but I see what they're trying to do. Does anyone here have a better name? I'd love to hear it.

:@)

P.S.: Just to be clear, I'm not suggesting changing ANYTHING about QB64. I'm merely trying to figure out how to utilize it under a different name with a more modern appearance and editor.
« Last Edit: April 20, 2020, 12:49:08 am by CBTJD »
CBTJD: Coding BASIC Takes Judicious Dedication

Offline TerryRitchie

  • Seasoned Forum Regular
  • Posts: 495
  • Semper Fidelis
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #3 on: April 20, 2020, 01:41:12 am »
BerryBASIC

QuickBerry

PicoBASIC

QuickPi

Rapsic - Raspberry Pi Symbolic Instruction Code

QuickSlice
« Last Edit: April 20, 2020, 01:43:03 am by TerryRitchie »
In order to understand recursion, one must first understand recursion.

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #4 on: April 20, 2020, 02:10:46 am »
She coded RasBASIC_Pi_2
The kind you find in the Apple App Store
RasBASIC_Pi_2
And I prefer it stay QB64
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline CBTJD

  • Newbie
  • Posts: 60
  • You're only as old as you feel. ...I'm screwed.
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #5 on: April 20, 2020, 03:23:29 am »
Prince is rolling in his grave.
CBTJD: Coding BASIC Takes Judicious Dedication

Offline CBTJD

  • Newbie
  • Posts: 60
  • You're only as old as you feel. ...I'm screwed.
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #6 on: April 20, 2020, 03:57:53 am »
BerryBASIC
QuickBerry
PicoBASIC
QuickPi
Rapsic - Raspberry Pi Symbolic Instruction Code
QuickSlice

I see where you're going here. A little pie. A little Quick.

The thing is, they're looking to have cross-platform compatibility, so all the Pi references are problematic. Of course, they say that, but then they turn right around and tell me they like "RasPi BASIC II".

For a while, somebody had mentioned "BāZIK". And that's just weird. But it does pose a curious question, if you had to come up with a name for a new programming language with a catchy, marketable tone, how would you do it? Python was named after Monty Python. C simply came after B (No, really.) Perl was originally named "Pearl". The developer wanted to give the language a short name with positive connotations. (He also considered naming it after his wife Gloria.) He eventually discovered the existing PEARL programming language before Perl's official release and changed the spelling of the name. Ruby was almost named "Coral". The two developers finally agreed on Ruby because it sounded better and it was the birthstone of one of their colleagues. And Java and JavaScript are not related at all!


 So, it's not as easy as some may think.


Language names can be adjectives, verbs, nouns, animal names, insect names, or just acronyms. YABASIC is just "Yet Another BASIC".

Whatever it would be, it shouldn't include the name BASIC, but it should *BE* BASIC.

So, how do you create an inventive name that fits along the current popular names? Python, C/C#/C++, Ruby, Swift, Java, PHP, Perl, R, Go...

One thing is obvious among them all. They're all short names. Two are just letters; C and R. One is an acronym; PHP. Four are nouns; Python, Ruby, Java, and Perl (misspelled). One is an adjective; Swift. But the rarest type of all is Go; an intransitive verb! Most are only one or two syllables.

If you wanted to be a maverick, you could go with "Went", also an intransitive verb and only one syllable. If you wanted to run with the crowd, you could go with "Rocket", a simple noun with two syllables.

I kind like the simplicity and homage of the adjective "Quick". I suppose you could try to get clever by spelling it "Kwik", so it didn't look like you just lopped off the word BASIC on the box.

Python, Ruby, Kotlin, Go, Perl, Kwik, Java, C++, R, Swift...  Thoughts?
:@)

CBTJD: Coding BASIC Takes Judicious Dedication

Offline Richard

  • Seasoned Forum Regular
  • Posts: 364
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #7 on: April 20, 2020, 06:36:51 am »
Quote
I'm wary of seeing Microsoft involved with BASIC any further than they already have been, if only because they have changed it's name and botched it's compiler implementation countless times. I mean, seriously?! BASICA, BASIC-80, BASIC-86, GW-BASIC, QuiCKBASIC, QBasic, PDS 7.0, Visual BASIC, Visual Basic .NET, and Small Basic. And now they've decided to kill it ALL off. It's not like each name represented a major change in the language - unless you count REMOVING the compiler from QuickBASIC and not providing one again until Visual Basic 5

Just a minor alteration/correction (not really important to the theme):-

You omitted PDS 7.1 (realised about 30 years ago) which does do compilations (option) in addition to being an interpreter (with improvements) BASIC.

I have used PDS 7.1 and still use it today (in addition to QB64) - I am not familiar with PDS 7.0 or Quick Basic,  QB45 etc.

When Galleon developed QB(64) at one stage he apparently used PDS 7.1 (which eventually could not handle the size of QB(64)) - but surprisingly he did not want to incorporate advanced features (over QB45) - so QB(64) was always using a subset of PDS 7.1 features.


Maybe QB64 should follow the path of PDS 7.1 - call it say     QB64 PDS     (PDS stands for Professional Development System) - of course keep all the "bells and whistles" (which are very useful) and features already available in QB64.  A lot of work, and as STxAxTIC  (in reply to a related topic) would say building a "Tower of Babel"...

The "PDS tag" may help advertise QB64 is NOT JUST A HOBBY LANGUAGE - but it would require serious commitment to its development (which includes being useable in an interpreter style mode (a "hot" topic in my opinion at present)).
« Last Edit: April 20, 2020, 09:35:42 am by Richard »

Offline CBTJD

  • Newbie
  • Posts: 60
  • You're only as old as you feel. ...I'm screwed.
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #8 on: April 20, 2020, 12:26:01 pm »
Ah, yes. You are correct. I did overlook PDS 7.1. It wasn't around very long before VB for DOS was released and then VB for Windows. Neither of which had a compiler. It's odd really. PDS was essentially the culmination of all things BASIC and yet it was quickly dismissed and overshadowed and not a single book was ever written for it that I can find. Which supports my original statement about Microsoft's poor management of the product.

And again, to be clear, I'm not suggesting anything be changed about QB64. My task is to try to adapt it to a educational curriculum under a more polished brand and appearance with QB64 in the background making it all work.
:@)
CBTJD: Coding BASIC Takes Judicious Dedication

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #9 on: April 20, 2020, 12:58:46 pm »
Well Rob owns the copyright to the name QB64, and although I can't see any problems with thinking up different names, it would really be up to him, or anyone he assigned as his agent, before any actual name change could be adapted.

Prince RIHGLHPAO - Rolling in his grave laughing his purple ass off! Hmmm, you're right, this naming stuff is hard. That's not nearly as catchy as ROFLMAO.

Pete
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline _vince

  • Seasoned Forum Regular
  • Posts: 422
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #10 on: April 20, 2020, 01:31:30 pm »
freebasic is damn good, has rasbpi support and can use any C library

Offline CBTJD

  • Newbie
  • Posts: 60
  • You're only as old as you feel. ...I'm screwed.
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #11 on: April 20, 2020, 02:32:53 pm »
freebasic is damn good, has rasbpi support and can use any C library
Yes, but not on a Mac as well. Sadly, the constraints of the request are really very narrow. But thank you very much for your suggestion!! Much appreciated.

:@)
CBTJD: Coding BASIC Takes Judicious Dedication

Offline CBTJD

  • Newbie
  • Posts: 60
  • You're only as old as you feel. ...I'm screwed.
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #12 on: April 20, 2020, 02:40:54 pm »
Well Rob owns the copyright to the name QB64, and although I can't see any problems with thinking up different names, it would really be up to him, or anyone he assigned as his agent, before any actual name change could be adapted.

Certainly. I apologize if I failed to make my intentions clear. I'm not interested in trying to change the name or design of QB64 in ANY way. I would never presume. My interest is solely in coming up with a name for the CURRICULUM written that USES QB64 along with a more polished and modern IDE. I am adamant about complying with all copyrights and any requirements of the copyright owners. I guess I should have instead asked the question, "Hey, anybody got any good ideas for a name for a third-party IDE for QB64 that doesn't include the word BASIC?".

So that's on me. Sorry for any confusion. My hope is to teach kids how to use QB64 without scaring away the teachers with the word BASIC.


:@)
CBTJD: Coding BASIC Takes Judicious Dedication

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #13 on: April 20, 2020, 02:53:25 pm »
Well I would think good branding follows the continuity principle. If you have the QB64 programming language, and package it with something we end up calling the Infinity++ IDE, and then call the tutorial the Looney Tunes Guide to Modern Programming, well, how does that help in creating a successful brand? 

Pete
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline Bert22306

  • Forum Regular
  • Posts: 206
    • View Profile
Re: QB64 vs Python and a humble request
« Reply #14 on: April 20, 2020, 04:19:59 pm »
Have you looked into Davs IDE?  I have downloaded it but haven't tried it: http://www.qbasicnews.com/dav/projects.php#DAVSIDE

DavsIDE - A Small IDE for QB64

Shucks, you stole my "thunder." Exactly. The built-in IDE should not be considered a single, point solution, for QB64. Others can be written. I've used DavsIDE, but I returned to Fellippe's IDE, because it, Fellippe's, is fanatically and scrupulously kept up to date, with bugs or omissions addressed sooner rather than later. DavsIDE has a way to go, last I saw anyway, to reach this level of refinement. Even though, graphically based, DavsIDE looks very cool.

So, to me, the IDE should not be given too much weight, as a downvote. On the other hand, could QB64 be expanded to allow it to create web pages? That's an interesting proposition.
« Last Edit: April 20, 2020, 04:21:53 pm by Bert22306 »