Live data from Hacker News

Think Julia: How to Think Like a Computer Scientist

benlauwens.github.io

11–20 of 74 posts

Re: Think Julia: How to Think Like a Computer Scientist

#11
post #2

You might contrast the approach here with say an Engineering textbook. This manual on a particular tool (Julia) seems to imply that it is the one way to engage with an entire discipline. An Engineering textbook might mention various tools for a particular job and even endorse one over the others but in general it will start with the problem and not the solution. That said: $ aurman -S julia (rolls up sleeves)

Can you explain that last part?

`aurman` is a (unofficial?) package manager for Arch Linux. The standard package manager is called `pacman`. Arch User Repository(AUR) is (IIRC) a repository of uncurated packages compatible with Arch.

To put it simply: he is implying that he will check out the book.

Re: Think Julia: How to Think Like a Computer Scientist

#12
post #3

If I don't care about parallelism nor speed, is there a reason to learn Julia?

As somebody who appreciates Julia, my opinion is - probably not. That is, unless you want the opportunity to create a killer library that shows how the language features map well to other domains.

But, I think a lot of people in scientific computing are tired of the typeless mess that Python/Numpy/Scipy code-bases evolve to be. And for those people, I think it has a lot of merit.

At the end of the day, the language was designed to fill one major gap. A lot of time and effort in R&D is spent either; architecting sane C++ memory models, or reverse engineering existing Python code. Alternative well performing and safe languages like Java simply are not fast enough - to get the features of the modern CPU, you need to be native. And a side-note, MATLAB cannot usually be ran in a production environment.

Re: Think Julia: How to Think Like a Computer Scientist

#13
post #9

PSA: The goal of the Julia 1.0 release was to stabilize language constructs for library authors to build upon. It will take time for them to update their libraries to be compatible with v1.0 -- so if you want to get a feel for the language, and things are breaking, stick to v0.7 for the near future.

Sadly not even 0.7 is usable right now, see https://docs.julialang.org/en/v1.0.0/ * The only difference between 0.7 and 1.0 is the removal of deprecation warnings. * I am currently using version 0.6.4. I feel it is still a great piece of software, even if is a few years old.

Re: Think Julia: How to Think Like a Computer Scientist

#14
post #3

If I don't care about parallelism nor speed, is there a reason to learn Julia?

Julia is increasingly becoming better than R and Stata for data cleaning. Many of its metaprogramming tools beat `dplyr` in syntax and features. So if the data-cleaning to regression stack (which i would guess is different than scientific computing) is your thing, then i would recommend trying Julia out.

Re: Think Julia: How to Think Like a Computer Scientist

#16
post #3

If I don't care about parallelism nor speed, is there a reason to learn Julia?

Julia is increasingly becoming better than R and Stata for data cleaning. Many of its metaprogramming tools beat `dplyr` in syntax and features. So if the data-cleaning to regression stack (which i would guess is different than scientific computing) is your thing, then i would recommend trying Julia out.

Could you give some examples of how dplyr-based data cleaning code would look in modern julia?

Re: Think Julia: How to Think Like a Computer Scientist

#17
post #3

If I don't care about parallelism nor speed, is there a reason to learn Julia?

> is there a reason to learn Julia?

JuMP is why I learned whatever I did of Julia and that was mostly because it allowed me to express some things better (not necessarily faster or in parallel).

A good example would be this random problem that came out of an interview discussion.

https://gist.github.com/t3rmin4t0r/44d8e09e17495d1c24908fc0f...

I'm almost sure my python implementation is wrong, but I can't quite prove it - the Julia one is trivial to understand (a dot product + a minimization function).

Re: Think Julia: How to Think Like a Computer Scientist

#18
post #12
post #3

If I don't care about parallelism nor speed, is there a reason to learn Julia?

As somebody who appreciates Julia, my opinion is - probably not. That is, unless you want the opportunity to create a killer library that shows how the language features map well to other domains. But, I think a lot of people in scientific computing are tired of the typeless mess that Python/Numpy/Scipy code-bases evolve to be. And for those people, I think it has a lot of merit. At the end of the day, the language w…

What do you mean by production environment in the context of academia / R&D?

Re: Think Julia: How to Think Like a Computer Scientist

#19
post #9

PSA: The goal of the Julia 1.0 release was to stabilize language constructs for library authors to build upon. It will take time for them to update their libraries to be compatible with v1.0 -- so if you want to get a feel for the language, and things are breaking, stick to v0.7 for the near future.

A good review of the changes between 0.6 and 0.7/1.0 is here: https://white.ucc.asn.au/2018/06/01/Julia-Favourite-New-Thin...

Re: Think Julia: How to Think Like a Computer Scientist

#20
post #12
post #3

If I don't care about parallelism nor speed, is there a reason to learn Julia?

As somebody who appreciates Julia, my opinion is - probably not. That is, unless you want the opportunity to create a killer library that shows how the language features map well to other domains. But, I think a lot of people in scientific computing are tired of the typeless mess that Python/Numpy/Scipy code-bases evolve to be. And for those people, I think it has a lot of merit. At the end of the day, the language w…

Having spent years working with numpy and Cython, then switching to Scala for years as well, I much prefer dynamic typing.

Strong type safety is mostly just a waste of time.

Post reply on HN