Oorkavalan

Oorkavalan () is a 1987 Tamil language action drama film directed by Manobala starring Rajinikanth and Raadhika . The film was did well in box office.
Plot.
The story describes the struggle of a young villager Kangeyan to receive justice for his brother's murder. Manickam falls in love with Mallika, the daughter of Pannaiar. Mallika's marriage is arranged with Dorai, but she refuses and declares her love for Mannikam. Kangeyan gets them married in the village. The priest pretends to have divine powers and uses the superstitious beliefs of the villagers to kill Manickam. Kangeyan, not wanting to see Mallika as a widow, decides to get her married again to Pandian, a cart driver who was her childhood friend. Dorai intervenes again proceeding to use superstition again and Kangeyan learns about truth behind his brother's death exposing the priest and Dorai losing his lover in the process.
Release and reception.
"Oorkavalan" was released on 4 September 1987. N. Krishnaswamy of "The Indian Express" wrote, "Some of the characters get a lifelike quality because of good performances and a helpful screenplay."


Interactive programming

Interactive programming is the procedure of writing parts of a program while it is already active. This focuses on the program text as the main interface for a running process, rather than an interactive application, where the program is designed in development cycles and used thereafter (usually by a so-called "user", in distinction to the "developer"). Consequently, here, "the activity of writing a program becomes part of the program itself."
It thus forms a specific instance of interactive computation as an extreme opposite to batch processing, where neither writing the program nor its use happens in an interactive way. The principle of "rapid feedback" in extreme programming is radicalized and becomes more explicit.
Synonyms: on-the-fly-programming, just in time programming, conversational programming
Application fields.
Interactive programming techniques are especially useful in cases where no clear specification of the problem that is to be solved can be given in advance. In such situations (which are not unusual in research), the formal language provides the necessary environment for the development of an appropriate question or problem formulation.
Interactive programming has also been used in applications that need to be rewritten without stopping them, a feature which the computer language Smalltalk is famous for. Generally, dynamic programming languages provide the environment for such an interaction, so that typically prototyping and iterative and incremental development is done while other parts of the program are running.
As this feature is an apparent need in sound design and algorithmic composition, it has evolved significantly there. More recently, researchers have been using this method to develop sonification algorithms.
Using dynamic programming languages for sound and graphics, interactive programming is also used as an improvisational performance style live coding, mainly in algorithmic music and video.


Stephen Gilbert

Stephen Gilbert (15 January 1910 – 12 January 2007) was a painter and sculptor from Scotland. He was one of the few British artists fully to embrace the avante garde movement in Paris in the 1950s.
Early years.
Gilbert was born in Wormit, in the north-east of Fife, Scotland, of English parents. His father was a commander in the Royal Navy; his grandfather, Sir Alfred Gilbert was the Art Nouveau sculptor of The Angel of Christian Charity in Piccadilly Circus.
Education.
He studied architecture at the Slade School of Art in London from 1929 to 1932, where he befriended fellow student Roger Hilton. Gilbert won the Slade Scholarship at the end of his first year, and the principal Sir Henry Tonks encouraged him to start painting from 1930. He also met sculptor Jocelyn Chewett at the Slade, and they were married in 1935.
Career.
He exhibited at the Royal Academy in 1936, and put on an early solo show in London, at the Wertheim Gallery in 1938. He moved to Paris in 1937, where his wife studied under Ossip Zadkine, leaving before the Second World War. He failed a medical for military service, and he spent the war in Ireland near Dublin with his wife and son, Humphrey. He joined The White Stag group of refugee artists. His work was inspired by Masson, and by reading Jung, Nietzsche and Jakob Böhme, with fantastic creatures and plants painted in vivid colours.
He returned to Paris in 1946, after the birth of his daughter Frances. He exhibited at the Salon des Surindépendents in Paris in 1948, attracting the attention of Danish artist Asger Jorn, and leading to his membership of the CoBrA avant-garde art group. He was one of only two British members, the other being William Gear. He was included in the first issue of the group's journal and participated in both major exhibitions: the Bregnerød congress in August 1949, where he worked on the collective mural, and the Amsterdam exhibition at the Stedelijk Museum in November of that year, where he worked with Constant Nieuwenhuys. A French art critic described him as "le plus français des sculpteurs anglais et l'un des plus européens parmi les artistes" ("the most French of British sculptors and one of the most European of artists").
He also visited Svanberg in Sweden. After his contact with CoBrA, his approach to painting became more abstract, but he remained in contact with Pierre Alechinsky after CoBrA dissolved. He exhibited several times at the Salon des Réalités Nouvelles.
During the 1950s, he concentrated on three-dimensional and architectural forms, formed from sheets of aluminium. He joined André Bloc's Groupe Espace in 1954, exhibiting at the Salon de la Jeune Sculpture. He was also a founder of the Néovision group, and worked with experimental architect Peter Stead. He moved on to more curvilinear forms, exhibited at the Drian Galleries in London in 1961, and completed two public commissions in London. He received a Gulbenkian award in 1962, and the sculpture prize at the Tokyo Biennale in 1965.
His wife died in 1979, and his sculpture moved on from open forms to more enclosed structures. He returned to painting in the 1980s. Examples of his work are held by many public collections.
He died in Frome, Somerset and he was survived by his son and daughter.


Academic ranks in Egypt

