Unlikely. Most developers are also users. So where’s developers you will always find users. But where’s users there are not necessarily developers. My motivation is - apart from boundless altruism - to use the stuff I develop.
Agreed.
Lots of the discussion in the area of programming in this forum is about questions concerned with how is this done or can this be done given the Arduino project structure. There have been many questions e.g. about where to put plugins for them to be picked up by the build process. I wouldn’t call that even easier and it is due to the fact that we have to live with how Arduino forces us to do things.
Even for you it appears to be difficult. Jesse recently wrote that Arduino changed their build system from one
version to another without properly documenting it. Having a opaque build system seems far from optimal. That is my main point here.
What I mean with tweaking is … the opposite of choosing Open Project… from a menu, selecting a file and … there it is, with all build targets and code files and include paths. Everything necesssary for the project language and symbol parser as well as auto-completion to work. My IDE even has a real time clang based syntax check that tells me while I type if the code will compile.
I know that Emacs is powerful but I doubt it is that smart with handling Arduino projects as all those IDEs that allow CMake import.
In the beginning of my programmer life I was a passionate vi user - for a long time. It took me at least as long to overcome my religious believe (typical for vi and emacs users) that this is the most productive way to work. Now, with a proper modern IDE, I am much faster than I ever was with vi. But that, of course, requires a proper build systems. And there we are back again.
I am a very experienced C++ and a much less experienced Python programmer. Still I am very sure that, when I have to develop a complex algorithm for an embedded platform such as Arduino, I am faster with two languages and porting. Mind you, Arduino lacks a debugger (at least most developers do not have one), doesn’t even allow for simple printf
output and, moreover, requires an upload step in each change-test cycle (I am writing this for other users, I am sure you know how annoying it can be to work under such circumstances ).
BTW, there are roughly three times as many Python programmes as there are C++ programmers. So, if people could, they probably would prefer to develop their Kaleidoscope plugins in Python.
Thompson's Rule for First-Time Telescope Makers
It is faster to make a four-inch mirror and then a six-inch mirror than to make a six-inch mirror.
Bill McKeenan
Wang Institute