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!

  • snaggen@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    5 months ago

    I say that you should find some interesting project, possibly something related to some desktop environment like Gnome, KDE, sway, cosmic and so on. There are multiple fun/interesting projects around them. Then pick a small and manageable task, use that to learn the language that project uses.

    I find Cosmic to be a very interesting desktop project, and they use Rust if that would be of interest.

  • fidodo@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    5 months ago

    While it’s related to your job and not very new compared to your current stack, it’s very worth it to learn typescript. It has a cool type system and makes frontend development sane.

  • modev@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    5 months ago

    I advise you to learn something different and hard for you. Only this case will help you to grow and realize a lot of new.

    • Rust for hard
    • Nim for something different
    • C for understanding how things work

    All these languages are efficient and forget about hype and popularity. Language does not matter if you have what to write with it.

  • jasory@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    5 months ago

    Ada particularly the SPARK subset. It’s approach is quite different than most languages, focusing on minimising errors and correctness. It’s fairly difficult but I like to use it to teach people to actually understand the problem and how to solve it before they ever write the code.

  • demesisx@infosec.pub
    link
    fedilink
    English
    arrow-up
    0
    ·
    5 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 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
      ·
      5 months 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.

    • Dave.@aussie.zone
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      5 months ago

      Do you want to awaken the Elder Gods, and consequently suffer a slow and inevitable descent into horror and madness? Then give Perl a try.

      Truly efficient perl code is write-only.

  • Krucian@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    5 months ago

    Odin is quite a fun new language I just started learning. It is meant as a C replacement and comes with a decent standard library and third party library so there is a lot already built that you can use. It also is fully compatible with C and can use C libraries.

    Just be warned that documentation is lacking and you will have to read the source code of the standard library from time to time or seek help from their discord.

    • CapeWearingAeroplane@sopuli.xyz
      link
      fedilink
      arrow-up
      0
      ·
      5 months ago

      Read up a bit on this now, and it definitely looks like something I want to try out! One of the beautiful thing about C is its simplicity, and it looks like Odin has been able to keep that, while introducing some nice convenience features that I often feel like I miss when writing C.

  • Digital Mark@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    5 months ago

    Scheme, and work through SICP, watch the lectures along with the reading.

    I prefer Chez Scheme but there’s many implementations. Chez’s fast and practical, C FFI, large standard library, nice REPL with editor.

  • cosmicrose@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    5 months 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.

  • Juanjo Salvador@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    5 months ago

    If you’re looking for something new, I would recommend you the following list:

    • Ruby
    • Python
    • Erlang
    • Elixir
    • Gleam
    • Zig

    No preference order, just a bunch of them I already know or are in my want-to-learn list.

        • pkill@programming.dev
          link
          fedilink
          arrow-up
          0
          ·
          5 months ago

          syntax is pretty neat but if OP wants something with similar syntax that performs better instead of type checking unit tests alone taking more time to complete than compiling a C++ AAA game, then Elixir might be a better choice. Also it’s functional approach could really provide a fun challenge. I mean, you can even see that by comparing the performance and resource consumption of akkoma/pleroma vs mastodon. Above 10k users or so you have to either scale your instance horizontally or shut it down.

  • TechNom (nobody)@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    5 months ago

    I can recommend Rust - I’m training a few people on it.

    And a pure functional programming language like Haskell or Scheme, if you don’t know what functional programming is, or are not comfortable with it. Functional programming needs a different mental approach to traditional (imperative) programming paradigm. Some of the more modern languages like Rust, JS and Python incorporate a lot of functional programming constructs. So it makes sense to learn them.

    And a lisp - Common Lisp’s popularity is a public secret. Scheme is also fine. This family is homoiconic (program and data are treated more less the same). The syntax is actually very close to its AST. This gives Lisp unparalleled metaprogramming capabilities - mostly through macros. Macros in traditional languages are nowhere near Lisp Macros.

    If it interests you, study a stack based language like Forth or Factor. Though they feel very different from Lisps, they have similar underlying properties. And you get more or less the same advantages.

    • fnmain@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      5 months ago

      +1 for Rust, the learning curve can be pretty daunting, but once you’re over the hump you’ll never want to go back

        • pathief@lemmy.worldOP
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          5 months ago

          I actually ordered the paperback version of the book. I hope it’s not too outdated compared to the online version, I just enjoy reading in actual paper :P

          • charolastra@programming.dev
            link
            fedilink
            arrow-up
            0
            ·
            5 months ago

            The second edition was published last Feb (2023) I believe. I read it on my Kindle, having “flicked through” the online version about 6 months prior, and yeah having it page by page with bookmarks etc was almost as good as paper, but far superior to the web version and I was able to read it cover to cover and gain a lot from it. I immediately then read about 4 other books on Rust! Can recommend “Rust Atomics & Locks” by Mara Bos, and “Rust for Rustaceans” by Jon Gjengset for the next level up.