Live data from Hacker News

Owl – OCaml Scientific Computing

ocaml.xyz

1–10 of 80 posts

Re: Owl – OCaml Scientific Computing

#2
Kinda wish they had gone with F#. Would've been less work for them to write nice functional wrappers around existing .NET libraries.

Of course, you can't get funding for something that unambitious, so I understand the tack. Still...

I look forward to trying this out once more significant work has been done. I'm a big fan of OCaml-like languages, if that wasn't already obvious.

Re: Owl – OCaml Scientific Computing

#4
post #2

Kinda wish they had gone with F#. Would've been less work for them to write nice functional wrappers around existing .NET libraries. Of course, you can't get funding for something that unambitious, so I understand the tack. Still... I look forward to trying this out once more significant work has been done. I'm a big fan of OCaml-like languages, if that wasn't already obvious.

What are the main missing features that make you wait?

Re: Owl – OCaml Scientific Computing

#5
It's interesting to read through the contents here:

    http://ocaml.xyz/chapter/index.html
They seem to be implementing the most popular parts of the Python numerical ecosystem from ndarrays to AD graph and neural nets, as well as plotting.

Re: Owl – OCaml Scientific Computing

#7
post #2

Kinda wish they had gone with F#. Would've been less work for them to write nice functional wrappers around existing .NET libraries. Of course, you can't get funding for something that unambitious, so I understand the tack. Still... I look forward to trying this out once more significant work has been done. I'm a big fan of OCaml-like languages, if that wasn't already obvious.

>Would've been less work for them to write nice functional wrappers around existing .NET libraries.

What? Why would they do it? Unix is a standard in the field of scientific computations, so wrapping blas and lapack totally makes sense. Besides, OCaml already had good blas, lapack bindings.

Re: Owl – OCaml Scientific Computing

#8

What's the one-minute pitch for using this, over say Python or Julia? I couldn't figure this out from a quick skim.

For me, as a Scipy/Flask/Postgres user it would be about completing the stack. Python’s great but for core things I’d love to have an ML-inspired alternative that’s even half as convenient. I watch this space with great interest.

Re: Owl – OCaml Scientific Computing

#9

What's the one-minute pitch for using this, over say Python or Julia? I couldn't figure this out from a quick skim.

Static typing. I'm doing a image-related and ml-related research at the moment, and I'm a seasoned OCaml user. So I've tried python for a bit, it was such a pain so I've decided to stick with owl.

Without static typing, the discoverability is so low so that you're literally feeling pain tinkering with python. REPL experience with static types is so much better. With numpy and scipy, I had to stick to documentation all the time even to do the most trivial things. What kinds of arguments could I pass to the plotting function? Read the docs. Does this work with dense or sparse matrix? Does it work with array? Read the docs.

In OCaml you could derive most of the information from the type, for example a plotting api

http://ocaml.xyz/apidoc/owl_plot.html

Much of this is simply obvious within a REPL session without looking at the doc. Simple calling a function name would show you its type.

Re: Owl – OCaml Scientific Computing

#10

What's the one-minute pitch for using this, over say Python or Julia? I couldn't figure this out from a quick skim.

The motivation section of the documentation covers this in detail [1].

From what I understand, the key points are:

1. The author claims that various libraries in Python (Scipy, Pandas, etc.) have a large amount of duplicated code and overlap, if you look deeply in the code. Having one library with a holistic design prevents this overlap and allows for easier optimisation.

2. He further claims that because "numerical computing is built atop of a small amount of abstract number types (e.g. real and complex), then derives a fat set of advanced numerical operations for various fields", unlike systems programming, holism, such as in OWL, is preferable to reductionism.

[1]: http://ocaml.xyz/chapter/intro.html#motivation

Post reply on HN