ChristopherKhawand
Importers don't need to care about the language of the source or destination software, importers can even use a third language. The importer just needs an abstraction layer to access both databases, so it can process and move the data around and in some cases recombine it in new ways.
kaktux
The idea sounds intriguing, and often it is indeed the only way to convert the data. But it's not always the best solution. If you migrate from one software to another, you will often face the problem, that some data is missing in the source which is used in the destination, and other data from the source can't be used in the destination.
Let's assume, your source software has the features A, B and C, your intermediary software (discourse) knows A, B and D, and your final software of choice uses A, C and E. If you have a dedicated migration tool from source to destination, you can convert A and C, B will be lost and E is just not there. If you use the two step path via the intermediary, you will loose B and C, only A will be converted.