• LedgeDrop@lemmy.zip
    link
    fedilink
    arrow-up
    2
    ·
    6 hours ago

    I’ve been a long time believer that some problems are better solved via OOP, others through functional programming. The perfect language would be a successful blend of the two.

    Many popular OOP languages are horribly lacking on FP or it looks like an eyesore (golang, python, etc). …and FP languages trying to do OOP are kinda awkwards (see common-lisp).

    I thought Crystal Lang (a statically type checked dialect of Ruby) was going to be the “perfect language”… but the compile time performance and the lack of 3rd party libraries (like an aws SDK) really made it hard to use.

    Hearing what you said about Rust has renewed my hope.

    That said, I did notice that features like Coroutines have been “experimental” for nearly 9 years.

    I hope I’m missing something obvious, but how would you create any sort of heavy-lifting, long running, multi-session daemon/application without having some sort of asynchronous mechanism that goes beyond threading (which is limited to the number of cores the host machine is running).

    edit: cleaned up a few thoughts (prematurely hit submit)

    • SinTan1729@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      4 hours ago

      I don’t think there’s an std-way of doing it, but the Rust ecosystem has this thing where people usually settle around one library. In this case, it is tokio. Afaik, most async stuff is done using tokio. What little async I’ve used, it’s been using tokio or some library like actix-web that uses tokio under the hood.

      Also, side note, I never understood the idea of why golang is ugly. I think it’s fine, except for maybe the repeated if err != nil guards. Those are ugly. I wish it used additive types for error handling.