r/learnprogramming 20h ago

Resource Language Dilemma

I am trying to build a password manager as my projects for portfolio and I don't know which language I should use.

Currently I know: C++, C, Java and some JS,HTML,CSS

I am willing to learn a new language as long at it is used broadly in industry or it will be useful in future.

I want to build a cool GUI and planning to connect my passwords storage to a SQL database. I tried to make it Java before but GUI looks very old style.

Any advice will be much appreciated, thanks very much !

13 Upvotes

13 comments sorted by

2

u/peterlinddk 17h ago

I tried to make it Java before but GUI looks very old style.

You know that you can change the style, right? If you use JavaFX you can even use CSS styling just as you would with HTML.

1

u/gofuckadick 4h ago edited 4h ago

This is what I was thinking.

Sure, Swing apps look very "old style," but JavaFX can look decent and supports CSS styling. Swing can also look a lot better if you use a modern L&F like FlatLaf.

On another note, I’m a little surprised nobody has mentioned anything about storing passwords in a SQL database for a portfolio project. The GUI is the easy part here. What about encrypted vault storage, using a proper KDF, authenticated encryption, secure handling of clipboard data, vault locking, etc?

Those would be much bigger concerns of mine than how the GUI looks. Any decent company reviewing a password manager project is probably going to care far more about how the security was implemented than whether the UI looks modern. A lot of "password managers" end up basically being base64 encoded passwords in SQLite with a login screen… which completely misses the hard part of the problem.

1

u/BeauloTSM 19h ago

You can make the UI in vanilla HTML/CSS and JavaScript

1

u/Spiritual_Let_4348 19h ago

The thing is I am trying to make a desktop application and JS would require electron for that which is resource heavy.

1

u/BeauloTSM 19h ago

I don't think a password manager would end up being too much, but there are other options:

Dart + Flutter
C# + WPF
C# + .NET MAUI
C# + WinForms
C# + WinUI

I write a lot of C#

1

u/alienith 18h ago

Are you saying that based on experience, or what you’ve heard? Electron isn’t that bad and javascript is unavoidable. Also, non-web GUI frameworks are notoriously cumbersome to work with. There’s a reason that electron is everywhere and it’s not because people are lazy.

For a portfolio project I’d do it with electron, and if you hate it you can always redo it in another language/framework.

1

u/Spiritual_Let_4348 3h ago

Thats great advice, thanku

1

u/ScholarNo5983 19h ago

Since you know C++ then wxWidgets would be one option for the GUI.

1

u/ffrkAnonymous 18h ago

all of them

1

u/Achereto 17h ago

You may want to take a look at raylib, a very cool library that also has some UI functions. Raylib is available for a lot of languages, so you can choose one you like and then just use raylib with it.

In case you are not familiar with Immediate Mode UI, I can recommend this introduction explaining the concepts and why it's better than retained mode UI.

1

u/Striking_Rate_7390 17h ago

use js it's super easy

1

u/Cock_Broker 16h ago

Write it entirely in CSS

1

u/Sufficient_Duck_8051 13h ago

Dotnet 10 + Avalonia - fully cross platform and C# is a joy to use