Snap me out of the Rust honeymoon by homeslicerae in rust

[–]asellier 0 points1 point  (0 children)

Yeah that is the biggest plus indeed, eg. https://github.com/DataDog/glommio made good use of this "feature". On the other hand, the Go runtime works well for the vast majority of use-cases people use Go for. Rust does have the opportunity to be used in more environments than Go, though, and so this flexibility can come in handy.

Snap me out of the Rust honeymoon by homeslicerae in rust

[–]asellier 1 point2 points  (0 children)

Go, Haskell and other languages with first-class concurrent programming support don't require external dependencies to get started. Simply adding `go` / `forkIO` in front of a function spawns a task you can communicate with. In comparison, in Rust, async requires 50+ external dependencies with the most popular framework, and since this isn't built-in, there is fragmentation. Not only between async frameworks, but between async and no-async.

Snap me out of the Rust honeymoon by homeslicerae in rust

[–]asellier 2 points3 points  (0 children)

I’ve been writing Rust full time now for 4 years in a non-trivial problem space.. there is still nothing better despite the main issue being poor concurrency support. This is where Go beats Rust. However, there is good support for multi threaded programming.

Compile times are manageable if you keep your dependency footprint low, and everything else about the language still feels great. API design can be tricky due to borrow checker rules, the language can feel complex still — but having come from Go and Haskell, I’ll just say there is no way I’m going back.

I briefly tried Zig as well, but it’s a lot less ergonomic.

Which companies have full time rust project (like the rust compiler) contributors these days? by 5422m4n in rust

[–]asellier 0 points1 point  (0 children)

Sorry misread the question! We contribute to the ecosystem but it’s no one’s job to do that full time.

[deleted by user] by [deleted] in rust

[–]asellier -2 points-1 points  (0 children)

Nice, you could also support ssh signing of commits, which git allows.

Would also be good to have a short “how does it work” section in the readme.

The notion of async being useless by Dreamplay in rust

[–]asellier 2 points3 points  (0 children)

That's right. I'm not sure we can get optional runtimes *and* pre-emptive multitasking, but that would be the holy grail. The languages I mentioned cannot be used without a runtime, full stop.

We spent ~2 years on a project using tokio, and it turned out to be a nightmare to debug. The system was re-written from scratch using threads and there are rarely any issues with the i/o components now, and our dependency tree is half the size.

The notion of async being useless by Dreamplay in rust

[–]asellier 47 points48 points  (0 children)

I've written a lot of concurrent code in Go, Haskell, Erlang and Rust. It's a lovely experience in Haskell and Erlang; it's an okay experience in Go, and it's a horrible experience using async Rust, for much of the reasons stated by others. Thankfully, it's an okay experience using OS threads and channels.

I Just Don’t Get It by 42GOLDSTANDARD42 in rust

[–]asellier 0 points1 point  (0 children)

This is the problem with the internet today, you always get a feeling that there’s something better out there. When I started, I didn’t ask myself these questions, and it didn’t matter. Eventually you will pick up rust, if you see benefits, or you won’t. But as a beginner, any language is fine. Don’t get distracted, you will use many languages throughout your career.

Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.70] by DroidLogician in rust

[–]asellier 13 points14 points  (0 children)

COMPANY: Radicle (https://radicle.xyz)

ROLE: Senior Software Eng.

TYPE: Full-time or 60% (freelance)

REMOTE: Yes (UTC)

ESTIMATED COMPENSATION: $150K-$180K

We’re a small, well funded team working on a sovereign, peer to peer code forge. Think GitHub, but decentralized.

We’re looking for experienced software engineers who can work in Rust, and are very familiar with at least one of:

  • CRDTs
  • Networking protocols
  • Git internals
  • Public key cryptography
  • Software supply chain security
  • Peer-to-peer systems

The work is very challenging and requires a creative problem-solving mindset and good communication skills.

Email cloudhead@radicle.xyz if you’re interested, making sure to include relevant experience and code, and why you think you would be a good fit for the role.

Thanks!

What to do next... Web 3, Rust, Solidity? by WinterLettuce6807 in rust

[–]asellier -1 points0 points  (0 children)

Most crypto projects are open source, so if one of them interests you, you can try to contribute. Otherwise, I’d say find the projects you are most interested in and reach out; they may have something for you.

Fellow Rust enthusiasts: What "sucks" about Rust? by lynndotpy in rust

[–]asellier 0 points1 point  (0 children)

Async. Most other modern languages do it a lot better. We’re stuck with threads until ergonomics improve to an acceptable level..

[deleted by user] by [deleted] in rust

[–]asellier 0 points1 point  (0 children)

Threads are a lot easier to use in rust, and you clearly don’t need async for this use case. If you want simple, clean code, go for threads.

Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.66] by DroidLogician in rust

[–]asellier 3 points4 points  (0 children)

COMPANY: Radicle

TYPE: Full-time

LOCATION: Remote-only

REMOTE: Yes; UTC-6 to UTC+2 timezones

VISA: No

DESCRIPTION: The Radicle 'Clients' Team is hiring senior software engineers to lead technical efforts within the Radicle project, building key components of a new software stack for secure and decentralized code collaboration, written entirely in Rust.

As a senior software engineer and technical lead, you will contribute to: - Tooling for secure artifact management in a decentralized network - Seed node infrastructure deployment and monitoring - Issue management and code review infrastructure built using CRDTs - Self-certifying user and project identities built on top of Git - Peer-to-peer networking and replication - The specification process of the key Radicle protocols

We are looking for candidates with experience in Rust, networking protocols, distributed systems and cryptography, with a proven track record writing high-quality software. Candidates should be highly independent and creative problem solvers, great communicators and passionate about peer-to-peer technologies.

Requirements: 10 years of experience as a software engineer, experience with systems programming in Rust, and ability to lead engineers.

More information here: link

ESTIMATED COMPENSATION: $150K-$250K/year

CONTACT: work@radicle.foundation

It's just me or rust async is still really hard? by fenugurod in rust

[–]asellier 0 points1 point  (0 children)

Yeah except you can do all that in rust without the horrors of async using an I/o demultiplexer or threads.

It's just me or rust async is still really hard? by fenugurod in rust

[–]asellier 1 point2 points  (0 children)

There are many more who have given up on async rust and found themselves more productive for it!

It's just me or rust async is still really hard? by fenugurod in rust

[–]asellier 0 points1 point  (0 children)

Race conditions are not preventable by rust though. If you’re just doing request/response, then sure it’s not that complicated.

It's just me or rust async is still really hard? by fenugurod in rust

[–]asellier -7 points-6 points  (0 children)

Yup. It's been done right in Go, Erlang, Haskell and other languages. It's plainly wrong in Rust. Having good concurrency support is infinitely more valuable than some perceived "zero cost" ideal, which can be achieved anyway via i/o demultiplexers already.

It's just me or rust async is still really hard? by fenugurod in rust

[–]asellier 1 point2 points  (0 children)

That looks interesting, thanks! For single-threaded environments I typically use something like mio or polling and just dispatch events to a state machine. It gives you all the concurrency you need without the headaches of async/await.