Live data from Hacker News

Why I'm Betting On Julia

evanmiller.org

161–170 of 258 posts

Re: Why I'm Betting On Julia

#161
post #21

Earlier quoted context omitted.

Julia's primary purpose is as a scientific language, which means lots of number-crunching on large data sets, complex computations, etc. IO is unlikely to be the bottleneck in these situations.

I'm not sure I agree with the second sentence. Any kind of crunching on large data sets has I/O bottlenecks as one of its main issues. When you're crunching on a terabyte of data, pretty much the most important thing is your precise strategy for handling that terabyte of data. I'll agree the asm can be interesting still there in some cases, though, if you think of memory-bandwidth-and-latency issues as part of I/O. T…

Yeah, I shouldn't have conflated big-data issues with numerical computing. Good catch.

Mostly I was responding to the idea that there is a relationship between dynamic languages and IO bottlenecks. This is certainly often the case in things like web development, where dynamic languages dominate, but under the hood, Julia has relatively little in common with Python/Ruby/JS/PHP/etc, in terms of how it's implemented or, especially, what it's intended to do.

Re: Why I'm Betting On Julia

#162
post #67
post #50

Earlier quoted context omitted.

To be fair, there's also Python+NumPy and R in that space, not just Matlab. Besides the "tinker with LLVM" thing, what does Julia offer that Python (or Cython for speed)+NumPy does not?

I remember there being talk of eventually being able to call Julia from within Python. I've also been quite happy using Numba as an alternative to Cython for some things when I need speed. It's a lot more light-weight with less boilerplate, although still a little rough around the edges.

This already exists as a prototype as part of IJulia, see Leah Hanson's awesome blog post about it here: http://blog.leahhanson.us/julia-calling-python-calling-julia...

The collaboration between the scientific Python and Julia communities in recent months has been awesome to watch.

Re: Why I'm Betting On Julia

#164
post #160

Earlier quoted context omitted.

Sure enough there are parts of matlab where matlab is without serious competitors. I think however that a majority of needs is available for Python, although I know that I do not represent everyone's needs. Quick google search yielded: http://networkx.github.io/ do not know how it compares though. I switched to Sci.Python at the point where I had difficulty treating time series data with Matlab. I know there is a too…

Yeah, networkx is pretty good -- I actually meant that network analysis and text processing are the two areas where I'd be quite comfortable recommending Python over Matlab. For time series data, I'd personally pick R though, or perhaps SAS if it's large enough -- at least if any statistical analysis is involved... I need to check out Spyder.

R is a software that I still need to check out.

I think enthought offers commercial tooling and support and also a IDE platform with tools for data story telling etc.. I usually use vim.

Re: Why I'm Betting On Julia

#165
post #133

Earlier quoted context omitted.

> "The part where Julia kicks in now is the point that Matlab has a lot of market ground, especially with engineers who are not extraordinarily passionate about programing. For some people the burden of learning another syntax is just too big, they are not full time programmers but spend their time more with acquiring data and using the results. I really hope that some of them who are not willing to switch to scienti…

You cannot overestimate enough how old folks growing up with Fortran just won't accept Array indizes starting at 0 instead of 1. Then because professors demand it, colleges buy Matlab campus licenses and "encourage" their staff/students to use it, incorporate in teaching and research. Sadly, when the student is not on campus anymore, he/she cannot reevaluate old date and in the new job they then demand a matlab licen…

Btw, Fortran arrays start at 1 by default, but the lower bound can be specified by the user, for example

real :: x(-10:10)

is a real vector of 21 elements from -10 to 10.

Re: Why I'm Betting On Julia

#166
post #8

> but it's poised to do for technical computing what Node.js is doing for web development I stopped right there. Node.js has only a few great use cases where it shines and in the real world, the vast majority of shops have not switched to using it.

I think he might mean "shaking things up" (which Node certainly has done) rather than "taking over the world" (which, as you point out, it has not).

Re: Why I'm Betting On Julia

#167
post #136
post #97

I don't really see the need for the author to make himself into a "cowboy" coder and point out how they ignore all those valuable insights and enlightenments of programmers. Julia is a kind-of-fine language that is designed to appeal Matlab users first of all by its syntactical looks. Just like Javascript was designed to appeal to C and Java users by imitating their look. Under the hood, Julia is quite a smart develo…

What still amazes me: While working in an ipython notebook ( http://ipython.org/notebook.html ) on some numerical calculations, I can just pull up Sympy ( http://sympy.org ) and perform some symbolic computations (Fourier transforming some function analytically or taking the derivative of some other, etc.). You can certainly do it with Matlab (provided you have purchased the symbolic toolbox of course). Oh, and have…

The biggest strength of matlab is the libraries, but you can very easy use those in python using an integration library like mlabwrap, and still have all the benefits of python.

And there's a python IDE called spyder which is similar to the matlab IDE.

Re: Why I'm Betting On Julia

#168

Earlier quoted context omitted.

Writing fast code in Julia requires less effort than it does in Python or R. You don't have to drop down to Cython or Rcpp to get good performance. If you write an algorithm in Julia the same way you'd write it in C, it will achieve equal performance. If you write it the same way you'd write it in Python or R, it may not be optimal due to the cost of memory allocation, but it's still faster than Python or R. Julia is…

To the rescue of numpy: A matrix from linear algebra and a 2D array are not exactly the same. In Python they are different convertible types and I think in practice it is hardly a drawback. That the multiplication operation is overloaded in the Mathematical World with the same symbol as the "normal" multiplication is unfortunate, numpys solution is as good as introducing two different operators (with one being an awk…

It is pretty standard for elementwise operations to use .

Matlab you have .* ./ .^ and probably more and for good reason.

I don't really see it as being awkward it actually very useful when needed, can be confusing if you're learning a language and think .* might be dot product though.

Re: Why I'm Betting On Julia

#169

Earlier quoted context omitted.

> I've never met a FFI I didn't come to loathe I've felt that pain. With so many new programming languages popping up, I've been wondering if the next killer programming improvement isn't strictly a programming language at all, but rather something that rethinks the linker, manages execution, and facilitates interfaces between larger blocks of code (maybe in multiple languages).

COM was actually not a bad model. Sadly the closest thing is HTTP and JSON right now.

s/was/is/

COM is the basis for most Windows APIs since XP, and the basis for the new WinRT runtime.

Lets see how it might look like with Windows 9.

Re: Why I'm Betting On Julia

#170
post #126

Earlier quoted context omitted.

The language may have been grating, but as someone who also comes from more of a scientific computing background, I read this as "I want a language to be a tool that I can use to solve scientific and engineering problems with minimal conceptual overhead due to minding language features." I read it as saying "Finally, a language designed for someone like me," which I also find true personally.

"I want a language to be a tool that I can use to solve scientific and engineering problems with minimal conceptual overhead due to minding language features." Among compiled languages, isn't that Fortran, especially since Fortran 90 on have multidimensional array operations, like Julia, Numpy, and Matlab.

It is of course, but there is a lot of convenience in using an interpreted language with a REPL and a decent standard library.
Post reply on HN