a couple of comments.
- the linux IDE surely could use some love but it's also a nightmare to get it to work with all these different permutations of distributions and packages etc
- It really depends on what is your style of programming. If you've learned on a modern computer and are used to multithreading, multitasking and all of that, clearly Arduino seems very limited but if you apply different coding patterns you can get a LOT of mileage out of it. I teach my students about state machines all the time, I just don't tell them they are called like that and they can implement them very easily.
PS: I learned on a ZX81 which had 1kb of ram and Arduino is like a Ferrari compared to that ![]()
m