this post was submitted on 26 Jan 2024
87 points (92.2% liked)

Programming

17270 readers
39 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

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

(page 2) 50 comments
sorted by: hot top controversial new old
[–] [email protected] 4 points 9 months ago

Download GODOT and learn the scripting language and the shader language. Make a game! Or at least neat shader art.

Bonus answer: Csound. Make funky noises with code.

[–] [email protected] 4 points 9 months ago (5 children)

I'm gonna be the weirdo recommending Ruby. I really like it as a language, and it's pretty fun to write. Plus it's got a lot of libraries so you can do fun projects like Discord chat bots.

[–] [email protected] 2 points 9 months ago (1 children)

I have this one weird friend who does competitive one-line-programming in Ruby. It's supposedly the best one-liner language.

load more comments (1 replies)
[–] [email protected] 2 points 9 months ago

I been meaning to learn Ruby to get around using Python. I like Ruby syntax better.

load more comments (3 replies)
[–] [email protected] 4 points 9 months ago (1 children)

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

load more comments (1 replies)
[–] [email protected] 4 points 9 months ago (1 children)

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.

load more comments (1 replies)
[–] [email protected] 4 points 9 months ago* (last edited 9 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.
[–] [email protected] 4 points 9 months ago

Clojure, it's a lisp that runs on the jvm and would be quite the shakeup for ya.

[–] [email protected] 3 points 9 months ago (2 children)

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.

load more comments (2 replies)
[–] [email protected] 3 points 9 months ago* (last edited 9 months ago)

DotNet is closest to Java, but hang on to your hat: the state of C# is at least half a decade ahead of Java, if not a full decade. It’s sophistication will make Java use feel like banging rocks together. DotNet Core can now run on all three primary platforms, and with some careful work, you can write a single program that can compile down to each platform and carry along its own required binaries, no pre-install of any framework needed.

My second recommendation would be Rust. Stupidly steep learning curve, but an absolutely game-changing one where safety and security is concerned. It’s my next objective, personally speaking.

Any other language I could recommend starts getting into speciality purposes, which makes general use more difficult or even wholly inappropriate.

For example, if you are dropping into DotNet for business applications, I would also recommend diving into F# for that functional goodness for building complex business rules and data handling. But building an entire app in F# can be jamming a round peg into a square hole under many circumstances, it’s appropriateness envelope does not cover as many cases as C# does. You want to use C# for boilerplate/frameworks, F# for the core bits where it is going to shine.

[–] [email protected] 3 points 9 months ago

I love Clojure+Clojurescript

[–] [email protected] 3 points 9 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.

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago) (1 children)

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

load more comments (1 replies)
[–] [email protected] 3 points 9 months ago (2 children)

Have you ever wanted to do more with regular expressions? Then give Perl a try.

load more comments (2 replies)
[–] [email protected] 3 points 9 months ago (2 children)
load more comments (2 replies)
[–] [email protected] 3 points 9 months ago

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

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago)

Alternatives

  • C#, because it's good
  • Rust, because it's different
  • a (purely) functional language, because it's different
  • Nushell, nice shell, and great for scripted data processing
[–] [email protected] 2 points 9 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.

[–] [email protected] 2 points 9 months ago

Ada and COBOL are still where the big money is, and still will be for years to come.

[–] [email protected] 2 points 9 months ago (1 children)

Perhaps Elixir is worth a look.

[–] [email protected] 3 points 9 months ago

I would second Elixir. Either that or Rust. Sure both are popular, but for good reason.

They are completely different from the languages you use.

You will be introduced to new paradigms.

As a person who used the same stack as you (albeit typescript instead of JavaScript), I think it would be a waste of time to learn C#. It is so close to Java, and learning it may make you hate having to use Java, because it seems a bit better put together. Even though it runs on Linux, and is a good language, I don’t think there is ever a reason to chose it over Java, because M$.

[–] [email protected] 2 points 9 months ago

I love C#, but F# is also super fun and worth checking out.

[–] [email protected] 2 points 9 months ago (2 children)

Factor!

It's incredible and elegant and defies some common categorization.

I've put some of my favorite resources in the sidebar of https://programming.dev/c/concatenative and I'm happy to walk through any particular challenges/examples -- I've done about the first week of Advent of Code with it this year, and the most recent handful of Perl Weekly Challenges, and some basic Euler problems.

[–] [email protected] 3 points 9 months ago

Hi there! Looks like you linked to a Lemmy community using a URL instead of its name, which doesn't work well for people on different instances. Try fixing it like this: [email protected]

[–] [email protected] 2 points 9 months ago (7 children)

Re the sidebar: How are Nim and Roc partially concatenative?

load more comments (7 replies)
[–] [email protected] 2 points 9 months ago (1 children)
load more comments (1 replies)
[–] [email protected] 2 points 9 months ago* (last edited 9 months 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.

load more comments
view more: ‹ prev next ›