Academic ranks in Egypt are the titles, relative importance and power of professors, researchers, and administrative personnel held in academia.
Professorship.
Public universities have five ranks for faculty members: معيد ("Mu`īd" ; equivalent to teaching assistant), مدرس مساعد ("Mudarris musā`id"; equivalent to senior teaching assistant), مدرس("Mudarris"; equivalent to assistant professor), أستاذ مساعد("'Ustāḏ musā`id"; equivalent to associate professor), and أستاذ("'Ustāḏ"; equivalent to professor)
Teaching assistant: Academic departments hire teaching assistants by either directly hiring the top ranking students of the most recent graduates, or publishing advertisements. Once hired, a teaching assistant must obtain a master's degree within five years of commencing employment. Otherwise, s/he must either leave the university, or be transferred to any administrative department that s/he is qualified for. Teaching assistants duties include preparing and delivering tutorial and lab sessions, preparing assignments and term projects requirements, preparing and conducting laboratory examinations, and tutorial quizzes, and co-supervising graduation projects.
Senior teaching assistant: After a teaching assistant obtains a master's degree, s/he is promoted to a senior teaching assistant. Usually, the duties do not change, but the salary increases slightly. To keep her/his post, a senior teaching assistant must obtain a doctoral degree within five years. Otherwise, s/he must either leave the university, or be transferred to any administrative department that s/he is qualified for.
Assistant professor: Once a senior teaching assistant obtains a doctorate, s/he is hired as an assistant professor, and receives tenureship. Assistant professors duties include delivering lectures, supervising graduation projects, master's theses, and doctoral dissertations.
Associate professor: After at least five years, an assistant professor can apply for a promotion to the rank of associate professor. The decision is based on the scholarly contributions of the applicant, in terms of publications and theses and dissertations supervised.
Professor: After at least five years, an associate professor can apply for a promotion to the rank of a professor. The decision is based on the scholarly contributions of the applicant, in terms of publications and theses and dissertations supervised.
Academic duties of associate professors and professors are nearly the same as assistant professors. However, only associate professors and professors can assume senior administrative posts like a department chair, a college vice dean, and a college dean.


