Comment Re:Alternatives? (Score 1) 434
My coworker and I got in a big argument about Scala earlier.
I hate it when people call it functional. I'd far prefer multi-paradigm, and here's why.
No proper Tail Call Optimization. In simple cases the compiler inlines your function as a loop, or it uses a trampoline function. This can make make writing functional code (which has no loops generally) inefficient (and ugly). That's what you get for sticking on the JVM I guess.
Introduction of non-pure functions through inclusion of systems library. The argument for Scala is that you have access to any Java library. The issue is that none of these libraries are pure functions, so you ruin the pure nature of your program.
Does this make Scala bad? No. But I think to call it a functional language is to be disingenuous. Is it handy having functional constructs (yay partial application and maps!) in an OOP language? Heck yes. But it's not really designed for pure functional programming, so I really wouldn't call it functional.
I hate it when people call it functional. I'd far prefer multi-paradigm, and here's why.
No proper Tail Call Optimization. In simple cases the compiler inlines your function as a loop, or it uses a trampoline function. This can make make writing functional code (which has no loops generally) inefficient (and ugly). That's what you get for sticking on the JVM I guess.
Introduction of non-pure functions through inclusion of systems library. The argument for Scala is that you have access to any Java library. The issue is that none of these libraries are pure functions, so you ruin the pure nature of your program.
Does this make Scala bad? No. But I think to call it a functional language is to be disingenuous. Is it handy having functional constructs (yay partial application and maps!) in an OOP language? Heck yes. But it's not really designed for pure functional programming, so I really wouldn't call it functional.