r/learnprogramming • • 12h ago

Recommendations for developing first Linux native desktop application?

Hey everyone!

I'm looking to develop a timer application for Linux with a simple GUI. It's mostly intended to be practice working with software that's not just simple CLI or web-based programs.

In my research I've seen a lot of suggestions and don't feel like I have a good enough understanding of the differences between languages and how programming UI works for me to pick a language/framework without some help. I'm concerned I'll get too deep into the process and realize the choice was not a good pick for what I need. Some of the suggestions I've heard include:

  • C++ and Qt
  • Java
  • C#
  • Vala

I currently have experience with C, C++, Python, HTML/CSS, and some JS. I would consider myself above beginner level with programming, maybe at a late-beginner/early-intermediate level if that makes sense? I'll primarily be developing the application for a KDE Plasma DE but am interested in cross-platform/portable potential. My goal is not necessarily to use the most optimal setup possible, instead a realistic but approachable framework that will help me get started working with GUI programming. I'd appreciate any advice/recommendations you have.

Thanks! :)

0 Upvotes

5 comments sorted by

2

u/Usual-Yak5007 12h ago

If you already know Python, just use PySide6 or PyQt and call it a day. You can get a timer app with a decent GUI in like an afternoon, and its not like you need C++ performance for something that counts seconds

Qt in general is good choice for KDE since Plasma itself is Qt based, so it will look native. Vala is mostly a GNOME thing so maybe skip that for now

2

u/FreeLogicGate 2h ago

You got some good answers, but if you are most proficient with C and C++ then I'd try pairing that with Qt.

The application sounds minimal enough that you could also create a Python version.

One other possibility, if you wanted to lean into the web stack, would be an electron or Tauri application.

1

u/zomerbk 11h ago

For the GUI, I’d start with Qt Widgets in PySide6. It lets you learn buttons, layouts, and signals without learning QML at the same time. For the countdown, use a monotonic clock to calculate the time remaining and a QTimer to refresh the display; UI updates can run late, so counting timer callbacks can drift.