5 ms·
1. Because different projects will want different monads 2. In my experience, having up-conversions between different monads is intuitive low-noise
by azernik 4y ago
1. Because different projects will want different monads
2. In my experience, having up-conversions between different monads is intuitive low-noise
- cube2222 4y ago> Because different projects will want different monads It doesn't look like that to me, based on how the ecosystem currently converges on a single one. I understand there may be some projects that do that, but if the majority converge, then it's still needles complexity. However, I might be wrong. I've been an external observer for a while already.
- valenterry 4y agoHistory proofs this wrong. Just look at it: first there were Scala Futures and Twitter Futures. Then there came Scalaz and Monix, later Cats-effect. Now ZIO also joined. And each library even brings different kind of effect types. And all of that works, even in combination! This is as if you mix angular and react. Sure, you should try to not do that as much as possible, but the mere fact that you can do this in Scala is a sign of awesome language and library design that is far outstanding compared it the majority of other languages. You could never come up with the "one true solution" from the very beginning.
- auggierose 4y ago> You could never come up with the "one true solution" from the very beginning. I think I can! I mean, that's what science is for, right?
- valenterry 4y agoI'm not so sure. The problem is that the world is moving, including hardware, software, interfaces but also people and process. Languages have to optimize against a moving target. So naturally it's a good idea to optimize for something moving and not something static. This is what makes Scala good. The language itself is not very complex actually, but it enables complex and powerful libraries.
- auggierose 4y agoWe are still in the phase where concepts are settling. Pretty sure nobody in a 100 years will think that Monads are a good idea.
- valenterry 4y agoMonads are like numbers. You can think they are not a good idea, but they are just a matter of fact and existence. Also, in a 100 years maybe our brains will be completely different. How do you optimize your programming language for that? I don't think you can.
- auggierose 4y agoGiven that our brains have been the same for a few thousand years, maybe I don't need to optimise for that. Anyway, what we currently have as programming languages are all workarounds. Necessary for now, because how else would we program? But in the end we need to converge programming, math and logic, and once this is done, we will be ready for anything. And we won't need monads as a crutch, forced upon us by a type system. I am sure the concept of number will outlive the concept of monad in terms of popularity.
- valenterry 4y agoProgramming languages will converge after(!) natural languages have converged. Not gonna happen in our lifetime! > I am sure the concept of number will outlive the concept of monad in terms of popularity. It already does. I don't get your point...
- auggierose 4y ago> Programming languages will converge after(!) natural languages have converged. Interesting point. But I think you emphasise too much the surface syntax of the language. The language will be a new form of mathematics, and it will be universal, with adapters to various natural languages, of course.
- azernik 4y agoOne example: Any project using a transactional database will want a monad for actions that occur within a single transaction (see e.g. the Slick `DBIO` monad).