5 ms·
I haven't thus far been interested in Julia. Unless you're into high-level math, it didn't seem to provide much value, and it did weird stuff with arrays, and w
by qwertyuiop924 10y ago
I haven't thus far been interested in Julia. Unless you're into high-level math, it didn't seem to provide much value, and it did weird stuff with arrays, and wasn't Lua, which gets a free pass for being amazingly well designed in all other respects (arguably, it was well designed in that one as well, but it makes all the array math a pain).
I don't know, maybe it's great. Maybe I should reconsider. But then again, it's strongly typed, which isn't usually my sort of thing (I'm not working with a team, and my programs haven't devolved into chaos yet, so with no empirical data either way, I'll take my favorite)
- jhbadger 10y agoI'm not sure what you mean by "high-level math". It isn't a symbolic language like Mathematica for mathematics research but something along the lines of R for data analysis. The strong typing isn't just there for discipline, but efficiency in execution.
- qwertyuiop924 10y agoYeah. But it's definitely optimized for mathematical usage.
- Recurecur 10y agoSince programming is fundamentally mathematics (grin) that means it's a "general purpose language". There's nothing whatsoever preventing it from being a first-class string manipulation language for instance. Granted, the emphasis has been on applied mathematics. I think in the longer run it will branch in several directions, one being realtime simulation - and then on to games. It is close to C++ efficiency (plus or minus) already, and it will only get better. I haven't looked into Julia's GC implementation in detail, but I'm hopeful that with a little effort it's easy to avoid "stop the world" GC collections.
- JoeAltmaier 10y agoThat old saw is getting dull. Because something can be described by mathematics, does not make it mathematics. Else the whole universe would be mathematics. Programming is the art of getting a particular machine to do something you want. You may use math to get there (like in accounting or swimming) but its fundamentally a task that's performed by skilled people.
- inst 10y agoI do some high-level math work myself, so I may be biased. That said, I really like the optional static tying in Julia. It allows you to prototype an untyped mockup of your program really quickly, and add the types to your inner loops later if you find they're too slow. Now, I'm not working with colossal datasets, so for those you will probably want to statically type your inner loops the first time around or you'll be waiting a while. It should probably be noted that my job involves a lot of 'throwaway' code so for large, long-term projects this is probably not the ideal workflow, it just works for what I do.
- SixSigma 10y agoI use Julia. I work in Computational Logistics but some of the code I write is personal. This week I have used Julia for running SQL against SQLite, manipulating dictionaries, raytracing, statistical analysis, engineering problems, simplex optimization, processing data from Excel, k-means clustering. I'm pretty sure none of these would be classed as high-level math exactly, though some math is involved. Any it's not as strongly typed for writing code as you seem to think function fred(a, b) return a * b end would work to multiply its numeric arguments or concatenate string arguments but it would throw an error on mixed string / numeric arguments It also supports duck typing function jule(a, b) return a.value * b.value end will work no matter the types of a and b so long as they have the required attributes
- qwertyuiop924 10y agoSo, is it doing type inference, or is it weakly typed? I don't know. I mean, if Julia works for you, that's great. But it seems a bit awkward to me, and until now (and even now), there was the array indices elephant in the room (it's the Lua problem: Even if you support zero-based arrays, it's not supported by convention). As a Scheme/Lua/JS/Python/Ruby/C/Whatever else programmer (I don't know them all well, but I like to keep my hand in), I just don't see what Julia gets me. But that's just me.
- SixSigma 10y agoA combination of type inference, just in time compiling and multiple dispatch. The function is compiled at run-time if the signature is not already compiled. I've not really found the 1 index much of a problem, makes translating other code a bit awkward. The new dynamic indexing scheme (0 based, -10 based, whatever) seems interesting. What Julia gets me is a stats / machine learning environment I had to awkwardly program in Octave.
- qwertyuiop924 10y agoNeat. Like I said, I don't think I'll be picking it up, but I'm glad it works for you.
- deleted 10y ago[deleted]