Live data from Hacker News

Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

info.ucl.ac.be

71–80 of 167 posts

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#71

> We end our discussion of inheritance with a cautionary tale. In the 1980s, a very large multinational company initiated an ambitious project based on object-oriented programming. Despite a budget of several billion dollars, the project failed miserably. One of the principal reasons for this failure was a wrong use of inheritance. Who did that, exactly?

Apple (later joined by IBM), with Pink/Taligent?

Microsoft (Cairo) seems to fit the bill almost exactly, but it was only initiated in 1991.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#72
post #53

> We end our discussion of inheritance with a cautionary tale. In the 1980s, a very large multinational company initiated an ambitious project based on object-oriented programming. Despite a budget of several billion dollars, the project failed miserably. One of the principal reasons for this failure was a wrong use of inheritance. Who did that, exactly?

I would have guessed Plan 9 just from the timing, but I'm not sure the failure there was due to the wrong use of inheritance.

My guess would be Ada. "Billions of dollars" => Government/DoD is involved.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#73

I have read CTM, the author's book. He did in fact dislike the word "paradigm" and prefered "computation model" instead. A model is a set of concepts. A concept is an orthogonal language feature, like closures, concurrency, explicit state (which he now calls named state), exceptions, etc. His approach is not so much that you should select one language that supports a paradigm that seems the most suitable for a given…

CTM has a wonderful premise; and unlike SICP, it does not aim to be freshman text book, and hence can jump headlong into the depth of the matter. Though I could'nt progress after a while, when they started to use a difference-list method, to achieve a semblance of stateful behaviour while using a declarative model. I couldn't understand that till until I later studied some Prolog.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#74
post #32
post #2

An interesting point raised by this paper is that when a program requires pervasive modifications (e.g. checking the error code returned by C functions), adding a new concept to the language (e.g. C++ exceptions) can systematically make these changes unnecessary, therefore simplifying the program. Perhaps this is how programming language designers ought to vet language ideas: do the proposed changes make certain patt…

The wikipedia summary of the JavaScript design rational is decent; it also kind of explains why it's so odd: > In 1995, Netscape Communications recruited Brendan Eich with the goal of embedding the Scheme programming language into its Netscape Navigator.[11] Before he could get started, Netscape Communications collaborated with Sun Microsystems to include in Netscape Navigator Sun's more static programming language J…

> and it had to be implemented quickly (hence the lack of typechecker and other advanced features)

Since then there has been more than enough time to implement optional static types.

In fact, the EcmaScript 4 proposal had those, before it was trashed in 2007 or so and the TC39 started EcmaScript 5 from scratch.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#75
post #54

Earlier quoted context omitted.

Thing is, what does actually "The experience of trying to write in a truly functional style" mean in practice. FP Lisp/Scheme, FP ML, FP Haskell/Miranda, FP Idris, FP Scala, FP Kotlin, FP OCaml, FP ATS, FP .... ? All of them express different views of what Functional Programming is supposed to be like.

True. But I think that you can generally break them down into a few broad categories of functional style, and none of them can be followed comfortably in Java.

Comfort is not a programming paradigm.

Just because only might need a bit more boilerplate for currying or partial applications, doesn't prevent writing FP libraries in modern Java.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#76
post #39

Earlier quoted context omitted.

Having lambda doesn’t mean to be FP. One of the core features missing in Java (JavaScript also) is TCO(tail call optimization)

According to the pdf's author, the crucial feature of FP is that there is no visible non-determinism. This means that every time you call a function with the same arguments it is guaranteed that you will get the same result. The other key feature is that there are no visible side-effects when calling a function. Tail recursion of course is great to have, but you can certainly FP without it, even in a language that su…

You can get that in Java as well.

Just create a static class without member fields where the class plays the role of a poor man's ML module, with all static functions only interacting with their parameters.

Then static import it into the client package.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#77

What utter rubbish. This type of paper has no place in a professional environment.

You realize that the book it's excerpted from is considered one of the more important computer science texts?

You're going to have to offer a great deal more useful critique than "utter rubbish" to gain any meaningful agreement here.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#78
post #67

Earlier quoted context omitted.

Could you give some reasons for your statement? Why do you think it's rubbish?

Like many discussions, this seems to demonstrate that a Programmer != a Developer != an Engineer != an Architect. Of course, many programmers would never need this stuff and many have no formal qualifications but they still produce what they need to without problems. They certainly do not need to know about paradigms vs concepts vs models etc. even if it is interesting. Of course, there ARE people who need to know th…

You're saying uneducated programmers are more useful than educated ones? I don't understand your point.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#79
post #67

Earlier quoted context omitted.

Like many discussions, this seems to demonstrate that a Programmer != a Developer != an Engineer != an Architect. Of course, many programmers would never need this stuff and many have no formal qualifications but they still produce what they need to without problems. They certainly do not need to know about paradigms vs concepts vs models etc. even if it is interesting. Of course, there ARE people who need to know th…

You're saying uneducated programmers are more useful than educated ones? I don't understand your point.

I believe that lbriner is saying that uneducated programmers are still useful - not more useful, just useful.

Re: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]

#80

I have read CTM, the author's book. He did in fact dislike the word "paradigm" and prefered "computation model" instead. A model is a set of concepts. A concept is an orthogonal language feature, like closures, concurrency, explicit state (which he now calls named state), exceptions, etc. His approach is not so much that you should select one language that supports a paradigm that seems the most suitable for a given…

For people like me that didn't know: CTM stands for Concepts, Techniques, and Models of Computer Programming.

More info here: https://www.info.ucl.ac.be/~pvr/book.html

Seems like a very interesting read!

Post reply on HN