It's always fun for me to see C. elegans meet software. This is amazing.
My undergrad degree capstone project was a flow-based visual C. elegans strain builder[1]. The team worked with two researchers who taught us a lot about genetics and basic C. elegans biology. They are a fascinating model organism, and it was a super fun project to work on. Even though it's got a very small potential userbase, it did have a potential userbase (which was more than you could say about most capstone projects). We used some interesting technology to build it (Tauri[2]: Rust + Web Frontend), learned some biology along the way, and ended up with a great prototype.
Since none of the software team had any background in genetics, modeling the data was pretty difficult. We'd meet with researchers, they'd teach us new genetics concept, we'd build our models, then the next week they'd say "OH we forgot to tell you about this caveat", then we'd go back to the drawing board, update the schema (thank heavens for migrations), rinse and repeat. It was a lot of fun though :) I couldn't have asked for much more out of a capstone project.
>"OH we forgot to tell you about this caveat", then we'd go back to the drawing board, update the schema (thank heavens for migrations), rinse and repeat.
Doesn’t sound that different from standard business software development!
Fascinating project. Really enjoyed reading about it - well done!
Agreed about Go-like interfaces. I don’t think it’d fit Zig to make them dynamic at runtime the way Go does, but even just as a compile-time constraint it would make building a composable ecosystem like Go’s much easier. See writer: anytype.
It really is - writing a svelte component feels like writing something in vanilla html/js/css, but you get all the advantages that come with a framework.
This is the primary reason I love working with it. Coming from the times of jQuery, I can think in those terms like I used to and don't have to constantly translate it into React patterns.
Compared to all the weird rigamarole in other frameworks, the `$:` syntax is one of the least offensive compromises I've come across. Virtually nobody uses label syntax, the `$` is unlikely to clash with existing labels, and it means it can be easily parsed with non-specific JS AST parsers.
You're not the only one. I don't hate Typescript, but I don't think it's necessarily worth using everywhere. I like using it for libraries that I might share or reuse, that contain some complex logic, in which case it helps my code keep guarantees. But for view-layer code, I really don't get why a lot of people are dying to use Typescript that way.
Beyond that, pretty much every Typescript project I've been introduced to suffers from just as many bugs as codebases that use plain JavaScript. Strict typing at compile time doesn't replace conscientious development practices and rigorous testing.
> But for view-layer code, I really don't get why a lot of people are dying to use Typescript that way.
"view-layer code" is underselling how complex many modern webapps can get. When you've got 10+ engineers across 2+ teams running around in your 30,000+ line codebase, TypeScript offers a lot of benefits and makes overall iteration speed much much faster.
You don't need TypeScript for small/personal projects though. As long as everything fits in your memory, you're fine.
Typing only eliminates a certain class of bugs. And user-defined type systems scare me. I loved ReasonML precisely because you got typing (and confident enforcement) for free through the HM type system, but TypeScript always struck me as the embodiment of "now you have two problems"
Agreed. If I'm dealing with strong static types, good inference (and TS / Rust / Whatever ain't it) is a must.
'
If I'm going to invoke a bunch of ceremony every time I blink might as well write Java.
Haha, yeah. I justify this decision by assuming that designer-folks wouldn't be afraid to touch the code if it were JavaScript but would it were TypeScript. :)
To me JavaScript does a great job (if you know what you are doing) and if you're working on a reasonably small project.
jart is a genius. What they’ve done with Blink, Cosmopolitan C, Redbean, and now llama.cpp is incredible. It gives me hope for the future of systems/low-level programming.
I suspect you're trolling but Jart is not a genius for co-authoring a 300 line change to use mmap(), this is a pretty typical system engineering optimization that goes on in big companies, which is usually framed as a performance improvement for certain use cases with pros and cons, not "Hacker news front page 100X revolutionary performance improvement".
I think reducing this to "using mmap is basic" is pretty unfair.
The trick she did overriding malloc & friends to validate that the optimization would be worth doing is, in my mind, one of the high-points of the paper. It's a very clever way of making a meaningful measurement, which was the keystone of the entire change.
I've never heard of, thought of, or used that trick, and the fact she had it in her arsenal to apply to this very specific situation is pretty impressive, to me at least.
Systems Programmer is itself a niche field, when compares to other fields of interest in Software Developement. So let's not trivialize anything, cause it can be amazing to someone, but not to another. It depends from person to person.
it's as much engineering as is gluing mmap, recv and send... there are people who can do that and can't piece together a dataframe pipeline, no need to be passive agressive here
> "it's as much engineering as is gluing mmap, recv and send"
As you can see from comments up this thread (ref. various GitHub issues) - the people "gluing mmap" don't actually have a single clue. They can't properly measure memory consumption (they don't understand what the numbers they're seeing actually mean). They don't understand how paging, swapping or virtual memory work. They don't actually understand the concept of memory-mapped files, why they're there and how they work. They can't explain why their code behaves differently when using memory-mapped files.
Moments like this are here to remind you that there's actual knowledge and skill to building scalable and efficient software, and that hustling and copy-pasting StackOverflow examples will only get you so-far, as will "piecing together dataframe pipelines" in Python.
I can’t help but feel like our brains didn’t evolve to understand the scale of competing against thousands of others to get admitted to college slots and get jobs. Once the internet opened the world to make comparisons against the hierarchy of everyone online, compared to a once much smaller local community, lots of mental issues have shot up. Things like body dysmorphia, imposter syndrome, etc…it just doesn’t seem like our brains can handle the scale of the hierarchy now. That’s just a personal theory of course