The main purpose of VLAN is to isolate computers
That is incorrect. VLANs are to create separate layer-2 broadcast domains on switches, where, by default, the entire switch would be in a single layer-2 broadcast domain.
A layer-3 device (router) is required to move traffic between the layer-2 VLANs, just as if the VLANs were separate LANs connected to different router interfaces.
It is possible to restrict traffic between VLANs on a router using ACLs or firewalls.
We live in a layer-3 world. It used to be, "Switch where you can, route where you must," but that concept is no longer true. Routers, including layer-3 switches, can easily have virtual interfaces for the VLANs, and that is very inexpensive, compared to physical router interfaces to isolate layer-2 broadcast domains, and network security is much, much more important than it used to be.
Layer-2 protocols just haven't kept up with reality. In particular, STP, even RSTP, can be problematic. There are replacements, e.g. TRILL, that strive to eliminate the need for STP, but they are currently limited to data centers, and most are not inter-operable or are proprietary.
Cisco has some best practices around layer-2 designs, including restricting each VLAN to a single access switch and using routing, rather than having VLANs spread across many access switches. The recommended best practices will virtually eliminate STP problems, e.g. broadcast storms, which can cripple a large network.