C
Programming
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 !webdev@programming.dev
Kotlin would be the most straightforward/useful professionally if you're primarily Java. Other Java stack options are Scala or (shudders) Clojure
I love Clojure+Clojurescript
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.
Kotlin is the language to beat imo. Very expressive and full interop with Java. Structured concurrency so multithreading Is a breeze. Build mobile apps easily with it for Android (and in theory iOS but that's still alpha). Desktop apps too!
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.
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.
C.
As the other person said, Python. Or if you want something lower level, how about Rust?
Have you ever wanted to do more with regular expressions? Then give Perl a try.
C# has been doing a lot of really cool things lately, and has first-class Linyx support.
I love C#, but F# is also super fun and worth checking out.
Ada and COBOL are still where the big money is, and still will be for years to come.
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.
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.
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.