Integrated Development Environments
Steven J Zeil
Last modified: Mar 11, 2014
IDEs
Integrated Develop Environments (IDEs) are software
packages that attempt to provide comprehensive support for programming
- and possible other software development activities
1. The Components of an IDE
What’s the minimum that we expect in an IDE?
- editor
- build
- maybe no more than compiler invocation
- with error messages captured/interpreted/walked by editor
- run/execute
- debugger
The Components of an IDE (optional)
What would we like to see in an IDE?
- syntax highlighting & aid in editor
- documentation (API) look-up
- flexible/configurable build
- packaging/deployment options
The Components of an IDE (deluxe)
What makes us giddy when we see it in an IDE?
- smart feedback in the editor
- learns API of new code
- suggestions
- coding aids in editor
- templates
- common refactoring (transformations)
- documentation generation
- test integration
- integration with version control
2. IDE Examples
2.1 emacs
The *nix swiss army knife of editors, emacs has long
functioned as a basic IDE:
- syntax-highlighting editor
- build support (invokes *nix make)
- parses error messages from compilers & other tools
- debugger interface
- works directly with many version control systems
emacs Strengths and Weaknesses
- highly portable
- supports virtually any language you would have a compiler for
- even in windowed mode, leans toward keyboard rather than mouse
- (not sure if that’s a pro or a con)
- outdated interface
- high learning curve
2.2 Microsoft Visual
Visual Studio
- syntax-highlighting editor
- background compilation provides quick feedback on simple errors
- built-in build manager
- debugger interface
- some designer tools (e.g., design classes in UML)
Visual Strengths and Weaknesses
- wide variety of languages (but Microsoft processors)
- single-OS
- closely integrated with Microsoft compilers
- modern, mouse-oriented interface
- (What does Windows 8 do to that?)
2.3 NetBeans
Free IDE originally distributed by Sun as “the” development platform
for Java.
- Still largely Java centric, though some support for other
languages
- particularly web-related languages like Javascript, CSS, XSL
- Portable (written in Java)
- Tends to track the trends and hot topics in the Java world promptly
- editor, build manager, debugger
- moderately extensible
2.4 Single-Language IDEs
The open source community has produced numerous single-language
IDEs.
Many are focused on educational use.
Examples:
- C++
- Bloodshed Dev-C++, Code::Blocks
- Java
- BlueJ, Dr. Java, jGrasp
3. Eclipse
Probably the hottest IDE in the open source world:
- syntax-highlighting editor, multi-language support
- strong hinting, API, interface aid
- templates and refactoring
- build support
- easily configured or switched to other build tools
- background compilation for quick detection of language errors
- integrated *unit testing support
- solid debugger, intuitive handling of threads
- some packaging & deployment support
- integrates with most version control systems
- modular plug-in extensibility with a rich variety available
3.1 Availability
- Eclipse is installed on both the CS Dept Windows PCs and Linux
servers
- Includes basic packages for Java & C++ support
- We will be working with much more advanced tools in this course
- will need to install our own plugins
- Every student will therefore need to prepare their own personal
development environment with
.