I've started to develop CodableCash, and I found a lot about actual performance of cryptocurrency module. At first, I have planed to write only crypto and hash module in C. But after actual experiment, I found some other parts I have to write in C.
They are following parts.
- Hash and Digital Signature calculation
- Database module
- Smart Contract Virtual Machine
According to my experience, I can use Java in other parts.
Java is very slow in calculation using binary data, because I generates class object every time, and it is very slow because of garbage collection.
But in other parts, which needs object generation, the speed between Java and C++ is not so different.(But C++ is faster)
Merit of Java
The reason why I want to use Java is following reason.
- It can easily make test code
- Debug is easy
- I like combination maven and Travis-CI
Therefore I think Java is framework of entire program. Especially in cryptocurrency, testing and quality management are essential, so I'm going to use both in proper modules.