Problem
Me and several of my friends who are starting companies in robotics, thanks to the AI revolution, have faced a major problem. The development experience of putting code to run on a Linux system to control robotic systems is one of the most abysmal developer experiences out there. As an iOS developer, I can't help but notice the massive difference
I can sum it up into 4 points:
- There is unbelievable diversity in programming languages and frameworks.
- There is no out-of-the-box IDE or debugging experience.
- Because of point number one, the entire developer ecosystem is unbelievably fragmented. If you attempt to buy a Raspberry Pi and look for a tutorial on how to talk to GPIO, you will find tutorials in JavaScript, C#, Java, Python, C++, C, Rust, and the list keeps on going.
- To set up a Linux device as a debug deployment target is extremely difficult. The first thing is to set up SSH, make sure the Linux device (even if it's headless) is connected to the Wi-Fi. After that, you have to find the IP address and set up public and private keys etc...
Question
Do you think Swift could be a good platform for developers to build for robotics? If you build a platform that sticks to one language, that you can easily plug in a Raspberry Pi using USB and pressing Cmd+R to run the software with the debugger attached.
I'm imagining that a developer could just buy a Raspberry Pi, plug it into their development computer over USB, and get a similar development experience like they do on iOS.
Is there anything preventing the Swift language from being a good candidate for this? I absolutely love the fact that Swift has out-of-the-box C and C++ interop. Are there any limitations of Swift and its ecosystem and toolchains today to make this a possibility?