11-24-2022, 10:45 PM
Some people don't like things imposed on them; this is well said for many that were very used to GW-BASIC or QBasic quirks and refuse to change their habits "because it doesn't let me run faster". When QuickBASIC came out, a lot of users of interpreted BASIC didn't adopt it because they absolutely hated type sigils, including the dollar sign, including to decorate the string functions. They sort of won their way in Freebasic but to their chagrin, "OPTION EXPLICIT" isn't necessary with the "default" language mode of that system. Those older programmers even turned up their noses at the subprograms instead of "DEF FN" and "GOSUB... RETURN", and at "SELECT CASE... END SELECT" instead of "ON... GOSUB/GOTO" although flaws were emphasized about the older constructs. QBasic became popular such that there are still people preferring to pass on Freebasic because "QB" language mode isn't recommended anymore for new programs, and they might be passing by QB64(PE) for other reasons making them suspicious.
Well, it could include a person trying to do a complex calculation. However, if the programming system doesn't let him/her start variables wherever he/she wants, at the risk of the final result being wrong, or zero when he/she didn't expect it, then he/she isn't even going to touch it. "I just want my program to run" could include using the older constructs that QB64(PE) still supports but were either eschewed or modified by other BASIC dialects. There are an awful lot of programs out there relying on implicit variable creation, on "FOR... NEXT" loops doing what should be left instead to "_DELAY", on arrays that begin at subscript zero, on the "default" type being single-precision and many other things, and even on the default screen being 80 characters across by 25 lines.
The "OPTION _EXPLICIT" will always be a choice made by the programmer. It will be his/her choice if he/she wants to track down typos but keeps blaming the product "for being stupid". Yes I had this happen to me programming in BASIC and Lua. I militantly insist in the version of the Lua interpreter directly from the Brazillian original programmers and their website, not these other spins obviously adding OOP and making sure "everything" has to be declared. But that is just me. I use "OPTION _EXPLICIT" with programs in QB64 because I'm trying to recover from that impulsive nature. Also it's a good idea when sharing programs on this forum to help new people understand the concepts better.
Well, it could include a person trying to do a complex calculation. However, if the programming system doesn't let him/her start variables wherever he/she wants, at the risk of the final result being wrong, or zero when he/she didn't expect it, then he/she isn't even going to touch it. "I just want my program to run" could include using the older constructs that QB64(PE) still supports but were either eschewed or modified by other BASIC dialects. There are an awful lot of programs out there relying on implicit variable creation, on "FOR... NEXT" loops doing what should be left instead to "_DELAY", on arrays that begin at subscript zero, on the "default" type being single-precision and many other things, and even on the default screen being 80 characters across by 25 lines.
The "OPTION _EXPLICIT" will always be a choice made by the programmer. It will be his/her choice if he/she wants to track down typos but keeps blaming the product "for being stupid". Yes I had this happen to me programming in BASIC and Lua. I militantly insist in the version of the Lua interpreter directly from the Brazillian original programmers and their website, not these other spins obviously adding OOP and making sure "everything" has to be declared. But that is just me. I use "OPTION _EXPLICIT" with programs in QB64 because I'm trying to recover from that impulsive nature. Also it's a good idea when sharing programs on this forum to help new people understand the concepts better.