Evolution of Programming Languages - PowerPoint

Document Sample
Evolution of Programming Languages - PowerPoint Powered By Docstoc
					Evolution of Programming

Effect On Programmers Productivity

 ‘The measure of outputs produced from a
            given set of inputs’

   The main motivation for introducing
    programming languages based on different
    paradigms is to increase the productivity of

   Different problems require different
    solutions, so using languages that are more
    suited to particular tasks increases
   Some areas that influence productivity

    •   Speed of code generation
    •   Approach to testing
    •   Effect on maintenance
    •   Efficiency of solution once coded
    •   Learning curve (training required)
Speed of code generation
   This is a standard method of measuring

   Programmers are often paid per line of
    code. This leads to inefficient code
Speed of code generation
   Languages that increase the speed of code
    generation must increase the productivity.

   Using a language based on the most suitable
    paradigm will make code more efficient and
    will result in a more elegant final solution.
Approach to Testing
   The testing of individual modules is where
    the largest productivity gains can be made.

   Functional and Object-Oriented languages
    force programmers to write self-contained
    functions and objects.
Approach to Testing

   These functions or objects can be
    thoroughly tested, and re-used. It is also
    possible to create new objects that inherit
    attributes from the original.

   This reduces the amount of testing needed,
    increasing productivity.
Approach to Testing
   The creation of test data is vital.

   Languages that can encapsulate their data
    will reduce the magnitude of the test data

   Therefore, the process of encapsulation will
    also increase productivity.
Effect on maintenance
   Maintenance is the ability of code to be
    modified to meet changing requirements.

   Locating the code that needs changing is
    often the hardest task, so languages that
    force the programmer to develop modules
    assist in this process.
Effect on maintenance

   Object oriented languages do this well,
    functional and logic languages provide the
    facility but it is not enforced.
Efficiency of solution once coded
   Efficiency of software is measured in the
    speed it performs tasks.

   How efficiently can a language
    communicate with the hardware?
Efficiency of solution once coded
   Imperative languages have evolved as the
    Von Neumann hardware architecture has

   So essentially, languages of a non-
    imperative paradigm have a disadvantage
    when trying to work with the hardware
Efficiency of solution once coded

   However, although hardware is not really
    designed for these other paradigms, it is
    now capable of executing applications at
    such a speed that efficiency concerns are of
    a reduced importance.
Learning curve
   Logic and Functional languages are not
    widely used. They are often only used in
    specialised areas.

   It is difficult to learn languages from new
    paradigms; the learning curve is steep.
Learning curve
   Object oriented languages, however, are
    very popular and are a large part of the
    educational and commercial sectors.

   Many programmers are experiencing and
    learning OOP techniques early on, so these
    languages have gained wide acceptance.
   It is difficult learning a new language, and
    even harder when also having to learn a
    new paradigm.

   However, it is in our interest to examine and
    learn new ways of doing things, and this
    may even increase our productivity.

Shared By:
Jun Wang Jun Wang Dr
About Some of Those documents come from internet for research purpose,if you have the copyrights of one of them,tell me by mail vixychina@gmail.com.Thank you!