Live data from Hacker News

A look at the Mojo language for bioinformatics

viralinstruction.com

41–50 of 124 posts

Re: A look at the Mojo language for bioinformatics

#41
post #28

Earlier quoted context omitted.

How much does this particular result change when running in release mode?

On my machine, running the debug executable on the medium-size dataset takes ~14.5 seconds, and release mode takes ~0.8 seconds.

do you know why debug mode for rust is so slow? is it also compiling without any optimization by default? it's it checks for overflow?

Re: A look at the Mojo language for bioinformatics

#42
post #22
post #17

Earlier quoted context omitted.

"Swift for Tensorflow" never had any real backing apart from the announcement though.

Apparently it had Google's money backing, for what it is worth. I never believed into it, because Swift is as relevant as Objective-C outside NeXT/Apple's platforms, and not the kind of programming language that the research community cares about.

>Apparently it had Google's money backing, for what it is worth

You mean they paid to have it created, like they pay for thousands of other things.

But it was never really pushed, the way they push things they want to promote.

Re: A look at the Mojo language for bioinformatics

#43
post #7

>>> As a bioinformatician who is obsessed with high-performance, high-level programming, that's right in my wheelhouse!... Mojo currently only runs on Ubuntu and MacOS, and I run neither. So, I can't run any Mojo code 1. Back to the rust vs mojo article that kicked this off... this isnt someone who is going to use rust. 2. Availably, portability, ease of use... These are the reasons python is winning. 3. I am baffled…

Author here. I do know about VMs. Is it too lazy for me to write that article and not bother to install a VM with Mojo (and Rust and Julia, to benchmark in the same environment)? Maybe. If this was for my work I certainly would have felt compelled to. On the other hand, the fact that Mojo doesn't run on Windows and most Linux distros is a point in itself. And also, would the blog post really be substantially improved…

>> Is it too lazy for me to write that article and not bother to install a VM with Mojo

Yes.

Would you talk about a book you didn't read? Or a movie you didn't see? Not on any meaningful level.

Re: A look at the Mojo language for bioinformatics

#44
post #15
post #12

Earlier quoted context omitted.

Well, for the domains Mojo targets, Python is king. So a faster-Python-like language would have more potential audiences. A fast Ruby-like language, not so much, as Ruby was never that special in those domains, or in most places outside web development, and even for that it kind of lost steam in the past 10 years. Besides people opting for closer to C speed had Rust, Go, Java, Swift, and other options to go to, all w…

I used to be quite sceptical given how Swift for Tensorflow went, however since NVidia decided to partner with Modular, alongside their ongoing CUDA JIT bindings for Python, I think Mojo might actually work out.

Chris Lattner has made a few comments here about Mojo the last few months.

https://news.ycombinator.com/threads?id=chrislattner

Here's his comment on swift for tensorflow:

https://news.ycombinator.com/item?id=37330031

Re: A look at the Mojo language for bioinformatics

#45
post #3

As someone who practices bioinformatics, it doesn’t seem appealing. Bioinformatics is like 0.1% dealing with FASTQ files and the rest is using the ecosystem of libraries for statistics and plotting. Many of them in R, by the way.

I guess that depends on your exact ecological niche within bioinformatics.

I got my start at a NGS facility, so handling FASTQ was closer to 80% of my time, so any speedups would have been greatly appreciated.

Re: A look at the Mojo language for bioinformatics

#46
post #28

Earlier quoted context omitted.

On my machine, running the debug executable on the medium-size dataset takes ~14.5 seconds, and release mode takes ~0.8 seconds.

do you know why debug mode for rust is so slow? is it also compiling without any optimization by default? it's it checks for overflow?

The optimisation passes are expensive (not the largest source of compile time duration though).

Debug mode is designed to build as-fast-as-possible while still being correct, so that you can run your binary (with debug symbols) ASAP.

Overflow checks are present even in release mode, and some write-ups seem to indicate they have less overhead than you’d think.

Rust lets your configure your cargo configs to apply some optimisation passes even in debug, if you wish. There’s also a config to have your dependencies optimised (even in debug) if you want. The Bevy tutorial walks through doing this, as a concrete example.

Re: A look at the Mojo language for bioinformatics

#47
post #3

As someone who practices bioinformatics, it doesn’t seem appealing. Bioinformatics is like 0.1% dealing with FASTQ files and the rest is using the ecosystem of libraries for statistics and plotting. Many of them in R, by the way.

As someone who is considering a switch from generic software engineering towards bioinformatics, what would you say the pain points are? If this is not the way to remove workflow friction, what is?

Would like to second this question. I'm very interested in getting into this world, but it feels like there isn't a clear path (especially for someone self-taught like me). Bioinformatics feels pretty inaccessible without a computer science or biology degree, even with substantial R and Python experience.

Re: A look at the Mojo language for bioinformatics

#48

The language is far from stable, but I have had a LOT of fun writing Mojo code. I was surprised by that! The only promising new languages for low-level numerical coding that can dislodge C/C++/Fortran somewhat, in my opinion, have been Julia/Rust. I feel like I can update that last list to be Julia/Rust/Mojo now. But, for my work, C++/Fortran reign supreme. I really wish Julia had easy AOT compilation and no GC, that…

> I really wish Julia had easy AOT compilation and no GC, that would be perfect I pretty strongly disagree with the no gc part of this. A well written GC has the same throughout (or higher) than reference counting for most applications, and the Rust approach is very cool, but a significant usability cliff for users that are domain first, CS second. A GC is a pretty good compromise for 99% of users since it is a minor…

Too bad Julia doesn't have this theoretical "well written GC". I do not like GCs, so I agree with OP's sentiment. Why solve such a hard problem when you don't have to?

I don't find ownership models that difficult. It's things one should be thinking of anyway. I think this provides a good example of where stricter checking/an ownership model like Rust has makes it easier than languages that do not have it (in this case, C++): https://blog.dureuill.net/articles/too-dangerous-cpp/

Re: A look at the Mojo language for bioinformatics

#49
post #28

Earlier quoted context omitted.

On my machine, running the debug executable on the medium-size dataset takes ~14.5 seconds, and release mode takes ~0.8 seconds.

do you know why debug mode for rust is so slow? is it also compiling without any optimization by default? it's it checks for overflow?

Yes, optimization is disabled by default in debug mode, which makes your code more debuggable. Overflow checks are also present in debug mode, but removed in release mode. Bounds checking is present in release mode as well as debug mode, but can sometimes be optimized away.

There's also some debug information that is present in the file in debug mode, which leads to a larger binary size, but shouldn't meaningfully affect performance except in very simple/short programs.

Re: A look at the Mojo language for bioinformatics

#50
post #37
post #34

Great post, but I think the author missed a few advantages of Mojo: * Mojo provides first-class support for AoT compilation of standalone binaries [1]. Julia provides second-class support at best. * Mojo aims to provide first-class support for traits and a modern Rust-like memory ownership model. Julia has second-class support for traits ("Tim Holy trait trick") and uses a garbage collector. To be clear, I really lik…

True, but the title of the blog is about Bioinformatics, and like another comment said: > Bioinformatics is like 0.1% dealing with FASTQ files and the rest is using the ecosystem of libraries for statistics and plotting. Many of them in R Considering that, do you need AOT, memory ownership for doing plotting and statistics? I'd argue not, and that's why R and Python are so popular in Bio.

doesn't this make more sense to have a python like language then for speed? and python for all that other stuff. so learn one'ish language and get it all?
Post reply on HN