I'm happy to inform you that after a year of testing a lot of graph databases, implementing their drivers into my project, troubleshooting and more I have decided to use Neo4j as main database for my Bachelors degree project.
I'm programming in C# so I'm currently using official Neo4j .NET driver (https://neo4j.com/docs/driver-manual/current/). However today I got from my school oponent following question, which I will need to answer in front of school committee at 23rd of June.
The question is (freely translated to english by me):
I can see you decided to stick with Neo4j database, which is internaly implemented in Java and support native Java API for database operations. Would switch in you project from C# to Java bring any new performance improvements?
My question to you is, does he mean by "Java API" something different than Neo4j Java driver available from https://neo4j.com/docs/driver-manual/current/? And what about answer to his question? What are the statements or facts that prove or disprove the performance difference between C# and Java Driver (or Java API).
I currently dont have any more time to transfer my whole project from C# to Java, thats why I'm writing here. I also didn't find any similar articles about this.
Please, as I said, the committee hearing is on 23rd, in 9 days and I would really appreciate any bit of help with this one.
Hi, The performance will be good as long as you don't use an Object-Graph Mapper. There are other elements that allow you make a decision about the language to use. There are many quality attributes for instance scalability or maintainability, not just performance. You could say that it uses c# because developers know this language and for them it is easy to maintain. The performance is better (but not secure) with java possibly but are milliseconds and depend on the project.
Thank you for the answer. I know about other quality attributes, but school oponents asks only for performance.
Can you please tell me, why should the performance be slightly better (even in miliseconds) with Java? I thought that both C# and Java drivers communicate via Bolt protocol with the database.
Also, how come that using java will not be secure?