NoVNC: essentially a web page that presents a VNC client that connects to a VNC server over websocket. Part of the noVNC project is a websocket proxy to vnc that you'd run on the machine with the VNC server; or another machine somewhere either within the network or external internet. In either case the proxy has to have access to the VNC server'd machine so not really good for NAT or restrictive firewalls (although you can work around with port forwarding and setting the VNc port to a well known port).
Quacamole: Also presents a browser client for VNC (and RDP) but Guacamole is designed to exist as a standalone service on an external nextwork that proxies into private networks. It proxies the protocol (VNC or RDP) I don't think it tunnels through websocket. Here I mean Guac to private network; Guac to browser is surely tunneled over ws.
So very similar functionality.
In either case the machine to be accessed must have a VNC server (or enable RDP) and access to the open internet on a non standard port (ie likely blocked by company firewalls), to access that machine. Neither work for restrictive company intranets :)
So if you're trying to setup guerilla access to work desktop, and you don't have admin access to install TeamViewer, there aren't any options that I've found.
What both of these enable is accessing your private desktop from anywhere with a browser.
noVnc supports only VNC. Guacamole supports VNC, RDP, SSH.
noVNC can be run on Windows and Linux. I think Guacamole server has be run on Linux. Not sure about that.
That's not apples to oranges.
So when compiling single-file "hello world" app or connecting to a single machine you would prefer a simpler tool (GCC/noVNC), since more complex tools require more complex workflow; but for more complex projects (or when you have tens of machines under your control) you would prefer more complex tools.
Disclaimer: I have never used Guacamole, used Visual Studio very little, and my experience with GCC is rather limited.