Why the devs chose Scala to write Hylochain


Can one of the devs of Constellation labs go over some of the reasons and decision making process behind choosing Scala as the language to write Hylochain in? It’s always interesting to hear about the process behind this important decision. My guess is that deciding to use the JVM came first and then language selection came second. I’d be interested to also know how close Kotlin came to being the choice. Also anyone else out there, what process do you use when trying to decide what language is best for a certain project?


I guess if the background of the team is in data science (I’ve picked up on a few having some good knowledge in this area) then Scala is becoming pretty defacto. It’s been used across a lot of the big data processing engines e.g. Spark which plays to the JVM stack you mentioned. It’s good for machine learning and parallel computing. I’ve worked on a number of data projects defining their data architecture and many of the shortfalls we saw in transaction speed, consensus and scalability issues in blockchain are all the same issues with data in the non blockchain space. I noticed during the testnet demo there were hints of the SMACK stack being in play.


In addition to the things munkee said, their development team are FP enthusiasts and for JVM and FP you’re pretty much picking between Clojure and Scala. Clojure is cool, but I can understand why they chose something much more familiar/accessible to 99% of programmers out there.


thanks guys! great to hear more about this. I appreciate the answers.


They answered this actually in the AMA on facebook. A lot of it appears to be to do with the number of java users in the world. A big pool of java developers with scala being directly comparable.


Yea it is a big deal to have it be open to the huge portion of devs that can develop in their known language of choice and not just Solidity. I was reviewing the languages that are compatible with the JVM and pretty much every language that is popular has a version compatible with JVM, such as Jython for Python devs.