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…
Correctness – A paradigm for sustainable software development
21–30 of 186 posts
Re: Correctness – A paradigm for sustainable software development
#22Re: Correctness – A paradigm for sustainable software development
#23Earlier 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?
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>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…
How so?
Re: Correctness – A paradigm for sustainable software development
#25>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?
Re: Correctness – A paradigm for sustainable software development
#26>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?
Re: Correctness – A paradigm for sustainable software development
#27>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…
Re: Correctness – A paradigm for sustainable software development
#28I 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…
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
#29There 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
Re: Correctness – A paradigm for sustainable software development
#30There 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