I started my 10-year-old on “Scratch“, a free visual programming language which is lots of fun and powerful too.
I think the programmable robot would be fun for a while, but it’s quite expensive and might be appreciated more when your nephew is a couple of years older.
As for Ruby, it’s a well-designed language, and so is Python.
I started programming in GW-BASIC when I was five years old. After that I moved on to QuickBASIC, Visual Basic, Java, and C. I would probably start with Python for a beginning programmer today. It is very simple and easy to learn like BASIC.
Even as an adult, I find the online game Code Combat pretty fun and helpful. It’s a pretty fun place to start, and helps reinforce the care with which you need to code. There are quite a few levels for free to see if they like it before you need to commit any money:
He might also appreciate a starter arduino and/or raspberry pi kit. It only needs a few lines of code to function, and it comes with an instruction manual, so he’d be able to connect code to function in the real world in a fun and easy way!
We tried building minecraft code with our 9 yo, but the amount of code needed to do anything bores him (the amount of writing takes him a long time). Scratch is fun and code.org also has little introductions to coding, a lot like scratch. Personally I think Khan starts on a too high
it is a little off-topic, but my son started out at about the same age with less technical tools like sketchup (a free 3d modeling tool) that gave him some very useful skills later on. When he got to High School he entered an engineering program and naturally took to autodesk and moved into java programming, video editing and web development. Find something fun and interesting that can inspire future exploration.