James Gosling, famed software developer who has spent his last several years working at Liquid Robotics, was recently the featured speaker at a CMU Robotics Institute seminar. My purpose here is not to discuss that talk as a whole, but to focus in on particular issues he discussed which are more generally applicable.
At 52:10, he begins the discussion of fault management, describing, among other things, how LR relies heavily upon features of Java that support continuous operation in the face of problems that would cause software to stop abruptly in other environments.
At 54:30, he discusses communication modes and data prioritization, which is an issue for LR because real-time transmission can cost them as much as $1/kilobyte, for a data rate of ~50 baud.
At 57:46, he briefly discusses security issues, which he says he could have talked about at much greater length.
At 58:43, he mentions Java's write once run anywhere advantage, and how LR makes good use of it in writing and debugging their software.
At 1:05:17, he responds to a comment from the audience regarding inclusion of a basic feature, camera panning, the consequences of various approaches to crafting hardware to support it, and how LR has worked around the problem.
At 1:07:59 he launches into the topic of parts availability, or lack thereof, noting that chips LR would like to acquire are only available as part of circuit boards, or in large lots, which constrains their choices in hardware design.
This last item, the lack of availability of what are, in a volume context, standard parts, is my main motivation for going to the trouble of posting this. It holds back not only the development of robotics, but electronics startups of all sorts, and, to a lesser extent, hobbyists (because in most cases those complete boards are what they need).