could you summarize IDE development?

[after being moved to the General subforum, this post is now somewhat redundant. Sorry about that!]

Hi, I was referred to this sub-forum by marco_c, though I don't do any alternative IDE development yet.

This is a beginner-level set of questions.

Could someone summarize for me the current state of IDE's in use. For example, you could say: "80% of people just use the normal Arduino IDE, but.. " and then the rest of your summary.

the above was just a guess. What are the main benefits to other IDE's - is there one that is particularly favored by the community?

Secondly:

I'm interested in compilers, could you summarize which ones have any support on Arduinos. (gcc, klang, etc.) which ones are actually in use?

Thanks for all of your thoughts and sorry if I'm a bit haz [edit: hazy] in my understanding still.

I'd like to eventually write up what I learn on my forum, which is read not just by people using Arduino but also people coming from embedded Linux development who never have. I appreciate your summary and information.

I'm a bit haz

"hazardous"?
"haphazard"?

AWOL:
"hazardous"?
"haphazard"?

That word is 'hazy', I've corrected it. Some people really got offended by my asking about alternative IDE's! Robin2 called this a 'useless thread'. I think it's fine for me to ask about the extent to which people use alternative IDE's or an overview of the "market shares" and so forth. If you want to point me to an article that gives this overview you can go ahead.

I like to use Eclipse to write code, but I still compile and upload using the tools that come with the IDE.

As for compilers, you need one that can compile for the particular chip you're using and that goes whether or not you use Arduino. For example, the UNO uses an AVR chip, so we are mostly using AVR-GCC as the compiler.

I think what you are suffering from is quite common and I really hate when it happens to me. You're in a situation where you are curious about something, but don't yet know enough about it to ask real questions that you could learn more from. It's a catch 22. You have to understand something to ask about it, and you have to ask about it to understand it.

Understand what Arduino really is. If you want to write code, you need a number of separate things. You need a text editor of some sort to write out the code in. You need a compiler to turn that into machine code. You need a linker to put that together into a program. You need some sort of application to actually load that code onto the chip. Arduino is a collection of tools that anyone could put together themselves. It's like buying a package deal, or a combo meal at McDonalds. You get a text editor, a copy of avr-gcc, a linker, and AVRDude to upload with. You could collect those things together separately and start coding for an AVR chip whether that chip is on an Arduino board or not. But it is not really self explanatory how to put all that together and make them all work together. Arduino is like someone has already set them all up so that they work together and gave it to you already put together and ready to go.

Delta_G:
I like to use Eclipse to write code, but I still compile and upload using the tools that come with the IDE.

As for compilers, you need one that can compile for the particular chip you're using and that goes whether or not you use Arduino. For example, the UNO uses an AVR chip, so we are mostly using AVR-GCC as the compiler.

I think what you are suffering from is quite common and I really hate when it happens to me. You're in a situation where you are curious about something, but don't yet know enough about it to ask real questions that you could learn more from. It's a catch 22. You have to understand something to ask about it, and you have to ask about it to understand it.

Understand what Arduino really is. If you want to write code, you need a number of separate things. You need a text editor of some sort to write out the code in. You need a compiler to turn that into machine code. You need a linker to put that together into a program. You need some sort of application to actually load that code onto the chip. Arduino is a collection of tools that anyone could put together themselves. It's like buying a package deal, or a combo meal at McDonalds. You get a text editor, a copy of avr-gcc, a linker, and AVRDude to upload with. You could collect those things together separately and start coding for an AVR chip whether that chip is on an Arduino board or not. But it is not really self explanatory how to put all that together and make them all work together. Arduino is like someone has already set them all up so that they work together and gave it to you already put together and ready to go.

Thanks! Yes, that's for sure.

I've now written up my thoughts in this "35-second Arduino language reference for expert programmers". I'd love your thoughts or review!