4 ms·
I might be confused, but there is ample evidence that you can write maintainable code without monads. Take the Linux kernel, NASA rovers, or redis - all writte
by emcq 10y ago
I might be confused, but there is ample evidence that you can write maintainable code without monads.
Take the Linux kernel, NASA rovers, or redis - all written in boring old C with no monads and great results.
- AstralStorm 10y agoLinux kernel is the opposite of boring old C, as in procedural code. It is nicely factored object-oriented C in most of the important places.
- vkjv 10y agoIf you replace, "maintainable" with "easily maintained by a large group of people" the statement holds true.
- emcq 10y agoCan you give an example of a project maintained by a large group of people written with monads? The only one that comes to mind is Spark, and while I haven't used it recently, was nightmarishly buggy with many subtle corner cases :/ Even jumping outside of C, Atom, Eclipse, Chrome, FireFox all are maintained by large groups of people and dont have a single monad!
- Y_Y 10y agoWhat about GHC?
- brians 10y agoWhat does maintainable mean? I propose a definition: we can add features at a constant rate, but the rate of bugs per line of code drops off over time. Linux certainly doesn't meet that threshold: the rate of bad bugs is pretty constant. If we decompose it, we'll see a safe maintainable section with a monadic use of goto, and a less safe section that doesn't. NASA's projects that do hit this standard tend to be written in CL with macros that do this. I haven't read redis; anyone else?
- taeric 10y agoAny definition of maintainable that rules out the linux kernel, is... questionable. At best. The sheer number of committers guarantees bugs. That is not a remarkable feature. The remarkable number of committers is.
- emcq 10y agoThats an interesting model, but I cant think of many projects where the features are added at a constant rate. The deluge of pull requests going to Linux are not constant, and probably grows with the number of contributors perhaps relative to population growth of programmers (also not constant). Perhaps another metric is how long after your code is released will you be able to support it? In which case Linux and NASA do quite well.