I would say that you should make your decision based on business objectives, and cost-benefit analysis.
What are the risks of you abandoning your existing code base and re-writing everything in some new language?
What are the benefits?
You should try and quantify both.
For example, rewriting the app in a new language may require you to either:
- Double the number of developers, testers, and product managers you have on staff or
- Risk spending an extended period of time not delivering any new value to your product while you re-implement it's existing features.
Both of those come with risks. The first one costs a lot. Also, chances are that your best developers are going to want to work on the rewrite, and may up and quit on you if they have to maintain the legacy stuff while the new folks work on the "cool" project. But, if you put all your best people on the rewrite, it means that the new, less experienced folks working on the old stuff are going to be not as good. So, your customer service and bug fix rates, and general quality of the old stuff will drop considerably once the re-write starts. This may cause you to loose customers.
The second one could give your competitiors an opportunity to start stealing business from you. While you are not delivering any new value, they go in, add a bunch of value that is attractive to your customers, and steal a bunch of them from you. At the end of the process, your competition has a super cool app and you have the same thing, just written in a different language.
You should then look at the flip side and ask "what new value, in terms my customers care about, can I deliver to them by doing the rewrite". If that value is something you can deliver without rewriting the software, then you shouldn't include it in that. It doesn't count. Once you figure out the "unique" benefits delivered by the rewrite you should then convert that into dollars.
If that dollar figure is higher than the cost of doubling your payroll, and/or your loss in sales, then go for it.
If it isn't, then I would suggest looking at cheaper ways of delivering that value.
Can you keep the old system in place, and just write new components in the new super programing language? Or you can you get away with rewriting just a small part of it?