All functional programming languages are alike. So are all imperative/procedural languages, even if they have been objectified.
The difference is between the what and the how.
“What” is a question of varying degrees of abstraction. Do these two vectors differ in their means more than to be expected from random variation? What are the results of a t-test?
“How” is a matter of direction. “The variable i is typeof int<32>. Set it to 0 … I++ … .”
Both end up compiled into instruction sets that a CPU can process by varying voltage at various switches from plus to minus. There may be an intermediate assembly language step, which is still readable by human control freaks. (Did you know that a.out stands for assembly output?) The one style of programming resembles an instruction set. This is the “get and stay close to the metal as possible” school of heroic programming. The other style follows “write for the reader because the machine will always understand perfectly whatever you tell it to.”
Does it make a difference? Only if the language is a means to an end of exploring an unanswered question, not the implementation of a known answer.
Therefore, data analysis should use functional, and data engineers should use imperative, languages.
#julialang #c #rlang #Java #haskell #python