Hacker News new | ask | show | jobs
by zwieback 3034 days ago
I don't understand the point at the end, showing that interface definitions don't create code doesn't have anything to do with code generated for actual instantiation. Once you create an instance of something, no matter what mechanism is used, code will get created, contract enforcement has nothing to do with that.

Comparing to OOP languages I see the class definitions in the beginning of the post as "data grouping" and not as contracts so I don't quite understand what's being contrasted here.

1 comments

Of course, you are right when you say "Once you create an instance of something [...] code will be created". But what I am pointing here is BEFORE you create any instance of anything.

You define a contract, what your object should look like. With an interface it's checked before runtime and then translates to no code. But using a class, you have code generated for the runtime.

Are you concerned about code size then? That would make sense for a browser app, coming from desktop I'm not too concerned with code that gets generated but might not get called.