Thanks for sharing. However, after watching this demo, I am not convinced. They deliberately took an algorithm (iteration over lists) that is well-known to be slow in Python as a benchmark. They did not compare the performance with respect to numpy and Numba. Moreover, considering they use LLVM under the hood, I expect the boost will be comparable with existing solutions like Numba JIT, which also leverages LLVM. They also mentioned training DL models but did not explicitly list any gradient backward computations performance boost vs PyTorch or Jax.
@howardjeremyp - this was my thought too. The base case here is kind of a straw man - no one needing performance from a matrix-like data structure is going to use vanilla Python. What do the benchmarks look like compared to what practitioners are realistically using (numpy, pandas, or libs that leverage LLVM)? I'd be curious to get a better understanding of the unique value add (fusion, et al) and a more apples-to-apples performance comparison.
@@brandoconnor I think the value here is that it's going to be python all the way down. With any of your mentioned tools, like numpy or pandas, if you try to modify or look anything deeper, you'll hit a wall of having to switch to another language.
This is what I was thinking . I only have a little exposure to this, but one of the courses I took basically said to always avoid direct loops. And use numpy for all matrix calculations. Thanks for clarifying. This still seems to make it easier for people to modify algorithms, and deal with memory and memory alignment easier. As well as lower level paradigms. But the comparison wasnt exactly fair.
@Srikanta Prasad SV I see you point but wouldn't you agree it would at least benefit users in being a more general purpose programming language compared to python ?
From the FAQ: "We don’t have an established plan for open-sourcing yet.". I may get interested once they have open sourced it and definitely not sooner.
Mojo looks very promising and I can't wait until it reaches a level of maturity where I can put its power in to production..... Superset of python was an excellent design decision, taking the best ideas from Rust, Swift, C and Haskell... Very Exciting! Chris Lattner is an absolute genius been a huge fan of LLVM since it became the default in FreeBSD. Suffice to say Mojo on paper satisfies all my requirements for the language I've always wanted but didn't exist.
you dont use GPU drivers? you dont use any proprietary software at all? Even your mouse and printer drivers are open source? In other words = you talking bullshit
Speedups in the thousands makes something that needs ~1 hour in Python take ~1 second in Mojo. Crazy. *Edit:* It never ceases to amaze me how much cynicism there is in the tech world. I never said that all code has this speedup; I only put the speedup for the showcased code into perspective. Here's the deal: if it can do this for *some* code, then it is a promising and useful tool with way more applications than e.g. Numba JIT. There's always a silver lining.
@@andreashon Sure, but the fact that we have here a Python-like programming interface with parallelised C-like speed obviously extends to other applications. Like, you're not going to tell me that it's a 4000x speedup for only matrix multiplication, but other than that, it's an entirely useless language that runs at 1x Python. We can extrapolate.
@@Mew__, I switched to Julia, when I could not optimize my numpy+numba code any further. It has mature community, tons of packages and several cool syntax choices.
It would be really cool to see if it’s possible to make a game with decent performance in Mojo because Python is not an option for any form of complex game development.
This is absolutely insane. I honestly cant believe this exists, for some reason 😂 I cannot wait to be using it! This looks like itll be useful for anything Python can be used for, not just data science, and more.
This looks incredible. I have 2 questions 1. Can mojo be used as a drop in replacement on any python script to improve performance (if possible) and not just machine learning related functions? 2. Will the autotuner have context regarding resource split like running inside a 4 core container on a 8 core CPU, so that it allows the other 4 cores to be utilized by other programs?
So I nothing about Mojo but can still answer your 2nd question: software running in a 4 core container only sees 4, so will tune for 4. Usually software also allows you to do this without a container, I see no reason why Mojo couldn't support a X_cores compile time or runtime flag
@@abhishekjm8611 wait did golang figure out how to use 8 cores from a 4 core container? ;) There is most likely a setting for this, but I don't know Go and Google didn't help me in a few seconds
@@abhishekjm8611 ah chatgpt4 to the rescue runtime.GOMAXPROCS(4) Seems to be something that needs to be done in the code, so proper Go tools will export this as a parameter I'd say. (or use numCPUs - 1/2 to allow interactivity)
This is very cool but I think I will need a good project to learn to use it. Do you have any plans of using this in future fast ai courses / libraries?
I have no idea how they calculated speed in.. gigaflops? I can't check it in another laguage. I have a suspicion that their starting matrix just sucks.
I would like to see the performance of PyTorch matmul vs. Mojo's, tbh I'm not entirely convinced that it's faster than using stuff made in C, C++, and Rust for Python. Big if true though.
upto 4:05 everything could have been done with numba. I also don't see a reason why the "plain" code on numpy arrays, if given type annotations for "numpy array", would have to be as slow as a couple megaflop/s I do like that it goes *a little* further than that... but numba could easily pick up those tricks too.
Can Mojo code be compiled into a relatively small self-contained executable? If I correctly remember that was the main limitation of the Julia programming language, according to Jeremy himself. Does this Mojo language solve that issue?
That's actually one of the worst things about python. The fact you have to use a 3rd party tool to generate an exe that will run on all systems (and it doesn't always work). Other things that frustrate the hell out of me with python is the project structure and deployment. It's tedious and quite frustrating for no particular reason. Hopefully they can resolve these things with mojo but I'm not going to hold my breath :)
No it does not. Its benefits of performance are minor compared to any language that isn't Python or alike (~4000x speedup with most tricks in the book compared to CPython is hardly impressive). It does not help at creating scalable, reliable software as at its core, it shares the same pitfalls of Python. It will also not make your existing Python code magically faster, unless you're programming the superset; the python ecosystem won't migrate to Mojo overnight. This is just a typical Chris Lattner move. He didn't bother contributing to an already existing mature platform, because it's not his creation. He'll get a lot of cash to flow into Mojo(from these hype advertisements that are misleading), only for it to end up like swift4tf in a few years, and then, we'd all still be using the sorry excuse of a language that is Python for the groundbreaking tech of this era! (Also, seriously, do they have any language designers/PL theorists on their team? Smacking in different features from everywhere else on top of Python does not make a good language)
@@balen7555 As far as what they have shown, you can take your python script to mojo and it will be 300x faster without doing anything. And contribute what to Python? Python won't ever get rid of global interpreter. You won't ever make a merge this big that completely changes semantics of Python to python codebase. Only way something like this works is as a separate project.
@@erenbalatkan5945 Your python script is not the python ecosystem. If you use X packages, you need to get X packages to compile with Mojo. Even then, copy-pasting as verbatim will only lead ~8x performance increases. You need to rewrite with static types for more performance (and even then, it's hardly as performant as even JS, which is dynamically typed...). Who said anything about contributing to Python? Stop investing in that garbage, other solutions exist that need money.
Because you don't get the benefits of fusion, amongst many other things. That's why PyTorch, Jax, and TensorFlow all use separate compilers nowadays and only can support a subset of Python.
Another point is, the said external libraries can now be implemented with all the SIMD tricks in a python-like language instead of using C++/Fortran/Cython/... (like numpy did).
Huge respect, but who writes matmul in python by hand? All low level stuff is delegated to C anyway. Is Mojo targetting the low level stuff, which affect 1% people? How does it compare to C then?
The point is that you no longer need C or C++ for performance. So if you implement some new algorithm which is not provided by numpy, scripy etc. you could write it in plain Mojo and combine flexibility and convenience of Python with performance of C/C++ in one unified language. It's all about unification and having one complete language instead of jumping between Python and C/C++ and then interfacing between these.
@@michal3141 That is correct, thank you. After watching Lex' episode with Chris L. I do have much more context, and I agree that the future looks very exciting ;-)
Imagine if we could train neural networks 10-50x faster by just adapting the language used to define them. You get exponential returns just by wide adoptation and speed of execution/iteration of refinement process + tuning.
@@hkanything I like Cython but it is like a parasite (depends of another language to survive) over C.. Mojo is a standalone solution created from scratch and not limited to C limitations..
Importing certain external libraries, such as numpy, into Mojo appears inelegant. I'm quite interested in understanding how they incorporate other deep learning frameworks... It claims to be a superset of Python, but its syntax reminds me more of Golang.... Especially "usage of the struct"... etc.
I don't think so. AI/ML libraries for python already uses Rust/C/C++ under the hood, with the same or better optimizations demonstrated here. But the key advantage here is you can write AI code in pure mojo, and expect it to run as fast as compiled programming languages.
We Python programmers need mojo speed. Why Python company and programmers in this field didn't buy Mojo and upgrade Python with their help. The best way to buy Mojo and help all of us to upgrade Python by using it is to open an account and pay the money that the Mojo maker company says to buy it along with its programmers. We ourselves should work for a maximum of one year to upgrade the Python language for 3 hours a day. After that, only we will have the undisputed power of programming. Even 50% of this money should be paid by billion dollar companies like Google in order to pay less server fees in the future.
Mojo will be a "strict superset" of Python, so that means anything you can do in Python will be doable in Mojo. However, there will be things you can do in Mojo that you *won't* be able to do in Python (eg, memory allocation, and playing with pointers) Depending on your goals, there's a couple routes that might work. Goal A: build some project that's of personal interest to you Goal B: learn the fundamental concepts behind how computers work If you lean towards Goal A, then it's probably better to start with Python first. Later, you can learn the extra functionality that Mojo offers. Python has less stuff to worry about On the other hand, if you want to learn foundational concepts of computers for Goal B (how memory works, how to manage it manually, etc), then becoming aware of lower level abstractions (pointers, the stack, heap, etc) should happen as quickly as possible. Mojo should be able to help with this (but I'm not 100% sure since it's not out yet). The fact that Python doesn't have pointers (but Mojo does), makes me think Mojo might be better if you're trying to understand computers Here's an analogy related to cars: [Goal A] Do you just want to learn enough about the car to be able to drive it from A to B? Then just get an automatic car (ie, install Python on your computer) take some driver's ed courses (ie, learn Python with some beginner course) and take your road trip from A to B (ie, build your personal project) [Goal B] Do you want to understand why cars (ie, computers) work and how to tinker with your own to make it go fast? Then get a stick shift car (ie, install Mojo on your computer) take some auto shop/mechanics class (ie, take some Mojo course that focuses on the algorithmic & hardware side of things) and start tinkering with stuff to see what happens (using benchmarking & debugging tools to see how stuff works) Since Mojo will be new, Goal B may have limited resources for a little while. But most people who use cars don't need (or want) to pursue Goal B
High performance code should be written in a systems programming language. To get the most out of mojo, you'll have to learn everything that is hard about systems programming anyways, but then you're trapped in a language designed to fuse with python. It's like being given the muscles of a marathon runner, but not their heart. You'll have to train so much cardio that you would've gotten those muscles anyways 😂
@@trejohnson7677 I'm speaking from years of experience doing HPC for production applications and I don't see a reason to use mojo. Also, if you don't like rust and systems programming, then you won't like mojo is all I'm saying :) But it's ok, please disagree that's not a problem.
I think you are COMPLETELY missing the point here. 1. there are no good clean syntax SPL out there. Best bet is Rust which isn't as clear as what is shown here. 2. Whole idea here is that it is compatible with entire Python ecosystem out of box. Which is by far the biggest code ecosystem. 3. Even if you don't learn any of the low level optimizations, simply using static typing and few keywords (like parallellize) alone gives you hundreds of times performance over naive python. To reference back to your anology, it gives you resources, antreneours, dietarieens and muscles of marathon runner. Building cardio is much easier than doing it from scratch.
Incredible work guys, can't wait to see where this goes!
I would be interested in seeing a comparison between Mojo and Cython, Python’s existing superset.
Thanks for sharing.
However, after watching this demo, I am not convinced.
They deliberately took an algorithm (iteration over lists) that is well-known to be slow in Python as a benchmark. They did not compare the performance with respect to numpy and Numba. Moreover, considering they use LLVM under the hood, I expect the boost will be comparable with existing solutions like Numba JIT, which also leverages LLVM.
They also mentioned training DL models but did not explicitly list any gradient backward computations performance boost vs PyTorch or Jax.
@howardjeremyp - this was my thought too. The base case here is kind of a straw man - no one needing performance from a matrix-like data structure is going to use vanilla Python. What do the benchmarks look like compared to what practitioners are realistically using (numpy, pandas, or libs that leverage LLVM)?
I'd be curious to get a better understanding of the unique value add (fusion, et al) and a more apples-to-apples performance comparison.
@@brandoconnor I think the value here is that it's going to be python all the way down. With any of your mentioned tools, like numpy or pandas, if you try to modify or look anything deeper, you'll hit a wall of having to switch to another language.
This is what I was thinking . I only have a little exposure to this, but one of the courses I took basically said to always avoid direct loops. And use numpy for all matrix calculations. Thanks for clarifying. This still seems to make it easier for people to modify algorithms, and deal with memory and memory alignment easier. As well as lower level paradigms. But the comparison wasnt exactly fair.
Looks like Mojo used the new MLIR compiler technology, which is different than LLVM. This could distinguish Mojo from LLVM based compilers like numba
@@nicholaswogan Very interesting. Going to have to look into this.
Awesome! Looking forward to using it! Been waiting for years for a programming language like this...
Imagine if Mojo takes off, but none of the LLMs can assist writing code in it as there isn't enough training data (yet).
People have been using copilot for their own internal dsls etc.
It support python though
it's a superset of python so a lot of that data should transfer well
The thing about LLMs is that it doesn't take much to extrapolate
Just feed examples and documentation and it will do it...
We love and support Jeremy Howard and his hard-work and team behind Mojo!😇😍
This is actually pretty impressive and remarkable.
This is incredible work for data science especially overcoming weaknesses such as high performance matrix multiplication.
@Srikanta Prasad SV I see you point but wouldn't you agree it would at least benefit users in being a more general purpose programming language compared to python ?
hmm, Python is already good with this, you have numba for example which compiles down to machine code, etc
Numba has a limited use case and can definitely not be considered as a superset of python. It gives some functionality but takes some in return.
It's not Mojo fast, it is Python so slow !
From the FAQ: "We don’t have an established plan for open-sourcing yet.".
I may get interested once they have open sourced it and definitely not sooner.
im a Java/Javascript dev and i love what im seeing! cant wait to test this out when its fully released & classes are supported
Mojo looks very promising and I can't wait until it reaches a level of maturity where I can put its power in to production..... Superset of python was an excellent design decision, taking the best ideas from Rust, Swift, C and Haskell... Very Exciting! Chris Lattner is an absolute genius been a huge fan of LLVM since it became the default in FreeBSD. Suffice to say Mojo on paper satisfies all my requirements for the language I've always wanted but didn't exist.
will we have the next fastAI course using mojo? ;)
very likely
Of course
At First I thought it is good and cool. Then after Each Cell My Mind is Being Blown away constantly!! Superb Language!!
Unsurprising -- Chris Lattner, incredible!
you look like a chic
Cant believe the day has come. Love python all the way
Thank you
And here I was about to sit down and really start learning Julia…. Nevermind.
i am in love at first sight with this language
How does it compare to other popular acceleration methods, says, numba, cython, pypy?
I'm all for it as long as it works natively with python packages and doesn't break anything in the process.
excited to be here before mojo pops off!
:o The holy grail of programming languages!
It's fine I'm watching that 8 days later, like a birthday gift 🎉
Would love to hear his thoughts on George Hotz's tinygrad.
I would definitely use this in production.
It'd be great to see mojo with Django 🙏
Will it be Open Sourced? If yes, under which licence, where can I find it and how can I contribute? If not, its a deal-breaker for me unfortunately.
You don't use CUDA? Performance trumps ideological concerns
you dont use GPU drivers? you dont use any proprietary software at all? Even your mouse and printer drivers are open source? In other words = you talking bullshit
Speedups in the thousands makes something that needs ~1 hour in Python take ~1 second in Mojo. Crazy.
*Edit:* It never ceases to amaze me how much cynicism there is in the tech world. I never said that all code has this speedup; I only put the speedup for the showcased code into perspective. Here's the deal: if it can do this for *some* code, then it is a promising and useful tool with way more applications than e.g. Numba JIT. There's always a silver lining.
no one in their right mind writes matrix multiplication in pure python
for loops are horribly slow
@@andreashon Sure, but the fact that we have here a Python-like programming interface with parallelised C-like speed obviously extends to other applications.
Like, you're not going to tell me that it's a 4000x speedup for only matrix multiplication, but other than that, it's an entirely useless language that runs at 1x Python. We can extrapolate.
@@Mew__, I switched to Julia, when I could not optimize my numpy+numba code any further. It has mature community, tons of packages and several cool syntax choices.
@@andreashon I switched to C++ and am severely regretting my life choices regarding the library situation.
@@Mew__ lol
do you think PyTorch or Tensorflow will be implemented to use Mojo?
It would be really cool to see if it’s possible to make a game with decent performance in Mojo because Python is not an option for any form of complex game development.
This is what I thought. Theoretically it should.
Me too. At last games in python :)
This is so remarkable
This is absolutely insane. I honestly cant believe this exists, for some reason 😂
I cannot wait to be using it! This looks like itll be useful for anything Python can be used for, not just data science, and more.
This is a 1000000x speedup compared to mental arithmetic. But how does it compare to actual competitors that aren't pure python?
🐍Here right before Mojo blows up!
How is this better than Jax or Numba? Julia already does all of this as well.
Waiting to see how this evolves/grows
This looks incredible.
I have 2 questions
1. Can mojo be used as a drop in replacement on any python script to improve performance (if possible) and not just machine learning related functions?
2. Will the autotuner have context regarding resource split like running inside a 4 core container on a 8 core CPU, so that it allows the other 4 cores to be utilized by other programs?
So I nothing about Mojo but can still answer your 2nd question: software running in a 4 core container only sees 4, so will tune for 4.
Usually software also allows you to do this without a container, I see no reason why Mojo couldn't support a X_cores compile time or runtime flag
@@MilodeVries I specifically asked this because I recently ran into this issue with an older version of golang. But i understand what you mean
@@abhishekjm8611 wait did golang figure out how to use 8 cores from a 4 core container? ;)
There is most likely a setting for this, but I don't know Go and Google didn't help me in a few seconds
@@abhishekjm8611 ah chatgpt4 to the rescue runtime.GOMAXPROCS(4)
Seems to be something that needs to be done in the code, so proper Go tools will export this as a parameter I'd say. (or use numCPUs - 1/2 to allow interactivity)
I can see a future of mojo killing rust 😂
Its great to start learning a program when everyone is new to it....Well Almost.
Please put the Modular Keynote & Development videos onto RUclips. I cannot find anything on Vimeo!
This is very cool but I think I will need a good project to learn to use it. Do you have any plans of using this in future fast ai courses / libraries?
I have no doubt about it, since it obviously has Jeremy Howard's backing
yeah same. If you find one then do share it
Anything about imports
I have no idea how they calculated speed in.. gigaflops? I can't check it in another laguage. I have a suspicion that their starting matrix just sucks.
I would like to see the performance of PyTorch matmul vs. Mojo's, tbh I'm not entirely convinced that it's faster than using stuff made in C, C++, and Rust for Python. Big if true though.
upto 4:05 everything could have been done with numba. I also don't see a reason why the "plain" code on numpy arrays, if given type annotations for "numpy array", would have to be as slow as a couple megaflop/s
I do like that it goes *a little* further than that... but numba could easily pick up those tricks too.
Can Mojo code be compiled into a relatively small self-contained executable? If I correctly remember that was the main limitation of the Julia programming language, according to Jeremy himself. Does this Mojo language solve that issue?
That's actually one of the worst things about python. The fact you have to use a 3rd party tool to generate an exe that will run on all systems (and it doesn't always work). Other things that frustrate the hell out of me with python is the project structure and deployment. It's tedious and quite frustrating for no particular reason. Hopefully they can resolve these things with mojo but I'm not going to hold my breath :)
No it does not. Its benefits of performance are minor compared to any language that isn't Python or alike (~4000x speedup with most tricks in the book compared to CPython is hardly impressive). It does not help at creating scalable, reliable software as at its core, it shares the same pitfalls of Python. It will also not make your existing Python code magically faster, unless you're programming the superset; the python ecosystem won't migrate to Mojo overnight.
This is just a typical Chris Lattner move. He didn't bother contributing to an already existing mature platform, because it's not his creation. He'll get a lot of cash to flow into Mojo(from these hype advertisements that are misleading), only for it to end up like swift4tf in a few years, and then, we'd all still be using the sorry excuse of a language that is Python for the groundbreaking tech of this era!
(Also, seriously, do they have any language designers/PL theorists on their team? Smacking in different features from everywhere else on top of Python does not make a good language)
@@balen7555 As far as what they have shown, you can take your python script to mojo and it will be 300x faster without doing anything. And contribute what to Python? Python won't ever get rid of global interpreter. You won't ever make a merge this big that completely changes semantics of Python to python codebase. Only way something like this works is as a separate project.
@@erenbalatkan5945 Your python script is not the python ecosystem. If you use X packages, you need to get X packages to compile with Mojo. Even then, copy-pasting as verbatim will only lead ~8x performance increases. You need to rewrite with static types for more performance (and even then, it's hardly as performant as even JS, which is dynamically typed...). Who said anything about contributing to Python? Stop investing in that garbage, other solutions exist that need money.
@@balen7555 youtube backend is python fyi
This is really cool!
Would be nice to see the computer specs... but incredible nonetheless.
Do you think Mojo will work on top of Spark (PySpark)???
Very interesting thing. Who knows what future brings?
fireship took me here
Kindly share Matmul.ipynb file , which is use in this video.
So which should I learn codon (another superset of python compiler) or mojo ?
why not using external libraries (e.g. numpy) to get fast matrix multiplication?
to sell you the 50000000000000x faster speed up
Because you don't get the benefits of fusion, amongst many other things. That's why PyTorch, Jax, and TensorFlow all use separate compilers nowadays and only can support a subset of Python.
Another point is, the said external libraries can now be implemented with all the SIMD tricks in a python-like language instead of using C++/Fortran/Cython/... (like numpy did).
@@howardjeremyp Still you guys should have made comparison using as optimized MM implementation on python to keep things fair. For example using numba
What does fusion mean in this context? Can you link an explanation?
Seems to add some nice features.
Is it possible to use MOJO with Django Framework, since the video says that MOJO can leverage all Python libraries?
Can Automatic1111 image generation speed be improved with MOJO ?
Will mojo be a general purpose language?🧐
Yes. According to FAQ, the focus now is AI field but they pretend extend to systems development.
I am hyped.
awesome work
Huge respect, but who writes matmul in python by hand? All low level stuff is delegated to C anyway. Is Mojo targetting the low level stuff, which affect 1% people? How does it compare to C then?
The point is that you no longer need C or C++ for performance. So if you implement some new algorithm which is not provided by numpy, scripy etc. you could write it in plain Mojo and combine flexibility and convenience of Python with performance of C/C++ in one unified language. It's all about unification and having one complete language instead of jumping between Python and C/C++ and then interfacing between these.
@@michal3141 That is correct, thank you. After watching Lex' episode with Chris L. I do have much more context, and I agree that the future looks very exciting ;-)
🔥 This will be my pet language after C++
So, what Typescript is to JS, Mojo is to Python
nice to have the mojo team fixing the broken performance of cpython that should have been fixed a decade back.
This is certainly intriguing! Given Python is open source, why not contribute directly to the language instead of creating a superset?
it's easier to build then refactoring
Inertia would kill this in the cradle
Open source doesn't mean you can contribute whatever you want and it gets merged. And a project this size would never work as a merge
Does anybody know how to convert a float to an int in this?
I don't know how different it will be from numba 🙄
Imagine if we could train neural networks 10-50x faster by just adapting the language used to define them. You get exponential returns just by wide adoptation and speed of execution/iteration of refinement process + tuning.
ohh huge speedups !!!
notice how they conveniently dont compare matmul with numpy or cpython etc ;)
this language itself can make AI to have a boom in few weeks
Will this be supported by Pytorch?
"usability of Python with the performance of C"...it sounds like you built a rust competitor :)
Cython!
That's just the slogan from Julia 🤔
@@hkanything I like Cython but it is like a parasite (depends of another language to survive) over C.. Mojo is a standalone solution created from scratch and not limited to C limitations..
correct me if I'm wrong but you might want to fix the mandlebrot_kernel function, it should return "i" and not max_iter. 6:13
max_iter is correct.
Importing certain external libraries, such as numpy, into Mojo appears inelegant. I'm quite interested in understanding how they incorporate other deep learning frameworks... It claims to be a superset of Python, but its syntax reminds me more of Golang.... Especially "usage of the struct"... etc.
New ERA for AI/ML.
🔥🔥🔥🔥🔥🔥
So does this mean in theory you could train NN 4000x faster if you would rewrite them into mojo?
I don't think so. AI/ML libraries for python already uses Rust/C/C++ under the hood, with the same or better optimizations demonstrated here. But the key advantage here is you can write AI code in pure mojo, and expect it to run as fast as compiled programming languages.
It will be slower.
Amazing 🎉
Now I am looking mojo developer of atleast 5 year experience 😂
Swift + Python lovechild? Sign me up!
I don’t have enough brain power to keep up with all these new languages.
Why not Julia ☺️
Impressive
This is only helpfull and will make an impact if is open source, otherwise I don't see a pipeline for the community to adopt
Fastmail -> FastAI. Makes sense.
So, do we need to rename jupyter? :)
no
Is this faster than C?
They claim c++/rust performance
Motion to introduce Mojo to the world via fastai courses
Could have named python ++ or just pi
I don't get it, it's not open-source and you need to request access to even try it?
As the web site explains, it's an early preview that is planned to be open sourced later.
@@howardjeremyp Sorry, I was probably a bit too harsh. Just getting bummed out by the normalization of waitlist culture this year.
🤯🤯🤯
We Python programmers need mojo speed. Why Python company and programmers in this field didn't buy Mojo and upgrade Python with their help. The best way to buy Mojo and help all of us to upgrade Python by using it is to open an account and pay the money that the Mojo maker company says to buy it along with its programmers. We ourselves should work for a maximum of one year to upgrade the Python language for 3 hours a day. After that, only we will have the undisputed power of programming. Even 50% of this money should be paid by billion dollar companies like Google in order to pay less server fees in the future.
sugoi!
wow that's insane
For new developer need to learn python or possible just mojo?
Mojo will be a "strict superset" of Python, so that means anything you can do in Python will be doable in Mojo. However, there will be things you can do in Mojo that you *won't* be able to do in Python (eg, memory allocation, and playing with pointers)
Depending on your goals, there's a couple routes that might work.
Goal A: build some project that's of personal interest to you
Goal B: learn the fundamental concepts behind how computers work
If you lean towards Goal A, then it's probably better to start with Python first. Later, you can learn the extra functionality that Mojo offers. Python has less stuff to worry about
On the other hand, if you want to learn foundational concepts of computers for Goal B (how memory works, how to manage it manually, etc), then becoming aware of lower level abstractions (pointers, the stack, heap, etc) should happen as quickly as possible. Mojo should be able to help with this (but I'm not 100% sure since it's not out yet). The fact that Python doesn't have pointers (but Mojo does), makes me think Mojo might be better if you're trying to understand computers
Here's an analogy related to cars:
[Goal A]
Do you just want to learn enough about the car to be able to drive it from A to B?
Then just get an automatic car (ie, install Python on your computer)
take some driver's ed courses (ie, learn Python with some beginner course)
and take your road trip from A to B (ie, build your personal project)
[Goal B]
Do you want to understand why cars (ie, computers) work and how to tinker with your own to make it go fast?
Then get a stick shift car (ie, install Mojo on your computer)
take some auto shop/mechanics class (ie, take some Mojo course that focuses on the algorithmic & hardware side of things)
and start tinkering with stuff to see what happens (using benchmarking & debugging tools to see how stuff works)
Since Mojo will be new, Goal B may have limited resources for a little while. But most people who use cars don't need (or want) to pursue Goal B
python
@@KevinFlowersJr Thanks for the answer.
Great video but the "background" music is louder than the voice and very distracting. Had to turn off audio and just read CC
Ever heard of closed source programming language?
Now I hope that Mojo can also run on Quantic computer to get more speed 😮
Does this good for 1st programming language?
no
yes
High performance code should be written in a systems programming language. To get the most out of mojo, you'll have to learn everything that is hard about systems programming anyways, but then you're trapped in a language designed to fuse with python. It's like being given the muscles of a marathon runner, but not their heart. You'll have to train so much cardio that you would've gotten those muscles anyways 😂
Sounds like you’re still learning Rust. This comment reeks of indoctrination.
@@trejohnson7677 I'm speaking from years of experience doing HPC for production applications and I don't see a reason to use mojo. Also, if you don't like rust and systems programming, then you won't like mojo is all I'm saying :) But it's ok, please disagree that's not a problem.
@@Orbilfolda What of my comment is disparaging towards Rust? I suppose English is not your first language, if so, kudos for knowing two!
@@trejohnson7677 You didn't get any love from mummy, did you.
I think you are COMPLETELY missing the point here.
1. there are no good clean syntax SPL out there. Best bet is Rust which isn't as clear as what is shown here.
2. Whole idea here is that it is compatible with entire Python ecosystem out of box. Which is by far the biggest code ecosystem.
3. Even if you don't learn any of the low level optimizations, simply using static typing and few keywords (like parallellize) alone gives you hundreds of times performance over naive python.
To reference back to your anology, it gives you resources, antreneours, dietarieens and muscles of marathon runner. Building cardio is much easier than doing it from scratch.
Something greater is coming on the way