* [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.
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")
Recommended for you
Platform Engineering in the Age of AI
-------------------------------------
[Watch the webinar](https://www.redhat.com/en/events/webinar/platform-engineering-in-the-age-of-ai-webinar?percmp=RHCTG0250000455235)
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.
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")
Enhance security with Red Hat OpenShift
---------------------------------------
Find out more about how to improve your security posture with Red Hat OpenShift, reduce operational costs, minimize vulnerabilities, and implement zero trust.
[Learn more about this use case](/en/technologies/cloud-computing/openshift/security "Enhance security with Red Hat OpenShift")
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/platform-engineering/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/platform-engineering/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/platform-engineering/platform-engineering-vs-devops "article | Platform engineering vs. DevOps")
Platform engineering resources
------------------------------
### Related content
* Blog post
  [New observability features in Red Hat OpenShift 4.21 and Red Hat Advanced Cluster Management for Kubernetes 2.16](/en/blog/new-observability-features-red-hat-openshift-421-and-red-hat-advanced-cluster-management-kubernetes-216)
* Blog post
  [Metrics that matter: How to prove the business value of DevEx](/en/blog/metrics-matter-how-prove-business-value-devex)
* Analyst material
  [The Total Economic Impact™ Of Red Hat AI](/en/engage/forrester-tei-of-rh-ai-analyst-material)
* Checklist
  [6 considerations for choosing a modern application platform](/en/resources/6-considerations-application-platform-checklist)
### Related articles
* [Red Hat OpenShift for developers](/en/technologies/cloud-computing/openshift/developers)
* [What is blue green deployment?](/en/topics/devops/what-is-blue-green-deployment)
* [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 are platform engineering tools?](/en/topics/platform-engineering/platform-engineering-tools)
* [What is a Golden Path for software development?](/en/topics/platform-engineering/golden-paths)
* [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/platform-engineering/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/platform-engineering/what-is-platform-engineering)
* [What is an internal developer platform?](/en/topics/platform-engineering/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)
[More about this topic](/en/topics/devops "More about this topic")