Have yo ever tried compiling the Arduino ecosystem with Atmel Studio?
I have! Took me half a day. Blood, Sweat and Tears, as we Dutch say!
In the end I moved back to the Arduino IDE, as there is nothing to gain with Atmel Studio in combination with Arduino.
What I found nice is Sublime Text. There is a very nice extentions, that turn Sublime Text into an Arduino IDE.
I don't have the link at hand, but if you Google for Sublime Stino, you'll find it.
You're perhaps conflating two different concepts here (even putting the Ardunio IDE aside). There's Arduino, the hardware (specifically, an ATMega328P breakout board), and Arduino, the set of libraries (digitalWrite and his bloaty friends). If you want to use Atmel Studio with your Arduino hardware, and are happy to leave the Arduino libraries behind (which I for one, am
very happy to do*), then you win an IDE that understands the concept of sharing a file between projects in a sane way,
supports in-circuit debugging, and has the versatility to, I dunno, let you see the assembly code or experiment with optimization settings without scripting or restarting the "IDE". All around a superior experience, I'd say.
If, on the other hand, you want to use Arduino hardware AND Arduino libraries in Atmel Studio for some reason, you're doing something that neither Atmel nor Arduino had in mind, and you shouldn't be overly surprised that it was painful. Nevertheless, I expect that after an initial one-time configuration hurdle, it should be straightforward from then on? After all, everything that Arduino provides should be easily encapsulated as a #include <arduino.h>, right? Getting that file is the challenge.
Arduino's cross-platform ubiquity is one benefit, the only other I can think of is that it is quicker for embarrassingly simple single-file projects.
* Once, I was scratching my head with an Arduino sketch that wouldn't work with serial properly (would just output part of a string and then give up). Copied the provided C code straight out of the ATMega328P datasheet, wrote my own one-line string printing function and a four-line integer printing function, and it worked first time. What the?