Object-oriented programming

Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code: data in the form of fields (often known as "attributes" or "properties"), and code, in the form of procedures (often known as "methods").
A feature of objects is that an object's own procedures can access and often modify the data fields of itself (objects have a notion of or ). In OOP, computer programs are designed by making them out of objects that interact with one another. OOP languages are diverse, but the most popular ones are class-based, meaning that objects are instances of classes, which also determine their types.
Many of the most widely used programming languages (such as C++, Java, Python, etc.) are multi-paradigm and they support object-oriented programming to a greater or lesser degree, typically in combination with imperative, procedural programming. Significant object-oriented languages include: (list order based on TIOBE index)
Java,
C++,
C#,
Python,
R,
PHP,
Visual Basic.NET,
JavaScript,
Ruby,
Perl,
Object Pascal,
Objective-C,
Dart,
Swift,
Scala,
Kotlin,
Common Lisp,
MATLAB,
and
Smalltalk.
Features.
Object-oriented programming uses objects, but not all of the associated techniques and structures are supported directly in languages that claim to support OOP. The features listed below are common among languages considered to be strongly class- and object-oriented (or multi-paradigm with OOP support), with notable exceptions mentioned.
Shared with non-OOP languages.
Modular programming support provides the ability to group procedures into files and modules for organizational purposes. Modules are namespaced so identifiers in one module will not conflict with a procedure or variable sharing the same name in another file or module.
Objects and classes.
Languages that support object-oriented programming (OOP) typically use inheritance for code reuse and extensibility in the form of either classes or prototypes. Those that use classes support two main concepts:
Objects sometimes correspond to things found in the real world. For example, a graphics program may have objects such as "circle", "square", "menu". An online shopping system might have objects such as "shopping cart", "customer", and "product". Sometimes objects represent more abstract entities, like an object that represents an open file, or an object that provides the service of translating measurements from U.S. customary to metric.
Each object is said to be an instance of a particular class (for example, an object with its name field set to "Mary" might be an instance of class Employee). Procedures in object-oriented programming are known as methods; variables are also known as fields, members, attributes, or properties. This leads to the following terms:
Objects are accessed somewhat like variables with complex internal structure, and in many languages are effectively pointers, serving as actual references to a single instance of said object in memory within a heap or stack. They provide a layer of abstraction which can be used to separate internal from external code. External code can use an object by calling a specific instance method with a certain set of input parameters, read an instance variable, or write to an instance variable. Objects are created by calling a special type of method in the class known as a constructor. A program may create many instances of the same class as it runs, which operate independently. This is an easy way for the same procedures to be used on different sets of data.
Object-oriented programming that uses classes is sometimes called class-based programming, while prototype-based programming does not typically use classes. As a result, significantly different yet analogous terminology is used to define the concepts of "object" and "instance".
In some languages classes and objects can be composed using other concepts like traits and mixins.
Class-based vs prototype-based.
In class-based languages the "classes" are defined beforehand and the "objects" are instantiated based on the classes. If two objects "apple" and "orange" are instantiated from the class "Fruit", they are inherently fruits and it is guaranteed that you may handle them in the same way; e.g. a programmer can expect the existence of the same attributes such as "color" or "sugar_content" or "is_ripe".
In prototype-based languages the "objects" are the primary entities. No "classes" even exist. The "prototype" of an object is just another object to which the object is linked. Every object has one "prototype" link (and only one). New objects can be created based on already existing objects chosen as their prototype. You may call two different objects "apple" and "orange" a fruit, if the object "fruit" exists, and both "apple" and "orange" have "fruit" as their prototype. The idea of the "fruit" class doesn't exist explicitly, but as the equivalence class of the objects sharing the same prototype. The attributes and methods of the "prototype" are delegated to all the objects of the equivalence class defined by this prototype. The attributes and methods "owned" individually by the object may not be shared by other objects of the same equivalence class; e.g. the attribute "sugar_content" may be unexpectedly not present in "apple". Only single inheritance can be implemented through the prototype.
Dynamic dispatch/message passing.
It is the responsibility of the object, not any external code, to select the procedural code to execute in response to a method call, typically by looking up the method at run time in a table associated with the object. This feature is known as dynamic dispatch, and distinguishes an object from an abstract data type (or module), which has a fixed (static) implementation of the operations for all instances. If the call variability relies on more than the single type of the object on which it is called (i.e. at least one other parameter object is involved in the method choice), one speaks of multiple dispatch.
A method call is also known as "message passing". It is conceptualized as a message (the name of the method and its input parameters) being passed to the object for dispatch.
Encapsulation.
Encapsulation is an object-oriented programming concept that binds together the data and functions that manipulate the data, and that keeps both safe from outside interference and misuse. Data encapsulation led to the important OOP concept of data hiding.
If a class does not allow calling code to access internal object data and permits access through methods only, this is a strong form of abstraction or information hiding known as encapsulation. Some languages (Java, for example) let classes enforce access restrictions explicitly, for example denoting internal data with the codice_1 keyword and designating methods intended for use by code outside the class with the codice_2 keyword. Methods may also be designed public, private, or intermediate levels such as codice_3 (which allows access from the same class and its subclasses, but not objects of a different class). In other languages (like Python) this is enforced only by convention (for example, codice_1 methods may have names that start with an underscore). Encapsulation prevents external code from being concerned with the internal workings of an object. This facilitates code refactoring, for example allowing the author of the class to change how objects of that class represent their data internally without changing any external code (as long as "public" method calls work the same way). It also encourages programmers to put all the code that is concerned with a certain set of data in the same class, which organizes it for easy comprehension by other programmers. Encapsulation is a technique that encourages decoupling.
Composition, inheritance, and delegation.
Objects can contain other objects in their instance variables; this is known as object composition. For example, an object in the Employee class might contain (either directly or through a pointer) an object in the Address class, in addition to its own instance variables like "first_name" and "position". Object composition is used to represent "has-a" relationships: every employee has an address, so every Employee object has access to a place to store an Address object (either directly embedded within itself, or at a separate location addressed via a pointer).
Languages that support classes almost always support inheritance. This allows classes to be arranged in a hierarchy that represents "is-a-type-of" relationships. For example, class Employee might inherit from class Person. All the data and methods available to the parent class also appear in the child class with the same names. For example, class Person might define variables "first_name" and "last_name" with method "make_full_name()". These will also be available in class Employee, which might add the variables "position" and "salary". This technique allows easy re-use of the same procedures and data definitions, in addition to potentially mirroring real-world relationships in an intuitive way. Rather than utilizing database tables and programming subroutines, the developer utilizes objects the user may be more familiar with: objects from their application domain.
Subclasses can override the methods defined by superclasses. Multiple inheritance is allowed in some languages, though this can make resolving overrides complicated. Some languages have special support for mixins, though in any language with multiple inheritance, a mixin is simply a class that does not represent an is-a-type-of relationship. Mixins are typically used to add the same methods to multiple classes. For example, class UnicodeConversionMixin might provide a method unicode_to_ascii() when included in class FileReader and class WebPageScraper, which don't share a common parent.
Abstract classes cannot be instantiated into objects; they exist only for the purpose of inheritance into other "concrete" classes that can be instantiated. In Java, the codice_5 keyword can be used to prevent a class from being subclassed.
The doctrine of composition over inheritance advocates implementing has-a relationships using composition instead of inheritance. For example, instead of inheriting from class Person, class Employee could give each Employee object an internal Person object, which it then has the opportunity to hide from external code even if class Person has many public attributes or methods. Some languages, like Go do not support inheritance at all.
The "open/closed principle" advocates that classes and functions "should be open for extension, but closed for modification".
Delegation is another language feature that can be used as an alternative to inheritance.
Polymorphism.
Subtyping – a form of polymorphism – is when calling code can be agnostic as to which class in the supported hierarchy it is operating on – the parent class or one of its descendants. Meanwhile, the same operation name among objects in an inheritance hierarchy may behave differently.
For example, objects of type Circle and Square are derived from a common class called Shape. The Draw function for each type of Shape implements what is necessary to draw itself while calling code can remain indifferent to the particular type of Shape being drawn.
This is another type of abstraction that simplifies code external to the class hierarchy and enables strong separation of concerns.
Open recursion.
In languages that support open recursion, object methods can call other methods on the same object (including themselves), typically using a special variable or keyword called codice_6 or codice_7. This variable is "late-bound"; it allows a method defined in one class to invoke another method that is defined later, in some subclass thereof.
History.
Terminology invoking "objects" and "oriented" in the modern sense of object-oriented programming made its first appearance at MIT in the late 1950s and early 1960s. In the environment of the artificial intelligence group, as early as 1960, "object" could refer to identified items (LISP atoms) with properties (attributes);
Alan Kay later cited a detailed understanding of LISP internals as a strong influence on his thinking in 1966.
Another early MIT example was Sketchpad created by Ivan Sutherland in 1960–61; in the glossary of the 1963 technical report based on his dissertation about Sketchpad, Sutherland defined notions of "object" and "instance" (with the class concept covered by "master" or "definition"), albeit specialized to graphical interaction.
Also, an MIT ALGOL version, AED-0, established a direct link between data structures ("plexes", in that dialect) and procedures, prefiguring what were later termed "messages", "methods", and "member functions".
In 1962, Kristen Nygaard initiated a project for a simulation language at the Norwegian Computing Center, based on his previous use of the Monte Carlo simulation and his work to conceptualise real-world systems. Ole-Johan Dahl formally joined the project and the Simula programming language was designed to run on the Universal Automatic Computer (UNIVAC) 1107. Simula introduced important concepts that are today an essential part of object-oriented programming, such as class and object, inheritance, and dynamic binding. Simula was also designed to take account of programming and data security. For programming security purposes a detection process was implemented so that through reference counts a last resort garbage collector deleted unused objects in the random-access memory (RAM). But although the idea of data objects had already been established by 1965, data encapsulation through levels of scope for variables, such as private (-) and public (+), were not implemented in Simula because it would have required the accessing procedures to be also hidden.
In the early stages, Simula was supposed to be a procedure package for the programming language ALGOL 60. Dissatisfied with the restrictions imposed by ALGOL the researchers decided to develop Simula into a fully-fledged programming language, which used the UNIVAC ALGOL 60 compiler. Simula was promoted by Dahl and Nygaard throughout 1965 and 1966, leading to increasing use of the programming language in Sweden, Germany and the Soviet Union. In 1968, the language became widely available through the Burroughs B5500 computers, and was later also implemented on the URAL-16 computer. In 1966, Dahl and Nygaard wrote a Simula compiler. They became preoccupied with putting into practice Tony Hoare's record class concept, which had been implemented in the free-form, English-like general-purpose simulation language SIMSCRIPT. They settled for a generalised process concept with record class properties, and a second layer of prefixes. Through prefixing a process could reference its predecessor and have additional properties. Simula thus introduced the class and subclass hierarchy, and the possibility of generating objects from these classes.
A Simula 67 compiler was launched for the System/360 and System/370 IBM mainframe computers in 1972. In the same year a Simula 67 compiler was launched free of charge for the French CII 10070 and CII Iris 80 mainframe computers. By 1974, the Association of Simula Users had members in 23 different countries. Early 1975 a Simula 67 compiler was released free of charge for the DECsystem-10 mainframe family. By August the same year the DECsystem-10 Simula 67 compiler had been installed at 28 sites, 22 of them in North America. The object-oriented Simula programming language was used mainly by researchers involved with physical modelling, such as models to study and improve the movement of ships and their content through cargo ports.
In the 1970s, the first version of the Smalltalk programming language was developed at Xerox PARC by Alan Kay, Dan Ingalls and Adele Goldberg. Smaltalk-72 included a programming environment and was dynamically typed, and at first was interpreted, not compiled. Smalltalk became noted for its application of object orientation at the language-level and its graphical development environment. Smalltalk went through various versions and interest in the language grew. While Smalltalk was influenced by the ideas introduced in Simula 67 it was designed to be a fully dynamic system in which classes could be created and modified dynamically.
In the 1970s, Smalltalk influenced the Lisp community to incorporate object-based techniques that were introduced to developers via the Lisp machine. Experimentation with various extensions to Lisp (such as LOOPS and Flavors introducing multiple inheritance and mixins) eventually led to the Common Lisp Object System, which integrates functional programming and object-oriented programming and allows extension via a Meta-object protocol. In the 1980s, there were a few attempts to design processor architectures that included hardware support for objects in memory but these were not successful. Examples include the Intel iAPX 432 and the Linn Smart Rekursiv.
In 1981, Goldberg edited the August issue of Byte Magazine, introducing Smalltalk and object-oriented programming to a wider audience. In 1986, the Association for Computing Machinery organised the first "Conference on Object-Oriented Programming, Systems, Languages, and Applications" (OOPSLA), which was unexpectedly attended by 1,000 people. In the mid-1980s Objective-C was developed by Brad Cox, who had used Smalltalk at ITT Inc., and Bjarne Stroustrup, who had used Simula for his PhD thesis, eventually went to create the object-oriented C++. In 1985, Bertrand Meyer also produced the first design of the Eiffel language. Focused on software quality, Eiffel is a purely object-oriented programming language and a notation supporting the entire software lifecycle. Meyer described the Eiffel software development method, based on a small number of key ideas from software engineering and computer science, in Object-Oriented Software Construction. Essential to the quality focus of Eiffel is Meyer's reliability mechanism, Design by Contract, which is an integral part of both the method and language.
In the early and mid-1990s object-oriented programming developed as the dominant programming paradigm when programming languages supporting the techniques became widely available. These included Visual FoxPro 3.0, C++, and Delphi. Its dominance was further enhanced by the rising popularity of graphical user interfaces, which rely heavily upon object-oriented programming techniques. An example of a closely related dynamic GUI library and OOP language can be found in the Cocoa frameworks on Mac OS X, written in Objective-C, an object-oriented, dynamic messaging extension to C based on Smalltalk. OOP toolkits also enhanced the popularity of event-driven programming (although this concept is not limited to OOP).
At ETH Zürich, Niklaus Wirth and his colleagues had also been investigating such topics as data abstraction and modular programming (although this had been in common use in the 1960s or earlier). Modula-2 (1978) included both, and their succeeding design, Oberon, included a distinctive approach to object orientation, classes, and such.
Object-oriented features have been added to many previously existing languages, including Ada, BASIC, Fortran, Pascal, and COBOL. Adding these features to languages that were not initially designed for them often led to problems with compatibility and maintainability of code.
More recently, a number of languages have emerged that are primarily object-oriented, but that are also compatible with procedural methodology. Two such languages are Python and Ruby. Probably the most commercially important recent object-oriented languages are Java, developed by Sun Microsystems, as well as C# and Visual Basic.NET (VB.NET), both designed for Microsoft's .NET platform. Each of these two frameworks shows, in its own way, the benefit of using OOP by creating an abstraction from implementation. VB.NET and C# support cross-language inheritance, allowing classes defined in one language to subclass classes defined in the other language.
OOP languages.
Simula (1967) is generally accepted as being the first language with the primary features of an object-oriented language. It was created for making simulation programs, in which what came to be called objects were the most important information representation. Smalltalk (1972 to 1980) is another early example, and the one with which much of the theory of OOP was developed. Concerning the degree of object orientation, the following distinctions can be made:
OOP in dynamic languages.
In recent years, object-oriented programming has become especially popular in dynamic programming languages. Python, PowerShell, Ruby and Groovy are dynamic languages built on OOP principles, while Perl and PHP have been adding object-oriented features since Perl 5 and PHP 4, and ColdFusion since version 6.
The Document Object Model of HTML, XHTML, and XML documents on the Internet has bindings to the popular JavaScript/ECMAScript language. JavaScript is perhaps the best known prototype-based programming language, which employs cloning from prototypes rather than inheriting from a class (contrast to class-based programming). Another scripting language that takes this approach is Lua.
OOP in a network protocol.
The messages that flow between computers to request services in a client-server environment can be designed as the linearizations of objects defined by class objects known to both the client and the server. For example, a simple linearized object would consist of a length field, a code point identifying the class, and a data value. A more complex example would be a command consisting of the length and code point of the command and values consisting of linearized objects representing the command's parameters. Each such command must be directed by the server to an object whose class (or superclass) recognizes the command and is able to provide the requested service. Clients and servers are best modeled as complex object-oriented structures. Distributed Data Management Architecture (DDM) took this approach and used class objects to define objects at four levels of a formal hierarchy:
The initial version of DDM defined distributed file services. It was later extended to be the foundation of Distributed Relational Database Architecture (DRDA).
Design patterns.
Challenges of object-oriented design are addressed by several approaches. Most common is known as the design patterns codified by Gamma "et al.". More broadly, the term "design patterns" can be used to refer to any general, repeatable, solution pattern to a commonly occurring problem in software design. Some of these commonly occurring problems have implications and solutions particular to object-oriented development.
Inheritance and behavioral subtyping.
It is intuitive to assume that inheritance creates a semantic "is a" relationship, and thus to infer that objects instantiated from subclasses can always be "safely" used instead of those instantiated from the superclass. This intuition is unfortunately false in most OOP languages, in particular in all those that allow mutable objects. Subtype polymorphism as enforced by the type checker in OOP languages (with mutable objects) cannot guarantee behavioral subtyping in any context. Behavioral subtyping is undecidable in general, so it cannot be implemented by a program (compiler). Class or object hierarchies must be carefully designed, considering possible incorrect uses that cannot be detected syntactically. This issue is known as the Liskov substitution principle.
Gang of Four design patterns.
"Design Patterns: Elements of Reusable Object-Oriented Software" is an influential book published in 1994 by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, often referred to humorously as the "Gang of Four". Along with exploring the capabilities and pitfalls of object-oriented programming, it describes 23 common programming problems and patterns for solving them.
As of April 2007, the book was in its 36th printing.
The book describes the following patterns:
Object-orientation and databases.
Both object-oriented programming and relational database management systems (RDBMSs) are extremely common in software . Since relational databases don't store objects directly (though some RDBMSs have object-oriented features to approximate this), there is a general need to bridge the two worlds. The problem of bridging object-oriented programming accesses and data patterns with relational databases is known as object-relational impedance mismatch. There are a number of approaches to cope with this problem, but no general solution without downsides. One of the most common approaches is object-relational mapping, as found in IDE languages such as Visual FoxPro and libraries such as Java Data Objects and Ruby on Rails' ActiveRecord.
There are also object databases that can be used to replace RDBMSs, but these have not been as technically and commercially successful as RDBMSs.
Real-world modeling and relationships.
OOP can be used to associate real-world objects and processes with digital counterparts. However, not everyone agrees that OOP facilitates direct real-world mapping (see Criticism section) or that real-world mapping is even a worthy goal; Bertrand Meyer argues in "Object-Oriented Software Construction" that a program is not a model of the world but a model of some part of the world; "Reality is a cousin twice removed". At the same time, some principal limitations of OOP have been noted.
For example, the circle-ellipse problem is difficult to handle using OOP's concept of inheritance.
However, Niklaus Wirth (who popularized the adage now known as Wirth's law: "Software is getting slower more rapidly than hardware becomes faster") said of OOP in his paper, "Good Ideas through the Looking Glass", "This paradigm closely reflects the structure of systems 'in the real world', and it is therefore well suited to model complex systems with complex behaviours" (contrast KISS principle).
Steve Yegge and others noted that natural languages lack the OOP approach of strictly prioritizing "things" (objects/nouns) before "actions" (methods/verbs). This problem may cause OOP to suffer more convoluted solutions than procedural programming.
OOP and control flow.
OOP was developed to increase the reusability and maintainability of source code. Transparent representation of the control flow had no priority and was meant to be handled by a compiler. With the increasing relevance of parallel hardware and multithreaded coding, developing transparent control flow becomes more important, something hard to achieve with OOP.
Responsibility- vs. data-driven design.
Responsibility-driven design defines classes in terms of a contract, that is, a class should be defined around a responsibility and the information that it shares. This is contrasted by Wirfs-Brock and Wilkerson with data-driven design, where classes are defined around the data-structures that must be held. The authors hold that responsibility-driven design is preferable.
SOLID and GRASP guidelines.
SOLID is a mnemonic invented by Michael Feathers that stands for and advocates five programming practices:
GRASP (General Responsibility Assignment Software Patterns) is another set of guidelines advocated by Craig Larman.
Criticism.
The OOP paradigm has been criticised for a number of reasons, including not meeting its stated goals of reusability and modularity, and for overemphasizing one aspect of software design and modeling (data/objects) at the expense of other important aspects (computation/algorithms).
Luca Cardelli has claimed that OOP code is "intrinsically less efficient" than procedural code, that OOP can take longer to compile, and that OOP languages have "extremely poor modularity properties with respect to class extension and modification", and tend to be extremely complex. The latter point is reiterated by Joe Armstrong, the principal inventor of Erlang, who is quoted as saying:
A study by Potok et al. has shown no significant difference in productivity between OOP and procedural approaches.
Christopher J. Date stated that critical comparison of OOP to other technologies, relational in particular, is difficult because of lack of an agreed-upon and rigorous definition of OOP; however, Date and Darwen have proposed a theoretical foundation on OOP that uses OOP as a kind of customizable type system to support RDBMS.
In an article Lawrence Krubner claimed that compared to other languages (LISP dialects, functional languages, etc.) OOP languages have no unique strengths, and inflict a heavy burden of unneeded complexity.
Alexander Stepanov compares object orientation unfavourably to generic programming:
Paul Graham has suggested that OOP's popularity within large companies is due to "large (and frequently changing) groups of mediocre programmers". According to Graham, the discipline imposed by OOP prevents any one programmer from "doing too much damage".
Leo Brodie has suggested a connection between the standalone nature of objects and a tendency to duplicate code in violation of the don't repeat yourself principle of software development.
Steve Yegge noted that, as opposed to functional programming:
Rich Hickey, creator of Clojure, described object systems as overly simplistic models of the real world. He emphasized the inability of OOP to model time properly, which is getting increasingly problematic as software systems become more concurrent.
Eric S. Raymond, a Unix programmer and open-source software advocate, has been critical of claims that present object-oriented programming as the "One True Solution", and has written that object-oriented programming languages tend to encourage thickly layered programs that destroy transparency. Raymond compares this unfavourably to the approach taken with Unix and the C programming language.
Rob Pike, a programmer involved in the creation of UTF-8 and Go, has called object-oriented programming "the Roman numerals of computing" and has said that OOP languages frequently shift the focus from data structures and algorithms to types. Furthermore, he cites an instance of a Java professor whose "idiomatic" solution to a problem was to create six new classes, rather than to simply use a lookup table.
Formal semantics.
Objects are the run-time entities in an object-oriented system. They may represent a person, a place, a bank account, a table of data, or any item that the program has to handle.
There have been several attempts at formalizing the concepts used in object-oriented programming. The following concepts and constructs have been used as interpretations of OOP concepts:
Attempts to find a consensus definition or theory behind objects have not proven very successful (however, see Abadi & Cardelli, "A Theory of Objects" for formal definitions of many OOP concepts and constructs), and often diverge widely. For example, some definitions focus on mental activities, and some on program structuring. One of the simpler definitions is that OOP is the act of using "map" data structures or arrays that can contain functions and pointers to other maps, all with some syntactic and scoping sugar on top. Inheritance can be performed by cloning the maps (sometimes called "prototyping").


Chuang Che

Chuang Che (; born 1934) is a Chinese artist. His work is largely abstract, combining influences of his Chinese heritage with Abstract Expressionism.
Early life.
Chuang Che was born in Beijing, where his father was working as a scholar and calligrapher at the National Palace Museum. It was his father who introduced him to calligraphy, a medium which later had a profound influence on his art. In his twenties, Chuang studied fine arts at National Taiwan Normal University, where he learned about Eastern painting traditions. Che felt that there was more that could be brought to Eastern painting, and so when he graduated in 1958, he joined several other artists, including Liu Guosong, Fong Chung-Ray, and Sun Duoci, and became one of the first members of the Fifth Moon Group (which had been founded two years earlier). The group sought to modernize Chinese art, making it contemporary and straying from the old traditions. These ideals appealed to Chuang, who wanted to add something modern to the Eastern sensibilities he had been taught first by his father and then in school.
Artistic career.
In 1966, Chuang was awarded a John D. Rockefeller III Foundation travel grant, which allowed him to move to the United States and study art. He first moved to Iowa, studying at the University of Iowa. However, he shortly after moved to New York, becoming the assistant of the sculptor Seymour Lipton. In New York, Che was surrounded by contemporary artists, exposing him to Western painting styles - the most popular of the time being Abstract Expressionism. He was inspired by these contemporary styles, and decided to have his art act as a sort of confluence of East and West. He began painting works that were inspired both by his traditional Eastern education, often evoking calligraphy, and by the bold abstractions of Abstract Expressionism that he encountered in New York. His work was successful, catching the eye of many museums and galleries. He showed his work around the U.S. and Europe, and in 1992 a Retrospective Exhibition for him was held at the Taipei Fine Arts Museum.
Chuang lives in New York, working in his studio in the East Village. His work has been shown as part of Asia Week New York.
External links.
Galerie Sabine Vazieux


Peter Grippe

Peter Grippe (August 11, 1912 – October 18, 2002) was an American sculptor, printmaker, and painter. As a sculptor, he worked in bronze, terracotta, wire, plaster, and found objects. His "Monument to Hiroshima" series (1963) used found objects cast in bronze sculptures to evoke the chaotic humanity of the Japanese city after its incineration by atomic bomb. Other Grippe Surrealist sculptural works address less warlike themes, including that of city life. However, his expertise extended beyond sculpture to ink drawings, watercolor painting, and printmaking (intaglio). He joined and later directed Atelier 17, the intaglio studio founded in London and moved to New York at the beginning of World War II by its founder, Stanley William Hayter. Today, Grippe's "21 Etchings and Poems", a part of the permanent collection at the Davis Museum and Cultural Center at Wellesley College in Wellesley, Massachusetts, is available as part of the museum's virtual collection.
Biography.
Grippe, a member of the American Abstract Artists group, was born on August 11, 1912, in Buffalo, New York, and died on October 18, 2002, in Suffolk, New York. While primarily known as a sculptor working in bronze and clay, he created a portfolio of etchings by 21 artists (examples include Willem de Kooning, Jacques Lipchitz, and Peter Grippe himself) and 21 poets (including Frank O'Hara, Dylan Thomas, and Thomas Merton) in a work entitled "21 Etchings and Poems". The collective work took three years to print and was published by New York's Morris Gallery in 1960.
Grippe was educated at the Albright-Knox Art School (today the Buffalo Fine Arts Academy) and the Art Institute of Buffalo. He moved to New York in the 1930s, and his work reflects a move into the Cubist and Surrealist schools. According to Bob Mattison, Marshall R. Metzgar Professor of Art History at Lafayette College, Easton, Pennsylvania, “Moving away from simply realist depictions in public monuments, Grippe and his colleagues embraced Cubism with its openwork multidimensional view of the world and Surrealist imagery drawn from the subconscious thus bringing American sculpture into the modern era.” As Grippe's artistic and academic career progressed, he taught at several higher education institutions, including Brandeis University, where he was named the first professor of sculpture. He was awarded a Guggenheim Fellowship in the category of fine arts in 1964.
A transcribed interview with Grippe is available at the Smithsonian Institution's Archives of American Art. The interviewer, Dorothy Seckler, spoke with him in 1968. Grippe is also mentioned in a transcribed Smithsonian Institution interview in 2002 with Ruth Asawa in her San Francisco in which she discusses his technique and their associates during the period from 1946 to 1949.
Seven years after Grippe's death, his widow, Florence, made a gift of his work, his personal collection of art, and his personal papers to the Allentown Art Museum of the Lehigh Valley (Pennsylvania). He had a gallery exhibition in the Susan Teller Gallery of New York in November 2010.
Exhibitions and awards.
Peter Grippe’s career was marked by many exhibitions, awards, and other honors, noted in the following partial list listed chronologically with information from exhibition catalogues, primarily a retrospective catalogue published by the Sid Deutsch Gallery for a one-man exhibition in 1991. The catalogues are available to view at Brooklyn Museum of Art Library, Brooklyn, N.Y.


Meijin (shogi)

 is one of the eight titles in Japanese professional shogi, and is the most prestigious title, along with Ryūō. The word "meijin" (名 "mei" "excellent, artful", 人 "jin" "person") refers to a highly skilled master of a certain field (the various arts found in traditional Japanese culture, such as the Japanese tea ceremony, go, competitive karuta, rakugo, budō).
History.
The Meijin institution started in the 17th century (Edo period), and for around 300 years (1612–1937) was a hereditary title that was passed from the reigning Meijin upon his retirement or death to another selected from three families, as deemed to be worthy. This is known as the Lifetime Meijin system (終生名人制). In 1935, however, the Japan Shogi Association, or JSA, announced that it was abolishing the existing system of succession in favor of something more short-term and reflective of actual playing strength, known as the Real Strength Meijin system (実力名人制). In 1937, the reigning 13th Meijin , who had received his title under the old system and was 70 years old at the time, voluntarily gave up his title so that a new Meijin could be decided through actual tournament play. Later that year Yoshio Kimura, who was a student of Sekine, became the first Meijin to gain the title based upon actual performance by winning a tournament which included eight other top players. From 1937 to 1947, the challenger for the Meijin title was determined through tournaments involving a select number of players. Finally, in 1947, the JSA officially established the preliminary round of that it currently uses.
Qualifying.
The Meijin title is only open to professional shogi players that are members of the Meijin tournament system. This means that unlike some other tournaments amateur players, women's professional players, and regular professionals outside of the Meijin tournament system are not allowed to compete in the tournament.
The Meijin ranking tournaments are divided into five classes (A, B1, B2, C1, C2) and players compete against others within their class in a round-robin tournament throughout the year. Players who perform well during their class tournament may be promoted to the next highest class while those who perform poorly may be relegated to the next lowest one. New professionals are placed at the bottom of Class C2, and the top three players of Class C2 are promoted to Class C1 for the next year. Similarly, the top two players of Classes C1, B2, B1 are promoted to the B2, B1, and A, respectively, for the next year. A new professional, therefore, needs at least five years experience (five successive promotions) after their debut before they can qualify to challenge for the title of Meijin.
Lifetime Meijin.
The first thirteen were determined through succession. The Lifetime Meijin as a competitive title, , was established by the JSA in 1952. Players who capture the Meijin title five times (does not have to be consecutive) qualify to receive this title, but are only officially awarded it upon their retirement or death (with exceptions).
Honorary Meijin.
The is another Mejin-related title. Only two have received this title, Kensosuke Kosuke in 1936 and Ichitarō Doi in 1954.
Posthumous Meijin.
A special title was given to Sankichi Sakata in 1955 by the Japan Shogi Association after his death in 1945. Sakata, a folk hero for the Osaka area, was known during his heyday for his brilliant, inventive playing but was prevented from becoming a normal Meijin by circumstances. Sakata is the only person to receive this title.
Past winners.
Below is a list of past Meijin title holders from 1937 when the new tournament method for determining the title holder was established. The number in parenthesis represents the cumulative times the player had won the title to date.
Players by Meijin class.
Below is a list of professional players grouped by their class for the 80th Meijin league including their rank in dan . The current Meijin title holder is Akira Watanabe (who, therefore, is not listed in the A class below).
Other professional players not listed here do not participate in the Meijin league and are known as "Free Class" (フリークラス "furii kurasu") players. There were 32 such players .


John Zurier

John Zurier (born 1956) is an abstract painter born in Santa Monica, CA, known for his minimal, near-monochrome paintings. His work has shown across the American West as well as in Europe and Japan. He has worked in Reykjavik, Iceland and Berkeley, Ca.
Education.
John Zurier received a BA degree in Landscape Architecture from the University of California, Berkeley in 1979 and a Master of Fine Arts degree in Painting from The University of California at Berkeley in 1983.
Career and exhibition.
John Zurier's work has been shown in galleries and museums since 1980. Zurier was included in the 2002 Whitney Biennial in New York City, the 2008 Gwangju Biennale in Gwangju, South Korea. and the 2012 São Paulo Biennial in São Paulo, Brazil. Zurier is represented by "Anglim Gilbert Gallery" in San Francisco, "Peter Blum Gallery" in New York City and by "Galerie Nordenhake" in Stockholm, Sweden and Berlin, Germany. Zurier lives and works in Berkeley, California.
Style and technique.
Zurier paints abstract, near-monochrome paintings whose colors range from muted tones to vibrant hues. Zurier's abstract paintings are informed by abstract expressionism, Post-War French painting, and Japanese aesthetics. His main interest is in simplicity, surface modulation, and color, as those are tied to people's experience of time. Zurier's reductive paintings show his dedication to color, the material fact of painting, and the history of painting. His soft-hued abstract paintings play at crossing the line into representation with the sensation of nature, the silence of luminous weather, and the human touch. Capturing qualities of light and weather effects, Zurier employs a range of brushstrokes and surface treatments, varying from revealing the texture of the canvas or obscuring it with layers of thick impasto. Zurier's work has been described as transcending the gestural and material to evoke the emotional. While minimal, Zurier's practice is not minimalist, but rather composed of quiet works that focus on the structure and possibilities of a brushstroke. “I think the Japanese painter Ike No Taiga [1723–1776] was right,” Zurier has said, “the most difficult thing to achieve in painting is creating a space where absolutely nothing has been painted.”


Complexity (journal)

Complexity is a peer-reviewed open-access scientific journal covering the field of complex adaptive systems. The journal's scope includes Chaos theory, genetic algorithms, cellular automata, neural networks, evolutionary game theory, and econophysics. It was established in 1995 and is published by John Wiley & Sons, since 2017 in collaboration with Hindawi Publishing Corporation.
Abstracting and indexing.
The journal is abstracted and indexed in:
According to the "Journal Citation Reports", the journal has a 2017 impact factor of 4.621.


William H. Littlefield

William (Bill) Horace Littlefield (October 28, 1902 – July 5, 1969) was an American painter known for his figure studies of male nudes and in later life his large paintings in an abstract expressionist style.
Early life.
Littlefield first developed an interest in art and classicism while attending the Roxbury Latin School. Littlefield subsequently attended Harvard University, where he studied painting on the side with Adeline Wolever, a Canadian-American painter schooled in the traditional Boston School style of Frank Benson, Edmund Tarbell, and William Paxton. After graduating from Harvard in 1924, Littlefield departed for Paris to further his studies in painting, and where he met and shared a studio with the English painter and printmaker Stanley William Hayter.
Career.
After returning to the U.S. in 1929 Littlefield settled first in Boston and then on his parents’ property at Falmouth, Massachusetts on Cape Cod during the summers. It was in Falmouth where he would first explore landscape painting and where he would secure his first major commissions and exhibitions.
In 1931, he was commissioned by Lincoln Kirstein to create stage sets for the American Ballet’s first production of "Serenade" and "Mozartiana" at the Wadsworth Atheneum in Hartford, Connecticut. He was invited in 1932 to participate in the Whitney Museum’s First Biennial and in 1936 a group exhibition at the Museum of Modern Art (MOMA). He had his first solo exhibition at the Grace Horne Galleries in Boston in 1938. His work was also part of the painting event in the art competition at the 1932 Summer Olympics.
In 1942, Littlefield volunteered to join the U.S. Army during World War II and served faithfully until he was discharged in 1945. After the war, Littlefield sold his house in Boston and relocated full-time to Falmouth.
In 1947, Littlefield co-founded the Cape Cod Art Association. He first exhibited at the Provincetown Art Association in 1949. In the fall of 1951, Littlefield rented a studio in Manhattan to study with Morris Davidson and, during the summer of 1952, with Hans Hofmann in Provincetown.
He died at this home on Falmouth in July 1969.
Legacy.
Littlefield left over 3,000 drawings, watercolors, and oils on paper, board and canvas. His work is included in both private and public collections including the Museum of Fine Arts, Boston, the Harvard Art Museums, the Worcester Art Museum, the Cape Cod Museum of Art, Smith College Museum of Art, the New Hampshire Institute of Art, the Addison Gallery, and the Museum of Modern Art in New York. The Cape Cod Museum of Art organized a retrospective of Littlefield’s work in 2006.


Robert Holyhead

Robert Holyhead (born 1974 in Trowbridge, Wiltshire) is a British abstract artist. He studied painting at Manchester School of Art and completed his MA at Chelsea School of Art in 1997.
Holyhead's work is marked by expanses of white ground left uncovered with traces of colour at the canvas-edge where paint has been carefully removed from the surface. Whilst some pieces are covered almost entirely with semi-translucent paint others are, in contrast, sporadically punctured by intensely coloured, geometric shapes.
In 2005 he was awarded a five-year live/work residency at Acme Fire Station and in 2007 he was invited to spend three months in Switzerland on a residency with Fundaziun NAIRS. In 2009 he had a solo exhibition at Karsten Schubert and was included in "The Painting Edition of the East End Academy" at the Whitechapel Gallery, London.
He is represented by Galerie Max Hetzler, London, Paris, Berlin.
He is a senior lecturer in Fine Art at Anglia Ruskin University.
Commissions.
2010 New British Embassy and the UK Permanent Representation to the European Union, Brussels, Belgium (Government Art Collection)
Public collections.
2011 Tate Collection
2009 Arts Council Collection of Great Britain, London


Robert Jessup

Robert Jessup (born July 18, 1952) is an American painter. Creating abstract works since 2011, he painted figuratively for most of his career, particularly large triptychs.
Biography.
Jessup was born on July 18, 1952 in Moscow, Idaho to Clifford and Alvina Jessup and was raised in Seattle, Washington. He received his BFA in painting from the University of Washington in 1975 and his MFA in painting from the University of Iowa in 1979. He has had professorships at Ohio State University, Georgia State University, Cornell University, the Hartford Art School and the University of North Texas. He is currently the Professor of Drawing and Painting in the College of Visual Arts and Design at the University of North Texas in Denton, Texas.
Works.
Figurative (1971 - 2004).
Although Jessup occasionally created in other styles this period is predominantly stylized and representational. The paintings tended to be large triptychs roughly 15 feet wide by 6 feet tall. The entire surface of each painting tended to be heavily textured like a choppy sea when viewed up close. The subject matter appeared heavily symbolic.
Transitional (2005 - 2010).
Already an established artist Jessup, then in his mid-fifties, and his wife Faith travelled to Europe for a month in 2008. They travelled to Madrid, Brussels and Florence but it was the baroque paintings in the Prado in Spain that influenced him the most. He returned “with a desire to be more aggressive, more ambitious, more visionary, and take more chances.” Paintings during this time were strange and sometimes unsettling.
Abstract (2011 - present).
Jessup “exchanged ferocious depiction for ferocious plasticity” and started painting completely in the abstract style. He started working “with a 10-inch palette knife, making huge sweeping gestures, pushing the paint this way and that, scraping it off and hurling it back on.”
Personal life.
Jessup is married to the painter Faith Scott Jessup whom he met while both were at Cornell. They raised two children, Molly and Christopher. He has one sibling, an older brother, Richard Jessup, a retired lawyer.
Collections.
His drawings and paintings are in the collections of the Metropolitan Museum of Art (New York), the Brooklyn Museum of Art, the High Museum of Art, and the Dallas Museum of Art.