Getting rid of the keyboard: thumb coding

I work a lot with my iPad on the creative stuff, like drawings, mindmaps, texts. But programming is a huge pain ^.^. There are solutions like

Does someone know other efforts that were made in the direction of “touch coding”?


And yes, I can also run my computer, but I think it is an interesting topic. I am for example also impressed with apps like Notion, which provide databases with a great user experience.

1 Like

Hello @Lotes

If you are interested in applicationes like Notion, perhaps you can find interesting some of these:

Thanks for the links. There are a lot of note apps and databases out there. But what I am searching is not modeling data. You can move all your knowledge to graphs and make lists for tasks. But modeling actions or code using a touch device is what I am asking for.
I have an idea and I am working on some sketches right now…

1 Like

Cool idea: curious for the sketches.

The thing with a (physical) keyboard is that it has a very high bandwidth, even when typing with less than 10 fingers (as I am: usually about 6). That’s tough to beat, plus giving names to things is one of our best abstraction mechanisms, for which a keyboard-like device would work fastest.

So, a lot of the potential of this idea has to come from the language used.

There were - are still? - programming environments for analog computers that worked by letting you visually “wire up blocks”. And from that came several such environments for setting up laboratory equipment, gathering data. LabView is quite popular today for that, see these screenshots.

(This is to answer the specific question “other efforts that were made in the direction of touch coding”, not to say that this will help you with programming.)

Not sure if it is something you are looking for, but I guess Enso is worth a closer look: https://enso.org/
It comes very close to “visual” programming. At the end, it is data flow programming - very promising programming paradigma …

2 Likes

@meinte.boersma Indeed… the keyboard is hard to beat. But with my voice speaking into a MIC it should work. Using one realtime transcribe service can be a solution…
Thanks for pointing that out…

@david.bakin LabView is definitive a visual solution, but I was hoping for some point and click for textual editor.

@kuniss Enso looks more like something I was thinking… I will have a closer look.

Thx for participating… :smiley:

Dear Lotes,
Most of the tools mentioned by Ocaretu are not for writing programs. Even systems like Enso, which is a hybrid text + graphical representation programming system are completely still keyboard based, and although they use auto-complete to a great extent, their UI is clearly based solely on use of mouse + keyboard.

The only successful programming system i have seen, completely optimized for touch, that actually works well, is the Fancade programming system. It is an App, with unparalleled ergonomics, that has let millions of people play games, and tens of thousands create and share little tiny games. It is a voxel based game development system, but the raw primitives of variables, IF, assignment, comparison, etc. make it a full-featured programming language. Mr. Magni of Sweden wrote it, they have a Discord group, and the tutorials on YouTube will get you started.

His snapping, selection, wire route mapping and general UI principles are of the highest quality, and anyone working in this area of GUI for programming should study this product closely, as it is such a good product. He uses sound effects, color coding for typing, and many other niceties. I guarantee you will admire the craftsmanship, and superb level of polish this game has.

If you knew how hard it is to earn my admiration (I dislike almost everything i see), you would not hesitate to study this product.

Enso is still very early in their evolution, and they are years behind Fancade.

@CodingFiend Wow, very impressive.

A bit late for a drawing but at least a trial…
I had other topics meanwhile. But an editor without keyboard can be like this… a classical node editor… it has nothing special yet.
I got inspired by Vectornator…

The switch statement is normally very big. I tried to hide the complexity in tabs. Let’s see what could be the next block.

Asynchronousity can be challenging in that regard that the flow is separated into start code and callback code… this can be hidden by a simple edge. But is this good for debugging?

I also thought about layering node networks… can be interesting for access modifiers like private public code.

More ideas or inspirations are welcome.
My thoughts are always cycling back to these ideas. Do not expect to get more pics on a regular basis XD…

I am creating a small language using Langium (https://langium.org/). It helps me to model what is really necessary. I was inspired by Haskell. Here is an image how the generic map function could look like:

here ist the actual project.

Green links transfer values, pink links create another node. Node from left is input, to right is output. Down could be getting the type, Incoming up links are creating nodes.

Mind the generic list definition as well. It has two constructor Nil and Cons.

I hope the graphic and the code are understandable.
Any ideas or feedback are wellcome. Let‘s see how far I get…

As somebody working at Unity and in this area (until recently), I could share a lot of resources, most of which are game-related.
There is Modbox, which was developed mainly for VR, but I can see how the Modbox script editor could be something that can be used efficiently from a handheld device.
There are many sandbox solutions like that, like Roblox, Kodu, Blockly you already mentioned, Scratch of course, Plotagon, Scrap Mechanic, our own Lego microgame, which I found funny when I first learned about it, the list goes on… they all have some way for you to define logic (albeit in the confines of their sandbox/runtime). Most notably might be Struckd, since it specifically targets development on mobile devices.

So it really depends on what you are looking for. I know that Roc tries to have a purely projectional editor and that people in that community are experimenting with pretty novel approaches towards editing code.

Then there is stuff like IFTTT, Zapier, which are also domain-specific solutions, but might also be considered “touch-friendly”…

1 Like