3 ms·
> One caveat to be aware of is that Processing isn't very portable yet; so it's a bit of a lock-in there. Processing (http://processing.org/ http://processing.
by follower 16y ago
> One caveat to be aware of is that Processing isn't very portable yet; so it's a bit of a lock-in there.
Processing (http://processing.org/ http://processing.org/) is different to the Arduino although the IDEs are based on the same code base. While the Arduino "language" is related to Wiring (http://wiring.org.co/ http://wiring.org.co/) it's different too.
By lock-in do you mean lock-in in relation to the language/libraries (which is really a documented subset of C++) or the microcontroller (Atmel based)?
- agentultra 16y agoIt's pretty much language/libraries. You can (and later, when you start writing sufficiently advanced projects w/ 'real-time' needs) write code on the low-level io. This isn't really supported or well documented and kind of defeats the purpose of being "portable." The thing is that the language/libraries are a very stripped sub-set of C++ and their IDE does a lot of parsing/mangling to turn "sketches" into C++ programs. It can mangle perfectly legal C++ code. The arduino APIs like digitalWrite do table-lookups to match the pin, port, and bit. Pretty inefficient and slow. It's still a great little system though. People have come up with alternative implementations that (for example) implement the SBI/CBI instructions as constants you can use when calling the Arduino APIs to make things much faster. And it's not like you'll care about "lock in" unless you start building large projects and get tired of the Arduino way of doing things and want to move to an alternate board. Arduino makes a nice cheap kit and starter package for people who want to get their feet wet in embedded systems.
- follower 16y ago> their IDE does a lot of parsing/mangling to turn "sketches" into C++ programs. It can mangle perfectly legal C++ code. AFAIK the parsing is limited to extracting function prototypes for creating the function declarations which I wouldn't call "a lot". This has been known to miss certain legal C++ function prototypes formats though. Normally the solution is to manually write the declaration yourself and format the prototype so it doesn't get parsed. It's not a hugely common occurrence though. It is true that optimisation/efficiency hasn't been a huge focus and the lack of focus on it is "development policy": http://code.google.com/p/arduino/wiki/DevelopmentPolicy http://code.google.com/p/arduino/wiki/DevelopmentPolicy While it's definitely not perfect the fact that it's based on avr-gcc makes the risk of lock-in less of an issue than some other platforms. Plus, it's fun. :)
- agentultra 16y agoQuite true. I can be a little knit-picky. However, those are the trade off's and that's not even all of them. It is possible because of avr-gcc to bypass the whole "sketch" thing they have going and compile/load your code without even running the iDE. Like I said, I do like Arduino for what it is. :)