integrated development environment for other uses see ide anjuta a c and c ide for the gnome environment an integrated development environment ide is a software application that provides comprehensive facilities to computer programmers for software development an ide normally consists of a source code editor build automation tools and a debugger most modern ides have intelligent code completion some ides such as netbeans and eclipse contain a compiler interpreter or both others such as sharpdevelop and lazarus do not the boundary between an integrated development environment and other parts of the broader software development environment is not welldefined sometimes a version control system or various tools to simplify the construction of a graphical user interface gui are integrated many modern ides also have a class browser an object browser and a class hierarchy diagram for use in objectoriented software development overview integrated development environments are designed to maximize programmer productivity by providing tightknit components with similar user interfaces ides present a single program in which all development is done this program typically provides many features for authoring modifying compiling deploying and debugging software this contrasts with software development using unrelated tools such as vi gcc or make one aim of the ide is to reduce the configuration necessary to piece together multiple development utilities instead providing the same set of capabilities as a cohesive unit reducing that setup time can increase developer productivity in cases where learning to use the ide is faster than manually integrating all of the individual tools tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks for example code can be continuously parsed while it is being edited providing instant feedback when syntax errors are introduced some ides are dedicated to a specific programming language allowing a feature set that most closely matches the programming paradigms of the language however there are many multiplelanguage ides while most modern ides are graphical textbased ides such as turbo pascal were in popular use before the widespread availability of windowing systems like microsoft windows and the x window system x11 they commonly use function keys or hotkeys to execute frequently used commands or macros history gnu emacs an extensible editor that is commonly used as an ide on unixlike systems ides initially became possible when developing via a console or terminal early systems could not support one since programs were prepared using flowcharts entering programs with punched cards or paper tape etc before submitting them to a compiler dartmouth basic was the first language to be created with an ide and was also the first to be designed for use while sitting in front of a console or terminal its ide part of the dartmouth time sharing system was commandbased and therefore did not look much like the menudriven graphical ides popular after the advent of the graphical user interface however it integrated editing file management compilation debugging and execution in a manner consistent with a modern ide maestro i is a product from softlab munich and was the worlds first integrated development environment for software maestro i was installed for 22000 programmers worldwide until 1989 6000 installations existed in the federal republic of germany maestro was arguably the world leader in this field during the 1970s and 1980s today one of the last maestro i can be found in the museum of information technology at arlington one of the first ides with a plugin concept was softbench in 1995 computerwoche commented that the use of an ide was not well received by developers since it would fence in their creativity as of march 2015 the most popular ides are eclipse and visual studio topics syntax highlighting the ide editor usually provides syntax highlighting it can show both the structures the language keywords and the syntax errors with visually distinct colors and font effects refactoring advanced ides provide support for automated refactoring version control an ide is expected to provide integrated version control in order to interact with source repositories debugging ides are also used for debugging using an integrated debugger with support for setting breakpoints in the editor visual rendering of steps etc code search ides may provide advanced support for code search in order to find class and function declarations usages variable and field readwrite etc ides can use different kinds of user interface for code search for example formbased widgets visual programming visual programming is a usage scenario in which an ide is generally required visual basic allows users to create new applications by moving programming building blocks or code nodes to create flowcharts or structure diagrams that are then compiled or interpreted these flowcharts often are based on the unified modeling language this interface has been popularized with the lego mindstorms system and is being actively pursued by a number of companies wishing to capitalize on the power of custom browsers like those found at mozilla ktechlab supports flowcode and is a popular opensource ide and simulator for developing software for microcontrollers visual programming is also responsible for the power of distributed programming cf labview and eicaslab software an early visual programming system max was modeled after analog synthesizer design and has been used to develop realtime music performance software since the 1980s another early example was prograph a dataflowbased system originally developed for the macintosh the graphical programming environment grape is used to program qfix robot kits this approach is also used in specialist software such as openlab where the end users want the flexibility of a full programming language without the traditional learning curve associated with one language support some ides support multiple languages such as gnu emacs based on c and emacs lisp and intellij idea eclipse myeclipse or netbeans all based on java or monodevelop based on c or playcode support for alternative languages is often provided by plugins allowing them to be installed on the same ide at the same time for example flycheck is a modern onthefly syntax checking extension for gnu emacs 24 with support for 39 languages eclipse and netbeans have plugins for cc ada gnat for example adagide perl python ruby and php which are selected between automatically based on file extension environment or project settings attitudes across different computing platforms unix programmers can combine commandline posix tools into a complete development environment capable of developing large programs such as the linux kernel and its environment the pervasive unix philosophy of everything is a text stream enables developers who favor commandline oriented tools to use editors with support for many of the standard unix and gnu build tools building an ide with programs like emacs or vim data display debugger is intended to be an advanced graphical frontend for many textbased debugger standard tools some programmers prefer managing makefiles and their derivatives to the similar code building tools included in a full ide for example most contributors to the postgresql database use make and gdb directly to develop new features some linux ides such as geany attempt to provide a graphical front end to traditional build operations on the various microsoft windows platforms commandline tools for development are seldom used accordingly there are many commercial and noncommercial products however each has a different design commonly creating incompatibilities most major compiler vendors for windows still provide free copies of their commandline tools including microsoft visual c platform sdk net framework sdk nmake utility ides have always been popular on the apple macintoshs classic mac os and macos dating back to macintosh programmers workshop turbo pascal think pascal and think c environments of the mid1980s currently macos programmers can choose between native ides like xcode and opensource tools such as eclipse and netbeans activestate komodo is a proprietary multilanguage ide supported on macos artificial intelligence in ide some features of ides can benefit from advances in ai for instance a datadriven approach to code completion results in intelligent code completion 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 commandline 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 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 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 notable web ides paizacloud cloud ide collaborative development environment cde comparison of online source code playgrounds cloud9 ide koding pythonanywhere sourcelair youos codeanywhere eclipse che wikimedia commons has media related to integrated development environments computer programming portal comparison of integrated development environments collaborative development environment cde computeraided software engineering case game integrated development environment multiple document interface idestyle interface mdi rapid application development rad readevalprint loop repl web integrated development environment web ide or wide code analysis tools source code refactoring tools software building tools the compiler linker etc and the build automation tool used to control them version control also called source repository configuration management language server protocol vteintegrated development environmentsc and copen source android studio anjuta codeblocks codelite devc eclipse geany gnat programming studio gnome builder kdevelop monodevelop netbeans qdevelop qt creator sharpdevelop ultimate openwatcom freeware oracle developer studio visual studio community xcode retail cbuilder eclipsebased codewarrior myeclipse visual studio by jetbrains intellij idea appcode clion labwindowscvi lccwin32 ibm rational software architect understand discontinued ibm visualage visual c express javaopen source bluej drjava eclipse geany greenfoot intellij idea community edition android studio netbeans servoy community edition freeware jgrasp jdeveloper xcode retail jbuilder jcreator myeclipse ibm rational application developer websphere integration developer jetbrains intellij idea servoy business application platform edition understand discontinued metrowerks codewarrior pro for java sun java studio creator superseded by netbeans visual age superseded by eclipse visual caf aka espresso superseded by jbuilder visual j xelfi became netbeans cliopen source monodevelop sharpdevelop visual studio code pascalabcnet freeware visual studio community retail visual studio rider understand discontinued xamarin studio visual basic express visual web developer express visual j express visual studio express for windows phone visual c express visual c express express for desktop express for web express for windows flash adobe flash builder flashdevelop powerflasher fdt php aptana netbeans phpstorm kdevelop python eric intellij idea light table ninjaide pycharm pydev spyder wing ide kdevelop pascal and object pascalopen source free pascal ide lazarus devpascal freeware delphi community retail delphi discontinued turbo pascal for windows virtual pascal r rstudio r tools for visual studio category comparison 