Hacker News new | ask | show | jobs
by yawaramin 3657 days ago
Don't underestimate Haskell style variability--there are well-known 'schools' of Haskell writing style ... look up the Glasgow style, the Utrecht style etc. Frege, being on the JVM, adds its own twists on top of the standard Haskell syntax, from having to interop with Java classes. Essentially, it treats most Java classes as being in the IO monad because of their mutability and unbounded effects.

Yes, people can write Scala in 'Java style' or 'Haskell style' (not exactly), but I've come to think of that as a strength. Your colleagues can always start out near their comfort zone of imperative Java, and you can start out at yours, and you can slowly refactor your way towards each other. You can give Scala design talks to familiarise the team with best practices. With Haskell/Frege, you don't have that luxury. Everyone jumps in at the deep end.

About enforcing monad use: yes, it's possible to do that in Scala, but you're right that it has to be under the 'honour system'. About F#, it's not a pure functional language either. It's about as pure as OCaml and Scala.

As for pure4j, the reason I don't recommend it is that it makes it very clear that it's all in an experimental stage. So I have no idea which direction it's going.