Re:Please do not attempt to simplify this code
by willtim on Friday December 28, 2018 @04:27AM
(#18775767)
The lack of "generics" (parametric polymorphism) in Go has certainly made the incidental complexity in Kubenetes much higher: https://medium.com/@arschles/go-experience-report-generics-i...
Go and Haskell are really at different ends of a spectrum. Haskell is a very high level language, which makes building and reasoning about very complex software much easier (at the expense of a learning curve and fine control of space usage).
Go is a low-level language with no learning curve and a very limited facility to abstract (by design it seems).
Personally I would have written something like Kubenetes in Haskell or OCaml, with perhaps the odd performance critical section in C or Rust.
Re:Please do not attempt to simplify this code
by jamougha on Friday December 28, 2018 @08:48AM
(#18776658)
Ocaml has a GIL. I've worked with people trying to build a distributed system in a language with a GIL and do not recommend it.
Re:Please do not attempt to simplify this code
by yawaramin on Sunday December 30, 2018 @02:23AM
(#18787930)
OCaml will lose the GIL when multicore lands in ... the next few years I guess :-)
That said, there do exist useful products written in Haskell. For example, Facebook writes a lot of spam fighting code in Haskell. https://code.fb.com/security/fighting-spam-with-haskell/