How far away are we from programming on an iPad? D...
# thinking-together
d
How far away are we from programming on an iPad? Do any of our intrepid language designers have anything working?
👍 1
f
I programmed primarily on an iPad for much of 2011-2014, in a jupyter-like environment of my own making running a transpiled JS sugar layer similar to CoffeeScript; but how far away we are from ergonomic iPad programming I cannot say 😛
v
Swift Playgrounds?
Codea?
I believe MakeCode runs on iPads too
Pythonista
f
Yeah, I think Apple has relaxed considerably on its "no compilers of any kind 😠" stance since then, though they still ban anything that is too overtly a competing app store. The interesting language design question here is probably how to work with the touchscreen, given that keyboard access to common characters like
[]
requires going through two symbol layers; I suppose my most recent iPad has a hardware keyboard and (poorly)emulated linux, so the answer might be "not very, at least to the extent that we are not far away from programming on desktops laptops etc"?
(A remaining concern is judicious use of screen space, though that again is a pretty large problem with more conventional development environments also)
f
I've read part of a dissertation on programming on touchscreens a while ago, and I think they used iPads there. Abstract: "Direct interaction with touchscreens has become a primary way of using a device. This work seeks to devise interaction methods for editing textual source code on touch-enabled devices. With the advent of the “Post-PC Era”, touch-centric interaction has received considerable attention in both research and development. However, various limitations have impeded widespread adoption of programming environments on modern platforms. Previous attempts have mainly been successful by simplifying or constraining conventional programming but have only insufficiently supported source code written in mainstream programming languages. This work includes the design, development, and evaluation of techniques for editing, selecting, and creating source code on touchscreens. The results contribute to text editing and entry methods by taking the syntax and structure of programming languages into account while exploiting the advantages of gesture-driven control. Furthermore, this work presents the design and software architecture of a mobile development environment incorporating touch-enabled modules for typical software development tasks." https://epub.uni-regensburg.de/33107/
j
I have a structure editor prototype that is designed for touch screen use, but it isn't useful yet (for example you can't save...) Syntax is just selected from a list so no need to type {[]} etc. Code is displayed with a custom pretty-printer that expands out ellipses around a zipper until the screen is full.
💡 1
👌 1
f
And a third answer: if you are willing to stretch the definition of "on" to "thin client", the future is approximately here, in that SSH was first written in 1995(and more recently, mosh). But the https://arslan.io/2019/01/07/using-the-ipad-pro-as-my-development-machine/ setup is probably not precisely what you were looking for ^-^
d
Yeah, I think in my question I presuppose a visual programming language, or at least some sort of structured text editing.
But all of this is helpful - thanks!
d
I'm not sure what an "i-Pad" is, but my main target for Onex is my Android tablet, a Samsung one.
d
Very cool!
s
@Jason Priestley do you have any video of your prototype?
d
I'm concurrently designing a language and a touch-based IDE. Drawing board stage, so no implementation, but here's a slideshow showing how a piano app is coded. https://www.slideshare.net/secret/4AG6fsd0t3tCNi
Would love to know if anyone has seen a similar approach
g
idk if any of you have heard of myscript nebo—no coding facilities but really solid text and diagram recognition plus an API

https://youtu.be/z2pBomPPdow

also does equations
p
Not mentioned yet: Hopscotch https://www.gethopscotch.com/ There is also a fantastic future of coding podcast episode with Samantha John, Hopscotch's CEO, in case anybody missed it.
m
How specific is this question to iPads? For me, at least, iPads are far too heavy to comfortably hold in one hand for more than a single digit number of minutes. Which means working with it on a surface of some sort, which will either be flat (very awkward) or tilted, at which point you might as well be working on a laptop with a keyboard. I can imagine plenty of tasks a where flat or slightly tilted, no keyboard, arrangement would work (musical/graphical composition) but I'm skeptical that anything that's recognizably programming would fit that model well.
👍 3
💡 1
j
I’ve used some programming systems for kids on the ipad and they have worked quite well. But I find they don’t scale to larger projects.
d
@Miles Sabin, if there are more ergonomic alternatives, please let me know!
Nebo looks really sweet! I can imagine drawing flow diagrams/state charts/etc. in that and compiling it to a real system. I think in my dream world one could make simple UI’s with a big tablet, an equivalent of the Apple Pencil that way.
f
I mean ideally we'd have things other than [sliding pictures under glass](http://worrydream.com/ABriefRantOnTheFutureOfInteractionDesign/)
💯 1
s
I want a good portable (smaller than a laptop) tool for writing code, probably mostly small games and creative coding experiments. PocketChip (RIP, https://www.amazon.com/Pocket-C-H-I-P-Portable-Computer-Thing/dp/B07HHNWQW6) was close to that for me, but I didn't love the hardware. Might be able to modifying the one I have to get it where I want to be. Looking at M5Stack (especially FACES pocket computer) looks promising. Maybe I should buy one of those... I guess what a really want is a programmable Game Boy or Nintendo DS🙂, which is a different experience than coding on an iPad.
Regarding MyScript, for some of my VR experiments I wanted to use the MyScript API (or a simpler low latency gesture recognizer, like https://depts.washington.edu/madlab/proj/dollar/qdollar.html) and hook it up to an embedded interpreter. This would allow for executable white boarding... The same idea would apply to a tablet code editor though. Never got around to having the time to try it out though
g
@Scott Anderson oof you're reactivating my urge to spend two years in the woods writing an embedded os for a tiny little computer I can carry around. on the Gameboy front—did you see the tiledtext video I posted a while ago?

https://youtu.be/tztmgCcZaM4

coding interface for an Xbox controller
s
I didn't see that but it's great.
I recently saw a similar prototype for controller based text input on hacker news

https://www.youtube.com/watch?v=Do0fUWME0Mw

But it really only addresses text entry, a lot of programming is not typing, but navigating, copy and pasting, and other structure edits to text