im not against a language having advanced features. higher-order functions are an advanced feature. the only use of higher-order functions i know of is closures. the only use of closures i know of is capturing variables and simulating (or creating) objects or object-like features.
i currently have no use for that. i have never thought of a use for that. its a big deal to people who like closures. cool.
in general i prefer easy features, but im not against advanced features:
The eight design principles of BASIC were:
-> Be easy for beginners to use <-
Be a general-purpose language
-> Allow advanced features to be added for experts (while keeping the language simple for beginners) <-
Provide clear and friendly error messages
Respond fast for small programs
Not require an understanding of computer hardware
Shield the user from the operating system
i believe these are great principles, whether they are followed or abandoned, sort of like the way i think the constitution (with the amendments) is a good charter, even if people dont follow it.
"be easy for beginners to use" is the first design principle. i think thats a good one to start with. its the foundation.
and then just to be clear it says it again in #3, but with an additional note:
advanced features are ok, (so long as they dont turn the language into something obtuse, tedious and difficult.)
its not whether or not you have the features-- its what they do to the language.
i mostly think that depends largely on the community.
if the community believes in the benefit of commands that are easy for beginners, and they dont just think "we offer an easy language and then expect everyone to sort of use it as an advanced language later"
why? *why expect anyone to use basic as an advanced language?* why (for instance) deprecate the things that make it basic? why discourage such features?
there is merit in easy-to-use features and there is merit in advanced features.
basic can include both. but i personally think to make that work, you have to have a community that understands the merit of the easier, simpler commands.
not everyone wants advanced features, and not everyone uses basic because they want to become a language expert.
i think its very safe to say that some people use basic specfically because they do NOT want to become a language expert.
and i think thats fine. but i also think not everyone understands that.
there are lots of advanced languages. i dont think basic should ever cater too heavily to that-- so long as it balances out, advanced features are fine if the community understands why basic was written in the first place.
you add advanced features to basic with the understanding (hopefully) that not everyone is going to need or want them. freebasic spent a few years not quite entirely getting that very simple idea. but i also think they figured it out eventually. for a few years at least, it felt very bait-and-switchy and very ego-driven, not what i would call friendly. but again, i think its fine now.
i also think that qb64 showed fb how to do it "right." fvso of right, but i think qb64 had an unmistakable triumph in that regard, at the time.
i dont believe there will ever be a language truer to qbasic than qb64 was.
is? that depends (imo) on the things ive said here. in other peoples opinions? it will only get better. perhaps theyre right. "better" isnt very specific though.
i believe (and hope) this answers your question, but i think it answers what you were asking and also what you were getting at. hopefully, anyway.
|This message has been edited by easylangs on Dec 27, 2017 2:29 AM|