im thinking about buying this calculator, is it good for programming?
It's an excellent calculator for mathematical programming.
I've never ventured outside of BASIC for the nspire, but I believe you can program in LUA and maybe C. The BASIC language is much like that if the TI-89. However, it lacks graphical functions so its BASIC language is not at all good for games.
Z80 Assembly>English>TI-BASIC>Python>French>C>0
The CAS system is not allowed on many standardized tests, so that may be something you want to keep in mind. Also, certain teachers will not allow calculators with CAS, especially in university. I personally have found that a TI-84+, the TI-84+ CSE, and the TI-89 are the most widely accepted for use in high school and university. The 84 series allows for full TI-BASIC functionality, and is great not only for mathematical programming but also great for making games. The TI-89 I do not have experience with, but it uses 68k Basic I believe. Keep in mind also that there is a larger community which programs the 83+/84 series than programs for the Nspire, so if you are programming on the Nspire you may not have as much help as you would on the 83+/84 series.
Overall, the Nspire is a powerful calculator in some regards but a weak calculator in others. It all depends on how you want to use your calculator.
Not to mention that its I/O system is horrible. If you want to program math things, the Nspire CX CAS can do it, but if it's a game you want, you might as well download games made in C, ASM, or Lua, since BASIC for Nspire's is really bad, or you could get another calculator. I highly suggest the TI-84+CE or the ti-89 Titanium.
It's an incredible, hugely powerful, calculator but is terribly crippled for programming. A calculator of this power should have programmability to match. I refrain from using the term 'Hand Held'.
There are no good manuals available for programming. It does not have fundamental functions such as clearing the screen, formatting variable outputs (other than primitive). Try to draw a 3D line from P1 to P2… cannot be done. Try calling a function or program from within a program… I haven't found a way yet. Check with tech support for a solution, and they provide a link to totally unrelated material; they do not provide a solution or simply state, "It cannot be done". Try programming a table that has "Node x-coord y-coord z-coord" and having it list the values in a spreadsheet. Not an easy task and with a simple format string this would be extremely easy. You cannot call a function to do the formatting from within the program.
As noted, it's terrible for programming.
Dik