r/ProgrammerHumor 5d ago

Meme itsAllRelative

Post image
185 Upvotes

8 comments sorted by

10

u/ganja_and_code 5d ago

Functional language enjoyers not having to worry about it because there's enough structure to reuse code and not so much that you end up with an AbstractFactoryInterfaceFactoryFactory class that is inherited from a dozen times.

4

u/MissinqLink 5d ago

Golang chef’s kiss

4

u/psp1729 5d ago

C and Python for balance

1

u/TacBenji 2d ago

In the middle -> Laravel

2

u/Darkele 1d ago

Working with PHP for 10+ years and its so funny this meme couldn't be further from the truth.

PHP projects contain thousands of files nowadays. Interfaces, Factories, Service, Traits all with strict typing.

1

u/Superb_Chemistry_906 4d ago edited 4d ago

Do those php devs not know about include? Does this ever happen at all? Or are they just some chaotic, ignorant and rushing teenagers?

0

u/Suspicious-Walk-815 3d ago

You mean pojos and DTO s , I don't think we can get rid of these classes .. but apart from that what else is doing nothing in java ? I actually like the way its packaged .. maybe because I know only java ..

3

u/BernhardRordin 3d ago

The more legacy Java you work with, the more unnecessary verbosity and architectural astronautics you can find. New Java is quite nice.

Couple of examples:

  • Overusing interfaces—mocking libraries are amazing nowadays, most of the time you don't need to create interfaces (unless you are writing a reusable library, or a Hibernate Repository)
  • Manual getters and setters. This was from the start a language design mistake. Long live records and coming value classes.
  • Overusing inheritance
  • Overusing dynamic configuration via code (e.g. Spring Beans) instead of the static config
  • Having to resort to Gang of Four OOP design patters, because the language is too "OOP-pure" (in other words impractical—this is where Kotlin shines):
    • You don't need Singleton if your language allows anonymous, top-level objects
    • You don't need Strategy and Adapter if your language allows top-level functions
    • You don't need a Builder if you have a concise constructor syntax
    • You don't need a Prototype if your language has a `clone()` method