When Dartmouth College launched the Basic language 50 years ago, it enabled ordinary users to write code. Millions did. But we've gone backwards since then, and most users now seem unable or unwilling to create so much as a simple macro
50 years after BASIC and nothing is written in BASIC.
To replicate its success from the 80s we would need a language that is simple enough for everyone to learn but actually performant and powerful enough to write an entire operating system and application stack in. Then perhaps non-programmers would feel more inclined to look under the hood, see how things work, and change their program’s behavior.
The problem though, is that for any reasonably complex system or application, you need to use structured programming. This is what enabled the levels of abstraction that we use to break down programs into layers that can be understood in pieces, and it is what makes large complex software possible without ending up with a mess of spaghetti.
However it is these abstractions that turn a software’s code into a Domain Specific Language, and endless APIs that need to be learnt and understood by the programmer.
For programmers it is normal to us that when we want to work on a new codebase we have to learn the idiosyncrasies of the codebase, and learn its DSL and the APIs that it uses, or exposes. But for a non-programmer, this would essentially feel like learning everything about programming from scratch. They would have to become a programmer and develop maintainer skills just to understand what they want to change. (This is why programmer is still a job).
Perhaps the real value of BASIC was that without structured programming, every program was just a pile of spaghetti that even a child could pull apart with a fork.
However it is these abstractions that turn a software’s code into a Domain Specific Language, and endless APIs that need to be learnt and understood by the programmer.
LiveCode is a modern day HyperCard and everyone who used HyperCard will feel at home at it.
LiveCode runs on macOS, Windows and Linux and can generate standalone binaries for all those platforms plus Android and iOS. You can get it from https://www.livecode.com/ or you can get a GPL version of it from https://www.livecode.org/.
The language looks reminiscent of my memories of HyperTalk.
Why would a new hypothetical language need to be able to build an OS for everyday people to take interest? I don’t see how that would be the case at all
Scratch is an example of a simple programming language that could be taken pretty far, but it’s often dismissed as a kid’s game.
Or even things like IFTTT, or Apple’s Automator app (formerly called just AppleScript) that gave vaguely python like tools to less/non-programmers.
I worked on a programming tool to bring beginners from a block language like scratch up through C or Python, but we couldn’t get enough funding to finish it and google just looked at us and tried to poorly rip it off (made raising funding to compete with them even harder).
50 years after BASIC and nothing is written in BASIC.
To replicate its success from the 80s we would need a language that is simple enough for everyone to learn but actually performant and powerful enough to write an entire operating system and application stack in. Then perhaps non-programmers would feel more inclined to look under the hood, see how things work, and change their program’s behavior.
The problem though, is that for any reasonably complex system or application, you need to use structured programming. This is what enabled the levels of abstraction that we use to break down programs into layers that can be understood in pieces, and it is what makes large complex software possible without ending up with a mess of spaghetti.
However it is these abstractions that turn a software’s code into a Domain Specific Language, and endless APIs that need to be learnt and understood by the programmer.
For programmers it is normal to us that when we want to work on a new codebase we have to learn the idiosyncrasies of the codebase, and learn its DSL and the APIs that it uses, or exposes. But for a non-programmer, this would essentially feel like learning everything about programming from scratch. They would have to become a programmer and develop maintainer skills just to understand what they want to change. (This is why programmer is still a job).
Perhaps the real value of BASIC was that without structured programming, every program was just a pile of spaghetti that even a child could pull apart with a fork.
See: configuration complexity clock.
I’d kill for a modern HyperCard.
Maybe hold off on the homicide. I bet someone has done something like that.
kagis
https://andregarzia.com/2019/07/livecode-is-a-modern-day-hypercard.html
The language looks reminiscent of my memories of HyperTalk.
Looks like the open source version was axed, and the cheapest subscription plan is $36.67 per month per user. Yikes.
After the axing there was an effort to salvage the last open source versions, and build something from there: http://openxtalk.org/
Oh nice! I did a quick search for forks but didn’t find that, so thanks for linking. I’ll check it out!
Why would a new hypothetical language need to be able to build an OS for everyday people to take interest? I don’t see how that would be the case at all
I don’t see how an accessible language should also need to be able to be used for system programming. A simpler python seems like a better option.
Scratch is an example of a simple programming language that could be taken pretty far, but it’s often dismissed as a kid’s game.
Or even things like IFTTT, or Apple’s Automator app (formerly called just AppleScript) that gave vaguely python like tools to less/non-programmers.
I worked on a programming tool to bring beginners from a block language like scratch up through C or Python, but we couldn’t get enough funding to finish it and google just looked at us and tried to poorly rip it off (made raising funding to compete with them even harder).