A web integrated development environment (Web IDE or WIDE), also known as cloud IDE, is a browser based IDE that allows for software development or web development. A web IDE can be accessed from a web browser, such as Google Chrome or Internet Explorer, allowing for a portable work environment. A web IDE does not usually contain all of the same features as a traditional, or desktop, IDE, although all of the basic IDE features, such as syntax highlighting, are typically present.
A web IDE, like most websites, is usually composed of two pieces: a frontend and a backend. The frontend is usually written in Javascript, using AJAX methods to communicate with the backend using a HTTP API, although in some cases, a browser extension or desktop application serves as the frontend and communicates with the backend without the need for a browser. The backend takes care of creating, saving, and opening files, as well as running any terminal commands if the IDE supports it. This setup allows for portability and continuity. The state of the IDE can be saved and reopened on another machine. This also allows for compiling or running programs to continue while the user is away.
Many web IDEs support several programming languages, while others only support a specific language. Most web IDEs allow access to a Command-line interface (CLI) that allows the user to install or run any software that is needed for development, allowing "full" control over the development environment. Open source web IDEs allow for installation on local servers or machines and can be used to give the developer more control over the development environment.
Web IDEs usually contain the same basic features as a desktop IDE, such as:
Most Web IDEs also include real time collaboration features, allowing multiple users to simultaneously work with other developers around the world (or locally) in real time.
Web IDEs can be used in many scenarios outside of programming and development. The ability for real time collaboration makes web IDEs ideal for group projects or meetings. The centralized nature, short setup times, and minimal configuration allow for web IDEs to be used for educational purposes.