First Quote Added
April 10, 2026
Latest Quote Added
"Everyone has an individual background. Someone may come from Python, someone else may come from Perl, and they may be surprised by different aspects of the language. Then they come up to me and say, 'I was surprised by this feature of the language, so Ruby violates the principle of least surprise.' Wait. Wait. The principle of least surprise is not for you only. The principle of least surprise means principle of least my surprise. And it means the principle of least surprise after you learn Ruby very well. For example, I was a C++ programmer before I started designing Ruby. I programmed in C++ exclusively for two or three years. And after two years of C++ programming, it still surprises me."
"Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run faster. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves."
"Systems engineering as an approach and methodology grew in response to the increase size and complexity of systems and projects. It "recognizes each system is an integrated whole even though composed of diverse, specialized structures and sub-functions..." (Chestnut, 1965) This engineering approach to the management of complexity by modularization was re-deployed in the software engineering discipline in the 1960s and 1970s with a proliferation of structured methodologies that enabled the the analysis, design and development of information systems by using techniques for modularized description, design and development of system components. Yourdon and DeMarco's Structured Analysis and Design, SSADM, James Martin's Information Engineering, and Jackson's Structured Design and Programming are examples from this era. They all exploited modularization to enable the parallel development of data, process, functionality and performance components of large software systems. The development of object orientation in the 1990s exploited modularization to develop reusable software. The idea was to develop modules that could be mixed and matched like Lego bricks to deliver to a variety of whole system specifications. The modularization and reusability principles have stood the test of time and are at the heart of modern software development."
"Jackson System Development (JSD) and Object-Oriented Design (OOD) have one major - arguably central - principle in common; namely that the key to software quality lies in the structuring of the solution to a problem in such a way as to reflect the structure of the problem itself. There should be a simple and demonstrable correspondence between a (real world) component of the problem and a (software) component of the solution. The two methods also use similar concepts to describe the problem domain (or 'real world'). It is considered to consist of identifiable objects ('entities' in JSD) and operations that are either performed or suffered by these objects ('actions' in JSD}."
"We follow two rules in the matter of optimization:"
"The beginning of wisdom for a programmer is to recognize the difference between getting his program to work and getting it right. A program which does not work is undoubtedly wrong; but a program which does work is not necessarily right. It may still be wrong because it is hard to understand; or because it is hard to maintain as the problem requirements change; or because its structure is different from the structure of the problem; or because we cannot be sure that it does indeed work."
"One of the difficulties in thinking about software is its huge variety. A function definition in a spreadsheet cell is software. A smartphone app is software. The flight management system for an Airbus A380 is software. A word processor is software. We shouldn't expect a single discipline of software engineering to cover all of these, any more than we expect a single discipline of manufacturing to cover everything from the Airbus A380 to the production of chocolate bars, or a single discipline of social organization to cover everything from the United Nations to a kindergarten. Improvement in software engineering must come bottom-up, from intense specialized attention to particular products."
"After forty years of currency the phrase "software engineering" still denotes no more then a vague and largely unfulfilled aspiration."
"A development method may be regarded as a path or a procedure by which the developer proceeds from a problem of a certain class to a solution of a certain class. In trivial cases, the method may be fully algorithmic; for example, there is an algorithmic procedure for obtaining the square root of a nonnegative number to any desired degree of accuracy."
"The architecture of a system can be defined as the functional appearance of the system to the user."
"Blaauw... joined the IBM research lab at Poughkeepsie, New York, USA. During this period Blaauw became famous for his methodological manner of building computer machines. He made a difference between architecture, implementation and realization of a machine. After a couple of years working on some different machines, one of the most famous machines built by Frederick Brooks, Gerrit Blaauw and Gene Amdahl was the IBM System/360, which was introduced in 1964. IBM Board Chairman Thomas Watson, Jr. called the event the most important product announcement in the company's history."
"Practical knowledge of modularity has come largely from the computer industry. The term architecture was first used in connection with computers by the designers of the System/360: Gene M. Amdahl, Gerrit A. Blaauw, and Frederick P. Brooks."
"The term Computer Architecture was first defined in the paper by Amdahl, Blaauw and Brooks of International Business Machines (IBM) Corporation announcing IBM System/360 computer family on April 7, 1964. On that day IBM Corporation introduced, in the words of IBM spokesman, "the most important product announcement that this corporation has made in its history"."
"As usual the audience consisted mainly of professors of computing science; this time the speakers were mainly specialists in logic design: for many in the audience the exposure was a shock. At the level of component technology the change over the last fifteen years has been drastic: what used to be expressed in milliseconds is expressed in microseconds now, what used to be expressed in kilobucks is now expressed in dimes and quarters. This change has been so drastic that it is well-known. Much less known is that at the next levels, viz. of circuit design and logic design, the attention of the designers has been so fully usurped by the obligation to adapt to the ever changing technology, that at those levels design methodology has had no chance to mature from craft to scientific discipline. This is in sharp contrast to the developments in programming methodology, where during that period of fifteen years a fairly stable "base" could be enjoyed. Having witnessed that development in programming methodology at close quarters, I was overcome by the feeling of being exposed to the result of fifteen years of intellectual stagnation, and it was during Blaauw's lecture on the first afternoon that I asked my right-hand neighbour "Close your eyes, forget how you came here and guess in which year you are living."; without hesitation he came up with exactly the same year I had in mind: 1962."
"Blaauw and Brooks first develop a conceptual framework for understanding computer architecture. They then describe not only what present architectural practice is, but how it came to be so. A major theme is the early divergence and the later reconvergence of computer architectures. They examine both innovations that survived and became part of the standard computer, and the many ideas that were explored in real machines but did not survive. In describing the discards, they also address "why" these ideas did not make it"
"In this remarkable book on computer design, long-known in the field and widely used in manuscript form, Gerrit A. Blaauw and Frederick P. Brooks, Jr. provide a definitive guide and reference for practicing computer architects and for students. The book complements Brooks' recently updated classic, The Mythical Man-Month, focusing here on the design of "hardware" and there on "software," here on the "content" of computer architecture and there on the "process" of architecture design. The book's focus on "architecture" issues complements Blaauw's early work on "implementation" techniques. Having experienced most of the computer age, the authors draw heavily on their first-hand knowledge, emphasizing timeless insights and observations."
"A hardware design language should be (i) sufficiently high level, (ii) conversational, (iii) general purpose, and (iv) structured:"
"By architecture I mean 'appearance to the user' - it is the functional specification of the system (its behavioural appearance). By implementation I mean 'internal logical organisation which performs the functions specified by the architecture' and by realisation I mean 'the physical components in which the logical organisation is embodied'."
"The design of a digital system starts with the specification of the architecture of the system and continues with its implementation and its subsequent realisation... the purpose of architecture is to provide a function. Once that function is established, the purpose of implementation is to give a proper cost-performance and the purpose of realisation is to build and maintain the appropriate logical organisation."
"There always is an architecture, whether it is defined in advance - as with modern computers - or found out after the fact - as with many older computers. For architecture is determined by behavior, not by words. Therefore, the term architecture, which rightly implies the notion of the arch, or prime structure, should not be understood as the vague overall idea. Rather, the product of the computer architecture, the principle of operations manual, should contain all detail which the user can know, and sooner or later is bound to know."
"The result of the implementation, the logical design, is traditionally shown as a series of block diagrams. These blocks represent in effect a series of statements, Actually, a direct presentation of these statements is more suitable and, although less familiar, more easily understood. The Harvard Mark IV was to large degree designed and described by such statements, as has been the case with several subsequent developments."
"In computer design three levels can be distinguished: architecture, implementation and realisation; for the first of them, the following working definition is given: The architecture of a system can be defined as the functional appearance of the system to the user, its phenomenology."
"Scientific customers are traditionally less worried about reprogramming efforts than commercial customers, since many jobs are of a research nature and will be done over from time to time anyway. This is obviously true of many small and 'lone shot" problems. In practice, however, there are many more machine hours spent on production-type scientific problems than on those of research-type at most scientific computing installations. These production problems can be as rigid and static as any commercial job. The scientists responsible for production work will complain about reprogramming just as violently as an accountant will under the same circumstances."
"A study of the high-speed computer market with the intention of specifying a new computer brings forth a number of interesting observations... [An] striking feature of the market is that we seem to be close to satisfying the need for present-day uses of computers, but are standing on the threshold of a vast new area of applications. This new area can be characterized by the phrase computers which interact with the outside world. This concept is called "Integrated Data Processing", "Real-Time. Operation", "Process Control", "In-Line Operation", etc, Its characteristic feature is the ability of the computer to accept and send information directly to other devices. The use of computers in this fashion is being developed in the aircraft and missile industries . It is important to note that both scientific and commercial applications are going in this direction."
"The purpose of the Committee was to study and report upon the desirability and characteristics of another computer system based on Stretch technology but having a lower cost and broader market than the 7000 Sigma system. The Committee was instructed to keep an open mind in initially examining various machine possibilities both from the engineering and marketing points of view..."
"[The architecture specification covers] all functions of the machine that are observable by the program."
"The term architecture is used here to describe the attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation. i. Additional details concerning the architecture,"
"People will resist information unless the price of not knowing it greatly exceeds the price of learning it."
"An information retrieval system will tend not to be used whenever it is more painful and troublesome for a customer to have information than for him not to have it... Where an information retrieval system tends not to be used, a more capable information retrieval system may tend to be used even less."
"Information retrieval is the name for the process or method whereby a prospective user of information is able to convert his need for information into an actual list of citations to documents in storage containing information useful to him. It is the finding or discovery process with respect to stored information. It is another, more general, name for the production of a demand bibliography. Information retrieval embraces the intellectual aspects of the description of information and its specification for search, and also whatever systems, technique, or machines that are employed to carry out the operation. Information retrieval is crucial to documentation and organization of knowledge."
"The problem of directing a user to stored information, some of which may be unknown to him, is the problem of "information retrieval"… In information retrieval, the addressee or receiver rather than the sender is the active party. Other differences are that communication is temporal from one epoch to a later epoch in time, though possibly at the same point in space; communication is in all cases unidirectional; the sender cannot know the particular message that will be of later use to the receiver and must send all possible messages; the message is digitally representable; a "channel" is the physical document left in storage which contains the message; and there is no channel noise because all messages are presumed to be completely accessible to the receiver. The technical goal is finding in minimum time those messages of interest to the receiver, where the receiver has available a selective device with a finite digital scanning rate."
"The requirements of information retrieval, of finding information whose location or very existence is a priori unknown."
"He was a participant in early developmental work on digital computers, a researcher, author, and implementer of applications in information retrieval; and a prophet in the 1950s describing the future importance of what is now called computer networks and distributive processing, and daring to predict that machines could simulate thought processes in retrieving computerized information. In 1947, he proposed the Zator, an electronic, film-scanning retrieval machine, and made the first proposal to use the Boolean operations or, and, and not to prescribe selections in retrieval machines. He developed his own Zatocoding System in 1948 using superimposed subject codes on edge-notched cards. He coined the term "Information Retrieval" in 1950, and went on from there to obtain several patents in information retrieval and signaling, produce a text-handling language (TRAC), author some 200 publications, and form one of the first companies whose only concern was information. His thinking has affected all who are in the field of Information and his early ideas are now incorporated into today's reality."
"In the 1940s , Calvin Mooers, and James Perry were the leaders among Americans who began to investigate subject analysis, the coding of subject terms, and their relationship to information retrieval. At the frontiers in a paradigm-breaking era, their approach combined a pragmatic view and abstract thinking."
"Cybernetics is concerned primarily with the construction of theories and models in science, without making a hard and fast distinction between the physical and the biological sciences. The theories and models occur both in symbols and in hardware, and by 'hardware* we shall mean a machine or computer built in terms of physical or chemical, or indeed any handleable parts. Most usually we shall think of hardware as meaning electronic parts such as valves and relays. Cybernetics insists, also, on a further and rather special condition that distinguishes it from ordinary scientific theorizing: it demands a certain standard of effectiveness... The concept of an effective procedure springs primarily from mathematics, where it is called an algorithm... The principal aims of cybernetics may be listed under three headings: (1) To construct an effective theory... [of] the principal functions of the human organism... (2) To produce the models and theory in a manner that realizes the functions of human behaviour by the same logical means as in human beings. This implies the simulation of human operations by machines... (3) To produce models which are constructed from the same colloidal chemical fabrics as are used in human beings."
"The title of the book, The Brain as a Computer, is intended to convey something of the methodology involved; the idea is to regard the brain itself as if it were a computer-type control system, in the belief that by so doing we are making explicit what for some time has been implicit in the biological sciences."
"This book an attempt will be made to outline the principles of cybernetics and relate them to what we know of behaviour, both from the point of view of experimental psychology and also from the point of view of neurophysiology."
"The main object of cybernetics is to supply adaptive, hierarchical models, involving feedback and the like, to all aspects of our environment. Often such modelling implies simulation of a system where the simulation should achieve the object of copying both the method of achievement and the end result. Synthesis, as opposed to simulation, is concerned with achieving only the end result and is less concerned (or completely unconcerned) with the method by which the end result is achieved. In the case of behaviour, psychology is concerned with simulation, while cybernetics, although also interested in simulation, is primarily concerned with synthesis. Most of the major developments in models and theories of artificial intelligence have taken place in the western world — mostly, indeed, in the US and Britain — and it was only relatively recently that "core developments", as opposed to more peripheral developments and applications, have spread over Europe and the Soviet Union."
"Cybernetics is still headline news, and increasingly we hear about its applications to new fields of scientific and industrial endeavour. Stafford Beer's new book Cybernetics and Management is an admirable account on the relation that exist between cybernetics and the problems of management in industry [and]... covers a range of applications that have not previously been dealt with in print."
"The word 'cybernetics' is still new to many people, even though it has now been an accepted word of our language for some ten or fifteen years. Speaking generally, cybernetics is the scientific study of control and communication. It is an attempt to give an integrated account of both physical and biological systems in terms of their capacity to communicate between different points of the system, and in terms of their control. There has been considerable research into general methods of communication in recent years, and this has been primarily the work of communication engineers, who are trying to discover in general terms what they themselves are doing."
"Holland's and Kauffman's work, together with Dawkins' simulations of evolution and Varela's models of autopoietic systems, provide essential inspiration for the new discipline of artificial life, This approach, initiated by Chris Langton (1989, 1992), tries to develop technological systems (computer programs and autonomous robots) that exhibit lifelike properties, such as reproduction, sexuality, swarming, and co-evolution."
"The principle assumption made in Artificial Life is that the 'logical form' of an organism can be separated from its material basis of construction, and that 'aliveness' will be found to be a property of the former, not of the latter."
"Artificial Life is concerned with tuning the behaviors of such low-level machines that the behavior that emerges at the global level is essentially the same as some behavior exhibited by a natural living system... Artificial Life is concerned with generating lifelike behavior."
"It starts at the bottom, viewing an organism as a large population of simple machines, and works upwards synthetically from there — constructing large aggregates of simple, rule-governed objects which interact with one another nonlinearly in the support of life-like, global dynamics. The ‘key' concept in AL is emergent behavior."
"[AL] views life as a property of the organization of matter, rather than a property of the matter which is so organized. Whereas biology has largely concerned itself with the material basis of life, Artificial Life is concerned with the formal basis of life."
"Biology is the scientific study of life - in principle, anyway. In practice, biology is the scientific study of life on Earth based on carbon-chain chemistry. There is nothing in its charter that restricts biology to carbon-based life; it is simply that this is the only kind of life that has been available to study. Thus, theoretical biology has long faced the fundamental obstacle that it is impossible to derive general principles from single examples... Without other examples, it is difficult to distinguish essential properties of life - properties that would be shared by any living system - from properties that may be incidental to life in principle, but which happen to be universal to life on Earth due solely to a combination of local historical accident and common genetic descent."
"Artificial Life [AL] is the study of man-made systems that exhibit behaviors characteristic of natural living systems. It complements the traditional biological sciences concerned with the analysis of living organisms by attempting to synthesize life-like behaviors within computers and other artificial media. By extending the empirical foundation upon which biology is based beyond the carbon-chain life that has evolved on Earth, Artificial Life can contribute to theoretical biology by locating life-as-we-know-it within the larger picture of life-as-it-could-be."
"There's a reason for poetry... Poetry is a very nonlinear use of language, where the meaning is more than just the sum of the parts. And science requires that it be nothing more than the sum of the parts. And just the fact that there's stuff to explain out there that's more than the sum of the parts means that the traditional approach, just characterizing the parts and the relations, is not going to be adequate for capturing the essence of many systems that you would like to be able to do. That's not to say that there isn't a way to do it in a more scientific way than poetry, but I just like the feeling that culturally there's going to be more of something like poetry in the future of science."
"Artificial Life (``AL or ``Alife) is the name given to a new discipline that studies "natural" life by attempting to recreate biological phenomena from scratch within computers and other "artificial" media. Alife complements the traditional analytic approach of traditional biology with a synthetic approach in which, rather than studying biological phenomena by taking apart living organisms to see how they work, one attempts to put together systems that behave like living organisms."
"Biological systems are dynamical, not easily predicted, and are creative in many ways... In the old equilibrium worldview, ideas about change were dominated by the action-reaction formula. It was a clockwork world, ultimately predictable in boring ways."