Hi!, hope everyone’s ok. Sorry if this question is ambiguous (i’ll remove this if i break some rules here). This is more like a self-question in future (few years from now).
For instance, I have some familiarity with Elixir (concepts, ecosystem,
<fill the blanks here>). Can things taught from Elixir be transferable, specifically Rust? if so, what paths or stuffs did you do in order to click, to the point you could answer like eli5 type of questions?
Corresponding tweet for this thread:
Share link for this tweet.
Hello @OvermindDL1 … you might find this question interesting?
I’ll be curious what ODL (and others, like you @mafinar!) think too
Here’s my take…
Things will always be transferable, even if as a reference of how things are done differently in different languages.
The great thing about Elixir is that it’s a functional programming language, so many of those concepts can be transferred to other functional languages… or even help you understand non-functional languages a little better.
Lots of good examples in #book-learn-functional-programming-with-elixir, here’s my review of it to give you an idea of what I mean (it shows you how things might be working under the hood in other languages):
I don’t know Rust so I don’t have much to shed light on. However, I did transfer tons of knowledge from Elixir when I learned F#
I shared my experience at F# eXchange talk last year. I think that is open now, I’ll search and post that link in a bit.
My view on knowledge transfer is usually “how I would do it with language X” followed by “Why language X way isn’t right” followed by “Okay so language Y is not language X when doing Z”
I transferred a lot from Clojure when learning Elixir. Pipe for instance, but pipes (thread operator) is not used in Clojure as much as it is used in Elixir. On the other hand, you don’t use try/catch in Elixir as much as you do in Python. Things like these…
Here is the link. I am not sure if the video is open yet (it should be since it’s been awhile)
When I’m learning a new language I end up transfering some knowledge from one to another and back again.
This is good, but at the same time I always have this feeling that I’m writing with “accent” at the beginning until I get some fluency xD
In my experience you can usually transfer quite a bit between languages. I’ve been playing with rust quite a bit recently and I have generally found that at some level there is quite a bit that can be transferred from elixir when reading some parts with similar pipelines built on iterators. I found some functional learnings helpful though more from my attempts playing with Haskell and others with fairly strong type systems. From the other side of things, even if I had some amazing understanding of functional programming, I would’t be able to get through the basics without some primitive understanding of how the hardware works (essentially what you would need to do anything interesting in C, an assembly language or have a good understanding at a similar level). As it stands my thin memory of these topics is getting me through with some effort. I do find I look at stuff and grok it in part because of working with languages like elixir and some others. At the same time the compiler is smacking me sideways because I have forgotten a lot to do with dealing with things at a lower level and because I have never applied those concepts in contexts where you have to consider how resources are managed (this is actually really quite hard unless you have maintained familiarity with dealing with manual resource management).
Knowledge between languages is almost always transferrable. Knowing C, C++, OCaaml, F# or Haskell would be the most ‘similar’ to rust, but rust has a lot of new concepts that transfer well to help you be a better programmer in all other languages, so rust definitely gives back more than it uses, lol.
The more You learn languages, the easier it becomes. But sometimes it’s wrong to transfer knowledge… like Ruby and Elixir. Syntax is similar, but design is different.
That’s great to hear @OvermindDL1. Rust, coming from other people’s opinions/advice, is intimidating at the start. Even Elixir for me (despite others claim it’s small) is so vast including OTP (took me awhile to understand actor model too).
That’s one thing I’m truly grateful for people who shared their experience (esp. on that part), aside from official docs.