An object-oriented operating system is in contrast to an object-oriented user interface or programming framework, which can be run on a non-object-oriented operating system like DOS or Unix.
There are already object-based language concepts involved in the design of a more typical operating system such as Unix. While a more traditional language like C does not support object-orientation as fluidly as more recent languages, the notion of, for example, a file, stream, or device driver (in Unix, each represented as a file descriptor) can be considered a good example of objects. They are, after all, abstract data types, with various methods in the form of system calls which behavior varies based on the type of object and which implementation details are hidden from the caller.
Object-orientation has been defined as objects + inheritance, and inheritance is only one approach to the more general problem of delegation that occurs in every operating system. Object-orientation has been more widely used in the user interfaces of operating systems than in their kernels.
Background
An
object is an instance of a class, which provides a certain set of
functionalities. Two objects can be differentiated based on the
functionalities (or methods) they support. In an operating system
context, objects are associated with a resource. Historically, the
object-oriented design principles were used in operating systems to
provide several protection mechanisms.
Protection mechanisms in an operating system help in providing a
clear separation between different user programs. It also protects the
operating system from any malicious user program behavior. For example,
consider the case of user profiles in an operating system. The user
should not have access to resources of another user. The object model
deals with these protection issues with each resource acting as an
object. Every object can perform only a set of operations. In the
context of user profiles, the set of operations is limited by privilege level of a user.
Present-day operating systems use object-oriented design
principles for many components of the system, which includes protection.
Examples
Athene
Athene is an object-based operating system first released in 2000 by Rocklyte Systems. The user environment was constructed entirely from objects that are
linked together at runtime. Applications for Athene could also be
created using this methodology and were commonly scripted using the
object scripting language Dynamic Markup Language (DML). Objects could
have been shared between processes by creating them in shared memory
and locking them as needed for access. Athene's object framework was
multi-platform, allowing it to be used in Windows and Linux environments
for developing object-oriented programs. The company went defunct and
the project abandoned sometime in 2009.
BeOS
BeOS was an object-oriented operating system released in 1995, which used objects and the C++ language for the application programming interface
(API). The kernel was written in C with C++ wrappers in user space. The
OS did not see mainstream usage and proved commercially unviable,
however it has seen continued usage and development by a small
enthusiast community.
Choices
Choices is an object-oriented operating system developed at the University of Illinois at Urbana–Champaign. It is written in C++ and uses objects to represent core kernel components like the central processing unit (CPU), processes, and so on. Inheritance
is used to separate the kernel into portable machine-independent
classes and small non-portable dependent classes. Choices has been
ported to and runs on SPARC, x86, and ARM.
ETHOS
ETHOS was an experimental object oriented version of the Oberon
System (see below) created by Clemens Szyperski for his PhD Thesis written in Oberon-2
GEOS
PC/GEOS
is a light-weight object-oriented multitasking graphical operating
system with sophisticated window and desktop management featuring
scalable fonts. It is mostly written in an object-oriented x86 assembly
language dialect and some C/C++ and is designed to run on DOS (similar to Microsoft Windows up to Windows Me). GEOS was developed originally by Berkeley Softworks in 1990, which later became GeoWorks Corporation, and it is continued to be maintained by BreadBox Computer Company. Related software suites were named Ensemble and New Deal Office. Adaptations exist for various palmtops, and 32-bit systems with non-x86-CPUs.
Haiku
Haiku (originally named OpenBeOS),
is an open-source replacement for BeOS. It reached its first
development milestone in September 2009 with the release of Haiku
R1/Alpha 1. The x86 distribution is compatible with BeOS at both source
and binary level. Like BeOS, it is written primarily in C++ and provides an object-oriented API. It is actively developed.
IBM i (OS/400, i5/OS)
IBM introduced OS/400 in 1988. This OS ran exclusively on the AS/400 platform. Renamed IBM i in 2008, this operating system and runs exclusively on Power Systems which also can run AIX and Linux. IBM i uses an object-oriented methodology and integrates a database (Db2 for i). The IBM i OS has a 128-bit unique identifier for each object.
IBM OS/2 2.0
IBM's first priority based pre-emptive multitasking, graphical,
windows-based operating system included an object-oriented user shell.
It was designed for the Intel 80386 that used virtual 8086 mode with full 32-bit support and was released in 1992. ArcaOS, a new OS/2 based operating system initially called Blue Lion[9] is being developed by Arca Noae. The first version was released in May 2017.
IBM TopView
TopView
was an object-oriented operating environment that loaded on a PC on
DOS, and then took control from DOS. At that point it effectively became
an object-oriented operating system with an object-oriented API
(TopView API). It was IBM's first multi-tasking, window based,
object-oriented operating system for the PC led by David C. Morrill and
released in February 1985.
Java-based
Given that Oracle's (formerly Sun Microsystems') Java
is today one of the most dominant object-oriented languages, it is no
surprise that Java-based operating systems have been attempted. In this
area, ideally, the kernel would consist of the bare minimum needed to support a Java virtual machine
(JVM). This is the only component of such an operating system that
would have to be written in a language other than Java. Built on the JVM
and basic hardware support, it would be possible to write the rest of
the operating system in Java; even parts of the system that are more
traditionally written in a lower-level language such as C, for example device drivers, can be written in Java.
Examples of attempts at such an operating system include JavaOS, JOS, JNode, and JX.
Xerox developed several workstations with an operating system written in Interlisp-D. Interlisp-D provided object-oriented extensions like LOOPS and CLOS.
Movitz and Mezzano are two more recent attempts at operating systems written in Common Lisp.
Medos-2
Medos-2 is a single user, object-oriented operating system made for the Lilith line of workstations (processor: Advanced Micro Devices (AMD) 2901), developed in the early 1980s at ETH Zurich by Svend Erik Knudsen with advice from Niklaus Wirth. It is built entirely from modules of the programming language Modula-2.It was succeeded at ETH Zurich by the Oberon system (see also below), and a variant named Excelsior was developed for the Kronos workstation, by the Academy of Sciences of the Soviet Union, Siberian branch, Novosibirsk Computing Center, Modular Asynchronous Developable Systems (MARS) project, Kronos Research Group (KRG).
Microsoft Singularity
Singularity is an experimental operating system based on Microsoft's .NET Framework. It is comparable to Java-based operating systems.
The Object Manager is in charge of managing NT objects. As part of this responsibility, it maintains an internal namespace where various operating system components, device drivers, and Win32 programs can store and lookup objects. The NT Native API provides routines that allow user space (mode) programs to browse the namespace and query the status of objects located there, but the interfaces are undocumented. NT supports per-object (file, function, and role) access control lists
allowing a rich set of security permissions to be applied to systems
and services. WinObj is a Windows NT program that uses the NT Native API
(provided by NTDLL.DLL) to access and display information on the NT
Object Manager's name space.
Object Linking and Embedding (OLE) was part of a grander plan named Cairo,
the code name for a project at Microsoft from 1991 to 1996. Its charter
was to build technologies for a next generation operating system that
would fulfill Bill Gates' vision of "information at your fingertips". Cairo never shipped, although parts of its technologies have since appeared in other products. The Windows 95graphical user interface was based on the initial design work that was done on the Cairo user interface. The remaining component is the object-based file system. It was once planned to be implemented in the form of Windows Future Storage (WinFS) as part of Windows Vista. WinFS is the code name for data storage and management system project based on relational databases, running on the Windows NT file system (NTFS),
which is object-oriented in that it can store the NT objects including
its NT object identifier. Each NTFS object has an object identifier; a
shortcut with a target that's on an NTFS volume also records the object
identifier of the shortcut target, and the object identifier of the
drive. WinFS was first demonstrated in 2003 as an advanced storage subsystem for the Microsoft Windowsoperating system, designed for persistence and management of structured, semi-structured, and unstructured data. WinFS development was cancelled in June 2006, with some of its technologies merged into other Microsoft products such as Microsoft SQL Server 2008 and Microsoft SharePoint. It was subsequently confirmed in an interview with Bill Gates that Microsoft planned to migrate applications like Windows Media Player, Windows Photo Gallery, Microsoft Office Outlook, etc., to use WinFS as the data storage back-end.
NeXTSTEP
During the late 1980s, Steve Jobs formed the computer company NeXT. One of NeXT's first tasks was to design an object-oriented operating system, NeXTSTEP. They did this by adding an object-oriented framework on Mach and BSD using the Objective-C language as a basis. It achieved a niche status in the computing market, notably used by Tim Berners-Lee developing the first implementation of the World Wide Web.
OpenStep was provided as an API layer on many operating systems, namely HP-UX, NextStep, Solaris, and Windows.
Oberon System
Oberon System is a single user, object-oriented operating system made for the Ceres line of workstations (processor: National SemiconductorNS32000), developed in the later 1980s at ETH Zurich by Niklaus Wirth and Jürg Gutknecht. It is built entirely from modules of the programming language Oberon. There are two successors of the Oberon System, ETHOS (see above) and, as of 2023 still maintained, an evolution named Active Object System (AOS), then renamed Bluebottle, then renamed A2.
OOSMOS
The Object-Oriented State Machine Operating System (OOSMOS), written
in C, promotes object-oriented encapsulation and implements a full
table-driven hierarchical state machine architecture. It generates C
code directly from state charts drawn with the open source tool UMLet.
OOSMOS also supports a unique feature call 'state threads' which allows
a thread of execution per state. OOSMOS operates on a bare board or in
cooperation with an existing operating system.
Phantom OS
Phantom OS
adheres to a principle where "everything is an object" and eliminates
the concept of a file entirely, instead transparently persisting virtual
memory to storage.
ReactOS
ReactOS is an open-source operating system intended to be binary compatible with application software and device drivers made for Microsoft Windows NT versions. Written from scratch, it aims to follow the architecture of Windows NT designed by Microsoft from the hardware level right through to the application level. This is not a Linux-based system, and shares none of the unix architecture.
Smalltalk
Smalltalk was invented at Xerox in the 1970s. The Smalltalk system is fully object-oriented and needs very little support by BIOS and the run-time system.
Syllable
Syllable makes heavy use of C++ and for that reason is often compared to BeOS.
Taligent was an object-oriented operating system project, begun by Apple Inc. and jointly developed with IBM in the 1990s. It was later spun off to an IBM subsidiary and transformed from an operating system to a programming environment.
Beginning in the 1960s, software engineering was recognized as a separate field of engineering.
The development of software engineering was seen as a struggle.
Problems included software that was over budget, exceeded deadlines,
required extensive debugging and maintenance, and unsuccessfully met the needs of consumers or was never even completed.
In 1968, NATO
held the first software engineering conference, where issues related to
software were addressed. Guidelines and best practices for the
development of software were established.
The origins of the term software engineering have been
attributed to various sources. The term appeared in a list of services
offered by companies in the June 1965 issue of "Computers and
Automation" and was used more formally in the August 1966 issue of Communications of the ACM (Volume 9, number 8) in "President's Letter to the ACM Membership" by Anthony A. Oettinger. It is also associated with the title of a NATO conference in 1968 by Professor Friedrich L. Bauer. Margaret Hamilton described the discipline of "software engineering" during the Apollo missions to give what they were doing legitimacy. At the time, there was perceived to be a "software crisis".The 40th International Conference on Software Engineering (ICSE 2018)
celebrates 50 years of "Software Engineering" with the Plenary Sessions'
keynotes of Frederick Brooks and Margaret Hamilton.
In 1984, the Software Engineering Institute (SEI) was established as a federally funded research and development center headquartered on the campus of Carnegie Mellon University in Pittsburgh, Pennsylvania, United States. Watts Humphrey founded the SEI Software Process Program, aimed at understanding and managing the software engineering process. The Process Maturity Levels introduced became the Capability Maturity Model Integration for Development (CMMI-DEV), which defined how the US Government evaluates the abilities of a software development team.
Modern, generally accepted best practices for software engineering have been collected by the ISO/IEC JTC 1/SC 7 subcommittee and published as the Software Engineering Body of Knowledge (SWEBOK). Software engineering is considered one of the major computing disciplines.
Terminology
Definition
Notable definitions of software engineering include:
"The systematic application of scientific and technological
knowledge, methods, and experience to the design, implementation,
testing, and documentation of software."—The Bureau of Labor Statistics—IEEESystems and software engineering – Vocabulary
"The application of a systematic, disciplined, quantifiable approach
to the development, operation, and maintenance of software."—IEEEStandard Glossary of Software Engineering Terminology
"An engineering discipline that is concerned with all aspects of software production."—Ian Sommerville
"The establishment and use of sound engineering principles in order
to economically obtain software that is reliable and works efficiently
on real machines."—Fritz Bauer
"A branch of computer science that deals with the design, implementation, and maintenance of complex computer programs."—Merriam-Webster
"'Software engineering'
encompasses not just the act of writing code, but all of the tools and
processes an organization uses to build and maintain that code over
time. [...] Software engineering can be thought of as 'programming
integrated over time.'"—Software Engineering at Google
as the broad term for all aspects of the practice of computer programming, as opposed to the theory of computer programming, which is formally studied as a sub-discipline of computer science
as the term embodying the advocacy of a specific approach to computer programming, one that urges that it be treated as an engineering discipline rather than an art or a craft, and advocates the codification of recommended practices
Suitability
Individual commentators have disagreed sharply on how to define software engineering or its legitimacy as an engineering discipline. David Parnas has said that software engineering is, in fact, a form of engineering. Steve McConnell has said that it is not, but that it should be. Donald Knuth has said that programming is an art and a science. Edsger W. Dijkstra claimed that the terms software engineering and software engineer have been misused in the United States.
Functional requirements describe expected behaviors (i.e.
outputs). Non-functional requirements specify issues like portability,
security, maintainability, reliability, scalability, performance,
reusability, and flexibility. They are classified into the following
types: interface constraints, performance constraints (such as response
time, security, storage space, etc.), operating constraints, life cycle
constraints (maintainability, portability, etc.), and economic
constraints. Knowledge of how the system or software works is needed
when it comes to specifying non-functional requirements. Domain
requirements have to do with the characteristic of a certain category or
domain of projects.
Software construction typically involves programming (a.k.a. coding), unit testing, integration testing, and debugging so as to implement the design."Software testing is related to, but different from, ... debugging". Testing during this phase is generally performed by the programmer and
with the purpose to verify that the code behaves as designed and to know
when the code is ready for the next level of testing.
Software testing
is an empirical, technical investigation conducted to provide
stakeholders with information about the quality of the software under
test.
When described separately from construction, testing typically is performed by test engineers or quality assurance instead of the programmers who wrote it. It is performed at the system level and is considered an aspect of software quality.
Software maintenance refers to supporting the software after release. It may include but is not limited to: error correction, optimization, deletion of unused and discarded features, and enhancement of existing features.
Usually, maintenance takes up 40% to 80% of project cost.
Education
Knowledge of computer programming is a prerequisite for becoming a software engineer. In 2004, the IEEE Computer Society produced the SWEBOK,
which has been published as ISO/IEC Technical Report 1979:2005,
describing the body of knowledge that they recommend to be mastered by a
graduate software engineer with four years of experience. Many software engineers enter the profession by obtaining a university
degree or training at a vocational school. One standard international
curriculum for undergraduate software engineering degrees was defined by
the Joint Task Force on Computing Curricula of the IEEE Computer Society and the Association for Computing Machinery, and updated in 2014. A number of universities have Software Engineering degree programs; as of 2010, there were 244 Campus Bachelor of Software Engineering
programs, 70 Online programs, 230 Masters-level programs, 41
Doctorate-level programs, and 69 Certificate-level programs in the
United States.
In addition to university education, many companies sponsor
internships for students wishing to pursue careers in information
technology. These internships can introduce the student to real-world
tasks that typical software engineers encounter every day. Similar
experience can be gained through military service in software engineering.
Since then, software engineering undergraduate degrees have been
established at many universities. A standard international curriculum
for undergraduate software engineering degrees, SE2004, was defined by a steering committee between 2001 and 2004 with funding from the Association for Computing Machinery and the IEEE Computer Society. As of 2004,
about 50 universities in the U.S. offer software engineering degrees,
which teach both computer science and engineering principles and
practices. The first software engineering master's degree was established at Seattle University
in 1979. Since then, graduate software engineering degrees have been
made available from many more universities. Likewise in Canada, the
Canadian Engineering Accreditation Board (CEAB) of the Canadian Council of Professional Engineers has recognized several software engineering programs.
In 1998, the US Naval Postgraduate School (NPS) established the first doctorate program in Software Engineering in the world. Additionally, many online advanced degrees in Software Engineering have
appeared such as the Master of Science in Software Engineering (MSE)
degree offered through the Computer Science and Engineering Department
at California State University, Fullerton. Steve McConnell
opines that because most universities teach computer science rather
than software engineering, there is a shortage of true software
engineers. ETS (École de technologie supérieure) University and UQAM (Université du Québec à Montréal) were mandated by IEEE to develop the Software Engineering Body of Knowledge (SWEBOK), which has become an ISO standard describing the body of knowledge covered by a software engineer.
Legal
requirements for the licensing or certification of professional
software engineers vary around the world. In the UK, there is no
licensing or legal requirement to assume or use the job title Software
Engineer. In some areas of Canada, such as Alberta, British Columbia,
Ontario, and Quebec, software engineers can hold the Professional Engineer
(P.Eng) designation and/or the Information Systems Professional (I.S.P.)
designation. In Europe, Software Engineers can obtain the European Engineer (EUR ING) professional title. Software Engineers can also become professionally qualified as a Chartered Engineer through the British Computer Society.
In the United States, the NCEES began offering a Professional Engineer exam for Software Engineering in 2013, thereby allowing Software Engineers to be licensed and recognized. NCEES ended the exam after April 2019 due to lack of participation. Mandatory licensing is currently still largely debated, and perceived as controversial.
The IEEE Computer Society and the ACM,
the two main US-based professional organizations of software
engineering, publish guides to the profession of software engineering.
The IEEE's Guide to the Software Engineering Body of Knowledge – 2004 Version, or SWEBOK,
defines the field and describes the knowledge the IEEE expects a
practicing software engineer to have. The most current version is SWEBOK
v4. The IEEE also promulgates a "Software Engineering Code of Ethics".
There are an estimated 26.9 million professional software engineers in the world as of 2022, up from 21 million in 2016.
Many software engineers work as employees or contractors.
Software engineers work with businesses, government agencies (civilian
or military), and non-profit organizations. Some software engineers work
for themselves as freelancers. Some organizations have specialists to perform each of the tasks in the software development process.
Other organizations require software engineers to do many or all of
them. In large projects, people may specialize in only one role. In
small projects, people may fill several or all roles at the same time.
Many companies hire interns, often university or college students during a summer break, or externships. Specializations include analysts, architects, developers, testers, technical support, middleware analysts, project managers, software product managers, educators, and researchers.
Most software engineers and programmers work 40 hours a week, but
about 15 percent of software engineers and 11 percent of programmers
worked more than 50 hours a week in 2008. Potential injuries in these occupations are possible because like other workers who spend long periods sitting in front of a computer terminal typing at a keyboard, engineers and programmers are susceptible to eyestrain, back discomfort, Thrombosis, Obesity, and hand and wrist problems such as carpal tunnel syndrome.
United States
The U. S. Bureau of Labor Statistics (BLS) counted 1,365,500 software developers holding jobs in the U.S. in 2018. Due to its relative newness as a field of study, formal education in
software engineering is often taught as part of a computer science
curriculum, and many software engineers hold computer science degrees. The BLS estimates from 2023 to 2033 that computer software engineering would increase by 17%. This is down from the 2022 to 2032 BLS estimate of 25% for software engineering.And, is further down from their 30% 2010 to 2020 BLS estimate. Due to this trend, job growth may not be as fast as during the last
decade, as jobs that would have gone to computer software engineers in
the United States would instead be outsourced to computer software
engineers in countries such as India and other foreign countries. In addition, the BLS Job Outlook for Computer Programmers, the U.S. Bureau of Labor Statistics
(BLS) Occupational Outlook predicts a decline of -7 percent from 2016
to 2026, a further decline of -9 percent from 2019 to 2029, a decline of
-10 percent from 2021 to 2031. and then a decline of -11 percent from 2022 to 2032. Since computer programming can be done from anywhere in the world,
companies sometimes hire programmers in countries where wages are lower. Furthermore, the ratio of women in many software fields has also been
declining over the years as compared to other engineering fields. Then there is the additional concern that recent advances in Artificial Intelligence might impact the demand for future generations of Software Engineers. However, this trend may change or slow in the future as many current
software engineers in the U.S. market flee the profession or age out of the market in the next few decades.
Certification
The Software Engineering Institute offers certifications on specific topics like security, process improvement and software architecture. IBM, Microsoft and other companies also sponsor their own certification examinations. Many ITcertification programs are oriented toward specific technologies, and managed by the vendors of these technologies. These certification programs are tailored to the institutions that would employ people who use these technologies.
Broader certification of general software engineering skills is available through various professional societies. As of 2006, the IEEE had certified over 575 software professionals as a Certified Software Development Professional (CSDP). In 2008 they added an entry-level certification known as the Certified Software Development Associate (CSDA). The ACM had a professional certification program in the early 1980s, which was discontinued due to lack of interest. The ACM and the IEEE Computer Society together examined the possibility of licensing of software engineers as Professional Engineers in the 1990s,
but eventually decided that such licensing was inappropriate for the professional industrial practice of software engineering. John C. Knight and Nancy G. Leveson presented a more balanced analysis of the licensing issue in 2002.
In the U.K. the British Computer Society has developed a legally recognized professional certification called Chartered IT Professional (CITP), available to fully qualified members (MBCS). Software engineers may be eligible for membership of the British Computer Society or Institution of Engineering and Technology and so qualify to be considered for Chartered Engineer status through either of those institutions. In Canada the Canadian Information Processing Society has developed a legally recognized professional certification called Information Systems Professional (ISP). In Ontario, Canada, Software Engineers who graduate from a Canadian Engineering Accreditation Board (CEAB) accredited program, successfully complete PEO's (Professional Engineers Ontario)
Professional Practice Examination (PPE) and have at least 48 months of
acceptable engineering experience are eligible to be licensed through
the Professional Engineers Ontario and can become Professional Engineers P.Eng. The PEO does not recognize any online or distance education however;
and does not consider Computer Science programs to be equivalent to
software engineering programs despite the tremendous overlap between the
two. This has sparked controversy and a certification war. It has also
held the number of P.Eng holders for the profession exceptionally low.
The vast majority of working professionals in the field hold a degree in
CS, not SE. Given the difficult certification path for holders of
non-SE degrees, most never bother to pursue the license.
Impact of globalization
The
initial impact of outsourcing, and the relatively lower cost of
international human resources in developing third world countries led to
a massive migration of software development activities from
corporations in North America and Europe to India and later: China,
Russia, and other developing countries. This approach had some flaws,
mainly the distance / time zone difference that prevented human
interaction between clients and developers and the massive job transfer.
This had a negative impact on many aspects of the software engineering
profession. For example, some students in the developed world avoid education related to software engineering because of the fear of offshore outsourcing (importing software products or services from other countries) and of being displaced by foreign visa workers. Although statistics do not currently show a threat to software engineering itself; a related career, computer programming does appear to have been affected. Nevertheless, the ability to smartly leverage offshore and near-shore resources via the follow-the-sun workflow has improved the overall operational capability of many organizations. When North Americans leave work, Asians are just arriving to work. When
Asians are leaving work, Europeans arrive to work. This provides a
continuous ability to have human oversight on business-critical
processes 24 hours per day, without paying overtime compensation or
disrupting a key human resource, sleep patterns.
While global outsourcing has several advantages, global – and
generally distributed – development can run into serious difficulties
resulting from the distance between developers. This is due to the key
elements of this type of distance that have been identified as
geographical, temporal, cultural and communication (that includes the
use of different languages and dialects of English in different
locations). Research has been carried out in the area of global software
development over the last 15 years and an extensive body of relevant
work published that highlights the benefits and problems associated with
the complex activity. As with other aspects of software engineering
research is ongoing in this and related areas.
Prizes
There are various prizes in the field of software engineering:
ACM-AAAI Allen Newell Award-
USA. Awarded to career contributions that have breadth within computer
science, or that bridge computer science and other disciplines.
BCS Lovelace Medal. Awarded to individuals who have made outstanding contributions to the understanding or advancement of computing.
The Codie award,
a yearly award issued by the Software and Information Industry
Association for excellence in software development within the software
industry.
Harlan Mills Award for "contributions to the theory and practice of the information sciences, focused on software engineering".
Some
call for licensing, certification and codified bodies of knowledge as
mechanisms for spreading the engineering knowledge and maturing the
field.
Some claim that the concept of software engineering is so new
that it is rarely understood, and it is widely misinterpreted, including
in software engineering textbooks, papers, and among the communities of
programmers and crafters.
Some claim that a core issue with software engineering is that
its approaches are not empirical enough because a real-world validation
of approaches is usually absent, or very limited and hence software
engineering is often misinterpreted as feasible only in a "theoretical
environment."
Edsger Dijkstra,
a founder of many of the concepts in software development today,
rejected the idea of "software engineering" up until his death in 2002,
arguing that those terms were poor analogies for what he called the
"radical novelty" of computer science:
A number of these phenomena have been bundled under the name "Software
Engineering". As economics is known as "The Miserable Science", software
engineering should be known as "The Doomed Discipline", doomed because
it cannot even approach its goal since its goal is self-contradictory.
Software engineering, of course, presents itself as another worthy
cause, but that is eyewash: if you carefully read its literature and
analyse what its devotees actually do, you will discover that software
engineering has accepted as its charter "How to program if you cannot."
In computer science, an abstraction layer is a generalization of a conceptual model or algorithm,
away from any specific implementation. These generalizations arise from
broad similarities that are best encapsulated by models that express
similarities present in various specific implementations. The
simplification provided by a good abstraction layer allows for easy
reuse by distilling a useful concept or design pattern
so that situations, where it may be accurately applied, can be quickly
recognized. Just composing lower-level elements into a construct doesn't
count as an abstraction layer unless it shields users from its
underlying complexity.
A layer is considered to be on top of another if it depends
on it. Every layer can exist without the layers above it, and requires
the layers below it to function. Frequently abstraction layers can be
composed into a hierarchy of abstraction levels. The OSI model comprises
seven abstraction layers. Each layer of the model encapsulates and
addresses a different part of the needs of digital communications,
thereby reducing the complexity of the associated engineering solutions.
A famous aphorism of David Wheeler is, "All problems in computer science can be solved by another level of indirection." This is often deliberately misquoted with "abstraction" substituted for "indirection."It is also sometimes misattributed to Butler Lampson. Kevlin Henney's corollary to this is, "...except for the problem of too many layers of indirection."
Computer architecture
In a computer architecture, a computer system is usually represented as consisting of several abstraction levels such as:
Programmable logic is often considered part of the hardware, while
the logical definitions are also sometimes seen as part of a device's
software or firmware. Firmware may include only low-level software, but
can also include all software, including an operating system and
applications. The software layers can be further divided into hardware
abstraction layers, physical and logical device drivers, repositories
such as filesystems, operating system kernels, middleware, applications,
and others. A distinction can also be made from low-level programming
languages like VHDL, machine language, assembly language to a compiled language, interpreter, and script language.
Input and output
In
the Unix operating system, most types of input and output operations
are considered to be streams of bytes read from a device or written to a
device. This stream of bytes model is used for file I/O, socket I/O,
and terminal I/O in order to provide device independence. In order to
read and write to a device at the application level, the program calls a
function to open the device, which may be a real device such as a
terminal or a virtual device such as a network port or a file in a file
system. The device's physical characteristics are mediated by the
operating system which in turn presents an abstract interface that
allows the programmer to read and write bytes from/to the device. The
operating system then performs the actual transformation needed to read
and write the stream of bytes to the device.
Graphics
Most
graphics libraries such as OpenGL provide an abstract graphical device
model as an interface. The library is responsible for translating the
commands provided by the programmer into the specific device commands
needed to draw the graphical elements and objects. The specific device
commands for a plotter are different from the device commands for a CRT monitor,
but the graphics library hides the implementation and device-dependent
details by providing an abstract interface which provides a set of primitives that are generally useful for drawing graphical objects.
Pythagoras of Samos (Ancient Greek: Πυθαγόρας; c. 570 – c. 495 BC) was an ancient IonianGreek philosopher, polymath, and the eponymous founder of Pythagoreanism. His political and religious teachings were well known in Magna Graecia and influenced the philosophies of Plato, Aristotle, and, through them, Western philosophy. Modern scholars disagree regarding Pythagoras's education and influences, but most agree that he travelled to Croton
in southern Italy around 530 BC, where he founded a school in which
initiates were allegedly sworn to secrecy and lived a communal, ascetic lifestyle.
The teaching most securely identified with Pythagoras is the "transmigration of souls" or metempsychosis, which holds that every soul is immortal and, upon death, enters into a new body. He may have also devised the doctrine of musica universalis, which holds that the planets move according to mathematical ratios and thus resonate to produce an inaudible symphony of music. Following Croton's decisive victory over Sybaris in around 510 BC, Pythagoras's followers came into conflict with supporters of democracy, and their meeting houses were burned. Pythagoras may have been killed during this persecution, or he may have escaped to Metapontum and died there.
Pythagoras influenced Plato whose dialogues (especially Timaeus) exhibit Pythagorean ideas. A major revival of his teachings occurred in the first century BC among Middle Platonists, coinciding with the rise of Neopythagoreanism. Pythagoras continued to be regarded as a great philosopher throughout the Middle Ages and Pythagoreanism had an influence on scientists such as Nicolaus Copernicus, Johannes Kepler, and Isaac Newton. Pythagorean symbolism was also used throughout early modern European esotericism, and his teachings as portrayed in Ovid's Metamorphoses would later influence the modern vegetarian movement.
Life
No authentic writings of Pythagoras have survived, and almost nothing is known for certain about his life. The earliest sources on Pythagoras's life, from Xenophanes, Heraclitus, Empedocles, Ion of Chios, and Herodotus are brief, ambiguous, and often satirical. The major sources on Pythagoras's life are three biographies from late antiquity written by Diogenes Laërtius, Porphyry, and Iamblichus, all of which are filled primarily with myths and legends and which become longer and more fantastic in their descriptions of
Pythagoras's achievements the more removed they are from Pythagoras's
times.However, Porphyry and Iamblichus also used some material taken from earlier writings in the 4th century BC by Aristotle's students Dicaearchus, Aristoxenus, and Heraclides Ponticus, which, when it can be identified, is generally considered to be the most reliable.
Early life
There is not a single detail in the
life of Pythagoras that stands uncontradicted. But it is possible, from
a more or less critical selection of the data, to construct a plausible
account.
Herodotus and Isocrates agree that Pythagoras was the son of Mnesarchus, and that he was born on the Greek island of Samos in the eastern Aegean. Mnesarchus is said to have been a gem-engraver or a wealthy merchant but his ancestry is disputed and unclear. Apollonius of Tyana writes that Pythagoras's mother was Pythaïs, who was said to be a descendant of Ancaeus, the mythical founder of Samos. Iamblichus
tells the story that the Pythia prophesied to her while she was
pregnant with him that she would give birth to a man supremely
beautiful, wise, and beneficial to humankind. As to the date of his birth, Aristoxenus stated that Pythagoras left Samos in the reign of Polycrates, at the age of 40, which would give a date of birth around 570 BC. Pythagoras's name led him to be associated with PythianApollo (Pūthíā); Aristippus of Cyrene in the 4th century BC explained his name by saying, "He spoke [ἀγορεύω, agoreúō] the truth no less than did the Pythian [πυθικόςputhikós]".
During Pythagoras's formative years, Samos was a thriving
cultural hub known for its feats of advanced architectural engineering,
including the building of the Tunnel of Eupalinos, and for its riotous festival culture. It was a major center of trade in the Aegean where traders brought goods from the Near East. According to Christiane L. Joost-Gaugier, these traders almost certainly brought with them Near Eastern ideas and traditions. Pythagoras's early life also coincided with the flowering of early Ionian natural philosophy. He was a contemporary of the philosophers Anaximander, Anaximenes, and the historian Hecataeus, all of whom lived in Miletus, across the sea from Samos.
Reputed travels
Modern scholarship has shown that the culture of Archaic Greece was heavily influenced by those of Levantine and Mesopotamian
cultures, which appears to have been recognized by authors later in the
Classical and Hellenistic periods, who attributed many of Pythagoras'
unusual and unconventional beliefs to invented travels to far off lands,
where he learned from those people himself. The doctrine of metempsychosis, or reincarnation of the soul after death, which Herodotus had mistakenly attributed to the Egyptians, led to an elaborate tale where Pythagoras learned the Egyptian language from the PharaohAmasis II himself, and then traveled to study with the Egyptian priests at Diospolis (Thebes), where he was the only foreigner ever to be granted the privilege of taking part in their worship. Other ancient writers, however, claimed that Pythagoras had learned these teachings from the Magi in Persia or even from Zoroaster himself. The Phoenicians are also reputed to have taught Pythagoras arithmetic and the Chaldeans to have taught him astronomy. By the third century BC, Pythagoras was already reported to have studied under the Jews as well. By the third century AD, Pythagoras was also reported by Philostratus to have studied under sages or gymnosophists in India, and, according to Iamblichus, also with the Celts and Iberians.
Alleged Greek teachers
Ancient sources also record Pythagoras having studied under a variety of native Greek thinkers. Diogenes Laërtius asserts that Pythagoras later visited Crete, where he went to the Cave of Ida with Epimenides. Some identify Hermodamas of Samos as a possible tutor. Hermodamas represented the indigenous Samian rhapsodic tradition and his father Creophylos was said to have been the host of his rival poet Homer. Others credit Bias of Priene, Thales, or Anaximander (a pupil of Thales). Other traditions claim the mythic bard Orpheus as Pythagoras's teacher, thus representing the Orphic Mysteries. The Neoplatonists wrote of a "sacred discourse" Pythagoras had written on the gods in the Doric Greek
dialect, which they believed had been dictated to Pythagoras by the
Orphic priest Aglaophamus upon his initiation to the orphic Mysteries at
Leibethra. Iamblichus credited Orpheus with having been the model for Pythagoras's
manner of speech, his spiritual attitude, and his manner of worship. Iamblichus describes Pythagoreanism as a synthesis of everything
Pythagoras had learned from Orpheus, from the Egyptian priests, from the
Eleusinian Mysteries, and from other religious and philosophical traditions. Contradicting all these reports, the novelist Antonius Diogenes, writing in the second century BC, reports that Pythagoras discovered all his doctrines himself by interpreting dreams. Riedweg states that, although these stories are fanciful, Pythagoras's
teachings were definitely influenced by Orphism to a noteworthy extent.
Of the various Greek sages claimed to have taught Pythagoras, Pherecydes of Syros is mentioned most often.Similar miracle stories were told about both Pythagoras and Pherecydes,
including one in which the hero predicts a shipwreck, one in which he
predicts the conquest of Messina, and one in which he drinks from a well and predicts an earthquake. Apollonius Paradoxographus, a paradoxographer who may have lived in the second century BC, identified Pythagoras's thaumaturgic ideas as a result of Pherecydes's influence. Another story, which may be traced to the Neopythagorean philosopher Nicomachus, tells that, when Pherecydes was old and dying on the island of Delos, Pythagoras returned to care for him and pay his respects. Duris, the historian and tyrant
of Samos, is reported to have patriotically boasted of an epitaph
supposedly penned by Pherecydes which declared that Pythagoras's wisdom
exceeded his own. On the grounds of all these references connecting Pythagoras with
Pherecydes, Riedweg concludes that there may well be some historical
foundation to the tradition that Pherecydes was Pythagoras's teacher. Pythagoras and Pherecydes also appear to have shared similar views on the soul and the teaching of metempsychosis.
In Croton
Porphyry repeats an account from Antiphon, who reported that, while he was still on Samos, Pythagoras founded a school known as the "semicircle". Here, Samians debated matters of public concern. Supposedly, the school became so renowned that the brightest minds in all of Greece came to Samos to hear Pythagoras teach. Pythagoras himself dwelled in a secret cave, where he studied in
private and occasionally held discourses with a few of his close
friends. Christoph Riedweg, a German scholar of early Pythagoreanism, states
that it is entirely possible Pythagoras may have taught on Samos, but cautions that Antiphon's account, which makes reference to a
specific building that was still in use during his own time, appears to
be motivated by Samian patriotic interest.
Around 530 BC, when Pythagoras was about forty years old, he left Samos. His later admirers claimed that he left because he disagreed with the tyranny of Polycrates in Samos; Riedweg notes that this explanation closely aligns with Nicomachus's
emphasis on Pythagoras's purported love of freedom, but that
Pythagoras's enemies portrayed him as having a proclivity towards
tyranny. Other accounts claim that Pythagoras left Samos because he was so
overburdened with public duties in Samos, because of the high estimation
in which he was held by his fellow-citizens. He arrived in the Greek colony of Croton (today's Crotone, in Calabria) in what was then Magna Graecia. All sources agree that Pythagoras was charismatic and quickly acquired great political influence in his new environment. He served as an advisor to the elites in Croton and gave them frequent advice. Later biographers tell fantastical stories of the effects of his
eloquent speeches in leading the people of Croton to abandon their
luxurious and corrupt way of life and devote themselves to the purer
system which he came to introduce.
Family and friends
Suda writes that Pythagoras had 4 children (Telauges, Mnesarchus, Myia and Arignote). The wrestler Milo of Croton was said to have been a close associate of Pythagoras and was credited with having saved the philosopher's life when a roof was about to collapse. This association may have been the result of confusion with a different man named Pythagoras, who was an athletics trainer.
Death
Pythagoras's emphasis on dedication and asceticism are credited with
aiding in Croton's decisive victory over the neighboring colony of Sybaris in 510 BC. After the victory, some prominent citizens of Croton proposed a democratic constitution, which the Pythagoreans rejected. The supporters of democracy, headed by Cylon
and Ninon, the former of whom is said to have been irritated by his
exclusion from Pythagoras's brotherhood, roused the populace against
them. Followers of Cylon and Ninon attacked the Pythagoreans during one of
their meetings, either in the house of Milo or in some other
meeting-place. Accounts of the attack are often contradictory and many probably
confused it with the later anti-Pythagorean rebellions, such as the one
in Metapontum in 454 BC. The building was apparently set on fire, and many of the assembled members perished; only the younger and more active members managed to escape.
Sources disagree regarding whether Pythagoras was present when
the attack occurred and, if he was, whether or not he managed to escape. In some accounts, Pythagoras was not at the meeting when the
Pythagoreans were attacked because he was on Delos tending to the dying
Pherecydes. According to another account from Dicaearchus, Pythagoras was at the meeting and managed to escape, leading a small group of followers to the nearby city of Locris, where they pleaded for sanctuary, but were denied. They reached the city of Metapontum, where they took shelter in the temple of the Muses and died there of starvation after forty days without food. Another tale recorded by Porphyry claims that, as Pythagoras's enemies
were burning the house, his devoted students laid down on the ground to
make a path for him to escape by walking over their bodies across the
flames like a bridge. Pythagoras managed to escape, but was so despondent at the deaths of his beloved students that he committed suicide. A different legend reported by both Diogenes Laërtius and Iamblichus
states that Pythagoras almost managed to escape, but that he came to a
fava bean field and refused to run through it, since doing so would
violate his teachings, so he stopped instead and was killed. This story seems to have originated from the writer Neanthes, who told
it about later Pythagoreans, not about Pythagoras himself.
Teachings
Metempsychosis
Although the exact details of Pythagoras's teachings are uncertain, it is possible to reconstruct a general outline of his main ideas.Aristotle writes at length about the teachings of the Pythagoreans, but without mentioning Pythagoras directly. One of Pythagoras's main doctrines appears to have been metempsychosis,the belief that all souls are immortal and that, after death, a soul is transferred into a new body. This teaching is referenced by Xenophanes, Ion of Chios, and Herodotus. The earliest source on Pythagoras's metempsychosis is a satirical poem
probably written after his death by the Greek philosopher Xenophanes of Colophon (c. 570 – c. 478 BC), who had been one of his contemporaries, in which Xenophanes describes Pythagoras interceding on behalf of a dog that is being beaten, professing to recognize in its cries the voice of a departed friend. Nothing whatsoever, however, is known about the nature or mechanism by which Pythagoras believed metempsychosis to occur.
Empedocles alludes in one of his poems that Pythagoras may have claimed to possess the ability to recall his former incarnations. Diogenes Laërtius reports an account from Heraclides Ponticus that Pythagoras told people that he had lived four previous lives that he could remember in detail. The first of these lives was as Aethalides the son of Hermes, who granted him the ability to remember all his past incarnations. Next, he was incarnated as Euphorbus, a minor hero from the Trojan War briefly mentioned in the Iliad. He then became the philosopher Hermotimus, who recognized the shield of Euphorbus in the temple of Apollo. His final incarnation was as Pyrrhus, a fisherman from Delos. One of his past lives, as reported by Dicaearchus, was as a beautiful courtesan.
Numerology
Pythagoras is credited with having devised the tetractys, an important sacred symbol in later Pythagoreanism.
Another belief attributed to Pythagoras was that of the "harmony of the spheres", which maintained that the planets and stars move according to
mathematical equations, which correspond to musical notes and thus
produce an inaudible symphony.According to Porphyry, Pythagoras taught that the seven Muses were actually the seven planets singing together.
The so-called Pythagoreans applied
themselves to mathematics, and were the first to develop this science;
and through studying it they came to believe that its principles are the
principles of everything.
Modern scholars typically ascribe these discoveries to the later Pythagorean philosopher Philolaus of Croton (c. 470 – c. 385 BC),
whose extant fragments are the earliest texts to describe the
numerological and musical theories that were later ascribed to
Pythagoras. In his landmark study Lore and Science in Ancient Pythagoreanism, Walter Burkert argues that Pythagoras was a charismatic political and religious teacher, but that the number philosophy attributed to him was really an innovation by Philolaus. According to Burkert, Pythagoras never dealt with numbers at all, let alone made any noteworthy contribution to mathematics. Burkert argues that the only mathematics the Pythagoreans ever actually engaged in was simple, prooflessarithmetic, but that these arithmetic discoveries did contribute significantly to the beginnings of mathematics. For the later Pythagoreans, Pythagoras was credited with devising the tetractys, the triangular figure of four rows which add up to the "perfect" number, ten.The Pythagoreans regarded the tetractys as a symbol of utmost mystical importance. Iamblichus, in his Life of Pythagoras,
states that the tetractys was "so admirable, and so divinised by those
who understood [it]," that Pythagoras's students would swear oaths by
it.
This shouldn't be confused with a simplified version known today as "Pythagorean numerology", involving a variant of an isopsephic technique known – among other names – as pythmenes'roots' or 'base numbers', by means of which the base values of letters in a word were
mathematically reduced by addition or division, in order to obtain a
single value from one to nine for the whole name or word.
Both Plato and Isocrates state that, above all else, Pythagoras was known as the founder of a new way of life. The organization Pythagoras founded at Croton was called a "school", but, in many ways, resembled a monastery. The adherents were bound by a vow to Pythagoras and each other, for the purpose of pursuing the religious and ascetic observances, and of studying his religious and philosophical theories. The members of the sect shared all their possessions in common and were devoted to each other to the exclusion of outsiders. Ancient sources record that the Pythagoreans ate meals in common after the manner of the Spartans. One Pythagorean maxim was "koinà tà phílōn" ("All things in common among friends"). Both Iamblichus and Porphyry provide detailed accounts of the
organization of the school, although the primary interest of both
writers is not historical accuracy, but rather to present Pythagoras as a
divine figure, sent by the gods to benefit mankind. Iamblichus, in particular, presents the "Pythagorean Way of Life" as a
pagan alternative to the Christian monastic communities of his own time. For Pythagoreans, the highest reward humans could attain was for their
soul to join in the life of the gods and thus escape the cycle of
reincarnation. Two groups existed within early Pythagoreanism: the mathematikoi ("learners") and the akousmatikoi ("listeners"). The akousmatikoi are traditionally identified by scholars as "old believers" in mysticism, numerology, and religious teachings; whereas the mathematikoi are traditionally identified as a more intellectual, modernist faction who were more rationalist and scientific. Gregory cautions that there was probably not a sharp distinction
between them and that many Pythagoreans probably believed the two
approaches were compatible. The study of mathematics and music may have been connected to the worship of Apollo. The Pythagoreans believed that music was a purification for the soul, just as medicine was a purification for the body. One anecdote of Pythagoras reports that when he encountered some
drunken youths trying to break into the home of a virtuous woman, he
sang a solemn tune with long spondees and the boys' "raging willfulness" was quelled. The Pythagoreans also placed particular emphasis on the importance of physical exercise; therapeutic dancing, daily morning walks along scenic routes, and athletics were major components of the Pythagorean lifestyle. Moments of contemplation at the beginning and end of each day were also advised.
Prohibitions and regulations
French manuscript from 1512/1514, showing Pythagoras turning his face away from fava beans in revulsion
Pythagorean teachings were known as "symbols" (symbola) and members took a vow of silence that they would not reveal these symbols to non-members. Those who did not obey the laws of the community were expelled and the remaining members would erect tombstones for them as though they had died. A number of "oral sayings" (akoúsmata) attributed to Pythagoras have survived,dealing with how members of the Pythagorean community should perform
sacrifices, how they should honor the gods, how they should "move from
here", and how they should be buried. Many of these sayings emphasize the importance of ritual purity and avoiding defilement. Other extant oral sayings forbid Pythagoreans from breaking bread, poking fires with swords, or picking up crumbsand teach that a person should always put the right sandal on before the left. The exact meanings of these sayings, however, are frequently obscure. Iamblichus preserves Aristotle's descriptions of the original, ritualistic intentions behind a few of these sayings, but these apparently later fell out of fashion, because Porphyry
provides markedly different ethical-philosophical interpretations of
them:
Pythagorean saying
Original ritual purpose according to Aristotle/Iamblichus
Porphyry's philosophical interpretation
"Do not take roads traveled by the public."
"Fear of being defiled by the impure"
"with this he forbade following the opinions of the masses, yet to follow the ones of the few and the educated".
"and [do] not wear images of the gods on rings"
"Fear of defiling them by wearing them."
"One should not have the teaching and knowledge of the gods quickly
at hand and visible [for everyone], nor communicate them to the masses."
"and pour libations for the gods from a drinking cup's handle [the 'ear']"
"Efforts to keep the divine and the human strictly separate"
"thereby he enigmatically hints that the gods should be honored and praised with music; for it goes through the ears".
New initiates were allegedly not permitted to meet Pythagoras until after they had completed a five-year initiation period, during which they were required to remain silent. Sources indicate that Pythagoras himself was unusually progressive in his attitudes towards women and female members of Pythagoras's school appear to have played an active role in its operations. Iamblichus provides a list of 235 famous Pythagoreans, seventeen of whom are women. In later times, many prominent female philosophers contributed to the development of Neopythagoreanism.
Pythagoreanism also entailed a number of dietary prohibitions. It is more or less agreed that Pythagoras issued a prohibition against the consumption of fava beans and the meat of non-sacrificial animals such as fish and poultry. Both of these assumptions, however, have been contradicted. Pythagorean dietary restrictions may have been motivated by belief in the doctrine of metempsychosis; alternatively, they may be based on the genetic prevalence of favism, a type of enzyme deficiency anemia, in the Mediterranean. Some ancient writers present Pythagoras as enforcing a strictly vegetarian diet. Eudoxus of Cnidus,
a student of Archytas, writes, "Pythagoras was distinguished by such
purity and so avoided killing and killers that he not only abstained
from animal foods, but even kept his distance from cooks and hunters." Other authorities contradict this statement. According to Aristoxenus, Pythagoras allowed the use of all kinds of animal food except the flesh of oxen used for ploughing, and rams.According to Heraclides Ponticus, Pythagoras ate the meat from sacrifices and established a diet for athletes dependent on meat.
Legends
Within his own lifetime, Pythagoras was already the subject of elaborate hagiographic legends.Aristotle described Pythagoras as a wonder-worker and somewhat of a supernatural figure. In a fragment, Aristotle writes that Pythagoras had a golden thigh, which he publicly exhibited at the Olympic Games and showed to Abaris the Hyperborean as proof of his identity as the "Hyperborean Apollo". Supposedly, the priest of Apollo gave Pythagoras a magic arrow, which
he used to fly over long distances and perform ritual purifications. He was supposedly once seen at both Metapontum and Croton at the same time. When Pythagoras crossed the river Kosas (the modern-day Basento), "several witnesses" reported that they heard it greet him by name. In Roman times, a legend claimed that Pythagoras was the son of Apollo.
Pythagoras was said to have dressed all in white. He is also said to have borne a golden wreath atop his head and to have worn trousers after the fashion of the Thracians. Pythagoras was said to have had extraordinary success in dealing with animals. A fragment from Aristotle records that, when a deadly snake bit Pythagoras, he bit it back and killed it. Both Porphyry and Iamblichus report that Pythagoras once persuaded a bull not to eat fava beans and that he once convinced a notoriously destructive bear to swear that
it would never harm a living thing again, and that the bear kept its
word. Riedweg suggests that Pythagoras may have personally encouraged these legends, but Gregory states that there is no direct evidence of this.
Attributed discoveries
In mathematics
The Pythagorean theorem: The sum of the areas of the two squares on the legs (a and b) equals the area of the square on the hypotenuse (c).
Although Pythagoras is most famous today for his alleged mathematical discoveries, classical historians dispute whether he himself ever actually made any significant contributions to the field. Many mathematical and scientific discoveries were attributed to Pythagoras, including his famous theorem, as well as discoveries in the fields of music, astronomy, and medicine. Since at least the first century BC, Pythagoras has commonly been given credit for discovering the Pythagorean theorem, a theorem in geometry that states that "in a right-angled triangle the
square of the hypotenuse is equal [to the sum of] the squares of the two
other sides"—that is, . According to a popular legend, after he discovered this theorem, Pythagoras sacrificed an ox, or possibly even a whole hecatomb, to the gods. Cicero rejected this story as spurious because of the much more widely held belief that Pythagoras forbade blood sacrifices. Porphyry attempted to explain the story by asserting that the ox was actually made of dough.
The Pythagorean theorem was known and used by the Babylonians and Indians centuries before Pythagoras, and Burkert rejects the suggestion that Pythagoras had anything to do with it, noting that Pythagoras was never credited with having proved any theorem in antiquity. Furthermore, the manner in which the Babylonians employed Pythagorean
numbers implies that they knew that the principle was generally
applicable, and knew some kind of proof, which has not yet been found in
the (still largely unpublished) cuneiform sources.
In music
Late medieval woodcut from Franchino Gafurio's Theoria musice (1492), showing Pythagoras with bells and other instruments in Pythagorean tuning
According to legend, Pythagoras discovered that musical notes could
be translated into mathematical equations when he passed blacksmiths at
work one day and heard the sound of their hammers clanging against the anvils. Thinking that the sounds of the hammers were beautiful and harmonious, except for one, he rushed into the blacksmith shop and began testing the hammers. He then realized that the tune played when the hammer struck was
directly proportional to the size of the hammer and therefore concluded
that music was mathematical.
In astronomy
In ancient times, Pythagoras and his contemporary Parmenides of Elea were both credited with having been the first to teach that the Earth was spherical, the first to divide the globe into five climatic zones, and the first to identify the morning star and the evening star as the same celestial object (now known as Venus). Of the two philosophers, Parmenides has a much stronger claim to having been the first and the attribution of these discoveries to Pythagoras seems to have possibly originated from a pseudepigraphal poem. Empedocles, who lived in Magna Graecia shortly after Pythagoras and Parmenides, knew that the earth was spherical. By the end of the fifth century BC, this fact was universally accepted among Greek intellectuals.
Later influence in antiquity
On Greek philosophy
Sizeable Pythagorean communities existed in Magna Graecia, Phlius, and Thebes during the early fourth century BC. Around the same time, the Pythagorean philosopher Archytas was highly influential on the politics of the city of Tarentum in Magna Graecia. According to later tradition, Archytas was elected as strategos ("general") seven times, even though others were prohibited from serving more than a year. Archytas was also a renowned mathematician and musician. He was a close friend of Plato and he is quoted in Plato's Republic. Aristotle states that the philosophy of Plato was heavily dependent on the teachings of the Pythagoreans. Cicero repeats this statement, remarking that Platonem ferunt didicisse Pythagorea omnia ("They say Plato learned all things Pythagorean"). According to Charles H. Kahn, Plato's middle dialogues, including Meno, Phaedo, and The Republic, have a strong "Pythagorean coloring", and his last few dialogues (particularly Philebus and Timaeus) are extremely Pythagorean in character.
The poet Heraclitus of Ephesus (fl.c. 500 BC), who was born a few miles across the sea from Samos and may have lived within Pythagoras's lifetime, mocked Pythagoras as a clever charlatan,remarking that "Pythagoras, son of Mnesarchus, practiced inquiry more
than any other man, and selecting from these writings he manufactured a
wisdom for himself—much learning, artful knavery."Alcmaeon of Croton (fl.c. 450 BC), a doctor who lived in Croton at around the same time Pythagoras lived there, incorporates many Pythagorean teachings into his writings and alludes to having possibly known Pythagoras personally. The Greek poets Ion of Chios (c. 480 – c. 421 BC) and Empedocles of Acragas (c. 493 – c. 432 BC) both express admiration for Pythagoras in their poems.
According to R. M. Hare, Plato's Republic may be partially based on the "tightly organised community of like-minded thinkers" established by Pythagoras at Croton. Additionally, Plato may have borrowed from Pythagoras the idea that
mathematics and abstract thought are a secure basis for philosophy,
science, and morality. Plato and Pythagoras shared a "mystical approach to the soul and its place in the material world" and both were probably influenced by Orphism. The historian of philosophy Frederick Copleston states that Plato probably borrowed his tripartite theory of the soul from the Pythagoreans.
A revival of Pythagorean teachings occurred in the first century BC when Middle Platonist philosophers such as Eudorus and Philo of Alexandria hailed the rise of a "new" Pythagoreanism in Alexandria. At around the same time, Neopythagoreanism became prominent. The first-century AD philosopher Apollonius of Tyana sought to emulate Pythagoras and live by Pythagorean teachings. The later first-century Neopythagorean philosopher Moderatus of Gades expanded on Pythagorean number philosophy and probably understood the soul as a "kind of mathematical harmony". The Neopythagorean mathematician and musicologist Nicomachus likewise expanded on Pythagorean numerology and music theory. Numenius of Apamea interpreted Plato's teachings in light of Pythagorean doctrines.
The oldest known building designed according to Pythagorean teachings is the Porta Maggiore Basilica, a subterranean basilica which was built during the reign of the Roman emperor Nero as a secret place of worship for Pythagoreans. The basilica was built underground because of the Pythagorean emphasis on secrecy and also because of the legend that Pythagoras had sequestered himself in a cave on Samos. The basilica's apse is in the east and its atrium in the west out of respect for the rising sun. It has a narrow entrance leading to a small pool where the initiates could purify themselves. The building is also designed according to Pythagorean numerology, with each table in the sanctuary providing seats for seven people. Three aisles lead to a single altar, symbolizing the three parts of the soul approaching the unity of Apollo. The apse depicts a scene of the poet Sappho leaping off the Leucadian cliffs, clutching her lyre to her breast, while Apollo stands beneath her, extending his right hand in a gesture of protection, symbolizing Pythagorean teachings about the immortality of the soul. The interior of the sanctuary is almost entirely white because the color white was regarded by Pythagoreans as sacred.
The emperor Hadrian's Pantheon in Rome was also built based on Pythagorean numerology. The temple's circular plan, central axis, hemispherical dome, and alignment with the four cardinal directions symbolize Pythagorean views on the order of the universe. The single oculus at the top of the dome symbolizes the monad and the sun-god Apollo. The twenty-eight ribs extending from the oculus symbolize the moon,
because twenty-eight was the same number of months on the Pythagorean
lunar calendar. The five coffered rings beneath the ribs represent the marriage of the sun and moon.
In early Christianity
Many early Christians had a deep respect for Pythagoras. Eusebius (c. 260 – c. 340 AD), bishop of Caesarea, praises Pythagoras in his Against Hierokles for his rule of silence, his frugality, his "extraordinary" morality, and his wise teachings. In another work, Eusebius compares Pythagoras to Moses. In one of his letters, the Church FatherJerome (c. 347 – c. 420 AD) praises Pythagoras for his wisdom and, in another letter, he credits Pythagoras for his belief in the
immortality of the soul, which he suggests Christians inherited from
him. Augustine of Hippo
(354–430 AD) rejected Pythagoras's teaching of metempsychosis without
explicitly naming him, but otherwise expressed admiration for him. In On the Trinity, Augustine lauds the fact that Pythagoras was humble enough to call himself a philosophos or "lover of wisdom" rather than a "sage". In another passage, Augustine defends Pythagoras's reputation, arguing
that Pythagoras certainly never taught the doctrine of metempsychosis.
Influence after antiquity
In the Middle Ages
Pythagoras appears in a relief sculpture on one of the archivolts over the right door of the west portal at Chartres Cathedral.
During the Middle Ages, Pythagoras was revered as the founder of mathematics and music, two of the Seven Liberal Arts. He appears in numerous medieval depictions, in illuminated manuscripts and in the relief sculptures on the portal of the Cathedral of Chartres. The Timaeus was the only dialogue of Plato to survive in Latin translation in western Europe, which led William of Conches (c. 1080–1160) to declare that Plato was Pythagorean. A large-scale translation movement emerged during the Abbasid
Caliphate, translating many Greek texts into Arabic. Works ascribed to
Pythagoras included the "Golden Verses" and snippets of his scientific
and mathematical theories. By translating and disseminating Pythagorean texts, Islamic scholars
ensured their survival and wider accessibility. This preserved knowledge
that might have otherwise been lost through the decline of the Roman
Empire and the neglect of classical learning in Europe. In the 1430s, the Camaldolese friar Ambrose Traversari translated Diogenes Laërtius's Lives and Opinions of Eminent Philosophers from Greek into Latin and, in the 1460s, the philosopher Marsilio Ficino translated Porphyry and Iamblichus's Lives of Pythagoras into Latin as well, thereby allowing them to be read and studied by western scholars. In 1494, the Greek Neopythagorean scholar Constantine Lascaris published The Golden Verses of Pythagoras, translated into Latin, with a printed edition of his Grammatica, thereby bringing them to a widespread audience. In 1499, he published the first Renaissance biography of Pythagoras in his work Vitae illustrium philosophorum siculorum et calabrorum, issued in Messina.
On modern science
In his preface to his book On the Revolution of the Heavenly Spheres (1543), Nicolaus Copernicus cites various Pythagoreans as the most important influences on the development of his heliocentric model of the universe, deliberately omitting mention of Aristarchus of Samos,
a non-Pythagorean astronomer who had developed a fully heliocentric
model in the fourth century BC, in effort to portray his model as
fundamentally Pythagorean. Johannes Kepler considered himself to be a Pythagorean. He believed in the Pythagorean doctrine of musica universalis and it was his search for the mathematical equations behind this doctrine that led to his discovery of the laws of planetary motion. Kepler titled his book on the subject Harmonices Mundi (Harmonics of the World), after the Pythagorean teaching that had inspired him. He also called Pythagoras the "grandfather" of all Copernicans.
Albert Einstein
believed that a scientist may also be "a Platonist or a Pythagorean
insofar as he considers the viewpoint of logical simplicity as an
indispensable and effective tool of his research." The English philosopher Alfred North Whitehead
argued that "In a sense, Plato and Pythagoras stand nearer to modern
physical science than does Aristotle. The two former were
mathematicians, whereas Aristotle was the son of a doctor". By this measure, Whitehead declared that Einstein and other modern
scientists like him are "following the pure Pythagorean tradition."
On vegetarianism
Pythagoras Advocating Vegetarianism (1618–1630) by Peter Paul Rubens was inspired by Pythagoras's speech in Ovid's Metamorphoses. The painting portrays the Pythagoreans with corpulent bodies,
indicating a belief that vegetarianism was healthful and nutritious.
A fictionalized portrayal of Pythagoras appears in Book XV of Ovid's Metamorphoses, in which he delivers a speech imploring his followers to adhere to a strictly vegetarian diet. It was through Arthur Golding's 1567 English translation of Ovid's Metamorphoses that Pythagoras was best known to English-speakers throughout the early modern period. John Donne's Progress of the Soul discusses the implications of the doctrines expounded in the speech, and Michel de Montaigne
quoted the speech no less than three times in his treatise "Of Cruelty"
to voice his moral objections against the mistreatment of animals. John Dryden included a translation of the scene with Pythagoras in his 1700 work Fables, Ancient and Modern, and John Gay's 1726 fable "Pythagoras and the Countryman" reiterates its major themes, linking carnivorism with tyranny. Lord Chesterfield records that his conversion to vegetarianism had been motivated by reading Pythagoras's speech in Ovid's Metamorphoses. Until the word vegetarianism was coined in the 1840s, vegetarians were referred to in English as "Pythagoreans".
On Western esotericism
Early modern European esotericism drew heavily on the teachings of Pythagoras. The German humanist scholar Johannes Reuchlin (1455–1522) synthesized Pythagoreanism with Christian theology and Jewish Kabbalah, arguing that Kabbalah and Pythagoreanism were both inspired by Mosaic tradition and that Pythagoras was therefore a kabbalist. In his dialogue De verbo mirifico (1494), Reuchlin compared the Pythagorean tetractys to the ineffable divine name YHWH, ascribing each of the four letters of the tetragrammaton a symbolic meaning according to Pythagorean mystical teachings.
Heinrich Cornelius Agrippa's popular and influential three-volume treatise De Occulta Philosophia cites Pythagoras as a "religious magi" and advances the idea that Pythagoras's mystical numerology operates on a supercelestial level, a religious term used to describe a high heavenly realm used during his time. The freemasons deliberately modeled their society on the community founded by Pythagoras at Croton. Rosicrucianism used Pythagorean symbolism, as did Robert Fludd (1574–1637), who believed his own musical writings to have been inspired by Pythagoras. John Dee was heavily influenced by Pythagorean ideology, particularly the teaching that all things are made of numbers.
On literature
The Transcendentalists read the ancient Lives of Pythagoras as guides on how to live a model life. Henry David Thoreau was impacted by Thomas Taylor's translations of Iamblichus's Life of Pythagoras and Stobaeus's Pythagoric Sayings and his views on nature may have been influenced by the Pythagorean idea of images corresponding to archetypes. The Pythagorean teaching of musica universalis is a recurring theme throughout Thoreau's magnum opus, Walden.