Papers
Topics
Authors
Recent
Search
2000 character limit reached

Are Programming Paradigms Paradigms? A Critical Examination of Floyd's Appropriation of Kuhn's Philosophy

Published 3 May 2025 in cs.PL | (2505.01901v1)

Abstract: This paper examines the philosophical relationship between Thomas Kuhn's concept of scientific paradigms and the programming paradigm concept in computing that was introduced by Floyd in his 1978 Turing Award lecture. Through critical analysis of both Kuhn's original framework and its application in computing, we argue that the contemporary usage of `programming paradigms' represents a significant departure from Kuhn's philosophical concept. We demonstrate that while Floyd explicitly attributed this term to Kuhn's work, his usage fundamentally altered the concept's meaning. We argue that this divergence necessitates a critical reassessment of the term's usage in computing discourse.

Authors (1)

Summary

Critical Examination of Programming Paradigms

The paper "Are Programming Paradigms Paradigms?" by Peyman M. Kiasari presents a thorough philosophical analysis of the concept of programming paradigms, originally introduced by Robert Floyd in his 1978 Turing Award lecture. The paper rigorously examines the conceptual origins of 'paradigms' as articulated by Thomas Kuhn in The Structure of Scientific Revolutions, juxtaposing it against Floyd's adaptation of the term within the context of computing. Through an intricate evaluation, the paper argues that Floyd's appropriation significantly deviates from Kuhn's philosophical framework, thereby prompting a critical reassessment of how the term is utilized within computing discourse.

The paper meticulously outlines Kuhn's conception of paradigms, which function as overarching frameworks that guide scientific inquiries and methodologies during what Kuhn terms 'normal science'. A key aspect of Kuhnian paradigms is their singular nature, essential in establishing consensus within a scientific community. In contrast, the computing field often embraces multiple paradigms simultaneously (e.g., procedural, object-oriented, functional), which contradicts the notion of paradigmatic singularity central to Kuhn's philosophy.

Kiasari's analysis proceeds by critically evaluating Floyd's incorporation of the term 'paradigm' into programming. Floyd envisages programming paradigms as explicit methodologies or educational tools to enhance software development practices, drawing parallels between structured programming and scientific paradigms. However, Floyd's interpretation, characterized by plural paradigms coexisting as tools or methodologies, significantly diverges from Kuhn's notion of paradigms as singularly dominant scientific models that dictate methodologies and problem-solving approaches.

This deviation is further explored in the examination of Floyd's conception of paradigms not only as coexisting but also as prescriptive, contrary to Kuhn's paradigms, which emerge naturally and guide scientific practice without explicit instruction. Floyd's examples (e.g., merge sorting as part of the 'divide-and-conquer paradigm') reduce paradigms to specific strategies, conflicting starkly with Kuhn's comprehensive frameworks that shape entire scientific disciplines.

The paper elucidates two crucial philosophical implications arising from this divergence. Firstly, the current usage of programming paradigms does not adhere to Kuhnian paradigms, calling into question whether computing can be considered a mature science according to Kuhn's criteria. Secondly, Floyd's adaptation results in a misappropriation of Kuhn's concept, leading to an ambiguous and elastic use of the term 'paradigm' within computing literature. This suggests a need for clearer terminology in computing, such as 'methodologies' or 'approaches', to more accurately describe programming practices.

In conclusion, Kiasari's paper provides a compelling argument for the reevaluation of the concept of programming paradigms within computing. By highlighting the philosophical misalignment with Kuhn's paradigms, the paper challenges researchers to reconsider the terminology used to describe programming methodologies, advocating for more precise and contextually relevant language in computing practice. This examination not only enriches the understanding of paradigms in computing but also invites further philosophical inquiry into the conceptual frameworks that define scientific and technical disciplines.

Paper to Video (Beta)

No one has generated a video about this paper yet.

Whiteboard

No one has generated a whiteboard explanation for this paper yet.

Open Problems

We haven't generated a list of open problems mentioned in this paper yet.

Continue Learning

We haven't generated follow-up questions for this paper yet.

Collections

Sign up for free to add this paper to one or more collections.

Tweets

Sign up for free to view the 1 tweet with 0 likes about this paper.