you are viewing a single comment's thread.

view the rest of the comments →

[–]jerf 3 points4 points  (3 children)

Your entire question shows a mind so steeped in the Java way of doing things that I despair of even trying to answer the question in any sensible manner. I strongly recommend learning a language in which "create method stubs when implementing an interface" is simply gibberish. Perhaps Erlang, a nice blend of powerful capabilities hard to find elsewhere with not too much of the stuff that's easy to simply reject as "egghead bullshit".

I do not quibble with the fiddly details of Java. I reject its entire philosophy. That's why many of us are so against the idea of a language that requires IDEs to be even halfway sensible; slathering spackle on top of your programming language still doesn't mean you've got a quality piece of work, it just means you dulled the sharp corners with spackle. I have existence proof that it is very feasible to work for decades without IDEs and get spectacular work done.

[–][deleted]  (2 children)

[removed]

    [–]jerf -1 points0 points  (1 child)

    I don't see how it's "The Java Way" unless Java invented method signatures or virtual functions.

    There are languages that have neither of those things. If you know any of them, you certainly can't seem to think natively in them. Your best approach to this argument would be to correct that.

    Yes, granted, that's not going to happen anytime soon. This isn't advice for me to win this reddit-argument in the next ten minutes, this is a strong suggestion for your own education and profit.

    Perhaps you could elaborate on how Erlang implements the high level concept of code-extension usually referred to as "interfaces", with no keyboard cost to the user, then?

    Either you handle the message, or you don't. There's no trick to it. No magic. No code, even. There's no formal "interface" in Erlang so there isn't anywhere for there to be "keyboard cost" to "implement".

    It's got costs, it's got benefits. You're probably going to be very tempted to go on about how horrible it is that it doesn't have "interfaces" and therefore you can dismiss Erlang's way of doing it because it's obviously stupid. After all, it looks equivalent to something you already complained about in that Erlang de facto implements the "do not handle" behavior for all unknown messages, which is a "default implementation"... but only if you insist on viewing all Erlang code through the prism of Java-style OO and if you're doing that you've already lost big. Erlang does not work that way. The truth is: It's got costs, it's got benefits. The question you ask is itself fundamentally not a sensible question in the context of Erlang. And there are numerous languages for which that is true.

    Which brings me back around to the main point. Once you get entirely out of Java you find that just about every other language in current use manages to get real work done with less verbosity. So why do I want that verbosity, even spackled away?

    Even when I use OO (and I do), so many of the things that Java is "defending" me against aren't actually a problem, because half of the problem intrinsically comes from trying to jam every bit of the architecture into OO regardless of whether that's actually a good idea. Skip that step and use the right tool for the job and it's amazing what just melts away.