Live data from Hacker News

Discovering Dennis Ritchie’s Lost Dissertation

computerhistory.org

41–50 of 139 posts

Re: Discovering Dennis Ritchie’s Lost Dissertation

#41
post #16

Earlier quoted context omitted.

Functional programming languages have alway been somewhat dismissed by most. Even though every once in a while functional programming becomes somewhat of a hot topic, only few programmers actually take it up as their main or favourite programming style. I'd say Ritchie's attitude there is and was kind of mainstream. I suppose just as C (or C style languages) have been mainstream for the past 40 years.

Education is an issue. Very few programmers actually know what functional programming even is or how it can help. Also 40 years ago we had what? LISP as is commonly used is not an FP language. ML was nice but there wasn't much FP done in ML either. The advancements to make FP practical, like good garbage collectors, laziness, monads, good persistent data structures, are newer.

I don't know, as far as I know functional programming is a standard course in computer science university curriculum. I've only been part of small dev teams so far, but of those teams always more than half were university educated, and none of them continued functional programming after university. Of all my university friends only one did Haskell outside of university that I know of (maybe there's some secret Scala/F# lovers at Java/.net firms). I've been part of the Haskell community, so it's not like I don't know Haskell programmers, but I'm saying I know a lot of formally educated programmers, and only very few of them took a liking to functional programming to an extent they'd do it professionally or even as a hobby.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#42
post #10

> My graduate school experience convinced me that I was not smart enough to be an expert in the theory of algorithms and also that I liked procedural languages better than functional ones. I wonder if that last bit was as unfashionable a statement when he made it as it would be now.

> I liked procedural languages better than functional ones.

(Emphasis, mine). I suspect that he understood functional languages quite well.

He just didn't like them.

I like some aspects of FP, but there are other aspects that I don't like.

My own development style is a ghastly chimera of techniques, technologies and jargon that coagulate into a disgusting bouillabaisse that makes everyone go "tsk, tsk," but that always seems to work quite well, is of extremely high quality, easy to understand, and results in a great deal of ship.

I am...impure. All zealots hate me.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#43
post #10

> My graduate school experience convinced me that I was not smart enough to be an expert in the theory of algorithms and also that I liked procedural languages better than functional ones. I wonder if that last bit was as unfashionable a statement when he made it as it would be now.

> I liked procedural languages better than functional ones. (Emphasis, mine). I suspect that he understood functional languages quite well. He just didn't like them. I like some aspects of FP, but there are other aspects that I don't like. My own development style is a ghastly chimera of techniques, technologies and jargon that coagulate into a disgusting bouillabaisse that makes everyone go "tsk, tsk," but that alwa…

> I like some aspects of FP, but there are other aspects that I don't like.

Care to enumerate? Asking because I feel the same: I really enjoy immutability, first class functions, map/filter/reduce, Option and powerful types (I dislike: currying, point-free, monads), but at the same time I feel more at home doing that in imperative-ish languages like C#, JS/TS and Rust where I can have guard ifs and the odd mutation here and there. Wondering if anyone else is the same.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#44
post #36
post #10

> My graduate school experience convinced me that I was not smart enough to be an expert in the theory of algorithms and also that I liked procedural languages better than functional ones. I wonder if that last bit was as unfashionable a statement when he made it as it would be now.

In hindsight you can say he suffered from imposter syndrome. People often have trouble to accept that an easy working solution to a difficult problem is an act of genius, instead they feel that they took a shortcut and are non deserving.

I've seen so many junior developers and interns thinking like this.

Sometimes they're are able to find a good simple solution to a hard problem but then feel bad for not using complex patterns, some popular external dependency, or for the lack of ability of giving it a complicated name.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#45
post #43

Earlier quoted context omitted.

> I liked procedural languages better than functional ones. (Emphasis, mine). I suspect that he understood functional languages quite well. He just didn't like them. I like some aspects of FP, but there are other aspects that I don't like. My own development style is a ghastly chimera of techniques, technologies and jargon that coagulate into a disgusting bouillabaisse that makes everyone go "tsk, tsk," but that alwa…

> I like some aspects of FP, but there are other aspects that I don't like. Care to enumerate? Asking because I feel the same: I really enjoy immutability, first class functions, map/filter/reduce, Option and powerful types (I dislike: currying, point-free, monads), but at the same time I feel more at home doing that in imperative-ish languages like C#, JS/TS and Rust where I can have guard if s and the odd mutation…

> I dislike: currying, point-free, monads

Don't worry then, that's fine, you just dislike Haskell.

I personally really like functional programming but can't stand Haskell. The style favoured by the community is optimised to be the most impenetrable possible.

You should try Ocaml. The preferred style favours piping to point-free and uses monads sparingly. Currying is everywhere but copious use of named arguments tends to make things simpler.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#46
post #16

Earlier quoted context omitted.

Functional programming languages have alway been somewhat dismissed by most. Even though every once in a while functional programming becomes somewhat of a hot topic, only few programmers actually take it up as their main or favourite programming style. I'd say Ritchie's attitude there is and was kind of mainstream. I suppose just as C (or C style languages) have been mainstream for the past 40 years.

Education is an issue. Very few programmers actually know what functional programming even is or how it can help. Also 40 years ago we had what? LISP as is commonly used is not an FP language. ML was nice but there wasn't much FP done in ML either. The advancements to make FP practical, like good garbage collectors, laziness, monads, good persistent data structures, are newer.

Many universities teach FP to their undergraduates, some of them even use Haskell as their first programming language.

I have published at ICFP and in the JFP, and understand garbage collectors, laziness, monads, good persistent data structures very well. Yet, I prefer CBV to lazy evaluation, I prefer full unrestricted support for imperative programming, I don't think Haskell approach to effects by monads is ideal (I prefer Scala's giving you the option to tame effects by monads). There is a reason why, despite near half a century since Backus' "Can programming be liberated from the von Neumann style?", CUDA dominates HPC, C++/C (and Rust) dominate mainstream infrastructure programming, Go took the cloud world by storm, ML is dominated by Python, front-end is dominated by Javascript/Typescript, hardware design is dominated by Verilog, and business computing (for lack of a better term) is dominated by Java/C#. I really don't think the reason is that everybody is too uneducated to realise the benefits of Haskell.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#47
post #43

