• ☆ Yσɠƚԋσʂ ☆@lemmygrad.mlOP
    link
    fedilink
    arrow-up
    0
    ·
    3 days ago

    I do find it’s one of those languages that people either love or hate. Amusingly, my old job used to hire interns regularly, and what we found was that students from second or third year could pick it up really fast. We could get them up and coding something useful in like a week or two. But students from fourth year had a lot more trouble. It turns out that the difficult part wasn’t in learning Clojure, but unlearning patterns people internalized using an imperative language.

      • ☆ Yσɠƚԋσʂ ☆@lemmygrad.mlOP
        link
        fedilink
        arrow-up
        0
        ·
        2 days ago

        I think it’s an artifact of how computing developed. Back when personal computers started showing up, they were very slow and resources were extremely tight. C basically appeared as a form of portable assembly that allowed you to write code that could be translated to a specific specific instruction set instead of writing assembly for each chip individually. A whole generation of developers learned to code using this style, and then went to work in the industry and teach at universities. Meanwhile, very few people got exposure to the functional family of languages that weren’t seen as practical due to needing stuff like garbage collection and using higher level abstractions that were seen as being too expensive. I recall how even when Java started showing up in the 90s people balked at the idea of using gc at the time.

        Today, we live in a completely different world where squeezing out raw performance out of the machine isn’t the top concern for most programs. Stuff we struggle with is maintaining large code bases, working across teams, making code extensible, and so on. And I think this is where the functional approach really shines.