Angular is a framework for building client applications. It has gone through multiple versions with Angular 2 being a complete rewrite and introducing a component-based architecture. Key features of Angular include TypeScript support, service workers, ahead of time compilation, dependency injection, and routing. It aims to help build progressive web apps.