Mojo Community Meeting #2
55:31
14 күн бұрын
Mojo Community Meeting #1
1:03:52
ModCon 2023: The Mojo Dance
2:23
6 ай бұрын
ModCon 2023: MAX Engine Graph API
2:59
ModCon 2023: MAX GPU
6:47
6 ай бұрын
Пікірлер
@ayaanm0min
@ayaanm0min 4 күн бұрын
I really hope this language raise up
@Pharaoh-tt9ku
@Pharaoh-tt9ku 4 күн бұрын
can you sport Windows
@mytechnotalent
@mytechnotalent 6 күн бұрын
Extremely exciting progress! I am excited about this and looking forward to contrubiting where I can!
@MortenEnemarkLund
@MortenEnemarkLund 8 күн бұрын
Maybe use pixi as mojo's package manger. Seems like a good fit. No reason to reinvent the wheel :-D
@BUY_YOUTUB_VIEWS_842
@BUY_YOUTUB_VIEWS_842 8 күн бұрын
No one does it better then you
@hansdietrich1496
@hansdietrich1496 8 күн бұрын
Damn, I hate cliff hangers.
@budiardjo6610
@budiardjo6610 12 күн бұрын
best part 43:01, and really love this series.
@budiardjo6610
@budiardjo6610 12 күн бұрын
really great, could see chris lattner give a feedback
@Ivoshevo
@Ivoshevo 13 күн бұрын
people nolonger comment because every one feels tired of waiting for a stable release
@BracingRex6989
@BracingRex6989 13 күн бұрын
a good lesson about memory and mojo, thanks modular !
@alurma
@alurma 15 күн бұрын
What a cliff hanger at the end!!!
@alurma
@alurma 15 күн бұрын
Wow, how early destruction works with tail calls really impresses me.
@elephantum
@elephantum 17 күн бұрын
Huge +1 for fsspec as a protocol
@josephlabs
@josephlabs 17 күн бұрын
👏🏿
@Bakobiibizo
@Bakobiibizo 18 күн бұрын
Man I need everyone on my team to present like benny. standup would be 5 mins tops
@ahmadmokhtar8175
@ahmadmokhtar8175 19 күн бұрын
Where all the hype about Mojo has gone
@paulselormey7862
@paulselormey7862 18 күн бұрын
To me, they are failing some basic requirements (partly similar to Julia): 1. No support for Windows. 2. Exclusive focus on AI.
@gamekiller0123
@gamekiller0123 18 күн бұрын
It's not in a 1.0 state yet. Did you expect them to be able to continuously fan up the hype for a few years? They've got their name out amongst early adopters, but they need a more complete language before it will appeal to the mainstream.
@elliotwaite
@elliotwaite 19 күн бұрын
It would be great if you could set the visibility of the videos you release to public instead of unlisted so that they show up in my subscriptions feed.
@modularinc
@modularinc 19 күн бұрын
Thanks for raising, it's public now
@elthgar
@elthgar 22 күн бұрын
Curious as to the interop layer performance impact? Any measurements on that?
@marekbojarovic9383
@marekbojarovic9383 23 күн бұрын
more videos
@andrey_mojo
@andrey_mojo 26 күн бұрын
Just a qualitative observation, the mojo documentation does not have enough examples. At the end of each doc like the random module, actually show how to use some of the random functions like randint. I'm personally having a tough time understanding how to properly use some of the functions because there are barely any examples present.
26 күн бұрын
hii
@TheNaive
@TheNaive 26 күн бұрын
It's not about 'WHEN' the GPU support is comming, the question is 'HOW'. Because mojo will be leveraging MLIR for gpu power unlocking, and how mojo will do it will unlock new era where we shift from LLVM to MLIR for building tools
@herseem
@herseem 26 күн бұрын
Warning - this is a pedantic comment, suitable only for technical dweebs and nerds: the data shown is NOT compatible with the car being a 'stick shift' because in a manual gearbox there is a precisely fixed ratio between engine speed and road in each gear. Thus, what you'd see is in fact 5 straight lines. The clouds of data points in the example shown are consistent with a conventional automatic gearbox utilising a torque converter, where the relationship between engine and road speed in any gear is also dependent on the throttle position.
@TheDarkhawk243
@TheDarkhawk243 26 күн бұрын
WHEN IS GPU SUPPORT COMING TO MOJO? 🎤
@ziyu4huang
@ziyu4huang 27 күн бұрын
Is there any plan to provide a NumPy replacement in Mojo as well?
@playea123
@playea123 26 күн бұрын
I think that something they’ll leave to developers to build themselves. Mojo is fast enough where you could implement a lot of the basic functionality of numpy on your own and since you can just import the Cpython version of numpy into your mojo project, you won’t lose any functionality by moving to mojo. It is very likely though that developers make a mojo version of numpy so the api is the same with full mojo functionality
@ziyu4huang
@ziyu4huang 27 күн бұрын
This is a great example for learning Mojo. It looks very promising and exciting as a potential replacement for Python. I hope Mojo can be developed to replace Cython, making it even more attractive to the existing Python ecosystem.
@andrey_mojo
@andrey_mojo 27 күн бұрын
Started learning mojo recently. I’m mostly excited to get to tensors. But I know I have to go through the basics of Strings, Lists, Dicts, and Sets before I move on. Logic flow is pretty straight forward as well. But, really excited to start working on AI related problems.
@bonelycoreanime6569
@bonelycoreanime6569 Ай бұрын
Nice. Now I can make ML models without compiling issues of C++
@JeffBanks38
@JeffBanks38 Ай бұрын
Love the comments about having a community involved to provide the best feedback for Mojo.
@TheNaive
@TheNaive Ай бұрын
Why the file is .ipynb instead of .mojo
@Ivoshevo
@Ivoshevo Ай бұрын
Class will be Mojo v1.0 wait and see 😊
@g1m0kolis
@g1m0kolis Ай бұрын
Thank you for sharing this publicly!
@gudchoice
@gudchoice Ай бұрын
yea some of us love so much programming with gui, we hope for a flet like native gui in mojo. please❤❤❤
@slyblood85
@slyblood85 Ай бұрын
wish it could have a flutter like ability for doing GUI with mojo
@Quantum_Nebula
@Quantum_Nebula Ай бұрын
Actually, that would be pretty nice. The only thing Flutter has going for it is its template scaffolding syntax and libraries. They just have awful performance. If mojo could adopt that idea of templating, and mix it with the performance of their dynamic scaling on hardware that MAX offers... that would be the ideal language. Let the community develop libraries to interface with iOS and Android.
@anonjohnnyG
@anonjohnnyG Ай бұрын
when support for python decorators
@Alperic27
@Alperic27 Ай бұрын
…. DEVCONTAINER …. …
@ThankYouESM
@ThankYouESM Ай бұрын
I recently made a very fun game in Python for this, then wondered what are all the options to possibly earn money from it accepting donations only... and suddenly thought it should be especially for smartphones. However... I don't know if Mojo can help make that happen sometime very soon I hope.
@billb6283
@billb6283 Ай бұрын
As I write this, how is Mojo on version 24? Python, released decades ago is on version 3, my Julia says version 1.9.2.
@MestisoHapa
@MestisoHapa Ай бұрын
They are going by a year.release versioning system. For example, 24.3 is the 3rd release in 2024.
@billb6283
@billb6283 Ай бұрын
@@MestisoHapa Thank you
@TheNaive
@TheNaive Ай бұрын
When part 2 is comming
@damonguzman
@damonguzman Ай бұрын
Real devs use dark mode…. Dark mode…. Please, have slides that are darker. My eyes are searing.
@TwoToTheSix
@TwoToTheSix 14 күн бұрын
Real devs also use light mode, funnily enough. Some also have difficulty reading light-on-dark text, such as those with astigmatism.
@hoang4231
@hoang4231 Ай бұрын
Why Removed TensorFlow support in the MAX SDK, so you can no longer load a TensorFlow SavedModel for inference. However, TensorFlow is still available for enterprise customers.
@kilosierraalpha
@kilosierraalpha Ай бұрын
Fantastic! Subbed!!
@ephemer
@ephemer Ай бұрын
Great conversation and information here, thanks a lot for sharing. Chris referred to directories of the Mojo compiler source code - I thought just the stdlib was open sourced so far? Am I right in thinking this is not accessible to us still? Also, I was surprised to hear some of the questions from the team about many of these points: do I understand correctly that Chris is hacking away at this in real time and then sharing with the team as it comes along? I'm mostly curious about how the work is being divvied up in the team at Modular. edit: I watched the first seconds of the video again and it answered a lot of the questions I had, thanks.
@SzTz100
@SzTz100 Ай бұрын
I know Mojo is still in the early days of development, but can't you shoot a video in focus.
@djidaissam1148
@djidaissam1148 Ай бұрын
I thought I was going blind :v I love the idea though
@m1k3b7
@m1k3b7 Ай бұрын
Ghee unwatchable. Please reshoot
@thedoctor5478
@thedoctor5478 Ай бұрын
First out of focus screenshare I've ever seen. We truly are living in the future
@bobweiram6321
@bobweiram6321 Ай бұрын
It's too bad most of the newfangled languages are inspired by the same languages they intend to replace. Ada is an excellent language with decades of success in industry, yet it's largely ignored.
@liquidmobius
@liquidmobius Ай бұрын
The point behind Mojo is it's a superset of Python to make adoption and implementation much easier. Python devs should have very little trouble getting up to speed. It's designed to be familiar and usable out of the box without having to learn a whole new syntax. That design choice was done on purpose.
@bobweiram6321
@bobweiram6321 Ай бұрын
@@liquidmobius Python is such an ugly language. While it's easy to learn, it feels more like a scripting language. Its code lacks structure and feels like it will fall off the page. I yearn for Algol-like languages with English keywords like Object Pascal and Ada.
@liquidmobius
@liquidmobius Ай бұрын
@@bobweiram6321 I actually started learning Ada a few weeks ago, with the goal being to become relatively proficient with Spark. My main interest is safe systems-level languages, and Ada/Spark fits that bill perfectly. Time will tell if I stick with it or not. I'm moving more towards embedded, so we'll see. As far as Mojo though, it's specifically targeted at the AI space, since ML is done primarily in Python. It's designed to make deployment easier, so developers don't have to rewrite their models in C++ or Rust. So in that sense, it's really targeted at a specific niche. They are planning on broadening it to more general-purpose use case. I personally really like it, but wouldn't even consider it for general-purpose systems programming.
@yuan.pingchen3056
@yuan.pingchen3056 Ай бұрын
@@bobweiram6321 Python is structured, it just does not use parentheses to distinguish code blocks (replaced by indentation), which is actually an advantage. The algo language is the predecessor of the C language, and the C language tends to use symbols to represent a block. Instead of using begin/end, in other words, your head is the same as it was decades ago. don't get me wrong, I don't hate using parentheses to represent code blocks. I just hate the { that starts the code at the end of the line and I can't find the corresponding ending. Even if the IDE can mark the ending for me, I also hate that they are not on the same X. coordinate
@MestisoHapa
@MestisoHapa Ай бұрын
I have done rust for about 5 years, and I hoped that rust would catch on more, but there's a theory in economics called Network Effects, and essentially it means that the more people use something., the more other people will use that thing. It's contagious (and I suppose you could say addicting too). The simple fact is that people don't want to learn all the new syntax and rules of rust even if it has the speed of C/C++ with greater memory safety and higher level abstractions. While I'm not the biggest fan of python (not an expression oriented language, non-lexical scoping, types are optional, etc), it IS the lingua franca of machine learning and scientific computing in general. So it makes sense for Modular to "meet programmers where they are". It's also a proven strategy that worked with javascript -> typescript, and objective-c -> swift.
@ScottzPlaylists
@ScottzPlaylists Ай бұрын
Does anyone think PyPy rewritten in 🔥Mojo🔥instead of python, could be faster than CPython❓ They say It's already faster, actually, but how much faster can it go? I propose the name PyJo because MoPy sounds slow. 😀 Once 🔥Mojo🔥is stable, and finished they should do that and make it the standard implementation instead of CPython.
@BulbaWarrior
@BulbaWarrior Ай бұрын
42:17 So what happens with early destruction under control flow? Will ASAP destruction be able to eliminate an allocation in this case: ``` var s = String("mojo") if false: use(s) ``` Not sure if I have access to IR tools as a simple user Also a design question: does __init__() allow partially initialized objects or is it a compiler error?
@NickSmit_
@NickSmit_ Ай бұрын
`__init__` requires `self` to be fully initialized before it returns. Otherwise, you will receive a compile-time error.
@androth1502
@androth1502 Ай бұрын
it's not a serious programming language if it doesn't support windows.
@letsplaychannel6276
@letsplaychannel6276 27 күн бұрын
right, but who said Mojo is a serious programming language yet. It's still in development and find out how to do things stage. Windows support is unnecessary at this stage and might be implemented when the foundation is set up.
@Jowbaka
@Jowbaka Ай бұрын
Instead of "inout self" isn't it clearer to have "init self". Where init means that it takes in an uninitialized value that must be initialized at the end of the function. With an init keyword, there is no need for special case magic.
@MestisoHapa
@MestisoHapa Ай бұрын
It is not necessarily an initialization. What is being passed in can already have a value (it is often used as `inout self` to help initialize self, but it does not have to be an initialization). "inout" is more like "mutable" and says that the value I am using can be mutated, and this change will be propagated to the caller. A lot of people seem to not like inout as a keyword, but I believe it came from the swift language
@Jowbaka
@Jowbaka Ай бұрын
@@MestisoHapa but in _init_(inout self), then self is uninitialized, right?
@MestisoHapa
@MestisoHapa Ай бұрын
@@Jowbaka In __init__ methods, yes. But inout can be used in any function or method. It's not strictly for initialization. As it says in the video, inout is basically an LValue type. It's mutable/assignable, and when the value changes, the newly set value is still there after the function has returned. In an __init__ method, if you forget to assign an initial value, the compiler will flag that as an error
@Jowbaka
@Jowbaka Ай бұрын
@@MestisoHapa inout works well for all other functions, but to me _init_(init self) is clearer than _init_(inout self), because in a regular usage inout always requires the argument to already be initialized before calling the method or function. Another possibility is _init_(out self) (from c++ proposal, not my idea).
@MestisoHapa
@MestisoHapa Ай бұрын
@@Jowbaka But then you're adding a new keyword that's only applicable in one scenario. AFAIK, you're right, in other functions the inout parameter would already need to be initialized, but I don't see that as requiring a distinction between the concepts of initialization and mutability/assignment. Initialization is always assignment but it's not mutation. And that's what an LValue is...either mutability or assignment. So instead of having to learn two keywords, you just need to learn one. Also, keywords should always be considered thoroughly, because it means you can no longer use it as a symbol elsewhere in the language (unless you make a much more complicated parser). They could have gone the route of C# also, with separate "in" and "out" parameter keywords. But since Chris Lattner made Swift, and Swift already has inout (and therefore, a lot of swift programmers are already familiar with the concept), I guess Chris decided to reuse it for Mojo. Me personally, I would have preferred 'mut' (and there was some discussion about it github.com/modularml/mojo/blob/main/proposals/lifetimes-keyword-renaming.md#inout-keyword--ref-or-mutref-)
@kevinkkirimii
@kevinkkirimii Ай бұрын
borrowed and owned are key words that are at least simpler to understand, why not have mutable/changeable instead of inout as a key word which is a bit more clear to the user ?