Well, I'm not a programmer (I took Pascal in college a long time ago) so take what I say in that light but I have to respectfully disagree w/ your friend. NXT-G is graphical programming interface. There are blocks that represent if-then, or, and, you have sequences which run in parallel, you have global variables, counters, etc. the child still must understand the logic in order to use the blocks. The platform is based on LabView which is used around the world, from what I understand, by real engineers everyday. It's developed and used by the Carnegie Melon Institute. the NXT brick supports several text based languages (derivatives of C, C+, NXC, etc) such that the child can move forward from the graphical interface to a text-based language. however, many of the adults at NXTStep blog still use NXT-G with amazing results. I think those that get into the adult level, nitty gritty stuff (programming the NXT to solve a Rubics cube or to play chess) must go into a text-based language.

I believe Carnegie Mellon will give students a very-reduced price copy of LabView once they've outgrown NXT-G. that software allows you to write your own blocks for NXT brick. In NXT-G you can group blocks together and create what are called My Blocks such that you don't have to keep writing that same bit of code.

there is a program out there I think that allows you to w/ one click, change your graphical program to text allowing one to see the direct connection. NXT-G doesn't allow that at this time.

I think IT IS a child primer to computer programming. I've seen several posts by kids who are ready to move beyond NXT-G and are asking which text-based language to move to.

Personally, I wouldn't jump into a team first either but that's just me. It's more of a family thing at this point.