4 ms·
I've used CircuitPython for one production hardware project which is in the wild. Safe to say that the increased draw on the included battery and higher memory
by jscholes 6y ago
I've used CircuitPython for one production hardware project which is in the wild. Safe to say that the increased draw on the included battery and higher memory usage weren't a concern here, but they are both significant. Developer productivity is through the roof though.
I'd say the biggest pain points for me (unless I'm missing something/they've added more stuff recently) were created by the lack of support for what feel like production standards in software development. For example, the logging library is a toy, and unit testing is non-existent unless you isolate all your CircuitPython-specific code and run tests on your dev machine using CPython.
- gh02t 6y agoOut of curiosity, what about this particular project made you opt for CircuitPython? Was it something targeting hobbyists and wanting to allow them to tinker with it? I'm not trying to put it down because I like CircuitPython, but I would not even consider it for a general production device.
- jscholes 6y ago> Out of curiosity, what about this particular project made you opt for CircuitPython? It was a nonprofit-style project without much wiggle room. We wanted to prove that an idea would or would not work in a small amount of time, which happily overlapped with the fact that the target environment for the device wouldn't require long periods of battery life. I'm happy to say that the project was a success so who knows, maybe one day we'll have someone port it to C and continue from there. Sorry I can't be more specific.
- gh02t 6y agoNo worries, that was plenty of detail, thank you. I fully understand working on things you can't discuss the specifics of.
- craftinator 6y agoSurprised you didn't use at least MicroPython. I think Python on embedded in general is not great in a production setting, but at least MicroPython has widespread usage; CircuitPython is aimed at being a toy language for beginners.
- duggan 6y agoCircuitPython describes itself a fork of MicroPython, with the major difference being its deployment workflow. What makes it a “toy” by comparison in your book?
- pkolaczk 6y ago"Developer productivity is through the roof though." I learned Python after I learned C, C++, Java, Scala, Rust and a few others. I fail to see my productivity going through the roof with Python. It's quite the opposite. Writing initial code is fast, but making it work well - not so much.
- pansa2 6y agoPresumably the parent is comparing Python to C. There’s no way anyone is more productive in C than in Python.
- pkolaczk 6y agoIf you are forced to write pure C (or a very low level subset of C++) , then that is often because: - you need every tiny bit of performance, - you optimize for low executable size or low memory footprint (e.g ATTiny13) - you have an exotic architecture that offers only a C compiler or ancient C++ compiler from 90s, - you need to use C for other reasons like safety certification, e.g. MISRA C. In all of these cases Python wouldn't work at all. And in the others your can use modern C++ which can be just as productive as Python (in my case it is more productive, but I have probably spent more time with it than with Python, so I'm biased).
- ashkankiani 6y agoThat's a really disappointing attitude to see in the wild.
- pansa2 6y agoHow so?
- ashkankiani 6y agoI've been plenty productive in C, as are a multitude of people who would pick type safety over the lack of it.
- 6y ago
- sarusso 6y agoIt would be very interesting to hear more about your project and, if you did some benchmarks, about the increased draw on the battery.