Page MenuHomePhabricator

Letter from Bjarne Stroustrup
Updated 2,718 Days AgoPublic

The following is the correspondence between Jason C. McDonald (quoted sections) and Bjarne Stroustrup, the creator of C++. Grammar has been edited for clarity.

Dear Mr. Stroustrup,

First of all, thank you for your contributions to computer science. My company uses C++ almost exclusively for development.


I wanted to ask you if you had any tips for someone designing a programming language. My team is currently creating Ratscript, which is designed to be an extremely lightweight, streamlined programming language for our game engine and rapid game content development. We're also aiming to make the syntax visually obvious, so it will be relatively easy to learn. Eventually, we also want to use Ratscript for experimenting with some novel design patterns.

Be sure you have the problem(s) to be solved clearly and simply characterized. Beware of mission creep - be sure to solve your key problem very well before doing anything else. Write a good tutorial so that people can see what problems to solve and how.

What are some problems with programming languages that you have not yet seen solved?

Stating intent separately from implementation and providing optimal performance. We are making progress at this, but oh, so slowly.

What mistakes do you see being made over and over in language design?

Spending endless efforts to imitate what is currently provided by existing fashionable languages.

Dear Mr. Stroustrup,

Thank you very much for your response. I've posted the information on our secure team wiki for their reference. I had forgotten to mention that Ratscript is actually an interpreted runtime language built on top of C++, though we're working directly with binary for some aspects.

Good luck.

Since we want this to run well on a low memory system, I've been trying to optimize, and have caught myself attempting to write code without pointers, dynamic allocation, polymorphism, STL, OR conditionals, which is obviously impossible in practice. Still learning to master the trade-offs in optimization.

It is possible (and in some contexts useful) to implement key parts of the STL without using new/delete.

I'm keeping your advice in mind as we finalize the feature list and syntax, focusing on what unique problems our language solves. Once again, thank you for your feedback.

Last Author
Last Edited
Mar 6 2015, 11:53 AM