hippy wrote: ↑
Wed Apr 11, 2018 5:17 pm
DavidS wrote: ↑
Wed Apr 11, 2018 12:23 pm
Now a language that does well for parallel processing is Spin, though that is designed to run on the 8-core Parallax Propeller P8X32A, and do to the HW setup of only allowing one core (or COG) access to shared memory at a time there are fewer issues with resource contention.
The Propeller hardware prevents bus contention but doesn't do a lot for resource contention; that still has to be resolved using semaphores and mutexes.
For multi-processing, multi-threading I would just add a simple mechanism to start a subroutine as a separate thread, an asynchronous gosub, which simple terminates when the subroutine ends.
A language which includes good and simple to use GUI screen handling built-in is something I do feel is missing. I like the way VB6 and RealBasic did things, but those are more IDE-plus-Frameworks rather than languages.
I'm not convinced any form of BASIC will attract users these days, though if it offers something other languages don't it might. I have a hankering for something VB6-like for Python but that's perhaps just me.
And therein is my idea. The reasoning for BASIC as a basis is that it has everything needed for the base, and can be fully structured.
The simplicity of implementing and handling windows, widgets, menus, etc that has been demonstrated possible, and is lacking in modern programming language implementations is a large part of what I am looking at.
The problem with just doing an asynchronous subroutine call is that there is still an issue with resource contention (you are basically saying call fork()
and branch in new thread to subroutine if I understand correctly). There would still need to be a means of providing mutex, and the same level of difficulty for noob programmers that there is in doing the same through the use of system calls.
Also I did say that I would OMIT GOTO
completely, so as to get that muddy argument out of the way.