Julia in 100 Seconds

Ғылым және технология

Julia is a dynamic general purpose programming language popular for scientific computing and big data analytics. It is extremely fast thanks to its use of a JIT compiler and allows developers to write concise, yet powerful code.
#compsci #programming #100SecondsOfCode
🔗 Resources
Julia Language julialang.org/
Why Julia? julialang.org/blog/2012/02/wh...
Python in 100 Seconds • Python in 100 Seconds
C in 100 Seconds • C in 100 Seconds
🔥 Get More Content - Upgrade to PRO
Upgrade to Fireship PRO at fireship.io/pro
Use code lORhwXd2 for 25% off your first payment.
🎨 My Editor Settings
- Atom One Dark
- vscode-icons
- Fira Code Font
🔖 Topics Covered
- Julia basics tutorial
- Julia vs Python
- Julia vs R
- what is Julia used for?
- who created Julia?
- parametric types and polymorphism explained
- Julia type system explained
- is Julia easy to learn?

Пікірлер: 1 000

  • @carlosmspk
    @carlosmspk2 жыл бұрын

    I love how you just casually finish with "can run on the GPU natively" like that's not a big deal

  • @nateF888

    @nateF888

    2 жыл бұрын

    Im new to programmnjing. How is that a big deal

  • @0xDEAD_Inside

    @0xDEAD_Inside

    2 жыл бұрын

    @@nateF888 it means you don't have to use wierd libraries and syntax to run GPU code. Eg. Cuda

  • @bastianurbach

    @bastianurbach

    2 жыл бұрын

    @@nateF888 GPUs use a variation of SIMD parallelism, which means that the same code is executed simultaneously on many different sets of data. This is great for graphics because quite often you'll need to run the same code once per pixel or once per vertex of a 3D object or something like that. It does however come with some restrictions. Even a simple if-else requires a bit of trickery and is only efficient in some cases. What GPUs simply cannot do is function pointers. You may not notice it when programming in a high level language but most languages extensively use function pointers, i.e. they pass a reference to executable code around like a value. This makes translating code for the GPU from normal programming languages challenging. Usually you use GPU-specific programming languages like GLSL or HLSL. As for why it's great to run code on the GPU: SIMD parallelism is very efficient for tasks where it works well. An Intel Core i5 12400 can perform 47 billion floating point operations per second (and I think that already includes the little bit of SIMD that even CPUs have nowadays). It also comes with a basic integrated GPU so that it can be used without an actual graphics card. It's not enough for high end gaming but it's ok for most everyday tasks. That Intel UHD Graphics 730 on the same chip can perform 350 billion floating point operations per second.

  • @balazsh2

    @balazsh2

    2 жыл бұрын

    @@bastianurbach if youtube was anything like reddit you'd have multiple awards right now 🏆

  • @musashi542

    @musashi542

    2 жыл бұрын

    @@bastianurbach how tf u know all of this

  • @arduous222
    @arduous2222 жыл бұрын

    You forgot one important aspect of Julia: index starts at 1, not 0.

  • @chri-k

    @chri-k

    2 жыл бұрын

    now I’ve decided that I’m not going to learn it after all.

  • @Croesquared

    @Croesquared

    2 жыл бұрын

    You can actually change this

  • @chri-k

    @chri-k

    2 жыл бұрын

    @@Croesquared you can? Does that not make it “incompatible with itself”?

  • @Croesquared

    @Croesquared

    2 жыл бұрын

    @@chri-k nope, just define an AbstractArray with FirstIndex=0. Julia is intelligent enough to handle it

  • @chri-k

    @chri-k

    2 жыл бұрын

    @@Croesquared in that case, I misunderstood you, significantly.

  • @nanotichorizon9644
    @nanotichorizon96442 жыл бұрын

    I've been using Julia in a few of my micro applications and the ecosystem/dev environment is not only very friendly and accommodating, but it is beautiful to write. It's a Love triangle of Ruby and C++ with python at the bottom.

  • @daleryanaldover6545

    @daleryanaldover6545

    2 жыл бұрын

    so it's a polyamory of programming languages

  • @MrNallana

    @MrNallana

    2 жыл бұрын

    Python at the bottom or python …. in the middle…. ? hehehe

  • @TheMR-777

    @TheMR-777

    2 жыл бұрын

    Truly agree.

  • @ThompsonEdolo

    @ThompsonEdolo

    2 жыл бұрын

    Or Python in the bottom?😁😈

  • @draugh1r219

    @draugh1r219

    2 жыл бұрын

    i would say c instead of c++

  • @ShadowDatsas
    @ShadowDatsas2 жыл бұрын

    I've changed to Julia from Python early in my scientific career (differential equations, numerical modelling) and it has been the best decision in my life!

  • @pauljones9150

    @pauljones9150

    2 жыл бұрын

    Go on. Tell me more

  • @prashanthb6521

    @prashanthb6521

    2 жыл бұрын

    I am thinking to change over fully next year.

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    We love to hear and see it!

  • @klittlet

    @klittlet

    2 жыл бұрын

    Shh! The python cultists might hear you!

  • @AlexanderSuraphel

    @AlexanderSuraphel

    2 жыл бұрын

    Using Python due to its vast library. How is availability of libraries in Julia?

  • @marendor9087
    @marendor90872 жыл бұрын

    Been asking for Julia in 100 seconds for nearly a year, and finally, here we are. Thank you 😁

  • @fredrickdenga7552

    @fredrickdenga7552

    2 жыл бұрын

    I actually remember such a comment

  • @anon9322

    @anon9322

    2 жыл бұрын

    he said he made it for you on twitter

  • @aurelia8028

    @aurelia8028

    2 жыл бұрын

    You spent a whole year taking 100 seconds to ask a question?

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    Thank you for asking and being patient, we are as excited as you are!

  • @marendor9087

    @marendor9087

    2 жыл бұрын

    @@TheJuliaLanguage Real Julia Programming😳😮🤯

  • @UliTroyo
    @UliTroyo2 жыл бұрын

    I love Julia! I hope it gets picked up for elective courses in compsci in universities, and built into graphic calculators. It makes math such a breeze! For one, it handles rational values with the // operator, so you can for example multiply 3//4 * 1//2 (to give you 3//8). It handles vectors and matrices and has SO many built-in math functions. Great language!

  • @universecode1101

    @universecode1101

    2 жыл бұрын

    It seems amazing

  • @masterbaitt

    @masterbaitt

    2 жыл бұрын

    Well say no more, in my uni they are teaching algo, linear equations, optimization by implementing it in Julia. And I must say, what a powerful language, blows my mind when compared to python.

  • @nagoshi01

    @nagoshi01

    2 жыл бұрын

    @@masterbaitt That sounds like a great class.

  • @lawrencedoliveiro9104

    @lawrencedoliveiro9104

    2 жыл бұрын

    Python handles its rational Fraction type with the regular “/” operator. E.g. from fractions import \ Fraction as F print(F(3) / 4 * 1 / 2) prints out 3/8

  • @trejohnson7677

    @trejohnson7677

    2 жыл бұрын

    I’m actually planning on porting Emac’s Calc program as a capstone for my Julia foray. Whats nice about Julia is that as it stands, it nearly IS the graphic calculator.

  • @ayushvyas3401
    @ayushvyas34012 жыл бұрын

    I Like how at 1:02 you typed .js then corrected yourself showing the love you have for JavaScript or maybe it's because you've covered soo many js frameworks that your muscle memory can't help itself but type .js whenever there's need of an extension

  • @JBuchmann

    @JBuchmann

    2 жыл бұрын

    @Bruno Nahorny yeah, definitely done on purpose

  • @xdrap1

    @xdrap1

    2 жыл бұрын

    He was thinking on many Julias, that lil perv…

  • @ayitinya

    @ayitinya

    2 жыл бұрын

    I do make that mistake often too 🤣

  • @francis_n

    @francis_n

    2 жыл бұрын

    I came looking for a comment like this 😅

  • @12px

    @12px

    2 жыл бұрын

    I was looking for this comment xd

  • @spazioLVGA
    @spazioLVGA2 жыл бұрын

    Julia is an amazing language. Fast yet concise code, but the true power lies in composability in my opinion. The way you can mix together custom types from many different libraries and make them smoothly work together is almost like magic. The package manager is also

  • @nghattersley

    @nghattersley

    2 жыл бұрын

    Agree. I always point people to this talk: kzread.info/dash/bejne/nZdtqtmsqKiXf7w.html

  • @NoNameAtAll2

    @NoNameAtAll2

    2 жыл бұрын

    I also wish it was available on mobile

  • @itzhexen0

    @itzhexen0

    2 жыл бұрын

    Maybe you should stop talking about how beautiful programming languages are and actually do something useful with them that makes the world better. The world is a big shithole and keeps getting worse. Programming has been around for a long time which leads me to the conclusion that most people on this planet are worthless.

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    Julia as an ecosystem is maturing rapidly, there's exponentially more stability than a few years ago and things will continue to get better!

  • @spazioLVGA

    @spazioLVGA

    2 жыл бұрын

    @@TheJuliaLanguage absolutely I agree that things are improving fast. It’s great that new features and libraries are being developed, but I feel like it would also be a good idea to coordinate the efforts with the newcomers’ experience in mind. Not blaming anyone, these things take time!

  • @haloforgeguy453
    @haloforgeguy4532 жыл бұрын

    Julia is by far the most under appreciated language, love it

  • @joeseabreeze

    @joeseabreeze

    2 жыл бұрын

    I definitely don't appreciate the 1-based indexing lol

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    You are telling us : )

  • @02orochi

    @02orochi

    2 жыл бұрын

    U r forgetting about groovy but yes, Julia deserves more attention

  • @matheusrubens3844

    @matheusrubens3844

    Жыл бұрын

    Lua: Am I a joke to you?

  • @isodoubIet

    @isodoubIet

    Жыл бұрын

    It's because it's a buggy mess. People try it out because it promises the world, then they see it doesn't live up, vote with their feet and move on. What you end up seeing is the language making huge promises but not having any widespread adoption and think people just aren't paying attention. They are, but they need a language that can actually be used in production and julia's not it.

  • @vermashwetank
    @vermashwetank2 жыл бұрын

    I think the best part of Julia is the differential equations library and it's amazing integration with Machine learning libraries. Scientific machine learning techniques like PINNs and neural ODEs are so much better in Julia than in pytorch or tensorflow.

  • @piotr780

    @piotr780

    2 жыл бұрын

    but how they are better?

  • @markodj99

    @markodj99

    2 жыл бұрын

    prob = ODEProblem(diff_eq!, x0, tspan, params) s = solve(prob) plot(s.t, s.u)

  • @anon9322

    @anon9322

    2 жыл бұрын

    things nobody uses except mathematicians

  • @jarrodangove1921

    @jarrodangove1921

    2 жыл бұрын

    @@anon9322 engineers of many disciplines live and breath differential equations. the fact that julia is both faster and easier to write than matlab, and also open source (free), makes it a huge game changer for the industry

  • @TAP7a

    @TAP7a

    2 жыл бұрын

    @@anon9322 things nobody should say if they don't know what they're talking about

  • @theambiencehive9326
    @theambiencehive9326 Жыл бұрын

    I've started a course on statistics and machine learning (regression stuff), in there they use scikit learn (python) and R. While i kinda-like python (coming from c-style languages missing curly-braces and all the other stuff is very very strange =D ), R felt outdated and overly complicated, because its syntax feels very very inconsistent, so i searched for a more modern alternative and stumbled upon Julia. It feels so much modern, consistend, well-thought through, it was like an epiphany, while i was fighting with R on many occasions, the Julia syntax just felt right, it was like "if i would be creating a language for maths and stuff, it would be exactly like this" =)

  • @Milkman-007

    @Milkman-007

    Жыл бұрын

    I use Julia for anything requiring heavy numeric and symbolic calculations, but still use R when I need to create and mutate a 2d array (dataframe). Don’t use base R though religiously stick to Tidyverse syntax (specifically dylplr).

  • @MechMK1
    @MechMK12 жыл бұрын

    Honestly, I love the fact that not every function must be attached to an object. I feel like our worship of OOP has lead us down a road that didn't really pay off. This whole "but OOP makes your code so reusable" promise was never really kept. I want a banana, and end up importing the whole jungle instead. I like that Julia does away with that.

  • @thecreature7808

    @thecreature7808

    2 жыл бұрын

    This implies that Julia is somehow unique in this regard whereas most functional, imperative, and multiparadigm languages all support first-class functions to some extent. I feel like the OOP=best debate is already outdated and nobody actually thinks this.

  • @MechMK1

    @MechMK1

    2 жыл бұрын

    @@thecreature7808 Julia isn't unique, I just like it. And where I'm from, the "OOP is King" mentality still exists unfortunately

  • @lucky-segfault4219

    @lucky-segfault4219

    2 жыл бұрын

    Rust, C++, JS, TS, go, and a few others let you do this too. OOP is overrated but it's still useful in some applications. The issue is more about understanding how a piece of code will be used and what paradigm is best for that a given use case

  • @nagoshi01

    @nagoshi01

    2 жыл бұрын

    Fuck OOP.

  • @danielschmider5069

    @danielschmider5069

    2 жыл бұрын

    @@MechMK1 so, Java and C#... ? I can't think of many others that still force you to do that

  • @DThorn619
    @DThorn6192 жыл бұрын

    Really love the speed/optimizations this language has. Had this particular code in MATLAB that took an average of 6 seconds to run, porting it to Julia reduced it down to 0.3 seconds, scale that up to the hundreds of times I usually run that code and the time saving explodes.

  • @lucky-segfault4219

    @lucky-segfault4219

    2 жыл бұрын

    Impressive. Any chance you'd try porting the same code to python with the numba JIT compiler library? I'd love to see how they compare. Some sources put numba's JIT compiler at 1000 times faster than native python execution of equivalent code in math heavy applications of course

  • @ApiolJoe

    @ApiolJoe

    2 жыл бұрын

    @@lucky-segfault4219 it's "up to" 1000 times faster. 1000x is not the norm.

  • @DThorn619

    @DThorn619

    2 жыл бұрын

    @@lucky-segfault4219 I don't work in the lab that had those codes anymore. But, I do know who maintains that code now, I'll let them know about your idea and maybe they'll implement it. If they do I'll let you know how it goes. It might work well since our code is for cell simulations and generally just involves thousands upon thousands of coupled diff eqs being solved.

  • @legesflute

    @legesflute

    Жыл бұрын

    FYI matlab is jit compiled as well, but with quite a different phylosophy wrt to julia, most probably the 20x speedup comes from memory management / allocations. I would bet numba achieves far less than 1000x wrt to matlab here (note that in general matlab is way faster then pure python).

  • @maxevangeliste
    @maxevangeliste2 жыл бұрын

    I usually frown a bit when discovering new languages because of the complexity of reading the unknown tokens and syntax in general. Didn't happen with this one. Seems very straightforward and flexible. Deserves an upvote... Or like...

  • @adityaprasad6743
    @adityaprasad6743 Жыл бұрын

    By far my favorite programming language. It's such a joy to write in that it almost makes you want to code

  • @anshulpandey1
    @anshulpandey12 жыл бұрын

    I haven't worked with Julia. But have read some articles about it and found the language is perfect for what it was made for like machine learning, data visualization, and mathematics.

  • @leonf.7893

    @leonf.7893

    2 жыл бұрын

    I'm still trying to figure out why some languages like this are "perfect" for some advanced things, but are somehow not for things I would consider easy, like web development.

  • @xynyde0

    @xynyde0

    2 жыл бұрын

    @@leonf.7893 Because it's not designed for the backend or frontend. Just for fast computation.

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    Yes, these are the common use cases!

  • @pavelperina7629

    @pavelperina7629

    2 жыл бұрын

    Likely. Depends on what you mean by data visualization, for text analysis, working with tables and plotting graphs, I'd choose Python. For working with large 2D to 4D data and computing them on fly, Python is painfully slow. Still viable if you can prototype it at small resolution and run overnight. But if you are doing some data processing and Python does not have fast library written in C++ for that purpose, maybe Julia is worth trying (C++ might be an option as well)

  • @Eagle3302PL

    @Eagle3302PL

    Жыл бұрын

    @@leonf.7893 Honestly, the only differentiators are the core library and the frameworks. You can do any task in any language with equal effectiveness as long as you sufficiently optimize the compiler or the runtime. The thing is that languages are built by communities, so they will prioritize core features and optimizations for specific tasks which in the long term makes them excel at that specific task while everything else is sidelined. Almost every language exists because at some point someone thought "I want feature x in language y with optimizations for z" so they create a chimera that's focused on their specific problem, then people that have a similar problem congregate.

  • @DrKirby-vw9wt
    @DrKirby-vw9wt2 жыл бұрын

    Don’t know if this has been suggested before, but I think a PHP for the haters video would be great to watch! It would be entertaining to see how you go about roasting that language.

  • @shogo6

    @shogo6

    2 жыл бұрын

    He's already made one if I'm not mistaken

  • @daleryanaldover6545

    @daleryanaldover6545

    2 жыл бұрын

    He made Java for the haters, based in my interactions with various communities I thought Ruby would take the crown of most hated language but Jeff introduced a different perspective.

  • @MaryamMaqdisi

    @MaryamMaqdisi

    2 жыл бұрын

    @@daleryanaldover6545 why do people hate Ruby? I never heard of that but maybe we just know very different people

  • @the-pink-hacker

    @the-pink-hacker

    2 жыл бұрын

    But it a perfect language, and it has no flaws. /s

  • @Remeroska

    @Remeroska

    2 жыл бұрын

    PHP has already roasted itself too much in the past. Let it rest hahah

  • @meisteravinderweise4893
    @meisteravinderweise48932 жыл бұрын

    I was so hoping this video would come. Julia is a blessing for any scientific work

  • @bhaveshbhide
    @bhaveshbhide2 жыл бұрын

    Because of your 100 seconds series, I don't have to keep trying all the languages out there by myself and struggle through the docs. Thank you!

  • @louieaaa3818
    @louieaaa38182 жыл бұрын

    Woah! I remember suggesting Julia in one of your community posts but I never thought you'd do it. Thank you for this! It puts into perspective just how much is crammed into Julia and all the features it has. You didn't even mention the metaprogramming aspect, one-based indexing, column-major order, REPL workflow, etc., but for a short video like this it sure is jam-packed.

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    The REPL workflow is such a great feature!

  • @hugodsa89
    @hugodsa892 жыл бұрын

    Wow this is my favourite in 100 seconds video. Really exciting language, that I even though had heard of it, never took time to read into it and now I feel like I’m missing out. Julia seems really really amazing and different. I’m hoping there is a wider use than stats, data viz and such. Thanks Jeff

  • @iTsBadboyJay

    @iTsBadboyJay

    2 жыл бұрын

    Exactly how I feel . How dvqoes Julia have so many neat features but remain so low key . Feels like I’m missing out

  • @universecode1101

    @universecode1101

    2 жыл бұрын

    Yeah it seems amazing 😄

  • @asii_k

    @asii_k

    2 жыл бұрын

    @@iTsBadboyJay python just has so much developed for it and such wide spread use it's hard to overcome. Maybe in the long run julia will take over for the scientific/math/data/ML type applications (much like python itself has had slow but steady growth for years and years) but it's not likely to happen over night. That said, I do feel like I see it mentioned more than I did 3 or 4 years ago

  • @elijahbuchanan2368

    @elijahbuchanan2368

    2 жыл бұрын

    The use cases are expanding. Like, there has been work on using it for server side stuff, front end web design, and even some game dev stuff, but the libraries for that arent super developed. atm it is mostly large computing and stats and science stuff

  • @danielcelisgarza

    @danielcelisgarza

    2 жыл бұрын

    I think the language will properly explode with Julia 2.0. I think that's when they want to have full support for ahead of time compilation. So executables can be small and portable. Currently, you can statically compile your code, but the executables are huge because they include everything exported by dependancies or imported by your code.

  • @ominousplatypus380
    @ominousplatypus3802 жыл бұрын

    Some optimization classes at my university used Julia and I really liked the language. Unfortunately have never had the chance to use it on the job.

  • @noookii
    @noookii2 жыл бұрын

    Really cool language, everyone says they had to use it for comp sci but I had to use it for linear algebra in my uni class. Pretty useful!!

  • @ThomasTJDavis
    @ThomasTJDavis2 жыл бұрын

    I was really hoping you’d cover Julia. I really like it and hope that more people end up using it.

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    We hope so too!

  • @FusionTerror
    @FusionTerror2 жыл бұрын

    Keep up the amazing content, Fireship!

  • @Kerbiebro
    @Kerbiebro2 жыл бұрын

    Using Julia at work now to do some cool things. First time I see one of your videos on something I already knew, made me appreciate your channel even more. Keep up the great work!

  • @dawizze1
    @dawizze12 жыл бұрын

    Love the show of love for Julia with a 100 seconds vid. Deserves it! You da best!

  • @ayitinya
    @ayitinya2 жыл бұрын

    It's been a long time coming. Waited for this for so long

  • @banalban8149
    @banalban81492 жыл бұрын

    "and run natively on the gpu" what an ending i love it

  • @botstudio.
    @botstudio.2 жыл бұрын

    Didn’t know this language existed until now, looks amazing! Suggestion, would be 100 seconds of Haxe, would be pretty cool.

  • @tomydurazno6243
    @tomydurazno62432 жыл бұрын

    I love the multiple dispatch, the type annotation lets the JIT complier optimize the code to specific machine code for each type, making it super fast (C# its other language that has an amazing JIT), but you a have a first call performance cost, I guess that its some kind of issue unless they also implent some AOT compilation also, other than that this language is really really interesting and for sure will become a top choice in the future

  • @emilolszewski4082
    @emilolszewski40822 жыл бұрын

    I've literally just finished julia assignment for my uni course and this vid came out. Mental

  • @sapito515
    @sapito5152 жыл бұрын

    Been using Julia for about 6 months now, it is absolutely awesome, give it a try.

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    Great to hear!

  • @vgus
    @vgus2 жыл бұрын

    You save a lot of time with these 100s videos, if I want to learn some concept first I review if you made a video. Thanks a lot!! Could you please, make a video about UML and some other methods display process.

  • @RuinousGrace
    @RuinousGrace2 жыл бұрын

    Yay! Thank you for covering Julia. :)

  • @lucastperez
    @lucastperez2 жыл бұрын

    A friend of mine told me about julia almost 10 years ago, it was at the very beginning, and he said it was really good and his favotire language. I have never learned past the ultra basics, and the name never left my mind.

  • @andresvivallo8695
    @andresvivallo86952 жыл бұрын

    I'd love to watch "Making a 100 second video in 100 seconds"

  • @jeremygee972

    @jeremygee972

    2 жыл бұрын

    kzread.info/dash/bejne/gGphs5Sdl9LKfNY.html

  • @jwcfive7999
    @jwcfive7999 Жыл бұрын

    I started learning Julia a few weeks ago, and all I can say is that it is by far my favorite programming language. I will give my opinions on it, but I'm not extremely familiar with computer science, so forgive my vocabulary and lack of other languages for comparison. I will say what I like as I think of it. I love the range operator (:), it makes it very easy to iterate through values, and can also be reversed and modified to include a jump (sorry for the lack of better words). It also works with strings, as it does in python. However, it has a few differences from pythons. First of all, the range operator can actually be used in a for loop. For example, for i=1:10 ... end instead of for i in range(1,10). Another difference is the use of the end operator. In python, strings can be accessed from the last index using something like [-3:]. But in Julia, end must be used, for example as [end-3:end], which is better for visual purposes and avoiding confusion. Speaking of end, Julia avoids any confusing by closing if statements, functions, for/while loops, do statements, let statements, structs, and more using the end keyword, which avoids confusion and removes the picky indentation system that python features. semicolons are also available for use, but are optional Functions can also be declared like f(x) = x + 2, which is very cool in my opinion. I'm not aware of any specific language that does this other than Julia, but there are likely some. Another thing I love in Julia is the unicode implementation. In VSCode, I can input unicode characters that actually are interpreted as certain things. for example, for i in 1:10 is the same as for i ∈ 1:10. There are so many more examples of this, which I find very fun to use. I mentioned earlier do statements, which make iteration and other things very easy. Things like map( num -> num+2, 1:10 ) can be replaced with map(1:10) do num num+2 end, which is very syntactically nice. These are just a few of the things I enjoy, among so many more. If you like simple but powerful languages, check out Julia. I did, and I don't regret it. Programming in Julia is extremely enjoyable. It has its own package manager, great documentation, many amazing packages, so many functions and tools, and much more. Enjoy!

  • @bismajoyosumarto1237

    @bismajoyosumarto1237

    11 ай бұрын

    Just wanted to let you know, functions that can be declared like f(x) = x + 2 is a feature of a programming paradigm called "functional programming". Pretty much all "functional programming languages" (programming languages that mainly follow the functional programming paradigm, such as Haskell) have that feature. You can also do that in Python using lambda as follows: f = lambda x: x + 2

  • @samuelwaller4924

    @samuelwaller4924

    6 ай бұрын

    most languages have some kind of keyword or syntax for ending blocks, python is very much the odd one out for using semantic indentation.

  • @yoyoyoesmeriz
    @yoyoyoesmeriz2 жыл бұрын

    Wow I suggested this in another video and you actually did it! Thank you, good stuff as always!

  • @pupfriend
    @pupfriend2 жыл бұрын

    LOL - love that you named it .js then corrected it, the subtle humor on this channel is amazing

  • @Pedro-dn3sg
    @Pedro-dn3sg2 жыл бұрын

    If I'm not mistaken, Julia isn't JIT. The compiler isn't active during runtime. I've seen people in the Julia community calling it "Just Ahead of Time", instead of "Just in Time".

  • @CodecrafterArtemis
    @CodecrafterArtemis2 жыл бұрын

    Wow, this is really interesting. I kinda looked past Julia when I first saw its announcement, but now I'm interested as heck. Could you make a similar video about Nim or D?

  • @danielcelisgarza

    @danielcelisgarza

    2 жыл бұрын

    I learned about Julia in 2012. Back then they had this claim that it was super fast and generic. I even saw their benchmark, but I never believed it. Wasn't until 2020 that I gave it a go. It's my main language now.

  • @004307ec
    @004307ec2 жыл бұрын

    Nice, you have reminded me that I should resume my learning of Julia lang.

  • @michaelsarkis6239
    @michaelsarkis62392 жыл бұрын

    Really been waiting for this one!

  • @wavegreen
    @wavegreen2 жыл бұрын

    We had to use Julia in Applied Mathematics at UNI last year when the only docs were the ones from Julia itself. No yt vids, no stackoverflow, no nothing. It was hell.

  • @uku4171

    @uku4171

    2 жыл бұрын

    What were the difficulties?

  • @capalasker
    @capalasker2 жыл бұрын

    Please consider a video on Fortran. Modern Fortran is similar to Julia in some ways, emphasizing performance and used in scientific computing, with good support for multi-dimensional arrays.

  • @ruther4336

    @ruther4336

    2 жыл бұрын

    We got our Fortran video! And yeah, Modern Fortran is a great language, I'm currently refactoring some hideous codes to modern standards and the difference is enormous

  • @BGroothedde
    @BGroothedde2 жыл бұрын

    I've heard of Julia but never had a reason to look into it, now I do. Cool video!

  • @guilhermebalog
    @guilhermebalog2 жыл бұрын

    This is the first time I see a julia code, and i seems like a very good language! I will learn more about it.

  • @leonamer4054
    @leonamer40542 жыл бұрын

    Fun fact: Did you know Julia ships a patched version of LLVM to fix correctness bugs in numerical methods? While at the same time the Julia ecosystem and libraries have reported a big number of correctness bugs...

  • @hitlerssecondcoming2523
    @hitlerssecondcoming25232 жыл бұрын

    In my academic work julia has completely replaced python for me. Fast for loops are a game changer!

  • @TheJuliaLanguage

    @TheJuliaLanguage

    2 жыл бұрын

    Love to hear it, would be interested to hear more about how you are using it!

  • @hitlerssecondcoming2523

    @hitlerssecondcoming2523

    2 жыл бұрын

    @@TheJuliaLanguage Mainly data analysis, simulations (differential equation library is very useful), and graphing.

  • @dentjoener
    @dentjoener2 жыл бұрын

    Because of the multiple dispatch, Julia has built-in support for solving the Expression Problem. Which is really neat!

  • @goosenp
    @goosenp2 жыл бұрын

    I write a comment requesting this video on a previous one. Thank you so much Fireship! 🔥🔥🔥

  • @eliarece-5996
    @eliarece-59962 жыл бұрын

    1:03 I see what you did there

  • @porqpine53
    @porqpine532 жыл бұрын

    I used Julia in my numerical analysis class in undergrad. Amazing for quick matrix manipulation for PCA and image processing

  • @spirit3648

    @spirit3648

    Жыл бұрын

    Great, I'm using it in a game engine

  • @adrianhenle

    @adrianhenle

    Жыл бұрын

    I taught a class this week on PCA. Blew all the students' minds when I showed them you can do it in just a few lines of base Julia, and have it run faster than ScikitLearn.

  • @itzhexen0
    @itzhexen02 жыл бұрын

    I like how every person who comments is proficient in every language you post about. Amazing.

  • @codestuff3685
    @codestuff36852 жыл бұрын

    as always great one. thanks for all of your videos

  • @lutzleipold5206
    @lutzleipold52062 жыл бұрын

    By far the best language for academic and scientific purposes. My brother uses it all the time and loves it. It also got me to shut up about how slow his python code used to run, because Julia performed just as well as the random C replacement I would show him could do the job better (obviously it was minutes to sheer seconds faster then the python variant).

  • @nathanjokeley4102

    @nathanjokeley4102

    Жыл бұрын

    why not just use a jit compiler for python.

  • @lutzleipold5206

    @lutzleipold5206

    Жыл бұрын

    @@nathanjokeley4102 run time. When you do matrix multiplication on large complex numbers on huge scales and for huge dimensions with sparse matrices the difference is absolutely insane. The python variants simply can't keep pace. I originally showed my brother who was doing his PhD on quantum circuits and trying to find optimized algorithems that his then mathematix was running to slow, by doing a simple sample in C++, he ended up rewriting it into python, but that had a 100x uplift compared to his old approach with the right libraries but i then showed him how much faster still it was in my C++, so he talked to some experts at a conference and they all praised Julia for this kind of workload. Sure enough it outperformed my first pass C++ equivalent and when I looked up official run time figures julia was tied with C++, C implimentations for this kind of work scenario. Julia is a rock solid language for calculation, simulation, and other programming purposes.

  • @encapsulatio

    @encapsulatio

    Жыл бұрын

    Try Nim out. Compare it with Julia.

  • @isodoubIet

    @isodoubIet

    Жыл бұрын

    @@lutzleipold5206 "Julia is a rock solid language" Julia is incredibly buggy. You can use many positive adjectives to describe it but "rock solid" is definitely not one of them.

  • @jyggalag_

    @jyggalag_

    7 ай бұрын

    ​@@isodoubIetit isnt

  • @corster8221
    @corster82212 жыл бұрын

    Can you do Zig next? It’s the best in the programming language drag race, but because it’s only 5 ish years old, there’s not a lot of info on KZread about it

  • @caparazo3488
    @caparazo34882 жыл бұрын

    This was really good. I hope you do a video on R one day.

  • @jacobusburger
    @jacobusburger2 жыл бұрын

    Fireship and code_report are some of my favourite programming language channels.

  • @evanbarnes9984
    @evanbarnes99842 жыл бұрын

    I've known about Julia for a few years and find it super intriguing, but I'm just a hobbyist and don't have the use case for learning Julia yet. Same with Rust. Anyone out there using Julia (or Rust) as a hobbyist? If so, what for?

  • @rakanottrubick1857

    @rakanottrubick1857

    Жыл бұрын

    usually i use Julia for data visualisation and image rendering, since the language is so fast

  • @gregheth
    @gregheth2 жыл бұрын

    Thank you Excellent work I was always curious about Julia

  • @01001000010101000100
    @010010000101010001002 жыл бұрын

    Wow, that's some next level stuff, truly futuristic.

  • @ShaharMS
    @ShaharMS2 жыл бұрын

    please do one for Haxe, its a really nice programming language

  • @iamtheV0RTEX
    @iamtheV0RTEX2 жыл бұрын

    Native GPU support? Oooh, now that is fancy!

  • @elijahbuchanan2368
    @elijahbuchanan23682 жыл бұрын

    Thank you so much for doing this one!

  • @danielhubacek266
    @danielhubacek2662 жыл бұрын

    Please, make a longer video about Julia!!

  • @althing7
    @althing72 жыл бұрын

    You should do an "R in 100 Seconds" video! As a more specialized statistical computing language, it would be really interesting to see how its defining features compare to those of Julia.

  • @Calslock
    @Calslock2 жыл бұрын

    I can't believe you missed the opportunity of putting Charizard for char type .-.

  • @LongDayAlone
    @LongDayAlone2 жыл бұрын

    Awesome video, thanks as always! Could u make about Clojure too?

  • @4crafters597
    @4crafters5978 ай бұрын

    Ever since switching to julia, adding functions starts with the fun

  • @Vladythebest96
    @Vladythebest962 жыл бұрын

    That app.js corrected to .jl. Old habbits die hard eh

  • @hidden_engineee
    @hidden_engineee2 жыл бұрын

    Found Julia while looking for an alternative to MATLAB, beyond its speed its a highly composable language.

  • @ceber54
    @ceber542 жыл бұрын

    I'm running some numerical simulations right now with my desktop PC and my laptop using all their cpu power. It was really easy to make a local computer cluster via ssh with julia.

  • @umurkaragoz
    @umurkaragoz2 жыл бұрын

    How many people if Jeff consist of? I do not shit as often as he creates content, yet a new video is never just a new video, it is a whole iteration. I always catch small improvements here and there. Mad respect.

  • @pmathewizard
    @pmathewizard2 жыл бұрын

    I heard R, when R in 100 seconds

  • @vergeetmaar
    @vergeetmaar2 жыл бұрын

    “Julia's arrays are indexed starting at 1” 🤯

  • @ayushkumarsingh8020

    @ayushkumarsingh8020

    2 жыл бұрын

    Thats the humans count.Its there for ease, especially if you are more of a science guy than a professional programmer. Python has been my first language, i am using in my phd.Have been exposed to Julia recently and i absolutely love the syntax.I am slowly starting to pick and maybe someday do most of my work in it!!

  • @isodoubIet

    @isodoubIet

    Жыл бұрын

    @@ayushkumarsingh8020 "Thats the humans count" Sure, but it's objectively the wrong choice for programming and for me pretty much a deal breaker when picking a language.

  • @a_anciferoff
    @a_anciferoff Жыл бұрын

    Nice video! Wanted to see Crystal in 100 seconds next

  • @NNNedlog
    @NNNedlog2 жыл бұрын

    Awesome video as always

  • @billkammermeier
    @billkammermeier2 жыл бұрын

    looks amazing. wish I had a reason to use it lol

  • @WTHBrou

    @WTHBrou

    2 жыл бұрын

    LOL. Same. It looks interesting. But I can't think of a possible scenario of why should I learn it.

  • @MrCyanobacterium
    @MrCyanobacterium2 жыл бұрын

    In practice, the JIT compile time in Julia is often slower than the entire run time of equivalent Python code. Julia works best as a REPL where it can cache the JIT compiled functions for re-use. Otherwise, don't expect to be impressed by Julia's script performance

  • @lorenzomonacelli

    @lorenzomonacelli

    Жыл бұрын

    That is true only if your script takes few seconds to run and you have to run it only once, that is a case in which you do not need performances so yeah, no big reasons to use julia. But in all other cases, the difference is astonishing

  • @solomontsaagane9659
    @solomontsaagane96592 жыл бұрын

    this is a beautiful syntax!!

  • @ContraHacker1337
    @ContraHacker13372 жыл бұрын

    Wow! Didn't know a language like this existed!

  • @xerotolerant
    @xerotolerant2 жыл бұрын

    What's the difference between dispatching and function overloading?

  • @jvillemare

    @jvillemare

    2 жыл бұрын

    I looked it up. I can't link the software engineering stack overflow post here w/o being reported as spam, so I'll summarize: dispatching is for dynamic types (types that can change at runtime). Overloading is only for static types (so like Java). this seems like a weird difference to have a whole new confusing term for.

  • @xerotolerant

    @xerotolerant

    2 жыл бұрын

    ​@@jvillemare Ah. Thank you. At least there is a difference. And now we know it's safe to think of them as essentially the same.

  • @davidf760

    @davidf760

    2 жыл бұрын

    It's not the same, in Java for example yes you can have multiple functions with the same name but different argument types (overloading), but when you invoke such function you explicitly need to say which one you want to use, you can't simple pass generic types, the code will not compile. With multiple dispatch, like in Julia, you don't need to specify, you just pass an object and in runtime the correct function is selected (this is multiple dispatch, which Java doesn't support) .

  • @flamakespark
    @flamakespark2 жыл бұрын

    NGL, Julia looks very promising. Give it large enough ecosystem of projects, and it will replace Python, and become a new golden standard in ML and Data Science

  • @InfinityOver0

    @InfinityOver0

    2 жыл бұрын

    Python is used for way more than that. Python cannot be replaced at this point.

  • @flamakespark

    @flamakespark

    2 жыл бұрын

    @@InfinityOver0 I know, I meant that Python could be possibly replaced in ML/AI

  • @4cps777

    @4cps777

    2 жыл бұрын

    @@InfinityOver0 At least for me, the only other application for Python is as a cross platform alternative to bash scripting.

  • @NoahElRhandour

    @NoahElRhandour

    2 жыл бұрын

    julia absofukinlutely will replace python for ml if enough people start using it

  • @TheThunderSpirit
    @TheThunderSpirit11 ай бұрын

    im starting to learn julia today, but I watch ur video first before even reading any documentation.

  • @mattstephens3680
    @mattstephens36802 жыл бұрын

    1:45 wow, this is like overloads in TypeScript but even more awesome

  • @mlvki
    @mlvki2 жыл бұрын

    maybe Nim in 100 seconds?

  • @abdullahmertozdemir9437
    @abdullahmertozdemir94372 жыл бұрын

    I don't even know a single language fully and now I want to learn Julia, thank you fireship for making me want to learn 3 languages at once and ruining my life by that

  • @akshaybodla163

    @akshaybodla163

    2 жыл бұрын

    As long as you understand the basic computer science concepts you can learn many languages at once. Especially if you get the hang of C!

  • @abdullahmertozdemir9437

    @abdullahmertozdemir9437

    2 жыл бұрын

    @@akshaybodla163 Alrigthy then, this gives me some hope!

  • @igorthelight

    @igorthelight

    2 жыл бұрын

    @@abdullahmertozdemir9437 If you don't have any particular projects in your head, I would suggest to learn C# for Windows Applications OR Kotlin for Android Applications OR Swift for anything Apple related OR JavaScript for Web. Those languages are easy to pick up and write in. After that you could learn whatever you want ;-)

  • @abdullahmertozdemir9437

    @abdullahmertozdemir9437

    2 жыл бұрын

    @@igorthelight Currently I have C++, JavaScript and Julia in my bucketlist (gotta add Flutter there when I am done with them all for quick mobile apps) but I think I am at that phase where you get into something new and go "and I will do this and that" then realize it is just not that easy. For now I want to learn SFML and OpenGL for C++ and then will jump to javascript course on scrimba. Only then, I believe, I can start talking about learning any other thing

  • @abdullahmertozdemir9437

    @abdullahmertozdemir9437

    2 жыл бұрын

    @@igorthelight But I think I have a strong foundation though, I got done with data structures etc. and basics of C++ so I believe learning another language won't be as hard after that

  • @konsciousmusic
    @konsciousmusic2 жыл бұрын

    This guy makes me wanna learn all languages 💯

  • @wallacevieira2243
    @wallacevieira2243 Жыл бұрын

    0:07 - A slim and tall guy - Indian or arab guy - A blonde/redhead guy who came from northern/eastern europe - A guy with a big belly and whose eyes seems to saw the sunlight only a few times in his life This could be any IT team in any IT firm.

  • @KennethKasajian
    @KennethKasajian Жыл бұрын

    I don't get why multiple-dispatch is necessary to determine which function to call in the case when the switch is based on a static type, such as string or int. The compiler knows at build time which version ought to be called and could mind to that specific version directly, not that different from overloading. Perhaps the example of multiple dispatch here is wrong. Maybe an example where the runtime type is used for dispatching, or possibly another value, such as greater than zero, or equal to zero. I don't know. Never used the language, but if it's statically typed, that design wouldn't make sense.

  • @halneufmille

    @halneufmille

    Жыл бұрын

    You can do that by knowing in advance your function may encounter only say string or int64 in the future. But in julia, you can use somebody else's function in your code, invent some new type you need for yourself, write what this function does when it encounters your new type and use it with the whole julia ecosystem without ever modifying the initial code. To learn more, I suggest this nice talk by one of the language creators: kzread.info/dash/bejne/nZdtqtmsqKiXf7w.html

  • @Lennyp4

    @Lennyp4

    Жыл бұрын

    it’s pretty common to run into situations in C++ or similar where you’ve got a dozen similar functions for a variable that could be 4 or 5 different types. C++ has templates and overloading, but it doesn’t have any runtime type checking whatsoever leading to a web of if statements and super repetitive code. i think it’s a pretty welcome feature that the language will step in and help me dispatch the appropriate function if i want

  • @lorenzomonacelli

    @lorenzomonacelli

    8 ай бұрын

    The major advantace of multiple dispatch is that you can dispatch functions of libraries you are importing, chainging the internal behaviour of a library without touching the original code. This is what makes it so powerful: you can implement your objects, define basic operations on them, and call any julia library passing them as a argunent and it works! There are amazing interactions between packages in julia thanks to this feature.

  • @stand355
    @stand3552 жыл бұрын

    The Ju in Jupyter stands for Julia.

  • @hfe1833
    @hfe18332 жыл бұрын

    One of the best language I knew perhaps the next python

  • @mickhhl
    @mickhhl2 жыл бұрын

    I love that you typed .js just to replace it by .jl 1:01

  • @eliavrad2845
    @eliavrad28452 жыл бұрын

    I think of multiple dispatch as taking the methods out of the class and putting it into the function, keeping the data in structs and the behavior in functions. instead of: class(type) function -fields (data) -methods(behavior) we have: struct(type) function -fields(data) -methods(behavior)

  • @TheOriginalJohnDoe
    @TheOriginalJohnDoe2 жыл бұрын

    Can you do R in 100 seconds?

  • @DaveParr

    @DaveParr

    2 жыл бұрын

    Already done ✅

  • @DaveParr

    @DaveParr

    2 жыл бұрын

    I lied. I saw this video 8 months ago and said the same thing: kzread.info/dash/bejne/gpmBzsmgqdTgYLw.html

  • @NafisSazeed
    @NafisSazeed2 жыл бұрын

    Thank you very much for the quick intro. Now just need to procrastinate instead of learning it.

  • @DAV30371
    @DAV303712 жыл бұрын

    Such a wonderful language for doing science.

  • @OtesOtesOtes
    @OtesOtesOtes2 жыл бұрын

    Compilation: AoT makes sense for releases, while JiT makes sense for real time development and sciencey things. Interpreted makes sense for shells/hacking. Languages should be more ambitious in covering all the bases.

  • @yes-vy6bn

    @yes-vy6bn

    2 жыл бұрын

    Julia can compile to an executable too

  • @02orochi

    @02orochi

    2 жыл бұрын

    Wdym with releases Besides lots of langs used in science are interpreted or compiled like python and fortran

  • @legesflute

    @legesflute

    Жыл бұрын

    @@02orochi deployment

Келесі