First thing I thought about Julia was "Oh this would be a breeze. It's yet another Python variant!" - boy was I wrong. Julia shifts my thinking from programming as an engineering activity to programming as a science.
Very nice, I know a bit of Julia, but didn't know about this sum trick x->x^2, 1:n or about this ÷ division. One thing that could have improved the code further is defining the functions by assignment: square_of_sum(n) = (n * (n + 1) ÷ 2)^2 sum_of_squares(n) = (n * (n + 1) * (2n + 1)) ÷ 6
About the functions looking like regular math. The (short) assignment form of functions makes for an even more mathy look, e.g.: sum_of_squares(n::Integer) = (n * (n + 1) * (2n + 1)) ÷ 6
Julia is great so far. With just this video, a bit of documentation and a background in Python I'm already solving Exercism challenges. And I just found out it even has a pipe operator (`|>`) like Haskell and Elixir. Amazing. (I'm still learning Haskell on the side since Functional February but what a difference that learning process is compared to Julia!)
Thanks Erik for the wonderful intro. I am intrigued about multiple dispatch, but could NOT fully understand why it is such a killer feature in Julia - i would check out the video mentioned. It would be good to add links to the resources you described. Do we use Julia anywhere in Exercism - it would be good to get some real-life use cases of where these languages are used (from your own experience) - these might enrich these track introductions?
Good shout about the links! I'll try add add those. For the moment, here is the link: ruclips.net/user/livekc9HwsxE1OY?feature=share We use Julia in our cross-repo syncing code: github.com/exercism/org-wide-files/blob/main/scripts/apply-track-config.jl
@@ErikSchierboom Thanks Erik. Nice to see how readable the Julia code is. I have now seen a video about multiple dispatches and how nice it is. I was very happy to learn that the indexing starts at 1 in Julia - you should mention it :)
I wish they would add the terseness/structure of F# and efficiency at low level programming of C next. I would like be able to write code that generates code. Supposedly there millions of lines of code in an operating system like Windows and Linux, and writing too much for one person, but if there were a language that generated code using expressions and descriptions, maybe.
i had the hope you would discuss multiple dispatch for user defined functions in the example since you (rightly so) hyped it as a core feature of the language dispatching of multiple types of the n input variable for example could be an idea
How does mojo compare to Julia. The developer of Mojo claims, that Mojo is more advanced because it is newer. Is that true? In what way is it better? Or is Julia still the faster language?
Hi, Beginner in Julia and Mojo (for about 5 and 3 months now). I can give you my beginner point of view. Both Julia and Mojo are fast. But if you are looking for pure speed, Mojo should be theoretically faster since it uses a "new technology" (MLIR) and is basically a static language. But Julia is really fast and it is easier/flexible to optimize your code and go even faster even though it is "optionally typed" and interactive. I would say it depends the use case. In my opinion, Julia is fast enough for most cases and can be improved using Julia code. While Mojo, was mostly designed to speed up Python code by replacing it with Mojo syntax. Keep in mind that the situation is not set in stone. Both Julia and specifically Mojo are young languages that are still growing. For instance, Julia is already more established than Mojo and has started projects to leverage MLIR (Brutus.jl or MLIR.jl). While Mojo has not reached a perfect compatibility with Python yet (coming soon), I believe many Python libraries should work. There is room for improvement in both Mojo (was open sourced recently) and Julia (ever growing and nice community).
First thing I thought about Julia was "Oh this would be a breeze. It's yet another Python variant!" - boy was I wrong. Julia shifts my thinking from programming as an engineering activity to programming as a science.
Nice! That's a lovely way of describing it 💙
It is a really cool and unique language.
One thing I forgot to show/stress is that functions also have a shorthand syntax, which is really nice: docs.julialang.org/en/v1/manual/functions/
This is really neat. Great demo of function overloading ❤
Just got to the bit about latex 😮 I 'knew' Julia had unicode support but I hadn't clicked that it had that kind of integer/float division behaviour
Really nice introduction Erik!
Excellent video!
Thank you! :)
Very nice, I know a bit of Julia, but didn't know about this sum trick x->x^2, 1:n or about this ÷ division. One thing that could have improved the code further is defining the functions by assignment:
square_of_sum(n) = (n * (n + 1) ÷ 2)^2
sum_of_squares(n) = (n * (n + 1) * (2n + 1)) ÷ 6
I totally should have done that, just forgot to do that!
About the functions looking like regular math. The (short) assignment form of functions makes for an even more mathy look, e.g.: sum_of_squares(n::Integer) = (n * (n + 1) * (2n + 1)) ÷ 6
Julia is great so far. With just this video, a bit of documentation and a background in Python I'm already solving Exercism challenges.
And I just found out it even has a pipe operator (`|>`) like Haskell and Elixir. Amazing.
(I'm still learning Haskell on the side since Functional February but what a difference that learning process is compared to Julia!)
Nice. This is great to hear! 💙
Great work!
Thanks Erik for the wonderful intro. I am intrigued about multiple dispatch, but could NOT fully understand why it is such a killer feature in Julia - i would check out the video mentioned. It would be good to add links to the resources you described.
Do we use Julia anywhere in Exercism - it would be good to get some real-life use cases of where these languages are used (from your own experience) - these might enrich these track introductions?
Good shout about the links! I'll try add add those. For the moment, here is the link: ruclips.net/user/livekc9HwsxE1OY?feature=share
We use Julia in our cross-repo syncing code: github.com/exercism/org-wide-files/blob/main/scripts/apply-track-config.jl
@@ErikSchierboom Thanks Erik. Nice to see how readable the Julia code is. I have now seen a video about multiple dispatches and how nice it is. I was very happy to learn that the indexing starts at 1 in Julia - you should mention it :)
I wish they would add the terseness/structure of F# and efficiency at low level programming of C next. I would like be able to write code that generates code. Supposedly there millions of lines of code in an operating system like Windows and Linux, and writing too much for one person, but if there were a language that generated code using expressions and descriptions, maybe.
i had the hope you would discuss multiple dispatch for user defined functions in the example since you (rightly so) hyped it as a core feature of the language
dispatching of multiple types of the n input variable for example could be an idea
It's always hard to try and balance the things one wants to show, versus the available time. Sorry
Leuke video!
Bedankt!
Is *multiple dispatch* an alternative phrase for *function overloading* ?
They're very similar, but the key difference is that function overloading happens at compile time, whereas multiple dispatch happens at run time.
@@ErikSchierboom Thank you.
Julia it is, for Analytical April
Enjoy!
Have fun!
I missed Analytical April 😢 Mathy May it is!
How does mojo compare to Julia.
The developer of Mojo claims, that Mojo is more advanced because it is newer. Is that true?
In what way is it better? Or is Julia still the faster language?
Hi,
Beginner in Julia and Mojo (for about 5 and 3 months now). I can give you my beginner point of view.
Both Julia and Mojo are fast. But if you are looking for pure speed, Mojo should be theoretically faster since it uses a "new technology" (MLIR) and is basically a static language. But Julia is really fast and it is easier/flexible to optimize your code and go even faster even though it is "optionally typed" and interactive. I would say it depends the use case. In my opinion, Julia is fast enough for most cases and can be improved using Julia code. While Mojo, was mostly designed to speed up Python code by replacing it with Mojo syntax.
Keep in mind that the situation is not set in stone. Both Julia and specifically Mojo are young languages that are still growing. For instance, Julia is already more established than Mojo and has started projects to leverage MLIR (Brutus.jl or MLIR.jl). While Mojo has not reached a perfect compatibility with Python yet (coming soon), I believe many Python libraries should work.
There is room for improvement in both Mojo (was open sourced recently) and Julia (ever growing and nice community).
Why does the philosophy of this language seem to be that everyone has 3 hours to wade through cruft to learn how to just get some code running?
Great video!
Thanks! 💙
Thanks~