150 likes | 173 Views
Explore the reasons behind the popularity of object-oriented programming, including its proven record of success and scalability. Discover how programming languages can shape our thinking and influence problem-solving approaches.
E N D
CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel
Why is OOP Popular? • OOP has been the dominant programming paradigm for more than twenty years. • Why is it so popular? • Proven record of success • Scales well from small problems to large • Nevertheless, programming is still a task that requires skill and learning CSCI 383 Lecture 2 M. van Bommel
Disclaimer • Effective use of object-oriented principles requires one to view the world in a new way • The use of an object-oriented language does not make one an object-oriented programmer “Fortran programs can be written in any language” CSCI 383 Lecture 2 M. van Bommel
A New Paradigm • Object-oriented programming is often described as a new paradigm. We start by considering the definition of this term: Paradigmn.1. A list of all the inflectional forms of a word taken as illustrative example of the conjugation or declension to which it belongs. 2. An example or model. [Late Latin paradigma, from Greek paradeigma, modern paradeiknunai, to compare, exhibit.] CSCI 383 Lecture 2 M. van Bommel
Sapir-Whorf Hypothesis • In linguistics, there is a hypothesis that the language in which an idea or thought is expressed colors or directs in a very emphatic manner that nature of the thought CSCI 383 Lecture 2 M. van Bommel
Sapir-Whorf Meaning • The SWH argues that we experience the world based on the words we have • In an experiment, people were asked to describe how many bands or stripes they saw in a rainbow • Since rainbows are a continuum of colors, no empirical stripes or bands • Nevertheless, people saw as many stripes or bands as their language possessed primary color words • Inuit language and snowArabic language and camels CSCI 383 Lecture 2 M. van Bommel
Sapir-Whorf Implications • Is it true that the way we think is completely determined by the language we use? • This implies the words we have determine the things we can know • If we have an experience, we are confined not just in our communication of it, but also in our knowledge of it, by the words we have CSCI 383 Lecture 2 M. van Bommel
Sapir-Whorf Counter-argument • People usually have trouble expressing themselves and are aware that the language is not adequate for what they mean • “That’s not quite what I meant to say…” • This provides evidence that what is being thought is not a set of words because one can understand a concept without being able to express it in words • Truth probably somewhere in the middle • language may not completely determine but can influence the way we think CSCI 383 Lecture 2 M. van Bommel
Sapir-Whorf Application • What in the world does this have to do with computer programming languages? • What is true of natural languages is even more true of artificial computer languages “If all you have is a hammer, everything looks like a nail." CSCI 383 Lecture 2 M. van Bommel
Example of SW • A student working in DNA research had the task of finding whether any pattern of length m (m fixed and small) is repeated in a given DNA sequence of length n (n very very large) ACTCGGATCTTGCATTTCGGCAATTGGACCCTGACTTGGCCA ... CSCI 383 Lecture 2 M. van Bommel
Example (cont’d) • Wrote the simplest (and therefore, most efficient?) Fortran program: DO 10 I = 1, N-M DO 10 J = I+1, N-M FOUND = .TRUE. DO 20 K = 1, M 20 IF X[I+K-1] .NE. X[J+K-1] THEN FOUND = .FALSE. IF FOUND THEN ... 10 CONTINUE • Took a depressingly long time. Asymptotic time complexity? CSCI 383 Lecture 2 M. van Bommel
A Better Solution • A friend writing in APL solved by rearranging the data and sorting • Reorganize in NxM matrix A C T C G G positions 1 to M C T C G G A positions 2 to M+1 T C G G A T positions 3 to M+2 C G G A T T positions 4 to M+3 G G A T T C positions 5 to M+4 . . . • Sort matrix on rows and find equal adjacent row • Ran surprisingly quickly, thesis saved CSCI 383 Lecture 2 M. van Bommel
What lead to the discovery? • Why did APL programmer find better solution? • Fortran programmer was blinded by a culture that valued assignment, comparison, loops, and simple programs. • Fortran programmer thinks in terms of loops • Sorting is a built-in operation in APL, good programmers try to find novel uses for sorting. • APL programmer thinks in terms of manipulating sequences; sort is built-in, loops do not exist • APL is not a “more efficient” language than Fortran • The fundamental point is that the language you speak leads you in one direction or another CSCI 383 Lecture 2 M. van Bommel
S-W & Computation • Sapir-Whorf hypothesis says there are some thoughts you can express in one language that you cannot express in another • However, in computation, we have the following assertion: • Church's Conjecture: Any computation for which there exists an effective procedure can be realized by a Turing machine language CSCI 383 Lecture 2 M. van Bommel
Church's Conjecture • Anything can be done in any language, but it may simply be easier or more efficient to use one language or another. • Note that is almost directly opposite to the SWH • Would YOU want to write an event-driven GUI interface in Turing machine language? • Bottom line: Languages lead you, but do not prevent you from going anywhere you want CSCI 383 Lecture 2 M. van Bommel