this post was submitted on 26 Oct 2023
79 points (90.7% liked)

Programming

17423 readers
45 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 !webdev@programming.dev



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] hperrin@lemmy.world 19 points 1 year ago* (last edited 1 year ago) (12 children)

It depends what you want to do.

Do you want to make cool desktop apps? Probably something like Rust or C#.

Do you want to do machine learning or scientific research applications? Definitely Python.

Do you want to make websites and web apps? Definitely HTML, CSS, and JavaScript (look up both Node.js and DOM API). You could also learn other server side languages like Ruby, Java, or PHP, but knowing browser side JS gets you half way to knowing server side JS, so Node would be easiest. If you want strict typing, you can learn TypeScript, which adds a strong typing system to JavaScript.

Do you want to make mobile apps? Probably Dart and Flutter. Also could learn Kotlin or Java for Android, or Swift or Objective-C for iOS.

Do you want to get into the nitty gritty of kernel level programming or embedded programming? Probably C and Rust.

Do you want to work on old software that runs mostly banking/enterprise/medical applications, but can land you a pretty lucrative job? Maybe COBOL, Fortran, or Ada.

Do you want to accomplish nothing of value? Visual Basic. (Just kidding.)

The most important thing you can do is to just jump into things and try them out. In my career, I've switched languages several times. If you've got the fundamentals down, learning a new language isn't that hard, so just pick any language you want and learn the fundamentals with it. I'd recommend a strictly typed language at first, because it's easier to wrap your head around what's going on, but if that doesn't feel right, don't hesitate to switch to something else. Have fun with whatever you're learning. :)

[–] Sasquatch@lemmy.ml 9 points 1 year ago (2 children)

I would disadvise Rust for (most) desktop apps. There aren't any GUI libraries yet, and the Qt bindings aren't beginner-friendly yet.

Unless you just meant headless desktop apps, in which case Rust is my goto

[–] hperrin@lemmy.world 3 points 1 year ago (2 children)

There’s Tauri. Basically Electron with Rust instead of Node.

[–] SeriousBug@infosec.pub 3 points 1 year ago

You can make an app with Tauri without writing a single line of Rust though. Tauri lets you trigger most native functionality you might need from the JavaScript side. If that's enough for what you are building then you don't need to write any Rust. You could use a Rust web framework that compiles to WebAssembly, but you could also just use React or Svelte or whatever else.

[–] lysdexic@programming.dev 1 points 1 year ago

There’s Tauri.

...and now your newbie has to onboard onto not only Rust (?!) but also HTML, CSS, and JavaScript to render "Hello World".

[–] calcopiritus@lemmy.world 2 points 1 year ago

There are GUI libraries. I personally use iced a lot. Even if it's not v1.0 yet, it has many features. There are also bindings for other more common libraries such as GTK, QT and imgui. There's also egui as a native rust alternative to imgui.

load more comments (9 replies)