Live data from Hacker News

Correctness – A paradigm for sustainable software development

nonullpointers.com

21–30 of 186 posts

Re: Correctness – A paradigm for sustainable software development

#21

I had a thread on twitter about this problem of "musicians nerding over gear." In our metaphor it was about mountain climbers. The programming language and its paradigms chosen may have some effect on how you scale the mountain but the real problem is the mountain. Whether you use functional programming or dynamic typing it only affects small, local problems in the practice of climbing mountains. The problem of effic…

Amy pointers to documentation that's approachable by beginners?

Re: Correctness – A paradigm for sustainable software development

#23

Earlier quoted context omitted.

This is a bit like the "Islam is a religion of peace" discourse. I'm sure it is, but: OOP as actually implemented and found in the wild isn't about Smalltalk or message passing. It's about transforming functions into methods by unnecessarily wrapping behaviour in classes, as an example of cargo-cult programming. OOP the idea is great. How do you actually find it in the world?

If functional programming were implemented as widely and abused as much as OOP is, would it really fare any better?

exactly, I feel the same way. OOP is often criticised from functional programming, but also from data-driven programming, for example. You never hear functional programming advocates criticise data-driven programming. The use cases are so different that it wouldn't make sense.

To use OOP properly is probably as complicated as doing functional programming or data-driven programming properly. The "problem" is that the learning curve is much less steep and the use-cases more extense, so obviously there's a lot more people misusing it.

Re: Correctness – A paradigm for sustainable software development

#24
post #14

>The thing you need to look at if you’re using say, a dynamic language, or object oriented design, is that in the long term, what is the language and mindset of “objects” with dynamic dispatch providing you apart from an endless stream of bugs that seem to keep reoccurring everytime you try an evolve the software to introduce a new requirement? I am sick and tired of the arrogant, willfully ignorant developers toutin…

> 1. OOP is a higher-level paradigm than FP, so people comparing them directly usually are missing the point to begin with. [emphasis added]

How so?

Re: Correctness – A paradigm for sustainable software development

#25
post #14

>The thing you need to look at if you’re using say, a dynamic language, or object oriented design, is that in the long term, what is the language and mindset of “objects” with dynamic dispatch providing you apart from an endless stream of bugs that seem to keep reoccurring everytime you try an evolve the software to introduce a new requirement? I am sick and tired of the arrogant, willfully ignorant developers toutin…

This is a bit like the "Islam is a religion of peace" discourse. I'm sure it is, but: OOP as actually implemented and found in the wild isn't about Smalltalk or message passing. It's about transforming functions into methods by unnecessarily wrapping behaviour in classes, as an example of cargo-cult programming. OOP the idea is great. How do you actually find it in the world?

I've seen plenty of junior engineers who read a FP blog post, and start arguing about 'purity' and the need to refactor lots of code – without having any clue that pure functions are useful regardless of other coding paradigms / architectural decisions.

Re: Correctness – A paradigm for sustainable software development

#26
post #14

>The thing you need to look at if you’re using say, a dynamic language, or object oriented design, is that in the long term, what is the language and mindset of “objects” with dynamic dispatch providing you apart from an endless stream of bugs that seem to keep reoccurring everytime you try an evolve the software to introduce a new requirement? I am sick and tired of the arrogant, willfully ignorant developers toutin…

This is a bit like the "Islam is a religion of peace" discourse. I'm sure it is, but: OOP as actually implemented and found in the wild isn't about Smalltalk or message passing. It's about transforming functions into methods by unnecessarily wrapping behaviour in classes, as an example of cargo-cult programming. OOP the idea is great. How do you actually find it in the world?

[flagged]

Re: Correctness – A paradigm for sustainable software development

#27
post #14

>The thing you need to look at if you’re using say, a dynamic language, or object oriented design, is that in the long term, what is the language and mindset of “objects” with dynamic dispatch providing you apart from an endless stream of bugs that seem to keep reoccurring everytime you try an evolve the software to introduce a new requirement? I am sick and tired of the arrogant, willfully ignorant developers toutin…

Exactly right. "OOP" is a system design paradigm. Useful for the 5% of the time one is concerned with big picture system design, and counterproductive for the 95% of the time one is writing mundane functions pertaining to their business domain. Alas, "OOP" was/is sold as a solution for everything computing, including the 95% of the time it is not a good fit. I call that track record "abysmal", your mileage may vary.

Re: Correctness – A paradigm for sustainable software development

#28

I had a thread on twitter about this problem of "musicians nerding over gear." In our metaphor it was about mountain climbers. The programming language and its paradigms chosen may have some effect on how you scale the mountain but the real problem is the mountain. Whether you use functional programming or dynamic typing it only affects small, local problems in the practice of climbing mountains. The problem of effic…

"...but the real problem is the mountain."

Terrific metaphor, thank you. I've been stuck with "the map is not the territory" for ages, which is too meta for polite convo.

With "maps / territory", I never thought to ask "do we have to summit the mountain? can we take the valley, the pass? can we tunnel? go around?"

"Grumpy programmers who think maths is for academics are going to miss out"

Probably. I'm still stuck eating the paste, banging the rocks together. Still arguing that Chain of Command is not nested Decorators, trying to explain that memcached (or redis) in parallel vs write thru is a replicant and not a cache, that "agile velocity" means spunk if you're not tracking your defect rate, that Spring & J2EE style DI & IoC is dynamic programming envy (just use Python), etc.

"It all comes down to clarity..."

God help us.

PS- Reading that Twitter thread might be fun, if you have a link handy.

Re: Correctness – A paradigm for sustainable software development

#29
post #9

There are several strongly typed (and functional) languages being built for the web that compile to JavaScript: ReasonML - OCaml - https://reasonml.github.io PureScript - Haskell - http://www.purescript.org TypeScript - https://www.typescriptlang.org Scala.js - http://scala-js.org Elm - https://elm-lang.org ghcjs - Haskell (https://github.com/ghcjs/ghcjs) This podcast covers many of them: http://bikeshed.fm/192

F# in js - https://fable.io/

Re: Correctness – A paradigm for sustainable software development

#30
post #9

There are several strongly typed (and functional) languages being built for the web that compile to JavaScript: ReasonML - OCaml - https://reasonml.github.io PureScript - Haskell - http://www.purescript.org TypeScript - https://www.typescriptlang.org Scala.js - http://scala-js.org Elm - https://elm-lang.org ghcjs - Haskell (https://github.com/ghcjs/ghcjs) This podcast covers many of them: http://bikeshed.fm/192

Don't forget Fable - F# - https://fable.io
Post reply on HN