Your friendly local programmer, uni student and *nix addict.

  • 3 Posts
  • 45 Comments
Joined 1 year ago
cake
Cake day: June 26th, 2023

help-circle




  • Well, that’s to be expected - the implementation of map expects a function that takes ownership of its inputs, so you get a type mismatch.

    If you really want to golf things, you can tack your own map_ref (and friends) onto the Iterator trait. It’s not very useful - the output can’t reference the input - but it’s possible!

    I imagine you could possibly extend this to a combinator that returns a tuple of (Input, ref_map'd output) to get around that limitation, although I can’t think of any cases where that would actually be useful.






  • Mostly just Visual Studio Code, alongside the usual constellation of Git + assorted language toolchains.

    It’s plug and play at every level - no need to waste hours fucking around with an Emacs or (Neo)Vim configuration just to get a decent development environment set up.

    (And yes, I would use Codium, but the remote containers extension is simply too good.)




  • colonial@lemmy.worldtoProgramming@programming.devNodeJS vs Go
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    1 year ago

    I’m not a fan of Go from a language design perspective, but it does have plenty of technical merit (cheap coroutines, compiled) compared to using a scripting language for your backend.

    Some pointers on other languages:

    • Don’t sleep on Java/Kotlin or C# for your backend. They’re good languages with powerful, well-developed ecosystems. Kotlin even compiles to JS!
    • TypeScript is saner JS. Highly recommended.
    • If your backend is CPU-bound, Rust will let you squeeze out every ounce of performance at the cost of a relatively steep learning curve.






  • I would consider language support essential for “good” sum types. AFAIK, stuff like exhaustive pattern matching can’t be accomplished by a library. Perhaps you could do some cursed stuff with compiler plugins, however.

    (There was a library that implemented non-exhaustive pattern matching that eventually morphed into an ISO C++ proposal… so we won’t see it until 2030 at the earliest /hj)