Writing HDL is quite similar to software, but the "stack" you deal with is entirely different. It's like saying that writing embedded C is similar to front-end JS (hardware interrupts vs. events, external world vs. DOM, input voltage vs. user input, etc.).