1. Legacy code is very valuable. Mistakes are costly and thus nobody wants to change anything once its proven to work.
2. They hire people who are already proficient in matlab. In all job postings it is written explicitly as a requirement. There have been and will be initiatives to move over to other languages but they always die out because the cost is monumentally high
10 years ago people were using Perl for data management and MATLAB for physics prototyping. Now we all use Python for both.
1. Octave does not have the inclination or man power to replicate all famous toolboxes of matlab. They are not even going for 100% compatibility, their home page says _many_ matlab scripts can be dropped in. A company with technology lock in will have such a large code base that I don't think octave will be able to handle it.
2. I don't think managers want to give away the ability to pick up a phone and shout at someone when something doesn't work. Even in my short career I have had this happen. Companies I worked for payed in hundreds of thousands USD per year in mathworks "support". Now, most of these support credits never get used, but at least the older managers like to have the option.
I work with a 20 years in development code base, maybe I should try and run some of it in octave one day.
Another thing about point 2, I think Julia did the right thing by establishing a company to promote the language. I see that tech managers are more open to it because of that. Can this be called the red hat effect?
I am talking about long term. Problems you list are the result of lack of the resources. After many years, even small volunteer effort combines into impressive results. See GNU/Linux.
See also: https://news.ycombinator.com/item?id=22988584
> 2. I don't think managers want to give away the ability to pick up a phone and shout at someone when something doesn't work.
Nothing prevents companies from supporting FOSS. I do not see any problem here, apart from wide adoption.
As for Emacs, it's probably just "good enough" underneath the covers to never draw a rewrite. More fun to spend time hacking elisp.
Then again, programming languages and scripting languages in general seem like they'll last forever. Sites and programs may come and go, but the languages they're written in will probably be around for the long haul.
I see only git, vim, and emacs lasting until the end of my life.