Parsing PNG Images in Mojo
fnands.com
fnands.com
I've written a tiny bit now and I can feel some new dimensionality that I'm not used to (e.g. the ownership and borrowing story in a language that doesn't really let you syntactically express ref/value seems a bit like marketing-driven-design), which can't be a good thing given that I'm not just an "AI programmer" that the mojo people seem to be aiming for.
I'd gladly switch the python code I have now over to mojo - python is slow and ugly - but in the long term the joined-at-the-hip relationship with python could put the language in a weird position: It might get you some early customers (every python-but-faster variant has) but what happens after that? It's an odd place to be (that and culturally your main influence is now going to be python programmers who are often either inexperienced or plain mediocre - selection effects)
You tried a new language that made it obvious it was still very early and evolving fast, then based your whole prediction of this language's future on this early alpha version.
Typical
Rust now looks pretty similar to the Rust I first used in 2015-ish, surprise?
According to Mojo's changelog, it was started in September 2022, which makes it less than 2 years old in active development... but even then, it'll look a lot like its final form by year's end.
Frankly, most new tech falls flat on it's face.
Take a look at Wikpedia's list of programming languages created in the past 14 years. There's some winners, true, but there's plenty of cruft.
https://en.wikipedia.org/wiki/Timeline_of_programming_langua...
You this optimistic about Carbon as well?
Bootstrapping a new scripting language sounds incredibly difficult unless you have the cash or mindshare to get others to follow. Which is unfortunate, because I think a new language with lessons learned since Python could have a lot of performance and usability improvements vs where we are now.
So getting better performance in a single python-ish language with a bit of extra syntax seems promising to me, but I admit I've yet to try this. I'll wait to see if a good ecosystem gets built around it.
These will guarantee you the performance, might even be terser, certainly easier to deploy, and actually open-source.
And of course it's a full on functional language with some great syntactic sugar, especially computation expressions.
The stomaching of .NET basically means getting a much larger set of third-party libraries than OCaml or Haskell can offer.
It is well worth checking out!
But for new projects in the future, I am looking towards Mojo and Chapel.
Otherwise, there is no reason to pick either when you can do `dotnet add package System.Numerics.Tensors` and access pure C# BLAS that runs at optimal hardware speed that lets you easily implement inference without ever reaching for C or C++. And for GPU-related scenarios there is ILGPU. Now, either is extremely niche compared to Python, but the overall choice will give you great support everywhere, unlike with Chapel or Mojo.
(I suppose a valid excuse for suffering from C++ tooling would be getting to use something like ISPC)