Large parts of Mathematica continue to be written in C, and if GJC's
assertion made sense, then Maplesoft would be the big winner. They do
define most of Maple in Maple.
The version 4.1 of Mathematica I have installed explains..
"Mathematica is one of the more complex software systems ever
constructed. Its source code is written in a combination of C and
Mathematica, and for Version 4, the code for the kernel consists of
about 650,000 lines of C and 130,000 lines of Mathematica. This
corresponds to roughly 18 megabytes of data, or some 18,000 printed
pages. "
It says that another 600,000 lines of C are in the front-end.
(I attribute the claims about the complexity of Mathematica code
compared to other systems as ignorant marketing hype.)
The debate about writing a CAS in its own language has a history going
back at least 30 years. It is an extra burden on a language to serve two
different purposes, and if it does either or both imperfectly, the
philosophical
argument in favor tends to lose. That is what has generally happened, I
think.
I agree with GJC that software tools have advanced in the last 20 or 30
years. Some of them are almost as good as the tools used for Lisp, 20 or
30 years ago!
Things like defsystem.
Intelligent source-code editing.
Interactive debugging.
I think that there have been good ideas in version control, documentation,
and modularity that have come into play in Macsyma and Maxima.
Many good new ideas came into Common Lisp and have only partially been
adopted in Maxima.
....