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
    ·
    10 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.

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

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      2
      ·
      10 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
      3
      ·
      10 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
    ·
    10 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
      ·
      10 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
        ·
        10 months ago

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

  • joelthelion@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    10 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
      ·
      10 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
    ·
    10 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
    ·
    10 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
    ·
    10 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
    10 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
    ·
    10 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
    10 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.
  • alanstateq@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    7 months 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.

  • losttourist@kbin.social
    link
    fedilink
    arrow-up
    1
    ·
    10 months 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.