I mean, I often use the Atmega series for work, sometimes with USB-serial converters, and for convenience, the Arduino bootloader. Does that count?
Absolutely!
What if one uses the IDE but none of the built in libraries?
Close enough! Just having the IDE installed is enough to condemn all future work. On any chip!
Or... the hardware, but Atmel studio writing bare metal? If I used an Atmega328, at 16MHz, wrote the code in the Arduino IDE, would that count?
Again, this would absolutely count!
Now, there's no rhyme or reason for my answers above but, as this thread is completely off the rails in terms of rationality, why add any at this late stage.
My point is, it seems some have very strong views on how problems/projects should be solved/completed, and some appear to be vehemently against anything Arduino, I suspect possibly because some of the libraries aren't great (whoever claimed they were?).
But what exactly are these prejudices about? Is it
1) The use of libraries
2) the hardware abstraction, or is it the hardware?
3) the fact that it is a handy, cheap, and useful platform for Artists and non-electronic engineers to blink some LED's for a larger project?
4) Or is it that some feel those who are fully capable of writing their own libraries shouldn't be using existing libraries?
[/quote[
Unless we have a nice clear definition of what using an Arduino is about, people could be arguing about different points.
Seriously, I'm curious. Also, just to add another data point - I haven't noticed Arduino "users" to be any more aggressive than any other area of engineering. It seems to be more related to age than anything else.
The complaint against libraries, in general, can't be justified unless one is willing to write in assembly language or rewrite the C library. Libraries are libraries, if you don't like Arduino libraries because they may not be 'perfect', how do you know the C library works under all conditions? After all, AVR Libc is just a derivative of glibc... Libraries are built on other libraries, how far down do the complainers want to condemn?
The complaint that the libraries are suboptimal because they are written by amateurs doesn't stand up well when you consider that ALL open source software is written
by amateurs,
for amateurs. If it was professional code, it would cost money! Lots and lots of money. You wouldn't use 'open source' software for any life safety applications, right? Not GCC, certainly not glibc and absolutely not the Arduino libraries. Right? You would buy professional software, right? You would want a guarantee, right? Well, if you want a guarantee, buy a toaster!
A few pages back I was talking about my experience with a library for the AD9833 Waveform Generator and how I could drop it into the IDE, compile the example and get a waveform. In about 5 minutes. Now, true, I would have to sort out the pins on the Arduino and the pins on the demo board but that's pretty straight forward and applies to ALL SPI peripherals so there are a lot of examples.
Then I rewrote the code from scratch. Trust me, it took a lot longer than 5 minutes and is nowhere near as general or 'API like'. My code rmeets a specific requirement and is clearly not 'general purpose'. More to the point, I had to spend time figuring out which of the 4 CPOL/CPHA attributes matched the device and then I had to figure out what the Arduino SPISettings() function calls them. Of course I also had to verify that my Clk speed wasn't too fast for the part. Datasheet kinds of things that aren't necessary when using the library. They are already dealt with.
Now, given somebody who is new to uC and, particularly SPI, how are they supposed to know? How do they, as an 'Artist', understand from the timing diagram that CPOL is high and CPHA is falling (SPI_MODE2). The thing about the library is that they don't have to know. It's already handled. Just plug and play.
Earllier somebody pointed out that much of the whining is a result of the speed with which 'Artists' can accomplish their goals. Everything that can be done with an Arduino has been done and the code is on the Internet. Today, embedded programming at the more superficial level is available to everyone!
Then somebody wants to get clever and talk about multitasking. What about multitasking? Well, there's an Arduino library that uses FreeRTOS (yet another library, I'm afraid).
At the end of the day, the complainers are talking out of their ***. The platform works, the platform is popular because it works and I can buy a perfectly capable small CPU with USB interface for about $4 because it is popular. It disturbs their view of their position in the hierarchy. It's no longer necessary to spend years and years in college just to create a sine wave with an Arduino. Anybody can do it! Even really old guys, long retired and kickin' back.
And, no, the Arduino Uno is not the cure for world hunger. I think we need a bigger chip. Maybe the Mega 2560...
As a side issue, my incantation of the code is known to work on an Arduino Nano, Arduino Uno (both 8 bit CPUs) and the Teensy 4.0 (32 bit Cortex M7) with no changes. It's about the library! That's why I can choose from a number of chips and use the same source code. That's a pretty powerful idea.
Sometimes the libraries are just the ticket to success.