• bitcrafter@programming.dev
    link
    fedilink
    arrow-up
    3
    ·
    4 hours ago

    Hi everyone, I really am glad to see that we have decided to create a whole thread to pick on that self-admitted Lemmy noob for asking a question–what a loser!!!

  • Drew@sopuli.xyzOPM
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    20 hours ago

    noob here, can someone explain why my workplace doesn’t simply use haskell

    • Log in | Sign up@lemmy.world
      link
      fedilink
      arrow-up
      8
      ·
      18 hours ago
      1. Fear of unfamiliar syntax. This is utterly bogus, but I can bet you that if rust used python style layout and haskell style type signatures, it would still be incredibly niche. Something can wipe the floor with the competition, be rock solid, stable and blazingly fast, but if it’s unfamiliar it will be niche. See elm for front end, for example.
      2. It’s not OOP. The idea that OOP is simpler and solves the interdependency problem persists literally decades after it became painfully clear that it does not. Abstract singleton class factory pattern anyone?
      3. Steep learning curve and math terminology. It’s not called mappable or container, it’s called functor. It’s not called multimappable, it’s called applicable. It’s not called sequenceable, it’s called monad. It’s not called sequence stack or effect stack, it’s called monad transformer stack. This scares folks no end. (Elm did not make this mistake.)
      4. Fear of the difficulty of recruiting - it can be really hard to recruit good programmers in popular languages, so wouldn’t it be even harder to recruit in less popular languages because fewer people know them? No. It turns out that offering coding jobs that are based in languages that people genuinely love coding in is a massive selling point for your company, you’ll get people who are very invested applying, and a lot fewer atrocious candidates from third parties.
      • bitcrafter@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        4 hours ago
        1. Fear of unfamiliar syntax. This is utterly bogus, but I can bet you that if rust used python style layout and haskell style type signatures, it would still be incredibly niche. Something can wipe the floor with the competition, be rock solid, stable and blazingly fast, but if it’s unfamiliar it will be niche. See elm for front end, for example.

        But the weird thing to me is that Rust’s syntax is also pretty familiar unfamiliar since it is (just to start) heavily inspired by ML. Does it really just come down to the fact that it has mandatory curly braces and semicolons? It just seems weird to me that this should be the sticking point for people.

        Edit: Oops, wrote “familiar” when I meant “unfamiliar”.

        • BatmanAoD@programming.dev
          link
          fedilink
          arrow-up
          2
          ·
          1 hour ago

          It’s certainly a sticking point. People complain about Rust syntax all the time.

          Personally, I think its syntax is about as close to C++ syntax as it can be without inheriting some truly horrendous decisions.

          • bitcrafter@programming.dev
            link
            fedilink
            arrow-up
            2
            ·
            34 minutes ago

            That’s a fair point. I have learned so many programming languages and continue to enjoy learning about weird ones that these relatively minor syntax design decisions do not seem like they should be dealbreakers to me, but that likewise means that I am also not the one that they have to worry about appeasing when designing the syntax to attempt to maximize adoption.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        4
        arrow-down
        1
        ·
        18 hours ago

        Steep learning curve and math terminology. It’s not called mappable or container, it’s called functor. It’s not called multimappable, it’s called applicable. It’s not called sequenceable, it’s called monad. It’s not called sequence stack or effect stack, it’s called monad transformer stack. This scares folks no end. (Elm did not make this mistake.)

        God damn I wish we could send you back in time to when whatever idiot came up with monad etc. so you could slap some sense into them!

        • Log in | Sign up@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          5 hours ago

          To be fair, it’s not my insight there, it’s Evan Czaplicki’s.

          I should have added lenses. Just when you think you’ve mastered everything because you finally understand what a zygohistomorphic prepromorphism is (but also why your mentor told you that it wasn’t important), along comes the next mathematical abstraction, and that’s perfectly normal for haskell, but this one comes with 200 new operators to memorise and it feels like you were getting to grips with the Greek alphabet when suddenly it would be really helpful if you could also read Chinese characters.

          • bitcrafter@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            4 hours ago

            A lot of these operators are things like += and -=, though, which should not be too hard to remember if you are familiar with C-flavored languages.