4 ms·
In my case, I think it's because large programs always end up containing subproblems that can be better expressed in other paradigms than functional. And it bec
by nextos 8y ago
In my case, I think it's because large programs always end up containing subproblems that can be better expressed in other paradigms than functional. And it becomes frustrating when I can't shoehorn them to the Haskell way of doing things.
My favorite languages are, for this reason, multi-paradigm: Common Lisp, Mozart/Oz, Scala and C++. It's a bit like building La Sagrada Familia (and that's why it's depicted in the cover of CTM). If you want a superb solution, you end up using many styles like Gaudí did.
But I reckon the future will move towards more provably correct solutions, and we will be using things closer to e.g. Idris. Hopefully that's orthogonal with homoiconicity.
- tincholio 8y agoI agree with your sentiment, but I find the analogy to La Sagrada Familia funny, in that is has still not been finished, it's a black hole for money, and you can see, clearly, it's a hodge-podge of styles... All characteristics that might not be good for your software project.
- m_mueller 8y agowhich large software project has ever been ‚completed‘?
- lasagnaphil 8y agoA lot of single-player (not online serviced) computer games could be regarded as ‘completed’: once they’re out on the store shelves, it’s pretty much done (although with the rise of Steam and continuous updates this is less of a case) That’s probably why many game programmers are more pragmatic in their programming practices: they have a concrete deadline to pursue, with a predictable subset of hardware for their program to run...
- m_mueller 8y agopoint taken, a lot of software in the pre internet era could be considered completed - on the other hand there's always still going to be issues, so you could also claim that these projects are just abandoned. In general I think software is more like a house than an art piece - it keeps adapting as long as people use it.
- _0ffh 8y agoStrike the "large" in that sentence. I somewhat think that writing software is like painting. At some point you decide to stop, but you're never truly done. Also cf. Leonardo da Vinci: "Art is never finished, only abandoned."
- m_mueller 8y agointeresting, I didn't even read your comment before writing my last reply, which says very much the same, just with less da Vinci in it ;)
- nextos 8y agoIt's not my analogy, it's CTM's [1]. A book that has cult status in some CS circles. [1] https://www.info.ucl.ac.be/~pvr/book.html https://www.info.ucl.ac.be/~pvr/book.html
- vfclists 8y agoMozart/Oz??? I never heard of it. Now there is another rabbit cave to spelunk in my search for the perfect programming language.
- Fiahil 8y agoIt's an academic-only language, mostly used for teaching students about programming. Anyone sane would not use it in production, as the output would likely be "ill-typed".
- nextos 8y agoThere's also AliceML, an evolution of SML with Oz-like semantics. Sadly not in very active development.
- mikhailfranco 8y agoSo you're saying: don't use an unfinished programming language to write unfinished programs ;)
- deleted 8y ago[deleted]