hmf commented on issue #17783:
URL: 
https://github.com/apache/incubator-mxnet/issues/17783#issuecomment-687206123


   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.
   
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to