On Feb 5, 2015, at 12:00, Gurvinder Singh <[email protected]>
wrote:
> May be I was not clear enough. I am with you on that Nupic does not
> need translation to any other language to be disributed. Java is more
> than enough. What I meant was that Nupic java implementation can be
> used with framework like Apache Spark to get disributed. ...
I think we may be conflating some issues and thus talking at cross-
purposes. Here are the issues I see and my positions on them (ducks):
-r
Implementations
I really like the idea of multiple NuPIC implementations as a way to
try out ideas, learn what works best for what problems, etc. Some of
these implementations may be academic, experimental, specialized, etc.
So, for example, a message-based implementation in Clojure or Elixir
might not be as performant as a highly-optimized Java implementation.
However, it may have other benefits (eg, acting as executable pseudo-
code and a very malleable workbench for trying out modeling notions).
At least one implementation (preferably more) should have recognized,
"official" releases. Although language-specific bindings are welcome,
any official release should be conveniently usable by applications that
use other languages and/or frameworks. A message-based interface which
supports streaming of structured data seems like an obvious choice. It
should build on popular, well-supported standards, whenever possible.
To qualify as an official release, an implementation should pass a
specified set of tests. That is, I'd like to see a language-neutral,
executable specification that contains both required and optional tests.
Languages and Frameworks
In large part, these are a matter of taste. I like Elixir, for various
reasons, but I don't argue with aficionados of other languages. However,
Elixir inherits some unique features from Erlang, BEAM, and OTP. OTP,
for example, provides a well developed and thoroughly tested concurrency
and process management framework. I don't know of anything equivalent,
either in the JVM or elsewhere (eg, Golang).
Of course, Elixir may just be my current "Blub" (:-):
Blub ... was used by Graham ... to illustrate the difficulty of
comparing a programming language one knows to one that one does not.
-- Paul Graham (computer programmer) / Blub
https://en.wikipedia.org/wiki/Paul_Graham_(computer_programmer)#Blub
See also: Blub Paradox
http://c2.com/cgi/wiki?BlubParadox
--
http://www.cfcl.com/rdm Rich Morin [email protected]
http://www.cfcl.com/rdm/resume San Bruno, CA, USA +1 650-873-7841
Software system design, development, and documentation