Earlier quoted context omitted.

> I liked procedural languages better than functional ones. (Emphasis, mine). I suspect that he understood functional languages quite well. He just didn't like them. I like some aspects of FP, but there are other aspects that I don't like. My own development style is a ghastly chimera of techniques, technologies and jargon that coagulate into a disgusting bouillabaisse that makes everyone go "tsk, tsk," but that alwa…

> I like some aspects of FP, but there are other aspects that I don't like. Care to enumerate? Asking because I feel the same: I really enjoy immutability, first class functions, map/filter/reduce, Option and powerful types (I dislike: currying, point-free, monads), but at the same time I feel more at home doing that in imperative-ish languages like C#, JS/TS and Rust where I can have guard if s and the odd mutation…

I like first-class functions. I actually like currying.

But I also like state, polymorphism and identity.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#48
post #45
post #43

Earlier quoted context omitted.

> I like some aspects of FP, but there are other aspects that I don't like. Care to enumerate? Asking because I feel the same: I really enjoy immutability, first class functions, map/filter/reduce, Option and powerful types (I dislike: currying, point-free, monads), but at the same time I feel more at home doing that in imperative-ish languages like C#, JS/TS and Rust where I can have guard if s and the odd mutation…

> I dislike: currying, point-free, monads Don't worry then, that's fine, you just dislike Haskell. I personally really like functional programming but can't stand Haskell. The style favoured by the community is optimised to be the most impenetrable possible. You should try Ocaml. The preferred style favours piping to point-free and uses monads sparingly. Currying is everywhere but copious use of named arguments tends…

Ah, funny thing: I worked with Haskell professionally for a while. I even enjoy the laziness.

My biggest gripe with it is not so much the language itself but the culture: it favours bloated and pompous solutions much in the same way Java/Spring does. Monad Lifting, Lenses, Aspects and FactoryFactories occupy the same space in my head.

I guess I just prefer both the simple side of functional and the simple side of imperative.

I definitely have to give OCaml a try.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#49
post #16

Earlier quoted context omitted.

Functional programming languages have alway been somewhat dismissed by most. Even though every once in a while functional programming becomes somewhat of a hot topic, only few programmers actually take it up as their main or favourite programming style. I'd say Ritchie's attitude there is and was kind of mainstream. I suppose just as C (or C style languages) have been mainstream for the past 40 years.

Except every non programmer with a business degree seem to love functional programming: Microsoft Excel

Functional programming involves using functions as a first-class objects. I never saw that kind of programming in Excel.

Re: Discovering Dennis Ritchie’s Lost Dissertation

#50
post #10

> My graduate school experience convinced me that I was not smart enough to be an expert in the theory of algorithms and also that I liked procedural languages better than functional ones. I wonder if that last bit was as unfashionable a statement when he made it as it would be now.

At least in my mind, Dennis was much more about pragmatism and results than about fashion.
Post reply on HN