If I remember correctly Stroustrup was working at Bell labs in the initial phases of the cpp design with a formal education in CS. Hardly an amateur? Inexperienced maybe.
Sure it is! A reputable CS degree will cover multiple programming languages and compiler implementation.
I don’t think you could study just “compilers”, say, at undergrad level. Maybe you mean postgrad or postdoc-level qualifications?
It would certainly be a pretty different world if you were only allowed to design a new programming language after getting your PhD in language design.
>Sure it is! A reputable CS degree will cover multiple programming languages and compiler implementation.
Which is neither here, nor there. A reputable CS degree is an all rounder, it's not expertise in PL design and research.
>I don’t think you could study just “compilers”, say, at undergrad level. Maybe you mean postgrad or postdoc-level qualifications?
For starters, yes, but it's not about official qualifications. Someone (e.g. Simon Peyton Jones) could be a PL expert without "official qualification" in the form of such a degree.
Even writing many increasingly successful languages could do it. Starting with your first (or first serious) attempt at a language, however, is not that...
Anders Hejlsberg is another famous example. He didn't complete his university (and it was on Engineering anyway), but after decades of successful work on the field be became a major PL designer and expert.
Stroustrup, however, was hardly anything like that at the time he first designed C++.
Yes. There is a section in one of his books where he wrote that he added some feature in an ad-hoc way just because of a request from a colleague. Unfortunately, as I have already written in another comment some months ago, C++ was the wrong thing that came at the right time (C people were starting looking for alternatives, seeing what cool things other languages were doing).