I would like to add a my two cents. In regards to the language I am partial to Scala because:
* It has a cleaner and more terse syntax * It has good type inference that helps in coding (avoid bugs) * Good interoperability with Java (like Clojure and Kotlin) * It has meta-programming that can be used to generate boilerplate However, Scala comes with some issues: * APIs are usually over-engineered * Type inference may frustrate new users * Higher ramp-up time for Java coders (functional style programming) So the use of a more imperative (as opposed to functional) programing style may be the way to go (simpler code lost and lets not get into the issues on composability :-) ). If this is the route, then maybe a Java interface will suffice for Scala users. Care must be taken to ensure easy interoperability . One may also add a thin wrapper to promote idiomatic a Scala programming style (possibly maximize type inference). For an example if such a case see ScalaFX. Having said that, I am still partial to Scala. However, one more issue should be highlighted. The new Scala 3 is poised for release by the end of this year. I have been using it and it is quite stable. It also allows interoperability with at least Scala 2.12.x and 2.13.x. Type inference seems to be more intuitive, some constructs have been removed to simplify the language, it allows for coding without braces (like Python), meta-programming is much improved, faster compilation, etc. So my suggestion is that if Scala is used (full blown API or wrapper), consider using [Scala 3](https://dotty.epfl.ch/). Hope this is useful. -- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/apache/incubator-mxnet/issues/17783#issuecomment-687206123