FizzyOrange

joined 11 months ago
[–] FizzyOrange@programming.dev 1 points 3 hours ago

I'd like to know which specific projects they funded. It's there a list anywhere?

[–] FizzyOrange@programming.dev 1 points 18 hours ago

I think embedded Rust is simply really really new, and requires interacting with crusty C tools which is going to reduce reliability.

It's also a little fragmented with people trying different things out (e.g. Embassy vs RTIC), and different chips getting different levels of support.

Totally different experience to desktop development.

[–] FizzyOrange@programming.dev 3 points 1 day ago (4 children)
  1. If your alternative is C++ then it removes the enormous burden of manually tracking lifetimes and doing manual memory management. C++ does have RAII which helps with that enormously but even then there are a gazillion footguns that Rust just doesn't have - especially with the newer stuff like rvalue references, std::move, coroutines etc. It also saves you from C++'s dreaded undefined behaviour which is everywhere.

  2. It has a very strong (and nicely designed) type system which gives an "if it compiles it works" kind of feel, similar to FP languages like Haskell (so they say anyway; I've not used it enough to know). The borrow checker strongly pushes you to write code in a style that somehow leads to less buggy code. More compiler errors, but much less debugging and fixing bugs.

  3. The libraries and APIs are generally very well designed and nice to use. If you've ever used Dart or Go think how nice the standard library is compared to JavaScript or PHP. It took C++ like 2 decades to get string::starts_with but Rust started with it (and much more!).

  4. Fast by default.

  5. Modern tooling. No project setup hassle.

  6. It's a value based language, not reference based. References are explicit unlike JavaScript, Java, C#, etc. This is much nicer and makes things like e.g. copying values a lot easier. JavaScript's answer for ages was "serialise to JSON and back" which is crazy.

Downsides:

  1. Slow compilation sometimes. I'd say it's on par with C++ these days.

  2. Async Rust is kind of a mess. They shipped an MVP and it's still kind of hard to use and has unexpected footguns, which is a shame because sync Rust avoids footguns so well. Avoid async Rust if you can. Unfortunately sometimes you can't.

  3. Interop with C++ is somewhat painful because Rust doesn't have move constructors.

Great language overall. Probably the best at the moment.

[–] FizzyOrange@programming.dev 5 points 2 days ago (2 children)

I don't think so. At this point Linux isn't really held back by software availability - 90% of things are web based now and games apparently work pretty well (certainly better than on Mac).

The main issue is hardware support and driver quality. Especially on laptops, if you install Linux you're really rolling the dice on whether or not you'll get something that works.

Someone always replies to comments like these with "it works for me!" which is not really relevant when it has to work for everyone.

For a while at work I was in the Linux slack channel even when I was using a Mac, just to follow the amusing problems people had (and they had a lot!).

Then I moved jobs and have a Linux laptop... I get to experience it first hand. Hard reboot when it runs out of RAM, or 20% or the time when you undock it. Doesn't work at 60Hz/4K on some work monitors but only if you are using HDMI. The exact same laptop model & OS works for other people. Battery life is hilarious. I don't think I've ever got over 2 hours.

[–] FizzyOrange@programming.dev 2 points 2 days ago

No because it doesn't remotely take that long.

[–] FizzyOrange@programming.dev -5 points 2 days ago (2 children)

Sure, but it's very similar. The point is that those people didn't get to choose the language they're using and now someone is forcing them to use a specific language. They've always been forced to use a specific language.

I guess it just think "I don't want to learn" is a lame excuse.

[–] FizzyOrange@programming.dev 2 points 3 days ago (5 children)

That's a lot easily than learning the C to the same level and they "force" everyone to learn C.

[–] FizzyOrange@programming.dev 1 points 3 days ago

Right but presumably you can let the AI do that hunting.

[–] FizzyOrange@programming.dev 3 points 3 days ago (3 children)

Gemini has a 1 million token limit. Also instead of just giving it the entire source you can give it a list of files and the ability to query them (e.g. to read an entire file, or search for usages/definitions of terms etc.).

[–] FizzyOrange@programming.dev 2 points 3 days ago (6 children)

No but I think this is probably a great use case for AI. Haven't tried it though.

[–] FizzyOrange@programming.dev 7 points 4 days ago

you can write perfectly safe software in it.

In the same way that you can safely walk through a minefield.

I dunno what you mean about it being an expressive language either. I would say it is relatively low on the expressiveness scale compared to something like Python or OCaml. It's basically as expensive as Go which is renowned for being unexpressive. Maybe you didn't mean "expressive".

[–] FizzyOrange@programming.dev 2 points 5 days ago

It doesn’t look like it would be hard to have (comment "foo bar baz") in an expression

That is pretty much what the official "solution" is for comments in package.json - add "//": "foo bar baz" keys to dictionaries and NPM will ignore them.

In practice it's terrible. You need real comments.

 

Very impressive IDE integration for Dart macros. Something to aspire to.

view more: next ›