"Apple has continued to make user programming of Macs as easy as they conveniently can"
I don't see how that is true. XCode is not installed by default. You can use AppleScript and Automator to automate some tasks, but you can't really call that programming.
The source code to the whole system is closed which limits discover-ability.
I remember in my childhood playing Gorillas on my DOS machine. I pressed a button and suddenly all the code for it popped up. I learned that if you change a part of that, the game would change.
There is NOTHING like that on a Mac install today. The closest thing is in the web browser.
> You can use AppleScript and Automator to automate some tasks, but you can't really call that programming
If Hypercard was programming, so is AppleScript. So is Python. So is bash. I think we're talking about the general "programming" - since I also see Excel included alongside Hypercard in this reminiscence - not the more specific (and arbitrary, IMHO) programming vs. scripting language divide.
I loved Hypercard and was also a regular in the AppleScript world for a decade (and made a good part of my living on it at the time), but there are far more options for anyone remotely motivated to program today and with the exception of XCode (probably the least accessible option) they are preinstalled and freely available. And if downloading a free development environment with a simple installer is too great a burden today, I don't think you would have gotten anywhere in the good old days.
I don't really see the burden today - we have more options than ever, and many are available out of the box, and the rest almost universally free. I can automate my OSX environment with AppleScript, JavaScript, Python, Ruby, and bash (and doubtless others) out of the box. I can build command line applications out of the box. I can build Web applications with GUIs out of the box. I can easily extend AppleScript or Python (and, I'm certain, Ruby and bash) to allow me to build GUI applications.
Programming in the 80's was different, for sure, but I have a hard time understanding the sentiment that it was somehow more accessible. Sure, BASIC was preinstalled on some platforms. Still, most platforms today have more, and better, options out of the box than any platform of the early 90's. Did you write C in the 90s for Mac OS (if we're accusing Apple of being inaccessible because of the lack of preinstalled XCode at the moment, then the 90's were far worse if you ever had to pay for THINK C or CodeWarrior).
This is sort of tangential to the other issues being discussed (which I agree are important), but compared to the era of software distributed on physical media, today "Xcode is not installed by default" does not mean that much given that installing it only takes a few clicks in the App Store. Yeah, it's a few gigs to download, but Apple has always been forward-looking, and on a fast internet connection that's only five minutes' wait.
Not to mention that, also unlike then, it's easy to access tutorials and videos galore on the Internet to show you how to get started with development.
It would be interesting to mandate that all Mac Apps be written in Javascript so users could modify them. However this seems ambitious. Even mandating that all apps be scriptable seems to be a bridge too far.
Note that Javascript is supported in addition to AppleScript as a user level scripting language.
Much of the Mac OS is in fact open source -- see Darwin and other projects. However having the code for the OS available -- or having XCode installed -- does nothing for user programmability.
This comment is a good example of why it doesn't work for us developers to see ourselves as typical users.
Apple still supports Widgets, which are canned JavaScript built to run in a special Dashboard app. (Does anyone still develop Widgets?)
But this still misses the point about HyperCard, which was that Hypercard was its own toolchain. To get started with it, you didn't have to:
Install a separate editor
Learn a separate editor
Install a build system
Learn how to build a project
Learn how to share code
Deal with dependencies
It's the no-separate-toolchain feature that made HyperCard so accessible, and which was influenced by SmallTalk.
Modern programming is a nightmare in comparison - including modern app programming.
Just because Apple uses Objective-C doesn't mean it's approaching app development in a SmallTalk-like way. Getting an app out of Xcode and into the store is a horror story of provisioning profiles, debug vs production builds, sandboxes, entitlements, and so on. Obviously people manage to fight through this, but it's a long way from being friendly and accessible.
IMO only VBA gets close to being a successful no-separate-toolchain environment - which is one of the main reasons VBA became so popular.
(You could argue Python is, but I don't think it's equivalent, because unlike VBA and HyperCard the first thing the user sees is the editor, and not a product that's obviously and immediately useful, but also happens to include a code editor.)
Developers are definitely not the typical users. The hoops you have to jump through now are much greater than Apple II Where you got a BASIC prompt.
I think the reason people are scared of such things is not because they are incapable of learning the tools, but because developer culture has a good reason to make it look hard. Otherwise, why are we payed so well?
I don't see how that is true. XCode is not installed by default. You can use AppleScript and Automator to automate some tasks, but you can't really call that programming.
The source code to the whole system is closed which limits discover-ability.
I remember in my childhood playing Gorillas on my DOS machine. I pressed a button and suddenly all the code for it popped up. I learned that if you change a part of that, the game would change.
There is NOTHING like that on a Mac install today. The closest thing is in the web browser.