Sunteți pe pagina 1din 18

Evolution of Programming

Languages
Effect On Programmers Productivity
Productivity


The measure of outputs produced from a
given set of inputs
Introduction

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

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

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
productivity.

Programmers are often paid per line of
code. This leads to inefficient code
generation.

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
sets.

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
evolved.

So essentially, languages of a non-
imperative paradigm have a disadvantage
when trying to work with the hardware
resources.
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.
Conclusion
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.

S-ar putea să vă placă și