I like functional programming. Yet I am afraid that when the community dogmatically jumps into it as functional = good, OOP bad we are not helping functional or the industry at large.

Doing this closes the world of possibilities. Perhaps using logical programming makes solving a problem easier. But we won't even consider it if we don't even know that it exists

@hugoestr Especially when object-oriented programming and functional programming are solutions to different problems, and are complementary.
Object-oriented programming is about structuration of data and code and separation of concerns. It answers the "where ?" question.
Functional programming is about how to write functions and methods. It answers the "how ?" question.

@Feufochmar @hugoestr

I have a very hard time to understand in what situations OOP such as found in Python (because that is the only PL with OOP I practice); how OOP is useful?

I am not a very knowledgeable about functional programming, tho. Furthermore, I do not think I am a functional fanboy.

OOP is overkill. Using functions is enough.

No need to into more complex abstraction such as whatever Haskell does (some of the things I understand are interesting, and useful).

@amirouche @hugoestr How large is the code base you maintain in your projects ?

Once your code base reach a certain size, you need to abstract the data you manipulate into datastructures and gather the functions that operates on those in the same place, so that the code is easier to maintain. Also, you usually want to restrict the visibility of functions to only expose a public interface for your datastructures, because some functions are just implementation details that are called from the functions of the public interface.
What I have described here is what object-oriented programming is about : organizing your code around abstractions, with a datastructure storing a state and functions operating on that state. A class just groups those two kind of elements in the same place, but you can do object-oriented programming without it.

Object-oriented programming is rarely overkill, unless your code stays under a few hundreds lines of code, or if you just write throwaway code. When you maintain a large code base for several years, you must think with abstractions, and not just at a class-level, but at a component-level.


@Feufochmar @hugoestr

> Object-oriented programming is rarely overkill, unless your code stays under a few hundreds lines of code

Easy boy, look at my GitHub before speaking of a few hundred lines of code, please?

> or if you just write throwaway code.

You do not have enough experience with working on code that live outside the bubble of privateer company.

· · Web · 0 · 0 · 0
Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!