Object oriented programming means writing programs using objects' methods as an instruction set (and possibly something else but with emphasis on methods).
Polymorphism, inheritance, encapsulation and such are generally applicable techniques that a priori have nothing to do with OOP. You can do all this without objects and methods, as well as you can do OOP without all those things (however insane that might be in practice).
I'm glad if that sounds obvious to you but a shocking amount of people seem to be completely unaware.
1. Cabal is cool these days. Cabal's dependency hell and cumbersome sandboxes are no more. Instead, there is a new set of v2-commands allowing for deterministic Nix-style builds. Each project has its own local dependencies drawn from a system-wide store that shares everything shareable while keeping your global environment clean. I still use it with Nix though because I like the binary cache.
2. Another take on testing has been made: validity package is based upon the famous QuickCheck and other existing libraries to get us something more handy for randomized property-based testing.
3. A new extension, DerivingVia, along with a new library named capability, opens a whole new world for Haskell projects architecture. Leaving out the details, imagine this: composing monadic effects without ugly transformers, avoiding hand-written instances and basically making the compiler do the boilerplate. With capabilities, you can do that, minus the performance issues! It's all just functions and IO under the hood.
4. While capabilities can be regarded as further development of mtl, there is also one new package, Polysemy, that in the same vein develops free monads. Sandy McGuire (isovector) came up with a solution that addresses all the concerns around free monads: ease of use, performance and non-algebraic effects. It's a great news for people who prefer handling effects via initial encoding.
Developing with Haskell has probably never been this pleasant before.
Flutter edition with half-assed speechbubbles! So clean and #reactive
It has a #reactive library (RxDart) and with #Flutter (Android, iOS) you can make fully native reactive apps. It allows literally embedding streams in widget space, unlike React Native.
Fast, reactive, truly crossplatform, pleasant to deal with. I threw away React Native in favor of this and got much less headache.
1. Everything is predetermined, therefore no free will.
2. Bell's equation fail, therefore non-determinism (in the broad sense).
3. Actually, since Bell's equation fails, it might very well be the case that quantum physics imply free will (or even the existence of God).
The fun fact is that nothing of this is true. Determinism is doing just fine (at least outside of physics, i. e. in the broad sense). It doesn't actually contradict free will, provided that your definition of free will is not insane. And the third one is of course just outright headassery.