The we have history. C is 50 years old. There's been some new ideas since, but grafting many of them on to C would make C a whole other language. Like C++. C++ is built around a particular programming model (native code and C interoperability). Are we going to move to a virtual machine platform? Then why not tweak the language to work best with that and the libraries of that environment? And so Java and C#.
Inventing a language is also just a hobby for some. And sometimes they catch on. Same with small languages intended for a bespoke role but which grow beyond it.
1. Different programming languages are good for different purposes.
2. Some programming languages have what some people (including myself) consider to be problem in the other one.
3. For making an experimental project to see what it is working.
4. Just because you like to invent a programming language, like you can think of to invent other stuff.
(One of the significant problems (although there are many others, too) that I see in many newer designs is Unicode. Also, some consider GOTO harmful therefore omit that feature. No! Unicode is much more harmful. If a programming language has GOTO, you do not need to use it and it does not affect use of libraries, etc. If it has Unicode, this does affect use of libraries.)
On the other hand programmers have somewhat smaller egos than some scientists