after two weeks of actually learning rust by writing something, i am kicking myself for not doing this sooner. a bunch of concepts that i have wanted are already here and i have just been fighting python without having them for awhile. the concurrency dog. being able to actually design in concurrency in a way that makes sense rules. read/write locks as builtins, actually being able to control access to stuff so concepts that are forbidden in python like shared memory between real threads are possible. going to remember this for the future, the cost of learning a new language is not greater than the things it lets you do, if the fit is right. entering my actual polyglot era
@jonny yeah shared memory between threads uh *looks nervously at C++ and how it just doesn't care who touches what: 'you're on your own, kid'*
re: not important, rust, learning things
@jonny
If you decide to truly polyglot it... Learn Julia. Its designed as a language that you can write scientific computing stuff in quickly, and then you can profile it and rewrite the slow parts in Julia to make them fast. that is, its both fast to write and has the depth to do all the optimization also in Julia.
And concurrency is often pretty damn quick with very simple macros that rewrite loops into parallel execution, etc.
@dlakelan i've been told this many times, do you have any examples that you like of like "this is beautiful julia"?
re: not important, rust, learning things
@jonny
I don't have any beautiful Julia examples. I have some 4 year old Julia comparison examples between Julia and R... I nerd sniped @hipsterelectron into modifying one of the comparisons
@jonny I think it’s beautiful that you can perfectly convey something in one language that you can’t in another. Otherwise, wouldn’t we just settle on one language?
tbc i am not forsaking python, it is still the tool that fits for like 90% of human shaped things i want to do. but for the other cases where i genuinely need to have lots of control over what is happening it's good to have another thing to reach for. but i also want to see more and more languages because it's obviously changing the way i think about how to design things already. metaphors are important.
@jonny if you really want to see new things in programming, I'd suggest uiua (uiua.org)
So different and elegant, and.... Surprising.
@jonny at first, it can feel like a esolang... But try it, and it can make amazing things and there are many concepts I've never seen in other languages.
You need to reconfigure your programming brain.
@david_chisnall this looks important for me to read regardless, thanks
New (to me) concurrency models always make a good read.
@jonny Haskell did this for me. I write nothing in Haskell, but I write everything a little Haskell shaped now.
@jonny now do erlang 😉
@wohali there are so many weird things to see in this world, i don't even know what universe that is in
@jonny it's just the things you mentioned as important to you, are native to erlang (and elixir)... and it happens to be one of my fav runtimes to work in 😉
can't deny rust being quite featureful and capable though!
@wohali @jonny https://gleam.run is a gorgeous language on the BEAM. Alas my time is finite.