ICS 121: IDEs and Language Choice
Overview
- What are integrated development environments?
- Programming languages choices
- How to choose a programming language
What are Integrated Development Environments?
- IDEs are the tools that developers use each day to edit,
compile, and debug code.
- Features of integrated development environments
- Language-sensitive text editor: syntax coloring, immediate
detection of simple errors, automatic completion, easy browsing of
related code, easy browsing of related documentation
- Automated build system: compiles the program (more on this
later)
- Debugger: breakpoints, inspect variable values, step through
code, debug remote programs
- Code generation: wizards, gui builders
- Utilities and specialized editors: graphics, resource bundles,
packaging tools, deployment, etc.
- Built-in version control client
- Some now have built-in refactoring commands
- Some have integration with UML tools
- Some have integration with automated testing tools or device
simulators
- Since IDEs have language-specific features, usually each IDE
only supports one or a few languages.
- Examples: MS Visual Studio, Eclipse/Websphere, Netbeans/Forte,
JBuilder, Xcode, CodeWarrior, etc.
Programming language choices
- There are hundreds
of programming languages
- They have been invented to serve different purposes:
different application domains or solution domains
- Often a language expresses a philosophy of development
- Old languages never die, they just fade... slowly. There is
still a HUGE amount of COBOL and FORTRAN code
- Characteristics to consider when choosing a language
- Familiarity of your team with that language
- Similarity to other languages you know
- Availability of documentation
- Availability of new developers with appropriate skills
- Tool support: power, scalability, available choices
- Available libraries that suit your needs
- Expressiveness
- Readability, maintainability
- Scalability to large amounts of code
- Interoperbility with code in other languages
- Performance
- Programming paradigm (rarely needs to be considered)
How to choose a programming language
- When to choose a language:
- Usually, the choice for the implementation language of the
main product is already assumed
- Every few years, new languages are introduced and teams can
carefully consider changing, but it rarely happens
- Products often use more than one language: front end
vs. business logic, client vs. server, plug-ins, end-user
scripting, etc.
- There can be a lot of supporting code that is not in the main
appliction: e.g., installers, testing scripts, deployment
automation
- The most important things to look for:
- Suitability for your purpose
- Expected productivity: writing, testing, debugging, reading,
reusing
- Availability of trained staff, tools, and libraries
- Future prospects for the popularity of this language
example use case templatesample test plan templateProject plan template