article

A programming paradigm is a paradigmatic style of programming (compare with a methodology, which is a paradigmatic style of doing software engineering).

A programming paradigm provides (and determines) the view that the programmer has of the execution of the program. For instance, in object-oriented programming, programmers can think of a program as a collection of interacting objects, while in functional programming a program can be thought of as a sequence of stateless function evaluations.

Just as different groups in software engineering advocate different methodologies, different programming languages advocate different programming paradigms. Some languages are designed to support one particular paradigm (Smalltalk and Java support object-oriented programming while Haskell and Scheme support functional programming), while other programming languages support multiple paradigms (such as Common Lisp, Python, and Oz.)

Many programming paradigms are as well-known for what techniques they forbid as for what they enable. For instance, pure functional programming disallows the use of side-effects; structured programming disallows the use of goto. Partly for this reason, new paradigms are often regarded as doctrinaire or overly rigid by those accustomed to earlier styles. However, this avoiding of certain techniques can make it easier to prove theorems about a program's correctness -- or simply to understand its behavior -- without limiting the generality of the programming language.

The relationship between programming paradigms and programming languages can be complex since a programming language can support multiple paradigms. For example, C++ is designed to support elements of procedural programming, object-based programming, object-oriented programming, and generic programming. However, designers and programmers decide how to build a program using those paradigm elements. One can write a purely procedural program in C++, one can write a purely object-oriented program in C++, or one can write a program that contains elements of both paradigms.

The Future of programming paradigm : it's not so clear , but we can say that the new programming paradigm which will appear should find soultion for our problems in the software today , Object Oriented was very nice in the last age , the age of GUI applications , but now we are in the age of client-server applications , and object oritented programming is not proper for the complexity of client-server applications. a lot of researches from 1990 applied for inviting new programming paradigm called (Agent Oriented) which based on Action,Interaction and organisation and take client-server in mind , but this programming paradigm still in the researches package until now, and not in practical domain like object oriented. in the start of year 2005 , there are was research in the university of menofia (egypt country) about OOP GUI mangement system design using new technology which called ("Super Technology") , Which present great soultions for software design (complex data strucutre,event driven system & client-server). the super technology is not more than three systems applied in software design/programming process 1 - chemical system (new data structure) 2 - electrical system (new event driven system design) 3 - veto system (Client-server system). in the start of year (2006), from the super technology , Mr Mahmoud Fayed (form egypt) presents new programming paradigm called DoubleS (Super Sever) , which based on (Networks,Servers,Chemical system,Electrical System & Veto system) to support the most complex features of software program today (complex data strcture,event driven system,client-server,grid-computing,distributed applications & AI systems). this project now in open source area at ( http://www.sourceforge.net/projects/doublesvsoop). and applied to CA-Clipper,xHarbour & Visual FoxPro.

Examples


See also


programming paradigms | Programming language topics

Парадигма на програмиране | Paradigma de programació | Programmeringsparadigme | Programmierparadigma | Paradigma de programación | Programozási paradigmák | Paradigma pemrograman | Paradigma di programmazione | 프로그래밍 패러다임 | Paradigma de programação | Парадигма программирования | நிரலாக்க கருத்தோட்டம் | 编程范型

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Programming paradigm".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld