Why
ViperCard is a fun project for creating games and animations, but it also makes me reflect on the process of writing software.
This look into the past makes me wonder what could have been. HyperCard was successful because it removed many obstacles in the way of people creating digital or interactive media. Today I see so many barriers to people who want to begin to write software. And in addition to economic benefits, software has so much potential as a vehicle of creative expression -- you can build quick prototypes and iterations, actions can be stored and undone, platforms are essentially deterministic, there are no parts to order, variable costs are near-zero, and ideas shared quickly. The obstacles aren't inherent to the technology. Writing software should be a potential way of self-expression for any number of people, just as it has impacted my life, regardless of background. We are moving in this direction, but even in the current age that celebrates coding and builds code camps and impressive free online tutorials, I feel that we're not yet in the right place.
Computer Science courses lag behind modern practices, tools and SDKs are not friendly to beginners, and if teaching oneself, the choice paralysis when deciding which programming language to learn or which online tutorial is trustworthy.
More fundamentally, factors of environment and access are strong; others have written about this more effectively than I, but I see that this has been affecting us from the time of HyperCard to the present day. Years ago I lived in a moderately rural area, and volunteered some time writing conference scheduling software for a school district. I saw the extent to which families did not have internet access. Our school district was able to man a phone line as a fallback for this case, but unreliable/non-existent internet access divides our society. Community meetings in rural America have heated discussions about trying to get access, in places like northern Maine where the market is said to be too small. In TEALS presentations I learned that 75% of US high schools do not even have a single class to teach programming. We need to address these problems. I’m not saying people under economic injustice should “learn to code” -- I'm saying that we who have access to technology are often unaware of the difficulty of having stabile access to technology in fragile circumstances and abandoned communities. And even once access to technology is present, there are cultural barriers. Programming is mythologized so that only those seen as having a certain type of intelligence are encouraged to pursue it, and only privileged groups are seen as having some type of requisite aptitude. There are so many positive initiatives and energy in the right direction towards helping people, but they fight against the tide of years of accumulated software development complexity, cultural stereotypes, strong opinions about what who should use which development toolkits, and unhelpful learning environments that assume large amounts of prior knowledge.
I'm sure there were countless problems with software and accessibility in the 80s and early 90s, which were before my time. But I am fascinated by the idea that the line between “user” and “programmer” was often so blurred. You set up your Commodore 64 and typed in its software, line by line. You shared fun BASIC scripts with your friends, and even made your own modifications! Self-expression and self-efficacy are important. These computers had an incredibly difficult learning curve, but they also gave the dignity of assuming the user was capable of learning to not only operate, but transform and create. And HyperCard on the Macintosh did this even more amazingly.
Our lives (social, career, entertainment) center around software -- but we are discouraged from learning how this software truly works. It is stressful at a deep level, for nearly all of us, and especially the elderly. We are made into inadequate, passive consumers, when software has the potential to be so much more.
ViperCard makes me consider that an old black-and-white program from the 90s can inspire us to look for what modern software development is missing. (Also, as a nearly pure-JS webapp, it works smoothly even if an internet connection is slow or dropped).
Still in progress
ViperCard is currently not compatible with screen readers and accessibility tools.
ViperCard is currently not compatible with mobile or tablet, despite the importance of these platforms.
ViperCard is still in development and some features are not yet complete. For example: HyperCard's visual effect command and show all cards command.
ViperCard is released under the GNU Public License. See https://github.com/moltenform/vipercard for more information.