7 ms·
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 g
by tadlan 11y ago
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.
- g0wda 11y ago0.4 already ships with Go-like channels. http://docs.julialang.org/en/latest/manual/parallel-computing/#channels http://docs.julialang.org/en/latest/manual/parallel-computin...
- wbhart 11y agoI 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.
- Nrpf 11y agoMakes 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.
- wbhart 11y agoI personally think Julia is technologically superior to a number of popular languages, with a voracious appetite for even more smarts. But you are right that this isn't necessarily enough. Based on what I've seen so far, I think Julia could eventually break into the Tiobe top 20 languages (it's currently in the top 100). On the other hand, I think this is plenty. As a language currently aimed at (admittedly fairly large) niches that would be an outstanding outcome. It also makes it fun to work with as a language. It's not just more chicken.
- CyberDildonics 11y agoI 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.
- ViralBShah 11y agoThis 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).
- KenoFischer 11y agoI 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.
- wbhart 11y agoYeah I watched one of the recent vids where they presented the latest on WebAsm and I came to the same conclusion. I imagine it is worth looking into and interacting with those guys so that Julia isn't overlooked by them for the time being, and maybe reassess in another year. It was pleasing to see one of the first questions from the audience after that talk was about Julia.
- g0wda 11y agoFWIW, I work on Web-related stuff in Julia (like http://shashi.github.io/Escher.jl 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.
- Nrpf 11y agoYes escher is amazing thanks :) "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
- elcritch 11y agoNot the parent, but I agree with Julia types being more natural for many purposes. It's far easier to create new Julia types for modeling a new domain than Python classes. Genrally, types are much more succinct to declare than classes. They're also type checked and parameterized which allow you to do some rather nice things with an API design that would require a lot of if/else behavior checking in Python classes. The separation of implementation and data declarations via multiple dispatch makes a large assortment of problems much easier to solve. For example, it's much easier to extend the built in behavior of default Julia types such as dictionaries by adding your own custom method (often on line of code) which is incredibly useful for short data processing script. There isn't as much web focus in Julia currently, but once the implementation makes it easier to possibly "pre compile" an executable I think there could be a big boom in usage for web engines. I'm on a mobile device currently and can't really write out more explicit details. Maybe later I can write out a lab example.
- 11y ago
- skybrian 11y agoFor 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.