10 ms·
[edited] afaict: 1) Mojo isn't opensource (yet?) 2) I can't test mojo (yet?) 3) Mojo does bold claims like being a better python with performance close to C, li
by nbittich 3y ago
[edited] afaict:
1) Mojo isn't opensource (yet?)
2) I can't test mojo (yet?)
3) Mojo does bold claims like being a better python with performance close to C, like V did, yet no one seems to call them out (yet????)
Anyway, never gonna try it, unless I'm absolutely forced.
I hate their marketing strategy, it sounds too bad.
- nvartolomei 3y agoYou can get access to the playground (Jupiter notebook with Mojo kernel): https://docs.modular.com/mojo/get-started.html https://docs.modular.com/mojo/get-started.html My access was approved within one hour.
- simias 3y agoI chuckled a bit when I saw that they market themselves as "faster than C". Is it 2005 again? Do modern developers even have any notion of how fast C runs to use as a baseline? It's really minor thing but a pet peeve of mine, I remember how twenty years ago every new language claimed to be as fast or faster than C, and every time the benchmark was some ultra-optimized non-idiomatic program in that new language against a naive C implementation, and the C version was usually still 20% faster and use 10% as much RAM with the right compile flags. Are there even Mojo benchmark in the wild? The FAQ entry[1] just finds excuses for situations where it does not perform well... [1] https://docs.modular.com/mojo/faq.html#performance https://docs.modular.com/mojo/faq.html#performance
- boxed 3y agoI mean.. it does depend on what you mean by "faster than C" of course. Writing the straight forward naive solution in Mojo for some problems can produce code that can run on both CPUs and GPUs and be super fast. Can you get the same performance from C? Probably.. with lots on intrinsics and one code base for GPUs and one for CPUs, where the GPU codebase might even be multiple code bases for different vendors. I would say "faster than C if you want to keep your sanity and don't have infinite time". It doesn't roll off the tongue though :P
- miohtama 3y agoThree ways to beat the performance of C “easily” - Run on GPU - Automatic loop parallelisation - Microbenchmarks where C is slow due to pointer aliasing (this is why Ocaml is faster than C)
- Certhas 3y agoThe benchmarks they give here [1] show generic code on par with specialized libraries that are typically written in assembler. These are vastly faster than naive C implementations, so your pet peeve really does not apply here. [1] https://www.modular.com/blog/the-worlds-fastest-unified-matrix-multiplication https://www.modular.com/blog/the-worlds-fastest-unified-matr... I kind of agree with the obnoxiousness of the marketing, but it pays to actually read a little of what they do before jumping to conclusions. If only because its Chris Lattner behind it, obviously not someone who is your average "modern programmer".
- TheAlchemist 3y agoI know nothing about low-level optimizations, but I love playing with different methods and benchmarks. And did try Mojo through their playground. I found it a bit more complicated than anticipated (well, I did believe it's just like python but much faster...) but also very impressive speed. It's impossible to say for sure, since you can't run the benchmark on your machine and god knows what's behind the playground. However, I compared my naive implementation to find min of a rolling mean using python with numba, pandas, polars, numpy and mojo version. Mojo version was faster than polars and numpy, which in turn were faster than pandas and numba. That's my N=1 of course, and not a reliable benchmark. But still, I find it very impressive.
- spmurrayzzz 3y agoLattner being behind Mojo always engendered some benefit of the doubt despite my initial gripes with the marketing claims, but his recent interview with Lex Fridman [1] further emboldened my stance that if Mojo can succeed, Lattner is one of the best-positioned engineers to see it through. [1] https://www.youtube.com/watch?v=pdJQ8iVTwj8 https://www.youtube.com/watch?v=pdJQ8iVTwj8
- svantana 3y agoThat article says nothing about how they achieved those numbers. Meanwhile, in the mojo docs, the matmul results are 20-50x slower for some reason: https://docs.modular.com/mojo/notebooks/Matmul.html https://docs.modular.com/mojo/notebooks/Matmul.html
- 3y ago
- qaq 3y agoI would imagine creator of Clang and LLVM has a bit of an idea of how fast C runs :)
- LeoNatan25 3y agoDidn’t that team at Apple (with Lattner at the helm) also claim Swift was “faster than C”? I am yet to be convinced that in the general case, this is true, especially with the recent language bloat and lack of substantial compiler optimizations. But it wasn’t true back when Swift was released either.
- qaq 3y agoCould you provide a source for that?
- simias 3y agoSure, I should have been clearer, what I had in mind was more "do potential users of Mojo even know or care about how fast C is?" In my experience the new generation of devs haven't touched C and treat it like some kind of weird arcane language, a bit like what Fortran and COBOL were when I started coding around 2000.
- whimsicalism 3y agoNew generation here, I don't see why I would ever code in actual C99 when (at worst) I could just code in C-style C++ but have some of the nice things.
- nradov 3y agoThe only reason for coding directly in C without using any C++ features would be if you have to contribute to a code base that is restricted to C. The Linux kernel being the most prominent example, but also a lot of embedded devices.
- Tozen 3y ago> ..."do potential users of Mojo even know or care about how fast C is?" I doubt their potential users would care so much, as long as it's significantly faster than Python and they don't need C or C++, except as an option and not as a necessity. That's been the point of various other alternative languages. The claim to fame of various newer compiled languages, is not just being as fast as C, but that they are better alternatives to use, for their audiences. Being easier to use, read, or/and learn. This is where some of the drama comes from, because some will make it about speed, and ignore the other elements of what is "attractive".
- fulafel 3y agoI know you didn't mean exactly 20 year old languages but felt the itch to look it up - 2003 was a year of JVM languages[1]. Groovy and Scala are dated 2003. (Clojure came a bit later, in 2007) [1] https://en.wikipedia.org/wiki/History_of_programming_languages https://en.wikipedia.org/wiki/History_of_programming_languag...
- classified 3y agoIf it's "faster than C" you know the author never saw anything but JavaScript and maybe Python.
- celeritascelery 3y agoChris Lattner (The creator of mojo) also made clang and LLVM, so he definitely understands what C can do.
- TheAlchemist 3y agoThis must be the funniest comment in this thread. Did you see who the creator of Mojo is ?
- lapcat 3y ago> I'll probably be downvoted (again) This is a self-fulfilling prophesy. "Please don't comment about the voting on comments. It never does any good, and it makes boring reading." https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- pca006132 3y agoBecause the claim is not as outrageous as V did? V claimed to solve the memory management problem automatically without a VM, which no one knows how to solve... Mojo seems to have a strategy similar to Rust, which requires user annotation and we know that this is sufficient in the majority of cases, so I don't think this is something seemingly impossible. Of cause, whether or not this is as easy to use as Python is debatable... For performance, if the compiler backend performs enough optimization, the code is run natively without any VM, the performance can be same or better than C (as some language features may provide more optimization opportunities). At the end of the day, C programs are compiled into some IR code and optimized by the backend as well, so the frontend language is more about balancing limitation for optimization and expressiveness. I do feel a bit uncomfortable about their marketing strategy, which compares a simple implementation against one with SIMD and parallelization... I think the real win here is simpler SIMD/parallel programming comparing with C/C++, instead of the language itself being faster.
- Certhas 3y agoIt looks like the Mojo work in parts grew out of MLIR and Lattner has repeatedly stated that he wants less compiler magic and more control in the hands of the programmer (indeed MLIR, which Clang might also move to [1], is directly exposed in Mojo). "Faster than C" is a lot more plausible for Mojo than the claim of running arbitrary Python code eventually ;) [1] https://llvm.github.io/clangir/ https://llvm.github.io/clangir/
- pca006132 3y ago> he wants less compiler magic and more control in the hands of the programmer Indeed, I can see this from their emphasis on generic SIMD, which looks pretty nice. It is nice that there is now a language with first-class SIMD support, comparing with something implemented with a library or autovectorization which may not work. > "Faster than C" is a lot more plausible for Mojo than the claim of running arbitrary Python code eventually ;) Seems so. I don't recall reading the claim about running arbitrary Python code, and I think requiring rewriting Python code is reasonable as normal Python code may utilize runtime reflection/dynamic type and they are hard to implement efficiently, and probably require a GC for memory management.
- grugagag 3y agoThere’s an interview of Chris Lattner by Lex Friedman and he goes in depth on Mojo https://m.youtube.com/watch?v=pdJQ8iVTwj8 https://m.youtube.com/watch?v=pdJQ8iVTwj8
- kaba0 3y agoOff topic, but I really can’t stand Friedman. I would much prefer a more intelligent interviewer asking many of those CS giants he interviewed. (If I hear the randomly brought up, completely unrelated musk hype question again...)
- grugagag 3y agoIt’s a long interview, you can skip through if you want. I’m impartial to Lex Friedman, I just enjoy long interviews and a lot of his guests give me a lot to digest.
- unsupp0rted 3y agoWhat the problem with Lex Fridman? He speaks slowly (listen on 2x for regular person speed) and he’s trite, but he interviews people and lets them talk. That’s good enough. And it’s especially good enough in that he gets big names to come talk. He doesn’t need to be a genius or to ask clever questions. Merely letting Chris Lattner geek out for 2 hours on audio about his project is a win.
- waboremo 3y agoNot being able to ask clever questions is the problem though, because once you've heard one of his guests speak elsewhere, you're getting a basic repeat through Lex. His podcast is alright for people who aren't in any of the domains and therefore just want overviews. Anything else, and it's about as useful as listening to an actor repeat the summary for the movie they're promoting for the millionth time.
- 634636346 3y ago> What the problem with Lex Fridman? It's pretty clear he's playing up some kind of "rainman autistic AI savant" persona, and also, he exaggerates his credentials. On his website he describes himself as: >AI researcher working on autonomous vehicles, human-robot interaction, and machine learning at MIT and beyond Which could lead one to erroneously assume that he attended MIT, or even has a degree from MIT, when neither of which are true.
- pid-1 3y ago(4) it's being developed by a VC backed company without a transparent monetization strategy. https://www.crunchbase.com/organization/modular-ai https://www.crunchbase.com/organization/modular-ai Andrew Kelley predicts the future: https://youtube.com/watch?v=YXrb-DqsBNU&t=22m17s https://youtube.com/watch?v=YXrb-DqsBNU&t=22m17s
- adolph 3y agoThanks for posting the Kelley talk. It was interesting but I think also incomplete. Change occurs because nothing is forever. The foundation approach seems better than many, but I think that Kelley has an overly rosy view of foundations and excessively negative view of for-profits. There doesn't seem to be a documented method of voting for new board members, etc. It looks to me like a limited partnership set up as a nonprofit to enable donations. Not a problem, except it still has the same problems that Kelley describes SQLite as having.
- osigurdson 3y agoYou can try it in the form of a jupyter notebook. I'd much prefer just to use it like a regular language. I think their strategy makes quite a bit of sense. Superficially Python like, can use Python libraries, fast and safe like Rust, automatically determines where algorithms should run (to some extent). One thing that comes to mind however, is library performance. I'm assuming it will be ~3X faster than Python (like basic Python code) but if you are coming from Rust or C, this could be an issue.
- tambourine_man 3y agoI find it interesting that they’re not developing it in the open yet. Lattner is an open source fan, I believe it will be open sourced eventually, but maybe the early Swift development was traumatizing. Just a guess.
- veidr 3y agoSwift wasn't initially open-source either. I remember this because I was like, nope fuck that shit until it's open source so I never touched Swift until Swift 2.0 when they open sourced it. (Actually IIRC I started learning it when they promised to open source it later that same year. So the actual moment of open-sourcing might have been slightly later.)
- tambourine_man 3y agoSure, it was a secret project at Apple and a surprise even to a lot of employees. I meant when they actually opened the gates. My recollection is that they were overwhelmed by the feedback and community building.
- BiteCode_dev 3y agoProprietary language only available on proprietary platform with no source available. They say that: > we expect that Mojo will be open-sourced. […] We don’t have an established plan for open-sourcing yet. But I'm not trusting "don't be evil" tag lines anymore. So we'll see when they actually make something open enough that we can entrust our programming stacks to it.
- henry_viii 3y agoOpen-sourcing is a double-edged sword. Young ideas are fragile and if they open source the project now, they'll have to deal with entitled people and trolls instead of investing their time developing the project. They have said, though, they are going to open-source the project eventually like Swift. Also the team behind the project includes very smart people with a history of delivering other great projects (LLVM, Clang, MLIR and Swift). I don't see how discouraging other people for trying to innovate is helpful. In the end this project could benefit all of us.
- Tozen 3y ago> I don't see how discouraging other people for trying to innovate is helpful. That's debatably where the trolling, misinformation, and other underhanded tactics come in. Maintaining the status quo and protecting one's interests, even to the detrimental of the whole, fairness, or the greater good.
- ZeroCool2u 3y agoI signed up to try it this weekend and they gave me my own jupyterlab instance with a getting started notebook in ~5 minutes. I thought it was odd at first that they weren't letting me run it locally too, but if they control the compute environment then they can force push interpreter(?)/compiler updates and eliminate a lot of bug reports from folks that are just using an out of date build. Seems pretty reasonable to me for something that's so early in development.
- amedvednikov 3y agoV is close to C since it literally compiles to C, and it is a simple/readable language like Python and Go, so what's to call out?
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- Tozen 3y ago> 3) Mojo does bold claims like being a better python with performance close to C, like V did, yet no one seems to call them out (yet????) There appears to be confusion here. Mojo is trying to align itself with and be a kind of superset of Python, like C++ was to C. It's also an alternative for Python users, to use it, instead of reaching for C++ or C when they need speed or going lower level. From their website, that's not what V devs ever claimed nor is it their angle for users. V is a different programming language (and compiled), which provides benefits such as greater speed, type safety, etc... in comparison to Python. It would be a switch over, not a superset. V is more of an alternative to Go and then C (in terms of ease of use and greater safety). Mojo and V are mostly in different lanes, where they appeal to different audiences, and how they are marketing themselves has nothing to do with the other. > Anyway, never gonna try it, unless I'm absolutely forced. I hate their marketing strategy, it sounds too bad This comes across as weird, to claim one will never use or gives the impression to never have used the programming languages they are talking down on. If not using Mojo or V, why be so preoccupied? Just skip over to what one does like and not be worried. > ...hate their marketing strategy Just about all programming languages attempt to sell themselves to the public. If they don't, people don't hear about them, and they die in obscurity. And a lot of times, people are allowing themselves to be brainwashed by what big corporations have to sell, because they have big budgets for marketing. People often like, what big companies told them to, because of their infomercials and marketing campaigns. Sometimes, it can be good or at least fair to give alternatives a shot.
- chlorion 3y agoThe claims they are making are extremely bold. On the front page of their website, they claim to have full compatibility with python code, an ownership model and a borrow checker, and being as fast or faster than C++. These are just some of the first things I noticed! Apparently one of the people involved with the creation of this language have some credibility which is pretty confusing. They are the CEO of the company behind "mojo" as well. I think this is going to be another V-lang situation personally, despite the credibility of Lattner. I think this is just someone seeing an opportunity to cash in on the "AI hype" situation that exists currently. Even reputable people can be influenced to do shady things when lots of money is involved! This is of course just my opinion and I wouldn't mind being proven wrong, but I'm definitely very skeptical right now!
- Tozen 3y ago> I think this is going to be another V-lang situation personally, despite the credibility of Lattner. I think this is just someone seeing an opportunity to cash in on the "AI hype" situation that exists currently. Mojo is not only directed at AI, but at Python users as an alternative and superset. The use of it for AI, is partially based on the use case of Python. Insinuating that Mojo is trying to "cash in" on "AI hype", is odd in the context of all the others who clearly do so, but where is the "cash in" at? Mojo and Vlang are free. Vlang (V-lang) has made no such marketing claims in regards to AI, so pairing the languages together comes across as odd. If the argument is about "cashing in", that looks even weirder. The users of both languages can get it for free. As with any programming language, there can be donations and sponsors. Why would it be a problem for Mojo or Vlang to have sponsors, but somehow not so for other competing languages, in regards to their claims? This comes across as at least one is fine with their favorite language getting sponsors or donations, but not others. Or maybe hoping to cut the funding sources of new languages, so there will be less competition. > Even reputable people can be influenced to do shady things when lots of money is involved! The accusation or insinuation is being made that Lattner is "shady" for money, while a backhand is being thrown at Vlang too. Outside of throwing smears, there is no proof of them being in it for hustling money or doing anything that different from what competing programming language creators have and are doing. And that's without talking about the corporate created languages, where obviously money and market share are major driving forces for them.
- opan 3y agoThey're also using Discord for official comms, which kills it for me. Even if they release their source properly, I doubt you'll ever get them off Discord, and I would never go there for help.