I’ve been working with a Javascript (+ TypeScript) + Java + SQL stack for the last 10 years.

For 2024 I’d like to learn a new programming language, just for fun. I don’t have any particular goals in mind, I just want to learn something new. If I can use it later professionally that’d be cool, but if not that’s okay too.

Requirements:

  • Runs on linux
  • Not interested in languages created by Google or Apple
  • No “joke languages”, please

Thank you very much!

EDIT: I ended up ordering the paperback version of the Rust book. Maybe one day I’ll contribute to the Lemmy code base or something :P Thank you all for the replies!!!

  • Serinus@lemmy.world
    link
    fedilink
    arrow-up
    9
    arrow-down
    3
    ·
    5 months ago

    Just don’t bring your damn factories over. For some reason Java developers just love unnecessary layers of abstraction and forcing that ridiculous factory pattern.

    And they bring it to any language they develop in after Java.

    If you see someone saying “no Java developers” for a position, this is why. They’ve been trained incorrectly, as a joke.

    • Corngood@lemmy.ml
      link
      fedilink
      arrow-up
      2
      arrow-down
      7
      ·
      5 months ago

      All the core parts of dotnet (e.g. roslyn) seem to be built that way. I find them very frustrating to work on. Between that and the whole nuget thing being somewhat FOSS unfriendly, I’d steer people away from C#.

      • Serinus@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        5 months ago

        I don’t get how NuGet is FOSS unfriendly. I mean, at worst you could set up your own repository. All the tools are local. It wouldn’t be difficult to set up your own source if that was absolutely necessary.

        • Corngood@lemmy.ml
          link
          fedilink
          arrow-up
          1
          arrow-down
          2
          ·
          5 months ago

          The whole thing is built around pulling binary packages from servers, and there’s no consistent way of building those things from source.

          It’s extremely difficult to package anything non-trivial without referencing those binary blobs.

          They had to build this whole custom thing (https://github.com/dotnet/dotnet) just to make the SDK itself buildable from source, and most releases still have some binary dependencies. They only did it for the SDK so it could be packaged in Debian, etc.