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