* [Topics](/en/topics "Topics")
* [Platform engineering](/en/topics/devops "Platform engineering")
* What is an IDE?
What is an IDE?
===============
Published  January 8, 2019•*3*-minute read
Copy URL
Jump to section
---------------
OverviewWhy do developers use IDEs?Popular IDEs
Overview
--------
An integrated development environment (IDE) is software for building applications that combines common developer tools into a single graphical user interface (GUI). An IDE typically consists of:
* **Source code editor**: A text editor that can assist in writing software code with features such as syntax highlighting with visual cues, providing language specific auto-completion, and checking for bugs as code is being written.
* **Local build automation**: Utilities that automate simple, repeatable tasks as part of creating a local build of the software for use by the developer, like compiling computer source code into binary code, packaging binary code, and running automated tests.
* **Debugger**: A program for testing other programs that can graphically display the location of a bug in the original code.
[IDEs can help digital transformation efforts](/en/resources/middleware-teaching-elephant-to-dance-ebook "Teaching an elephant to dance")
Why do developers use IDEs?
---------------------------
An IDE allows developers to start programming new applications quickly because multiple utilities don’t need to be manually configured and integrated as part of the setup process. Developers also don’t need to spend hours individually learning how to use different tools when every utility is represented in the same workbench. This can be especially useful for onboarding new developers who can rely on an IDE to get up to speed on a team’s standard tools and workflows. In fact, most features of IDEs are meant to save time, like intelligent code completion and automated code generation, which removes the need to type out full character sequences.
Other common IDE features are meant to help developers organize their workflow and solve problems. IDEs parse code as it is written, so bugs caused by human error are identified in real-time. Because utilities are represented by a single GUI, developers can execute actions without switching between applications. Syntax highlighting is also common in most IDEs, which uses visual cues to distinguish grammar in the text editor. Some IDEs additionally include class and object browsers, as well as class hierarchy diagrams for certain languages.
It is possible to develop applications without an IDE, or for each developer to essentially build their own IDE by manually integrating various utilities with a lightweight text editor like Vim or Emacs. For some developers the benefit of this approach is the ultra-customization and control it offers. In an enterprise context, though, the time saved, environment standardization, and [automation](/en/topics/automation) features of modern IDEs usually outweigh other considerations.
Today, most enterprise development teams opt for a pre-configured IDE that is best suited to their specific use case, so the question is not whether to adopt an IDE, but rather which IDE to select.
[Give our IDE a try](https://developers.redhat.com/developer-sandbox/get-started "Get started in the Developer Sandbox")
Red Hat resources
-----------------
[Keep reading](/en/resources "Keep reading")
Popular kinds of IDEs
---------------------
There are many different technical and business use cases for IDEs, which likewise means there are many proprietary and [open source](/en/about/open-source) IDE options on the market. Typically, the most important differentiating characteristics between IDEs are:
* **The number of supported languages**: Some IDEs are dedicated to one language, and so are a better match for a specific programming paradigm. IntelliJ, for instance, is known primarily as a Java IDE. Other IDEs have a broad array of supported languages all in one, like the Eclipse IDE which supports Java, XML, Python, and others.
* **Supported operating system(s)**: A developer’s operating system will constrain which IDEs are viable (unless an IDE is cloud-based), and if the application being developed is intended for an end user with a specific operating system (like Android or iOS), this may be an additional constraint.
* **Automation features**: Even though most IDEs include the 3 key features of a text editor, build automation, and debugger, many include support for additional features like refactoring, code search, and [continuous integration and continuous deployment](/en/topics/devops/what-is-ci-cd) (CI/CD) tools.
* **Impact on system performance**: An IDE’s memory footprint may be important to consider if a developer wants to run other memory-intensive applications concurrently.
* **Plugins and extensions**: Some IDEs include the ability to customize workflows to match a developer’s needs and preferences.
### Mobile development IDEs
Nearly every industry has been affected by the rising popularity of apps designed for smartphones and tablets, leading many companies to develop [mobile apps](/en/topics/mobile) in addition to traditional web apps. One of the key factors in mobile application development is platform choice. For instance, if a new application is intended for use on iOS, Android, and a web page, it may be best to start with an IDE that provides cross-platform support for multiple operating systems.
### Cloud IDEs
IDEs that are provided as a [cloud](/en/topics/cloud-computing)-based [Software-as-a-Service (SaaS)](/en/topics/cloud-computing/what-is-saas) provide a number of unique benefits compared to local development environments. For one, as with any SaaS offering, there is no need to download software and configure local environments and dependencies, so developers can start contributing to projects quickly. This also provides a level of standardization across team members’ environments, which can mitigate the common "this works on my machine, why doesn’t it work on yours" problem. Additionally, since the development environment is centrally managed, no code resides on an individual developer’s computer, which can help with intellectual property and security concerns.
The impact of processes on local machines is also different. Processes like running builds and testing suites are typically compute-intensive, which means developers are probably unable to continue using workstations while a process is running. A SaaS IDE can dispatch long-running jobs without monopolizing the compute resources of a local machine. Cloud IDEs are also typically platform agnostic, allowing connection to different cloud vendors.
Hub
The official Red Hat blog
-------------------------
Get the latest information about our ecosystem of customers, partners, and communities.
[Keep reading](/en/blog "The official Red Hat blog")
All Red Hat product trials
--------------------------
Our no-cost product trials help you gain hands-on experience, prepare for a certification, or assess if a product is right for your organization.
[Keep reading](/en/products/trials "All Red Hat product trials")
Keep reading
------------
### What are platform engineering tools?
Platform engineering tools are resources to support and enable development teams to improve productivity using a self-service approach.
[Read the article](/en/topics/devops/platform-engineering-tools "article | what are platform engineering tools")
### What is a Golden Path for software development?
A Golden Path refers to an opinionated, well-documented, and supported way of building and deploying software within an organization.
[Read the article](/en/topics/devops/golden-paths "article | What is a Golden Path for software development?")
### Platform engineering vs. DevOps
Find out how platform engineering differs from DevOps to identify an approach that supports your goals.
[Read the article](/en/topics/devops/platform-engineering-vs-devops "article | Platform engineering vs. DevOps")
Platform engineering resources
------------------------------
### Related content
* Blog post
  [Why agents are the new kingmakers](/en/blog/why-agents-are-new-kingmakers)
* Checklist
  [5 benefits of Red Hat Enterprise Linux for Microsoft Azure](/en/resources/benefits-of-rhel-for-azure-checklist)
* Case study
  [Meet the 7 customers innovating with Red Hat technologies](/en/engage/meet-the-innovators-customer-success-ebook)
* Overview
  [Red Hat reduced software release effort by 87%](/en/resources/red-hat-automation-accelerates-software-delivery-case-study)
### Related articles
* [What is CI/CD?](/en/topics/devops/what-is-ci-cd)
* [What is application lifecycle management (ALM)?](/en/topics/devops/what-is-application-lifecycle-management-alm)
* [What is Istio?](/en/topics/microservices/what-is-istio)
* [What is a Golden Path for software development?](/en/topics/devops/golden-paths)
* [What are platform engineering tools?](/en/topics/devops/platform-engineering-tools)
* [What is serverless?](/en/topics/cloud-native-apps/what-is-serverless)
* [What is a CI/CD pipeline?](/en/topics/devops/what-cicd-pipeline)
* [Stateful vs stateless applications](/en/topics/cloud-native-apps/stateful-vs-stateless)
* [Platform engineering vs. DevOps](/en/topics/devops/platform-engineering-vs-devops)
* [What is application migration?](/en/topics/cloud-native-apps/application-migration)
* [What is application integration?](/en/topics/cloud-native-apps/application-integration)
* [Shift left vs. shift right](/en/topics/devops/shift-left-vs-shift-right)
* [What is platform engineering?](/en/topics/devops/platform-engineering)
* [Red Hat OpenShift for developers](/en/technologies/cloud-computing/openshift/developers)
* [Red Hat OpenShift for platform engineers](/en/technologies/cloud-computing/openshift/platform-engineer)
* [What is an internal developer platform?](/en/topics/devops/what-is-an-internal-developer-platform)
* [Why choose Red Hat for a DevOps Platform?](/en/topics/devops/why-choose-red-hat-for-devops)
* [What is DevSecOps?](/en/topics/devops/what-is-devsecops)
* [What is an application development platform?](/en/topics/cloud-native-apps/what-app-dev-platform)
* [Security in the software development lifecycle](/en/topics/security/software-development-lifecycle-security)
* [What are cloud applications?](/en/topics/cloud-native-apps/what-are-cloud-applications)
* [What is agile methodology?](/en/topics/devops/what-is-agile-methodology)
* [How to deploy Red Hat OpenShift](/en/technologies/cloud-computing/openshift/deploy-red-hat-openshift)
* [Kubernetes-native Java development with Quarkus](/en/technologies/cloud-computing/openshift/quarkus)
* [What is deployment automation?](/en/topics/automation/what-is-deployment-automation)
* [What is an SDK?](/en/topics/cloud-native-apps/what-is-SDK)
* [What is a Java runtime environment (JRE)?](/en/topics/cloud-native-apps/what-is-a-Java-runtime-environment)
* [Why choose the Red Hat build of Quarkus?](/en/topics/cloud-native-apps/why-choose-red-hat-quarkus)
* [What is an application architecture?](/en/topics/cloud-native-apps/what-is-an-application-architecture)
* [What is Quarkus?](/en/topics/cloud-native-apps/what-is-quarkus)
* [What are Java frameworks?](/en/topics/cloud-native-apps/what-is-a-Java-framework)
* [What is blue green deployment?](/en/topics/devops/what-is-blue-green-deployment)
[More about this topic](/en/topics/devops "More about this topic")