this post was submitted on 13 Nov 2024
828 points (96.1% liked)

Greentext

4416 readers
1244 users here now

This is a place to share greentexts and witness the confounding life of Anon. If you're new to the Greentext community, think of it as a sort of zoo with Anon as the main attraction.

Be warned:

If you find yourself getting angry (or god forbid, agreeing) with something Anon has said, you might be doing it wrong.

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] pivot_root@lemmy.world 1 points 4 days ago* (last edited 4 days ago) (2 children)

I strongly prefer how interfaces are handled

It's better than Java, but they still chose to walk headfirst into the same trap that bites Java developers in the ass: associating interface implementations with the struct/class rather than the interface itself.

When you have two interfaces that each require you to implement a function with the same name but a different signature, you're in for a bad time featuring an abomination of wrapper types.

Edit: Clarity.

[–] Willem@kutsuya.dev 7 points 4 days ago (1 children)

On that last note, can't you use the explicit interface implementation in C#?

e.g.

public class SampleClass : IControl, ISurface
{
    void IControl.Paint()
    {
        System.Console.WriteLine("IControl.Paint");
    }
    void ISurface.Paint()
    {
        System.Console.WriteLine("ISurface.Paint");
    }
}
[–] pivot_root@lemmy.world 1 points 4 days ago* (last edited 4 days ago) (1 children)

Edit: I misread your comment as "like in C#" and wrote this as an answer to the non-existent question of "can't you use explicit interfaces like in C#"

I haven't kept up with recent Java developments, but with Go, you're out of luck. Interface implementations are completely implicit. You don't even have an implements keyword.

Edit: For Java, a cursory search suggests that they haven't yet added explicit interfaces: https://stackoverflow.com/questions/19111090/does-java-support-explicit-interface-implementation-like-c

[–] Amir@lemmy.ml 2 points 4 days ago (1 children)

He mentioned C#, which does let you explicitly choose to implement same-name functions of two interfaces with different code

[–] pivot_root@lemmy.world 3 points 4 days ago* (last edited 4 days ago)

For some reason, my brain inserted a "like" before "in C#", and answered the question of "can't you use explicit interfaces like in C#."

[–] TunaCowboy@lemmy.world -1 points 4 days ago (1 children)

just one more oop bro I swear

Pure oopium. All oop 'design patterns' exist solely to overcome the inherent flaws of oop.

[–] pivot_root@lemmy.world 7 points 4 days ago* (last edited 4 days ago)

just one more oop bro I swear

Didn't understand my criticisms of Go and Java's interfaces, or do you just enjoy LARPing as a senior programmer while living in a small world where the term "interface" strictly means object-oriented programming and not the broader idea of being a specification describing how systems can interact with each other?