IMO, VHDL and Verilog are both outstandingly terrible. There are tons of good options that compile from another language
to VHDL/Verilog, such as Clash, Chisel, and nmigen. I cannot recommend strongly enough to use any of those over VHDL or Verilog.
My personal favorite is Clash - it’s unusual in that it actually compiles the host language (a subset of Haskell) into VHDL/Verilog, rather than simply providing a library which you can use to create circuit objects. This means you can compile your hardware and run it like a normal program, or include it as a library, or whatever. Very nice for testing. You can also use arbitrary libraries as long as you don’t use anything that falls outside the compilable subset.