hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar-group.org | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | This channel is logged: irclog.cct.lsu.edu
<PatrickDiehl[m]> K-ballo: Yes, but it feels strange to install random numbers. For most other languages that seems to be in the core language.
K-ballo has quit [Quit: K-ballo]
hkaiser has quit [Quit: Bye!]
diehlpk_work has quit [Remote host closed the connection]
jehelset has quit [Ping timeout: 245 seconds]
hkaiser has joined #ste||ar
K-ballo has joined #ste||ar
<zao> The guidelines on what goes into std in Rust are a bit different than other languages. Only things that are truly essential, things that need special treatment, and things that only really have one alternative go in there.
<zao> If there's multiple alternatives and it might as well be in a crate, it ought to be in a crate.
<zao> If there's a need for some overarching traits about the thing, put that in a crate as well.
<zao> There's a way higher bar of stabilization and future-proofing needed for something in core/std than in a separate crate, and they'd rather have evolution and choice, as dependencies are way more ergonomic than in our languages.
<PatrickDiehl[m]> zao: thanks for the explanation.
<PatrickDiehl[m]> Next language is swift.
<PatrickDiehl[m]> I started yesterday and installing the language on Fedora is 1.5 GB.
<PatrickDiehl[m]> That is a lot for a compiler and some standard library
<zao> I do wonder how much you're missing out on by trying to use Swift on non-macOS, I've hard-assumed that it's largely pointless to pick up elsewhere, much like Obj-C.
<zao> Looking forward to the report tho :)
<K-ballo> swift has some magic obj-c interop, but otherwise is a regular modern language
<K-ballo> I found it a bit underwhelming
<jedi18[m]> I've heard a lot of good things about rust and am tempted to try it, but I've heard it also has a fairly high learning curve
<zao> I mean, a lot of the point to it may be in the Apple-specific libraries and ecosystem around it.
<jedi18[m]> Should probably focus on improving my c++ than learn another new language
<zao> Like you can program Obj-C on Windows, but without all the actual Apple frameworks, it's rather meh.
<zao> Rust is a fun and educational vacation, even if you don't settle.
<jedi18[m]> zao: Ohh, it's pretty similar to C++ though right?
<zao> Yes and no :)
<zao> The one thing I recommend having in mind looking at it is not whether you can express your C++ idioms and structures in it, rather let the ownership semantics and language rules shape the way you design your code.
<zao> The systems tend to guide you towards having to figure out your ownership and sharing, while you may play quite fast-and-loose with it in C++ and have it end up fine unassisted by happening to align to your intent.
<zao> Some people bail on it because they can't write code like they used to, or try to use traits as-if they're base classes, or try to do C++-grade template metaprogramming.
<zao> I bounced off hard in the pre-1.0 days and got back to it a few years later with the goal to try to do Advent of Code in Rust at my own pace.
<jedi18[m]> Ah yes I've heard of rust's borrow checker and how it forces you to write code in a certain way to ensure it's safe
<zao> Having to write concrete programs that solve smaller self-contained problems help with understanding a lot of things.
<jedi18[m]> Cool, maybe I'll try solving some leetcode problems in rust to get familiar with it
<zao> I think I started on the 10th of December and completed the final project somewhere toward the end of January.
<jedi18[m]> Nice, do you recommend advent of code? Heard of it but never tried it
<zao> It's a nice whimsical take on competitive programming with no real restrictions on time limits and tells a bit of a story as it progresses. Some of the problems are weird and a bit stilted, but all-in-all it's good fun.
<zao> Some graph algorithms, a fair bit of dynamic programming on grids, even a few that involves simple languages that you can interpret or make a VM for and analyze the flow of.
<zao> One of the nice things is that problems are often two-part, where the solution to the first is often possible to be naive in or brute-force to understand the problem, while the second requires more cleverness.
<jedi18[m]> Ohh, sounds interesting, I'll give it a try
<jedi18[m]> zao: So just the same question with more demanding inputs and tighter constraints?
<zao> Yeah, it typically is with inputs or changes in constraints that are likely to render the first solution inadequate, having you rethink how to approach the problem informed by how it fails.
<jedi18[m]> Ohhk, I tend to always start off with brute force solutions anyway
<jedi18[m]> Anyway thanks, I'll give it a try
<hkaiser> jedi18[m]: could we skip our meeting today, please?
<jedi18[m]> hkaiser: isn't it already cancelled due to thanksgiving?
<jedi18[m]> I recall Katie sending an email saying its canceled
<hkaiser> jedi18[m]: ok, just making sure
<jedi18[m]> hkaiser: Are the friday meetings over then since in the calender it's till the end of november?
<hkaiser> jedi18[m]: if you would like to continue those, we can keep them, no problem
<jedi18[m]> Yes please, since I plan to keep working on the same stuff after november too
<hkaiser> sure, we'll add it back, the previous recurring meeting just ran out
<jedi18[m]> Oh ok thanks!
<gonidelis[m]> jedi18: great!
K-ballo has quit [Quit: K-ballo]
K-ballo has joined #ste||ar