Dear Mr. Van Rossum,
First off, thank you for Python. It is the first programming language that I really enjoyed using, having migrated from Visual Basic back in 2010. We now use a combination of Python and C++ at my software company.
I wanted to write you and ask if you had any advice for someone who is designing a programming language. My team is currently creating Ratscript, which is designed to be an extremely lightweight, streamlined interpreted runtime language for our game engine and for rapid game content development. We're also aiming to make the syntax visually obvious, so it will be relatively easy for inexperienced users to learn. Eventually, we also want to use Ratscript for experimenting with some novel design pattern.
What are some problems you've seen with programming languages that have not seen solved as of yet? What mistakes do you see being made over and over in language design?
Thank you in advance. I really look forward to hearing from you.
-Jason C. McDonald
That's a huge topic, and I don't think I have the time to do it justice. My own experience before designing Python was that in the early '80s I spent four years on a team that was building another language (ABC), and I learned a lot about language implementation and design both by working on the implementation and talking to the designers. So one recommendation for you is that you're more likely to succeed if you have people on your team who have worked on language design and implementation before. Another recommendation is user testing -- don't believe your intuition, actually roll out the language to a set of early users and let them use it for a while (I'd say months), then ask them for their feedback (or maybe ask them for feedback continuously). If you find users are consistently confused by something, that's an opportunity for improving the language. Don't fall into the trap of thinking "oh, we need to document that better"!