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

  • alanstateq@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    When I first ventured into programming, I felt like a complete novice. With no prior experience, diving into the complex world of coding seemed daunting. That’s when I stumbled upon full stack development service. These services offered a comprehensive solution, covering everything from front end to back end development. It was like having a guiding hand through the intricacies of programming. With their expertise, I was able to navigate the complexities of software development with confidence. Full stack development services became my stepping stone into the world of programming, helping me transform from a novice into a proficient developer.

    • xia@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      0
      arrow-down
      1
      ·
      1 year 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.

  • losttourist@kbin.social
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    Give Clojure a go.

    It’s a modern variant of lisp that runs on the JVM and has deep interoperability with Java, so you can leverage your existing knowledge of Java libraries.

    But as it’s a lisp, it will have you thinking about problems in a very different way.

  • demesisx@infosec.pub
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 year 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.

      • xmunk@sh.itjust.works
        link
        fedilink
        arrow-up
        0
        ·
        1 year ago

        I know it’s fashionable to shit on PHP but it’s significantly better than it once was… it’s honestly like a cleaner python that lets you use brackets.

  • ono@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 year ago

    These come to mind:

    • Elixir to expand the way you think about problems (and maybe your career).
    • D to bring familiar conveniences closer to the metal.
    • C to understand (and maybe contribute to) a vast ocean of existing software.
    • Python for development productivity.
  • BiggestBulb@kbin.run
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    I see you mentioned JS, but not TS. If you haven’t tried TypeScript, you 100% should! It helps a lot at scale.

    Also, I really do recommend Rust. It’s pretty awesome having the errors actually make sense, and it’s not as complicated as the hype makes it out to be (until you get into async rust lol).

    As others have mentioned, C# is also awesome.

    • pathief@lemmy.worldOP
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      We do use TS as well, yes!

      Rust is definitely a language I’m considering. Syntax looks a bit scary, though!

      • Fal@yiffit.net
        link
        fedilink
        English
        arrow-up
        0
        arrow-down
        1
        ·
        1 year ago

        Rust syntax is totally fine really. It often feels like writing python

  • matcha_addict@lemy.lol
    cake
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    1 year ago

    I have a couple of suggestions based on what you want!

    Ocaml: A good intro into functional programming

    The languages you’ve used seem to be primarily imperative style. Ocaml is not commonly used in the industry (with some exceptions), but it has a vibrant small community, and more importantly, because it’s a functional language, it will be different enough from what you know. Even if you don’t use it in industry, it will teach you a lot that would be hard to learn using non-functional languages.

    Ocaml is a compiled language, with a very fast compiler and very good type system.

    Scala: the only semi-mainstream language that blends OOP and proper functional programming well.

    Although scala is mostly a functional language, it still has most of the gestures of imperative OOP languages like Java. It is also far more mainstream than ocaml and has used in industry.

    Scala also runs in JVM like Java, and thus gives you access to most JVM libraries.

    Rust

    Intro into low level programming Other answers spoke enough about Rust so I won’t dive here

    Zig

    similar to Rust in low-levelness, but less mainstream, better C interop, and other interesting differences

    Raku: the result of 15 years of programming language design

    Raku, formerly perl 6, was almost redesigned from the ground up to resolve complaints of perl 5. It has a very interesting design, with a gradual type system, a blend of functional and OOP paradigms, plus interesting syntax features like sigils and grammars.

    There are many interesting languages out there. I could talk forever about this, but I’ll leave you with the above. I personally would recommend ocaml if you’re interested in functional programming or care about performance. Otherwise, Raku, since its very interesting but doesn’t perform well (Raku’s VM is still immature and under development).

    • YIj54yALOJxEsY20eU@lemm.ee
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      1 year ago

      Ocaml is going to be my next learn for fun language forsure! I’m getting sucked into the functional paradigm hole. The option/result types in rust have made working in languages without them much worse.

  • zygo_histo_morpheus@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    Personally, the language that’s taught me the most to learn has been Haskell. It has a lot of very interesting ideas and a learning curve that plateaus after most other languages. There are several ideas that have trickled down from Haskell to other parts of the programming world and learning about them in the context Haskell is in my opinion better because you’ll learn about them in a context where they fit in with the rest of the language very well instead of being late additions that offer an alternate way of doing things.

    Coming from Java and JS, Haskell has a very different approach to a lot of things so you’ll have to re-learn a lot before you get productive in it. This can be frustrating for some but you’ll learn more if you get over that hump on the other hand.

    Haskell doesn’t see very much industry use and arguably isn’t very well suited for industrial application (I haven’t used it professionally so I don’t know personally) so it might not directly help you land any new jobs but it is in my opinion it’s a very good way to develop as a programmer.

  • bungle_in_the_jungle@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    1 year 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.

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      Packaging solutions kinda sucks, but we’re about to get a JIT in the main CPython so that’s exciting.

      • KᑌᔕᕼIᗩ@lemmy.ml
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 year ago

        When I used to work a lot with Python the packaging solutions available were the bane of my existence. I hope they’ve gotten better by now…

    • NotNotMike@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      1 year 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
        1
        ·
        edit-2
        1 year 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
          ·
          1 year 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
            1
            ·
            1 year ago

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

  • cosmicrose@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    I’ll suggest Elixir. It’s a language that runs on the same virtual machine as Erlang, which has proven to be great for ultra-reliable and excellent at managing many, MANY concurrent processes.

    Elixir itself builds upon this great foundation with a syntax similar to Ruby, but entirely functional. It’s a delightful language to read and write.

  • TootSweet@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    Go. It’ll be just different enough from what you have experience with to make you think about things differently (in a good way!) from now on. And it’s also a fantastically well-designed language that’s great for getting real work done. And it’s lightning fast as languages go, and compiles to an actual executable. Really a pleasure to work with. It’s my (no pun intended) go-to language for every new project I start. (Excluding what I write specifically for a paycheck. I don’t have a choice there.)