Will julia ever be popular for general computing and Web stuff? It's s till fast for non scientific use cases, has multi threading (in master) and is getting go like channels.
FWIW, I work on Web-related stuff in Julia (like http://shashi.github.io/Escher.jl). I find Julia's type system more natural for general purpose modeling of data than, say, Python's classes. It's also really easy to enforce things like immutability or make stuff blazing fast if one needs to with little effort. Julia's multiple-dispatch is a great companion. On many occasions I've wondered if my code is even complete because it winds up being so small. Another thing to like is the hackability of any code. The standard-library is in Julia, you can look at any function's code from the REPL, and many more developer friendly features.
Jonathan Malmaud, Iain Dunning, Randy Zwitch, Mike Innes (OP) and many others write and maintain general purpose/web-related library code. I'm sure they will agree with some of what I said.
Definitely agree. Obviously a lot of people come to Julia for the performance, but even without that it's just a really nice language to work with. For me the speed is a nice bonus that gives Julia a surprisingly broad range of use – from one-shot scripts to fully-fledged C++ replacement (though obviously for quite a different class of applications than, say, the ones that Rust targets).
It's interesting that people see multiple dispatch as some esoteric computer science-y thing. In reality, it's just a way of organising code and complexity, just like object orientation is – and it has some compelling advantages over OO as well. For me, it's one of the killer features that I really miss in other languages, and it's well worth taking the time to understand it.
It would be great to see people doing more web stuff in Julia, but for the foreseeable future there will be some important caveats. The web libraries (including in Base) just aren't that fleshed out or battle-tested right now, and there's no Google-scale engineering effort making sure that the runtime is reliable over thousands of CPU hours. Whoever dives into that first will have to have a clear sense of the long-term value.
Escher looks really interesting, and a really good match to a hypothetical project I'm planning. So does Julia --- I've done a little scientific computing, mostly in C++, but I'm mostly interested in general-purpose programming, and a quick glance over Julia's feature set makes it look really promising. (Although I'd still like a static type checker.)
If all the logic happens server-side in Escher, what's the responsiveness like? Do you have a live example anywhere?
Are there any plans to transpile Julia into Javascript?
I think it will be interesting to see what happens with WebAsm. If Julia targets this at some point (it is based on LLVM, so there is a chance of this), then I think it will start to look quite attractive for various use cases that it isn't currently cornering.
Makes sense. But regardless, the core language is better than go in almost every way (as far as I know)... and it has python like syntax. I wonder if thats enough.
This is something that should be possible eventually. All the Fortran dependencies make it difficult, but as you probably already know, Base will see some trimming and some of these dependencies will become packages (perhaps default, but at least not Base).
I was talking to the WebAsm folks at LLVM Dev a couple of weeks ago and the conclusion was that WebAsm does not yet seem ready to be targeted by us (in particular we would like run-time code loading support for the JIT), but may be there in a year or two.
I think that could be a pretty huge deal too. Right now Javascript is being pushed to have enough speed to run applications from 15 years ago in the browser.
If an environment is able to have native speed, run in the browser and still be accessible to the people doing scripting now, it could have pretty large implications.
Go also fits the bill I suppose, but Julia is a much better designed language.
For general computing the question is how to deploy a Julia-based app. For server-side stuff, I suppose it's no worse than Python, but not as easy as Go where you create a standalone executable. For client side, I think it will be quite hard to target browsers or phones since Julia has an unusual kind of just-in-time compilation.
This could be overcome but it's not really Julia's niche which is interactive use of notebooks by scientists or other people who are comfortable writing code.
g0wda|10 years ago
Jonathan Malmaud, Iain Dunning, Randy Zwitch, Mike Innes (OP) and many others write and maintain general purpose/web-related library code. I'm sure they will agree with some of what I said.
one-more-minute|10 years ago
It's interesting that people see multiple dispatch as some esoteric computer science-y thing. In reality, it's just a way of organising code and complexity, just like object orientation is – and it has some compelling advantages over OO as well. For me, it's one of the killer features that I really miss in other languages, and it's well worth taking the time to understand it.
It would be great to see people doing more web stuff in Julia, but for the foreseeable future there will be some important caveats. The web libraries (including in Base) just aren't that fleshed out or battle-tested right now, and there's no Google-scale engineering effort making sure that the runtime is reliable over thousands of CPU hours. Whoever dives into that first will have to have a clear sense of the long-term value.
david-given|10 years ago
If all the logic happens server-side in Escher, what's the responsiveness like? Do you have a live example anywhere?
Are there any plans to transpile Julia into Javascript?
Nrpf|10 years ago
"more natural for general purpose modeling of data than, say, Python's classes"
Can you elaborate? In most cases single dispatch does just fine. Then class = type except much slower
g0wda|10 years ago
wbhart|10 years ago
Nrpf|10 years ago
ViralBShah|10 years ago
KenoFischer|10 years ago
CyberDildonics|10 years ago
If an environment is able to have native speed, run in the browser and still be accessible to the people doing scripting now, it could have pretty large implications.
Go also fits the bill I suppose, but Julia is a much better designed language.
skybrian|10 years ago
This could be overcome but it's not really Julia's niche which is interactive use of notebooks by scientists or other people who are comfortable writing code.