3 ms·
You can't be a purest OOP or functional developer and also hold high the values of launching early and often (in my opinion). Instead, I think the pragmatic pat
by chrismsimpson 6y ago
You can't be a purest OOP or functional developer and also hold high the values of launching early and often (in my opinion). Instead, I think the pragmatic path ahead is codebases that balance and blend these two disciplines well, and largely use the GC (or reference counting/whatever mechanism exists) for managing resource allocation across an entire stack.
That is to say, you intentionally use classes and all the baggage of OOP when you know a part of a given implementation resource and throughput heavy. Otherwise, the default 'starting point' when implementing something is to start with value semantics.
It's fair to say many mainstream languages are adopting this approach. Swift is extremely functional, C# 9.0 adds record types, Go and Rust are largely functional but you can do OOP style things with them.
Java I feel has reached an evolutionary dead end and will be the 90's answer to COBOL.