Post AMODvYdcz3xHU5M6YC by urusan@fosstodon.org
(DIR) More posts by urusan@fosstodon.org
(DIR) Post #AMMnRexE90iQQ4e6m8 by urusan@fosstodon.org
2022-08-09T23:26:34Z
0 likes, 0 repeats
Yes, YES!https://juliapackages.com/p/kittyterminalimages
(DIR) Post #AMMvdwWxQAlm2Wj74K by RL_Dane@fosstodon.org
2022-08-10T00:58:30Z
0 likes, 0 repeats
@urusan What is Julia?
(DIR) Post #AMN4xFYHp6PI7hd4xE by morenonatural@todon.nl
2022-08-10T02:42:44Z
0 likes, 0 repeats
@urusan yup ππ½
(DIR) Post #AMNHZ65IfdDXDLsuI4 by urusan@fosstodon.org
2022-08-10T05:04:06Z
0 likes, 0 repeats
@RL_Dane It's a relatively new programming language (largely backed by MIT) which combines high performance (similar to C) with high expressiveness (similar to Python).It's pretty popular in the scientific computing space, since you can basically express math in it and it'll generate a highly optimized implementation.The signature feature of Julia is multiple dispatch, which takes every parameter's type into account when choosing which method to call. This is unexpectedly powerful.
(DIR) Post #AMNHnFRcfPAgIY4cLI by urusan@fosstodon.org
2022-08-10T05:06:41Z
1 likes, 0 repeats
@RL_Dane Here's the link to Julia's website:https://julialang.org/
(DIR) Post #AMNyoP4YeT7ITf5AfY by RL_Dane@fosstodon.org
2022-08-10T13:08:39Z
0 likes, 0 repeats
@urusan Looks interesting!Don't you eventually get into trouble if you're not required to declare variables, though?Like, you might type XCoord in one place, and XCoordinate in another without realizing it?
(DIR) Post #AMO0sMefmWeg2vzWq0 by urusan@fosstodon.org
2022-08-10T13:31:50Z
0 likes, 0 repeats
@RL_Dane You're still declaring variables, if you use XCoordinate when only XCoord currently exists, then the compiler will still catch that.That said, the compiler (LLVM) is usually running during the program rather than before, so you may get your compile error at runtime. Traditional AoT compilation is possible, but not currently easy.There are also some dynamic possibilities that don't exist in more static languages.Testing the code is important in all languages though.
(DIR) Post #AMO0wEHaqqnVEr2UBU by urusan@fosstodon.org
2022-08-10T13:32:31Z
0 likes, 0 repeats
@RL_Dane Out of curiosity, which languages are you currently familiar with?
(DIR) Post #AMO1R3BIB2EvmhmwAy by RL_Dane@fosstodon.org
2022-08-10T13:38:04Z
0 likes, 0 repeats
@urusan Honestly, not a ton. I've never been a professional coder, so 99% of what I do right now is fun little (<100 SLOC) bash scripts here and there. I learned BASIC in the 80s, Pascal in the 90s, then a little C, some Perl, and some serious ksh/bash in the naughties, and a wee bit of Python in the teens. Mostly self-taught, never seriously got into OOP or more exotic things like functional programming.
(DIR) Post #AMO2h6SzpSeOYuHu5o by urusan@fosstodon.org
2022-08-10T13:52:07Z
0 likes, 0 repeats
@RL_Dane I'd highly recommend Julia for you based on your historical interests (and also since you do this mostly for fun).Out of these languages, it's the most like Python: https://docs.julialang.org/en/v1/manual/noteworthy-differences/#Noteworthy-differences-from-PythonJulia actually skips over OOP entirely. You can still emulate OOP, but it's definitely not an object-oriented language.It's also not a pure functional language either, so you can do all the fun functional stuff, but also you can also just write ordinary code in an ordinary syntax.
(DIR) Post #AMO3EkJufwqjio56Xo by urusan@fosstodon.org
2022-08-10T13:58:16Z
0 likes, 0 repeats
@RL_Dane If you prefer learning from a book, this is the best one I've found thus far (and it's free, though you can also buy a print version from O'Reilly): https://benlauwens.github.io/ThinkJulia.jl/latest/book.htmlI personally learned Julia from the manual: https://docs.julialang.org/en/v1/ This is an admittedly daunting way to learn it, even if the manual is designed to teach the language, rather than just serving as a reference.Julia also has a learning page on their website full of resources: https://julialang.org/learning/
(DIR) Post #AMO7tu4Xip3hemlycK by RL_Dane@fosstodon.org
2022-08-10T14:50:32Z
0 likes, 0 repeats
@urusan Sounds cool, thanks so much for the info!I wonder if it was named after the Julia Set, as it seems rather math-friendly βΊοΈ
(DIR) Post #AMO85bwUxC04u4ans8 by RL_Dane@fosstodon.org
2022-08-10T14:52:38Z
0 likes, 0 repeats
@urusan Just curious, what do you think about Rust?
(DIR) Post #AMO8wB8DMooT6A8g64 by urusan@fosstodon.org
2022-08-10T15:02:07Z
0 likes, 0 repeats
@RL_Dane I've only done a little bit in Rust.That said, I do like it. It would be my choice nowadays for an embedded/systems programming problem.Some people who know more about it have commented that it shows that a systems language can have nice things, and I agree with that assessment.It also has a decent package manager (cargo) built in, which is important for larger scale development. Julia has this too, but that's to be expected for something like Julia.
(DIR) Post #AMO93idvAeet3jZ5qy by RL_Dane@fosstodon.org
2022-08-10T15:03:28Z
0 likes, 0 repeats
@urusan Just curious (since I'm out of the IT loop for nearly a decade now), how would you compare/contrast the two?
(DIR) Post #AMOD5fZpwMRBwjq9Vg by urusan@fosstodon.org
2022-08-10T15:48:41Z
0 likes, 0 repeats
@RL_Dane They're not that dissimilar really, they're both really modern languages (essentially, the next generation) with most of the bells and whistles.Rust HAS to be AoT compiled, while Julia is normally JIT compiled but can be AoT compiled.Julia is much heavier (though they're working on this right now) so it takes longer to start up and AoT compiled Julia programs are much larger on disk and in memory. Rust has no(?) required dependencies and is a minimal user of RAM.
(DIR) Post #AMODRCFRfIMNM5ZDZQ by urusan@fosstodon.org
2022-08-10T15:52:34Z
0 likes, 0 repeats
@RL_Dane Julia has a GC, while Rust does not. Rust uses a (currently, seemingly) unique approach to memory management, which is Rust's most unique language feature.Rust is a pretty typical single dispatch language, with OOP features, even though it doesn't purport to actually be OOP. Julia uses multiple dispatch, which is its most unique language feature.As far as I can tell, Rust seems to require types for everything, while types are optional in Julia. Both have rich type systems.
(DIR) Post #AMODvYdcz3xHU5M6YC by urusan@fosstodon.org
2022-08-10T15:57:58Z
0 likes, 0 repeats
@RL_Dane Julia is way better in terms of user friendliness. Rust is friendly for a systems language, but it's still pretty hardcore.While Rust's lack of memory management is made much easier by the borrow checking memory management, you still have to deal with it instead of handing over responsibility to the GC (or in many cases, letting Julia's compiler figure it out for you).Julia has a lot of neat stuff related to math and data science. Rust is more popular and has more packages (crates).
(DIR) Post #AMOEltqxLtjsL7Y4LQ by urusan@fosstodon.org
2022-08-10T16:07:31Z
0 likes, 0 repeats
@RL_Dane Actually, looking around, some developers have built various Rust REPL implementations, so it might be possible to do JIT/scripting in Rust. My earlier assertion that Rust is AoT-only is incorrect.As far as I can tell though, neither language is great for scripting today. They both emphasize long-term performance over responsiveness.Julia will probably be a great scripting language in about 2-5 yearsDepending on how good the REPLs are, Rust might be pretty good for scripting today
(DIR) Post #AMOEnVamWaDdfukZ16 by urusan@fosstodon.org
2022-08-10T16:07:52Z
0 likes, 0 repeats
@RL_Dane Really, anything I say about Rust should be taken with a grain of salt since I'm relatively unfamiliar with it.
(DIR) Post #AMOEsJgQEHnUBhgHBI by RL_Dane@fosstodon.org
2022-08-10T16:08:32Z
0 likes, 0 repeats
Sounds awesome, dude!Thanks for taking the time to explain it to me! π
(DIR) Post #AMOEt0pnnHqm1FOsGu by RL_Dane@fosstodon.org
2022-08-10T16:08:46Z
0 likes, 0 repeats
@urusan That's ok, even a cursory comparison is very helpful :)
(DIR) Post #AMOFBHNd15WSXxvs9o by manuelcaeiro@mastodon.social
2022-08-10T16:12:07Z
0 likes, 0 repeats
@urusan Oh! I didn't know about that. Yes! Yes!(One can clearly see here why wives and GFs are jelous of Julia.
(DIR) Post #AMOFJO1iBlrhTeXyKW by manuelcaeiro@mastodon.social
2022-08-10T16:13:35Z
0 likes, 0 repeats
@urusan Oh! I didn't know about that. Yes! (One can clearly see here why wives and GFs are jealous of Julia. π
)
(DIR) Post #AMOIIJ4dPxVPgn5h7w by urusan@fosstodon.org
2022-08-10T16:47:00Z
0 likes, 0 repeats
@RL_Dane One last quick side note: The only real problem with Julia and scripting is the responsiveness issue. If you run `julia myscript.jl` then you'll be waiting a good 1/3 of a second for Julia to start up. Then if you use any substantial libraries (like HTTP), you might be waiting around for several seconds.It's really fast after that initial start up time, but that doesn't help much when it's always running from the start.In terms of ease of scripting though it's great.