this post was submitted on 26 Jan 2024
16 points (86.4% liked)

Programming

17364 readers
161 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!!!

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 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.

[–] [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] 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] 0 points 9 months ago (1 children)
[–] [email protected] 1 points 9 months ago (1 children)

A strangely effective option for young whippersnappers who want to maximize employability and income stream in “boring” tech. You’re not gonna be standing up many greenfield projects using that language - and likely speaking, you might go an entire career without ever touching a codebase younger than you are - but if your passions run towards Janitorial/Plumbing work with regards to code, it might be right up your alley.

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

It's a coding language I recommend to anyone wanting to code in finance. Banks like it's reliability I guess

[–] [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] 1 points 9 months ago* (last edited 9 months ago)

I like Scala:

  • multi-paradigm, you can explore many ways of doing something, within one codebase - arguably the most complex language, if you want, but doesn't have to be: start simply, later scales robustly
  • compiles and interoperates with JS, JVM, native
  • Scala3 dropped brackets - easily readable like python
  • great tooling (recently) - compiler infers so much -> less puzzles / testing
  • developed mainly in europe, not controlled by big-tech

Fwiw, here's my interactive climate system model running in pure scala.

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

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

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

Just avoid their implementation of Enums.

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

Even their official documentation says to avoid it 🙂

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

If you haven't done any Clojure, may be Elixir?

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

If you want something that feels more quirky, go with Lisp.

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

I've been having a lot of fun with scheme lately (specifically guile, but I don't think it matters much). It's a very stripped down language compared to common lisp, so I felt it was easier to get started with.

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

I recently picked up Rust, still a beginner, but it's very nice. And the compiler errors and tips are top. Since I used only Python before, Rust is my first compiled language and I'm glad it was Rust. Options and Result's are also something I appreciate tbh. Other than for AI, simple stuff and maybe prototypes, I would use Rust over Python. Definitely recommend it. The borrow checker is a pain in the ass though. I'll also be using it later for embedded systems when I become more fluent with it. I am also currently making a big project with Rust that I haven't been able to do with Python.

[–] [email protected] 5 points 9 months ago
[–] [email protected] -1 points 9 months ago

I tried to get into Python, but always found it boring. Ruby was more my speed because it was inspired by Perl and that's the first language I learned. But Python will likely get you more job opportunities.

[–] [email protected] 2 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] 0 points 9 months ago (1 children)
[–] [email protected] 1 points 9 months ago (1 children)

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.

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

I disagree but ok

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

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.

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

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

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

Agree. The official book is a really good start though, and available for free. https://doc.rust-lang.org/stable/book/

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

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

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

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.

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

Yeah, I did indeed buy the second edition! Thanks for the suggestions! Cheers.

load more comments
view more: next ›