Starting in a more productive language for prototyping, and switching to a different language later definitely has advantages.
Leading a company specialized in rapid prototyping for games, these are a few that come to my mind:
- Better gameplay: You'll be able to actually play your concept in a shorter amount of time, and improve the gameplay based on those findings.
In C++, this would take quite some extra time, so you may not have the funds to play around and improve the gameplay as much.
- Cleaner code: It's okay to change the concept a few times and make your code messy in the scripting language. You'll get a better sense of what you'll need to implement in the final game, which allows you to come up with a better structure for your code.
- Prevents reusing prototype code: By prototyping in a different language, it becomes more difficult to reuse your prototype code, which will reduce the temptation to reuse those dirty hacks which worked well within the limited scope of the prototype.
- Cancel cheaply: You can try a concept or features, and have the luxury to decide not to proceed with them without a heavy cost, in comparison to when you would have developed everything in a slower-paced (but more efficient) language.
Very important to know when doing this is that you need to limit the scope for the prototype.
If you're going to implement the entire game in a prototype (i.e. including all content, menu system, monetization, etc), you're wasting a lot of time and losing the advantages of prototyping. Prototyping needs to be fast and focused on the lessons you need to learn to be able to develop a better game.
You can use prototyping to figure out the gameplay, but you can also do this to try out a complex algorithm you had in mind, without having to worry about memory management.
Here at PreviewLabs, we're prototyping in C# in Unity, whereas the final games may or may not be developed in a different language.