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!!!

  • AlmightySnoo 🐢🇮🇱🇺🇦@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    2 years ago

    Since you already know Java, you could jump straight to C++ with Bjarne’s book “Programming - Principles and Practice Using C++”: https://www.stroustrup.com/programming.html

    You can then move to more modern C++ with his other book “A Tour of C++”: https://www.stroustrup.com/tour3.html

    And then if you’re curious to know how software design is done in modern C++, even if you already know classical design patterns from your Java experience, you should get Klaus Iglberger’s book: https://www.oreilly.com/library/view/c-software-design/9781098113155/

    In parallel also watch the “Back to Basics” video series by CppCon (see their YouTube channel: https://www.youtube.com/@CppCon , just type “back to basics” in that channel’s search bar).

    Learning proper C++ should give you a much better understanding of the hardware while the syntax still remains elegant, and you get to add a new skill that’s in very high demand.

    • xia@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 years ago

      IMO Zig obsoletes C in the way that go and rust tried to do. Personally, I would advise anyone to not learn C; or even start a new project in C, for that matter.

  • bungle_in_the_jungle@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    Python seems to be a staple for as long as I can remember and it looks like it’s still gonna be going strong for a good while yet!

    I’m thinking of taking the dive and finally learning it myself soon.

    • NotNotMike@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      Python is especially great for quick scripts or PoCs. I’ve been using it a lot lately to prototype some things and it just makes it a breeze

      Main complaint is the snake_casing convention. By far my least favorite

      • GBU_28@lemm.ee
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        2 years ago

        Hah I love snake case.

        I also love python for distributed micro tasks and data pipelining

        • anti-idpol action@programming.dev
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          I am the only person that feels like snake casing belongs in declarative stuff, data serialization etc. (SQL, protobuf, JSON, YAML…) while camel case elsewhere?

          • GBU_28@lemm.ee
            link
            fedilink
            English
            arrow-up
            0
            ·
            2 years ago

            I don’t hold any of that, I just find it the most readable for me.

  • joelthelion@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    Rust, haskell, python, c++ are all interesting choices. I would argue that c# is too close to what you already know to be interesting.

    If I were you though, I’d pick a project first, then decide what language makes sense for it.

  • demesisx@infosec.pub
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    2 years ago

    I’m a huge fan of Haskell and (for pragmatic purposes) Purescript. Purescript is hard to find much in the way of documentation but it is so similar to Haskell in that the steep learning curve is worth it, IMO. I rarely find a project that I couldn’t accomplish with one or the other or both.

    • automattable@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      Nothing I have done in my career has given me even close to the benefit I got from learning Haskell. I don’t get to use it professionally, but the patterns I learned to recognize in Haskell are everywhere.