Sure the language is a little iffy, but as someone who enjoys shell scripting I have used worse. I think what I don't like is managing the logic two steps removed from where it is used.
I tend to write my web apps in what is referred to today as server side rendered(Which sounds stupid to me, I am not rendering anything, I am outputting html for the html terminal to render) as such, all my logic is on one end, and mixing in logic, in a different language, for the other end feels really ugly.
I have recently tried to be a better person and get more comfortable with javascript. What I have found that works is to completely invert the logic dynamics, give the browser a single static page that has nothing in it. only a single script tag that includes a javascript file. Then generate the whole page from that. Now all your logic is still in one language[1] and really javascript is a lot of fun to write, the language is still sort of crap, but now the dynamic stuff is really simple.
1. as a footnote, the great tragedy of the web is that (script language=) only works for javascript. wasm is an attempt to rectify this, but I think that while they are doing the best they can with the shitshow they have to work with. wasm is solving the problem at entirely the wrong layer.