| >The skills for building a robot are quite different from the skills for building "classical" software. I'd object that on the contrary, arduino and http://www.espruino.com/ require mostly the same skills (plus some basic maker-tier hardware skills which are easy to gain). For example Espruino is programmed in javascript. I have bought ESP8266 boards for 3.5$ each and with espruino firmware that gives me a wifi-enabled computer for IoT or smart home tasks. I have done some simple smart home projects that provide a web interface (hosted on espruino!) to some functionality. Of course there are robotics specifics - computer vision, motion planning (also forward, inverse kinematics), but these functions in principle could be hidden behind an opaque DOM-like APIs, while being implemented in a very advanced manner (e.g. trained deep learning models for vision, best SLAM algorithms, best planning algorithms). Just like the browser doesn't require you to draw webpages pixel-by-pixel on raw framebuffer and provides you with fonts, block model, events etc. >For example for classical software one can do correctness proofs/analysis, while for robots one can only do empirical tests or correctness proofs relative to a strongly abstracted world model. Objection #1: Almost nobody does correctness proofs in application and even in system software (e.g. the linux kernel), and yet these software projects work quite well, for example it is known that SpaceX uses Linux (with various patches) as a platform for its in Dragon and Falcon. In fact correctness proofs are mostly done by hardware companies, for some functional blocks, and maybe by the military. If you are interested in exploring this question further you can read "How did software get so reliable without proof?" by C.A.R. Hoare [1]. Objection #2: Proofs of correctness in logical or probabilistic sense are being done for various real systems by Cyber-Physical Systems community and by Machine Learning community. >So in other words: Applying their (existing) skills into that direction would not have much value. I still think that given good blackbox abstractions and familiar API much could be done. We can see beginning of it with maker community, arduinos and espruinos. More should be possible. >but who of this group is really willing (and can afford) to do so? Myself ! I think programmers, investors and customers should be less averse to hardware. We could live much more pleasantly if it were true. Underautomated status-quo is daunting. 1. https://www.gwern.net/docs/math/1996-hoare.pdf |
I just remembered this post which I think helps better capture some of what I'm talking about: https://plusbryan.com/its-just-wood But I think there's something else besides avoiding things that are mysterious. I think it has something to do with the physicality of the thing. At least something else is needed to understand the weird reluctance with working with hardware that a lot of software-only people have, who differently from the general public (who can't even use their computers) are sharp enough to battle with mind blowing complexity and solving mysteries of bugs or how new languages or APIs work every day behind their screens.