I run arduino on Linux and have various robotics projects. Some of them are complicated. I'm kind of new at programming so I'm trying to understand the difference between Arduino and just plain old C. Arduino is the only language I "know".
The only problem I have with Arduino is that I feel like it's somewhat limiting if you try to get more elaborate than blinkenled programs and stuff. Some of my projects have been around for months/years and have been forked and versions held back. Some of them are over a thousand lines long. My major problem is that I'm forced to use the Arduino program to write code, and I would rather use a better text editor. Once my programs get to the hundreds of lines long, working with the Arduino program becomes really tedious compared to my favorite text editor. Additionally, as far as I can tell there's no way to use a versioning system or anything with Arduino code, so I'm left with a primitive system of re-naming files manually and sorting them by "last modified" date and so on.
It seems like I have three options going forward
-Continue using Arduino and deal with it
-Continue writing Arduino code, but somehow figure out how to not have to use the Arduino program itself
-Switch to just writing C
Sticking with Arduino
Pros:
--I don't have to do anything
--can use code from Arduino community (I don't do that much)
--can use Arduino hardware and FTDI cable and so on
Cons:
--I get annoyed and bogged down with the whole IDE paradigm
Writing Arduino code without Arduino
Pros:
--I keep my old code
--I can use my favorite text editor
--I can use any content versioning system I want
Cons:
--I don't know if this is possible
--How do I upload programs?
Switching to Plain Old C
Pros:
--sky is limited only by avr-c. Total freedom.
Cons:
--I have to abandon my old code or port it
--I don't get to use Arduino libraries (not a deal breaker since most aren't that good but I like LiquidCrystal in particular)
Questions:
--Can I still use Arduino hardware like the Arduino Pro Mini? Is writing C substantially 'harder' than writing Arduino? What features does Arduino language actually have compared to C? It doesn't have anything substantially different like garbage collection or anything right? And the syntax is pretty much same as C, right? The only thing Arduino language has going for it is some libraries and a convenient uploady thing. And the fact that it's guaranteed to work wit certain Atmel chips and serial hardware.