I find it really irritating that Arduino doesn't offer more user friendlier programming languages and have housekeeping automated so that the user can write code and not have to worry about memory space, data types, etc...
Arduino chose to use C++
There were some other embedded platforms like BASIC Stamp, and picaxe that provided a higher level programming inteface, but they didn't scale as well as C++
Also, remember that Arduino originated on a processor 15 years ago that had 16k of FLASH and 1k of RAM.
IMO, the Arduino team has done a pretty decent job over the years at providing an extensible platform open to 3rd parties that can be used by users of greatly varying skills.
Is Arduino IDE a true IDE by today's standards no, but it does provide a relatively easy way to build and upload f/w images using a gui based tool along with some light editing capabilities.
Is Arduino suitable for a commercial product. Maybe...
But I wouldn't ever use it for that.
I think Arduino is best suited for less technical types like artists and hobbyists that want to use embedded h/w to so some things which is what it was designed for.
And there have been some pretty amazing Arduino projects over the years.
I'm guessing that you likely have a programming s/w development background.
If so, you may need to drill a few holes in your head so you can drop down to thinking like a non programmer with little to no s/w development skills.
The IDE does make building and uploading f/w images "easy" but you have do things the Arduino way. This can take some getting used to, but overall it isn't that difficult.
Another thing to remember is that the original founders of Arduino, didn't have much s/w development experience, so yes there are some goofy things that they have done and continue to do. But some of the oddities go back years and unfortunately can't be fixed due to backward compatibility with the mountains of existing Arduino 3rd party code.
The Arduino "libraries" are not really libraries. The exception is the core library that comes with the IDE. That gets built as a library and linked against.
All other "libraries", are just open source code that gets compiled to objects and linked in.
And make sure not to confuse any system/run-time libraries used by the IDE with Arduino "libraries" that are used for Arduino s/w development.
I would recommend using IDE 1.x as it doesn't try to do all the weird/fancy stuff by putting lots of junk under your home directory and sharing bundled Arduino "libraries" across all installations of the IDE.
In 1.x the bundled Arduino libraries are down under the installation area, the 3rd party libraries will always be in your sketchbook area.
And like I said use the IDE library manager to install the libraries whenever possible vs installing from zip files. For the most part, any Arduino library that is well supported / maintained will be available in the IDE library manager. Just bring up the library manager, enter some keywords to locate it, then install it from there.
I would:
download the latest 1.x IDE zip file.
Extract it wherever you want to install it.
To start the IDE run the executable called arduino in the install directory.
The bundled libraries will be under:
{installdir}/libraries
the AVR h/w specific libraries will be under:
{installdir}/hardware/arduino/avr/libraries
The AVR h/w specific core library code will be under:
{installdir}/hardware/arduino/avr/cores/arduino
The 3rd party libraries you install will be under:
{sketchbook}/libraries
To see where sketchbook is, or to change it, bring up the IDE and click on:
[File]->Preferences
or
click: <CTRL>+Comma
You will see the sketchbook directory location and can change if you want to.
I also set the following options:
- Compiler warnings: ALL
- Show verbose output both compilation and upload
- Use External Editor
I prefer to use my own editor vs the IDE to edit code.
- uncheck Check for updates
--- bill