CobraPy: a group of minimum viable things
A group of crows is called a murder of crows. A group of hares is called a council of hares.
In fact, that's just a bunch of things victorians made up because they had lots of free time and they hadn't invented the Internet yet, and most of those were never actually widely used.
BUT what's the name for a group of things that are in a minimally viable state?
Well, CobraPy, my 80s-style python programming environment is slowly crawling into becoming one of those.
Of the components I want, I have one of each. They all suck but they suck in the same way a 3 year old playing pool sucks. He will not be great but it's still cool.
- I am going to punt in having the editor I want because I can make do with Micro for the time being (works flawlessly in my terminal!)
- The REPL is not great but it can do what it can do
- The graphics server works (although its API is limited to drawing circles)
- The terminal is better than expected, could really be used as a daily driver except for some programs really not liking it.
And also, I have combined all the things so that you can start a window that:
- Is a terminal
- That runs the repl
- Where you can use the graphics API
- And it displays in the same window
Listo.
— Roberto H. Alsina (@ralsina) October 13, 2020
Siguiente objetivo: agregar un editor "modal" pic.twitter.com/WfI2Ow00lT
What next? I could think about what next. Or ...
I could try to write a simple game and implement all the things that don't exist.
Except for input. I need to solve how to do input. You see, the user-created programs don't run in the same space as the window. That's why we have a graphics protocol. The program puts things in it, the window reads them and graphics appear.
But input needs to go the other way around. So I need to add a second protocol to send back events and it needs to be pretty fast. I don't think it's going to be a problem (user actions happen only once every few dozens of milliseconds!) but after that's done?
It's going to be time for ...
Or actually, to fail at implementing it, but improving the platform in the process. Because failure is what improvements are made of.