You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mxnet.apache.org by GitBox <gi...@apache.org> on 2020/09/04 15:05:11 UTC

[GitHub] [incubator-mxnet] hmf commented on issue #17783: [RFC] MXNet 2.0 JVM Language development

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:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@mxnet.apache.org
For additional commands, e-mail: issues-help@mxnet.apache.org