So we will have clients in both C++ and Scala. Why is that?
The more clients, the better!
I can understand if its for different OS.
It just adds the overhead of keeping all the clients in sync when we add more functionalities.
Wouldn't having more programming languages making it much harder to maintain and update the code?
What's the advantage of this solution?
Clients are only so-called "reference implementations". The "coin" itself is only the protocol.
Everyone thinks bitcoin is the programm, and nxt is the program and lisk will be the program and wave as well.
But thats wrong. Everyone can write similar implementation in another language (at least backend code) that fits the protocol (in the same blockchain).
For a successful coin there should be different solutions. That shows, that it has a good adaption.
And if one of the implementations has a security bug, people can go to the other already availbable solutions, if they exist. If there is only one implementation everyone has to use the client with the bug in the time it is not fixed....
It's somehow sad, that everyone here wants to make a new coin and a new coin and a new coin instead of making the current ones bigger. Ok, if the coins protocol is improving, that is fine (like waves probably).
But often its the other way around. They don't even write new code and copy the whole thing instead. And if the client has a security problem, 10 of those clones have a problem ;-)