Friday 31 May 2024
PCJ – Personal computing journal
- Alan Kay is famous for saying the personal computing Revolution hasn’t happened yet
- He is a famous computer scientist who talks about many important issues in computing
- I am specifically interested in his talks on Smalltalk, personal computing, Dynabook and how to build software
- He believes we haven’t yet figured out how to build software, and one of the reasons is that we don’t appreciate the need for architecture when building large things
- To start with I want to make a few claims
- We don’t know how to write software
- We don’t write good software
- We have to figure this out because it has significant implications for augmenting the human condition
- Why don’t we know how to write good software?
- I think the main reason is because we don’t care
- Most software these days are written by businesses who want to make money, or individuals hacking on projects in their free time
- The business doesn’t care about the software because very rarely are they in the business of selling software. Instead, they are selling solutions to a customer, which happen to be implemented in software
- For a business, a software problem is always solvable by throwing more money at the problem
- If the database is slow, add more cores, or hire someone to re-design the architecture
- It sounds like they want to have good software, but they don’t. They only need good software in so far as it solves their problem.
- This causes them to fall for the trap of thinking in terms of better
- An individual working on a project in their free time might be one step further in that they care somewhat about the quality of their system
- They don’t have the luxury of throwing money at the problem to make it someone else’s problem – such as an employee
- But the individual suffers from a lack of bandwidth
- They only have so much knowledge, experience, time and energy.
- They may have great ideas, but can’t implement all of them
- They may implement many of them, but cant review, test and deliver them to end users
- They may build the best software, but who is going to market it, write documentation, audit for security vulnerabilities?
- We don’t write good software because those that don’t care outnumber those of us who do care.
- Now what do I want to do about this?
- I know that small talk exists: Squeak, Pharo
- I ignore any proprietary implementations as they cannot be used to further the goal of personal computing. These proprietary tools are useful only for industrial software construction.
- We need a platform for creative computing
- Somewhere we can do science and art in a new medium (software) in an unlimited fashion (computers)
- For the time being, we are going to ignore constraints such as funding. Assume that I have $100M and can spend it however I would like.
- Let’s come back to this later.
- One thing I believe is that phones and laptops are the devices of the past and present, a tablet with a stylus is the device of the future
- a tablet with a tool is the only real augmented reality device we have now.
- in vr/ar headsets you can consume, but not interact, manipulate or create
- you sort of can with your hands and the controllers
- the hands are too limited, we need a tool
- the controllers are along the right lines, but I haven’t found them to be as intuitive as a pen
- for example, I can give someone a Samsung tablet with onenote open and an s-pen. They will figure out the rest
- if I wanted to do the same with a meta quest 3 id have to explain many new things to them in regards to how to use the interface
- having said this, I want to build Alan Kay’s dynabook
- I don’t know how to do this, I don’t have a plan
- that’s okay.
- I want a seed that I can grow into the system I want
- to that end I want to start with a smalltalk programming environment that runs on a tablet
- I will then modify this over time to grow it into the dynabook, or something better than that.
- First goal: have a running smalltalk environment that is usable from a tablet + stylus
- I have Samsung tablets and phones with pen support.
- but running smalltalk on android is not something already supported… I think
- actually, let me pause and spend a few minutes researching this
- the smalltalks I am aware of are squeak, pharo and cuis. There’s also squeakjs, but let’s leave that one out for now
- https://lunduke.substack.com/p/a-smalltalk-smartphone-the-squeakphone
- U8 smalltalk tools android app https://play.google.com/store/apps/details?id=net.smalltalking.s8.jx8&hl=en_CA&gl=US&pli=1
- https://caffeine.js.org/
- https://github.com/ErikOnBike/CodeParadise
- https://eighty-twenty.org/2020/10/07/developing-with-squeak-on-a-cellphone
- okay, so there has been some work for getting squeak onto an android
- but i am not seeing anything that is easily usable today
- except squeakjs and the u8 smalltalk tools
- ive explored squeakjs and caffeine js before. caffeine and the other work done by Craig latta is very much in line with what I want to build
- but squeakjs’ ui is really slow, it has these spinners that come up
- caffeine seemed to work a bit better, though it was also using squeakjs
- i also know work is being done to use webassembly to make the squeakjs VM run faster
- but running smalltalk on android is not something already supported… I think
- Why is it okay to ignore the reality of not having funding to do this work?