philm

joined 1 year ago
[–] philm@programming.dev 42 points 9 months ago (2 children)

It's less the job post, more the implication, that they consider Rust to be better than (their internally developed) C# for one of their major products. And that I think is worth news (as it could further drive towards adoption of Rust in general).

[–] philm@programming.dev 1 points 9 months ago

Well the project never left its roots, it's a still a simple system-f implementation, and a lot of ideas. I've put it on ice, after seeing how much involved there is with questionable outcome (and I need to dedicate a good amount of time to get the theory right, it's not that I have year long research experience background in type-theory etc.). There's more concrete problems than designing yet another language... Maybe I'll come back to that project at some time.

Anyway the idea was to have something like Nix but more general (including derivations, possibly controlled side-effects). Closest to that currently would be typescripts object type, Haskell (overall static typing), crystal-langs union type and nickel (which is less ambitious (probably for good reason)).

[–] philm@programming.dev 1 points 9 months ago (2 children)

“Faster/easier/less mental overhead” is indeed exactly what I mean by “convenient”.

How different the conception of convenient is :P

I think it's super convenient to just do cargo new <project>, start hacking, have superb tooling/expressiveness/performance etc. And it works remarkably well and fast if the problem space is not self-referential etc. or a lot of mutability is in play (I'm probably faster in Rust now than in python, but that probably has to do with the amount of time I'm spending with it...). But I get your point, and I think there's certainly better languages for certain problems (and I even started one myself some time ago, because I wanted something like Nix but with strong typing (anonymous sum/union types/sets etc. similar as typescript))

[–] philm@programming.dev 1 points 10 months ago

Box

Now try to do that with a trait that isn't object-safe...

I get your point, these things make fighting with the borrow-checker a little bit less annoying, but Rust is complex. I'll happily accept that because I value high code-quality (to that point that I rather invest more time to get things right) but when that is not the goal and you want something higher-level and strongly-typed there are alternatives that work better (I'm just talking about the language itself, ecosystem alone for me is yet another pro-Rust thing)

[–] philm@programming.dev 3 points 10 months ago (4 children)

What is a convenient language exactly?

Although I think the arguments are not exactly pro-Rust (they already show complexity with something like Box).

Sure hacking something quickly together with python is quite a bit faster/easier/less mental overhead.

But long-term and IDE experience IMO Rust is the most convenient language (mind you I programmed in ~10-20 languages, and the whole DX is best with Rust IMO (cargo, rust-analyzer etc.)), as it forces you to write a clean architecture and the strong type system keeps it maintainable. While refactoring can feel cumbersome, I almost always had a clean and working/correct (often without tests) code afterwards (when all the compiler errors are fixed).

That said Rust is of course not perfect, all the strong-typing, zero-cost (async is certainly not something I would recommend beginners) systems-programming features make it complex at times (and the type-system can get in the way at times, e.g. trait-object-safety, or not "simple" higher-kinded types). So when that is annoying and control over the exact memory is not that important, something like OCAML or Haskell may be better.

[–] philm@programming.dev 3 points 10 months ago

have an even cleaner architecture

Although I'm fully in camp functional, I doubt that. There are problems that are inherently stateful and rely on mutability. Modelling that in Haskell often results in unnecessary abstractions. I think Rust hits a sweet spot here (when you're that experienced to write idiomatic Rust, whatever that exactly is). Also being lazy by default has its own (performance) implications, strict + lazy iterators (like Rust) is a good default IMO.

[–] philm@programming.dev 8 points 11 months ago

Actually it's been so stable for me for at least a year (not sure when I switched exactly), that this post kind of surprised me, I thought it was > 1.0 already

[–] philm@programming.dev 3 points 11 months ago

Indeed, and the maintainer opened this RFC (I think because of it)

[–] philm@programming.dev 8 points 11 months ago

I mean if you have a super nice working environment (team etc.), I don't see an issue with staying at the company.

But yeah as you say, if the new company is better in every single way, of course you should move.

[–] philm@programming.dev 9 points 11 months ago* (last edited 11 months ago)

Until the competition isn't as shitty and doubles the salary ¯\_(ツ)_/¯

[–] philm@programming.dev 4 points 1 year ago (1 children)

Zig > Rust because actually writing safe Rust code

Start thinking more functional, I rarely have issues with the borrow-checker, or even have to write unsafe. But it obviously depends on the context, when the issue at hand really requires a lot of interior mutability or unsafe can be pain.

I'm also super fast nowadays with Rust, probably faster than with any other language (thanks to great tooling?).

[–] philm@programming.dev 2 points 1 year ago (1 children)

Behold, Rust is blazingly fast in approaching the most popular language :)

Also, in comparison to Python you can do pretty much everything throughout the stack, which would be the reason I would go for Rust (not mentioning all the other niceties it has to offer).

Also learning Rust nowadays is much more approachable compared to say 7+ years back (ecosystem got way better)

 

I'm not sure if programming.dev is affected (doesn't feel like it currently, but I rather note it here, before it is)

view more: next ›