Legacy applications are often complex and difficult to maintain. Web development companies often prefer maintaining applications developed by them than work on older systems that are no longer supported by the original vendors.
The development code is often tough to navigate and understand by a in developer who has not written it originally. This is the main reason why legacy applications are often cumbersome and expensive to maintain. This becomes even tougher than older technologies are used and big changes cannot be made in the system.