2 ms·
> I believe it is possible to implement effective and fundamentally sound functional programming without types. I prefer working in statically typed languages,
by DonaldPShimoda 3y ago
> I believe it is possible to implement effective and fundamentally sound functional programming without types.
I prefer working in statically typed languages, but I agree with you (though only if we use a colloquial definition of "sound").
And, what's more, I think the correspondent in the article would agree also. Michael Sperber is very familiar with Scheme, as evidenced by his publication history. I think your point actually connects with a line from the article:
> Components in functional programming are essentially just data types and functions, and these functions work without mutable state, [Sperber] said.
Even in a dynamically typed language, the data still "has a type" — but now we're talking about the "shape of the data" rather than a formal type system. Reasoning about data-shapes is perfectly valid, and still supports the style of code that Sperber talks about throughout the interview.
This also connects to the "Design Recipe" from the textbook How to Design Programs, which is an introductory CS text based on Racket, a derivative of Scheme. In the Design Recipe, students are told that they should write down the contract of their function before implementing the body of the function, and part of this is the specification of the "types" of the inputs and the output. Again, since the language is untyped, this has much more to do with conveying a sense of the "shape" of the data to the programmer, but it is still highly effective in guiding the design and implementation of a functioning software system.