I’ve been working with a Javascript + 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!

  • bungle_in_the_jungle@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    8 months 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
      2
      ·
      8 months ago

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

    • NotNotMike@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      8 months 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

    • NotNotMike@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      8 months ago

      Agreed, as a Java developer you will hopefully find C# familiar but more refined. They share a lot of the same features now, but C# seems to do them all better, in my opinion. Linq especially is just so much more enjoyable for me than Java Streams.

      .NET Core (now just .NET) readily runs on Linux and Visual Studio has a free edition that is superb - an IDE provided by the language developers. Of course, you can always use Visual Studio Code or a third-party offering like Rider (by JetBrains so the transition from Java could be very easy of you are already familiar with their programs).

      My only complaint on C# is that the .NET versioning is a little confusing if you aren’t already familiar. However, that’s only an issue if you work with legacy code. New versions after .NET 5 are all the same naming and upgrading is generally effortless, just changing a single number in your project file and downloading the proper SDK

  • Litanys@lem.cochrun.xyz
    link
    fedilink
    English
    arrow-up
    7
    ·
    8 months ago

    Id suggest rust, gets you a step closer to the hardware and a bit of a different paradigm than Java while still feeling high level.

    • pathief@lemmy.worldOP
      link
      fedilink
      arrow-up
      0
      ·
      8 months ago

      Rust is definitely something I’ve been keeping an eye on. The syntax looks a bit scary, to be honest, but looks very versatile.

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

        Definitely rust, and definitely use rustrover from jetbrains for an IDE. It’s amazing

  • joelthelion@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    8 months 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.

    • Corngood@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      This is my favourite list in here, but I’d throw a Lisp in too.

      Lisp, Haskell, and Rust should all teach you something new and profound about programming.

  • JakenVeina@lemm.ee
    link
    fedilink
    English
    arrow-up
    4
    ·
    8 months ago

    C# has been doing a lot of really cool things lately, and has first-class Linyx support.

  • Floshie@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    3
    ·
    8 months ago

    Kotlin is by far my fav language. I’ve been astonished by its capabilities used with the “Exposed” library

  • Bezier@suppo.fi
    link
    fedilink
    arrow-up
    2
    ·
    8 months ago

    As the other person said, Python. Or if you want something lower level, how about Rust?

  • key@lemmy.keychat.org
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 months ago

    Kotlin would be the most straightforward/useful professionally if you’re primarily Java. Other Java stack options are Scala or (shudders) Clojure

  • zygo_histo_morpheus@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    8 months 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.

  • ono@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 months 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.
  • demesisx@infosec.pub
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 months 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.