Questions about programming

I'm intrigued about the different microcontrollers. There are so many!

I'm new to this. I'd like to get an Arduino, but there are so many choices of boards that it is hard to chose just one.

It's my understanding that a program keeps on repeating until the power is removed, correct? Is it possible to have user input while the program is running so that the display(I'm thinking about RGB LEDs.) will change?

I know that one can use PWM to vary the brightness of the LED, but there are fewer PWM connectors than there are digital I/O connectors. Suppose that one wants to have more PWM connectors than there are on the board. What does one do?

There's only one programming language available, correct? There's no option for JavaScript or C or C++ is there?

but there are so many choices of boards that it is hard to chose just one.

In the absence of any specific requirements choose a Uno.

It's my understanding that a program keeps on repeating until the power is removed, correct?

Yes

Is it possible to have user input while the program is running so that the display(I'm thinking about RGB LEDs.) will change?

Yes your input determines what part of the program is run, that is the art of programming.

Suppose that one wants to have more PWM connectors than there are on the board. What does one do?

Use an external chip or software that makes the others into PWM, but this latter takes processing power meaning your code can do less in a specific time.

There's only one programming language available, correct?

Yes

There's no option for JavaScript or C or C++ is there?

Yes the programming language for the Arduino is C++ and C is a subset of C++, java script however is right out.

Macnerd:
I'm intrigued about the different microcontrollers. There are so many!

I'm new to this. I'd like to get an Arduino, but there are so many choices of boards that it is hard to chose just one.

Yes there use to be a lot less to decide between. Unless you have a specific requirement I would suggest that the
standard Uno board is the best one to start out with.

It's my understanding that a program keeps on repeating until the power is removed, correct? Is it possible to have user input while the program is running so that the display(I'm thinking about RGB LEDs.) will change?

Even after power is removed and later power applied the program will startup and run. Changing action in a running program
using user inputs (switch actions for instance) is just what developing a user sketch is all about.

I know that one can use PWM to vary the brightness of the LED, but there are fewer PWM connectors than there are digital I/O connectors. Suppose that one wants to have more PWM connectors than there are on the board. What does one do?

The "PWM" pins on a arduino are supported by internal hardware timers therefore more efficient, but using say a software PWM library one could output PWM on any of the arduino output pins.

There's only one programming language available, correct? There's no option for JavaScript or C or C++ is there?

The Arduino programming language is C++, no other option directly supported by the IDE.

And you probably should avoid assembler programming just yet... The standard C/C++
compiler environment gives you convenient named register access to all the hardware
registers so low-level programming can be done without resorting to assembler, and
you are also (and more easily) able to access the more complex and arcane functionality
via the many libraries available for the Arduino (here C++ classes are often used to
encapsulate/hide the details).

You can store persistent state on the on-chip EEPROM via the relevant library too, so
it can remember stuff between power-cycles.

Thanks for the quick reply.

You can store persistent state on the on-chip EEPROM via the relevant library too, so it can remember stuff between power-cycles.
Please elaborate.

Changing action in a running program using user inputs (switch actions for instance) is just what developing a user sketch is all about. Yes your input determines what part of the program is run, that is the art of programming.
Please elaborate.

The "PWM" pins on a arduino are supported by internal hardware timers therefore more efficient, but using say a software PWM library one could output PWM on any of the arduino output pins. Use an external chip or software that makes the others into PWM, but this latter takes processing power meaning your code can do less in a specific time.
Please elaborate.

... java script however is right out.
Please explain "right out".

So, both retrolefty & Grumpy_Mike recommend the Uno. Interesting. Is it possible to cluster the Arduinos & build a poor-mans supercomputer?

Macnerd:
Changing action in a running program using user inputs (switch actions for instance) is just what developing a user sketch is all about. Yes your input determines what part of the program is run, that is the art of programming.
Please elaborate.

You're going to have to ask a better question than that. Almost every computer program ever made takes some input and produces output based on that input. That's the basic function of computer programs, so your question is way too general. Go on to Google and find some programming tutorials, then you should be able to ask a better question. "Please elaborate" on the most basic thing a computer program ever does is way too general.

Is it possible to cluster the Arduinos & build a poor-mans supercomputer?

Not really - the I/O capabilities and limited memory make the power-consumption vs. processing power equation very unfavourable.
It’s not like threading together GPUs.