Web integrated development environment
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.
Pros and Cons
Pros
- Access from anywhere or any computer (with Internet access).
- Minimal configuration needed (or only needed once).
- Centralized workspace.
- Easily included in a virtual development environment (such as when using a Vagrant system).
- No need to install a lot of software locally.
- Allows for development from inexpensive machines, such as Chromebooks, since the testing and development occurs on a separate machine (server).
- Can be used as a desktop IDE when setup with a Web server on the local machine.
Cons
- Must have (good) Internet access.
- If not self hosted, possible outside security issues.
- Possible server downtime.
- Maintenance if self hosted
- Most do not support smart phones or tablets well.
Typical Features
Web IDEs usually contain the same basic features as a desktop IDE, such as:
- Syntax highlighting
- Warnings/Error checking
- Repository support (e.g. Git, Mercurial, GNU Bazaar, Subversion)
- Plugin system/management
- File management
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.
Other Uses
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.
See also
- Collaborative development environment (CDE)
- Comparison of online source code playgrounds
- Cloud9 IDE
- Koding
- PythonAnywhere
- sourceLair
- YouOS
- Codeanywhere
- Eclipse Che