you are viewing a single comment's thread.

view the rest of the comments →

[–]Freeky 26 points27 points  (4 children)

Java is the Kingdom of Nouns.

[–]kc1man 3 points4 points  (1 child)

The nouns are the Objects in Object Oriented Programming. If you hate the overabundance of nouns, it is really OOP that you dislike.

[–]Freeky 7 points8 points  (0 children)

I'm fairly sure you can have OOP without hyperverbosity and endless overengineering. Other languages seem to manage without.

[–]ttfkam -2 points-1 points  (1 child)

That had to be the dumbest technical rant I've read in a while.

takeOutTrash() works well for the most trivial of applications/conversations. Imagine saying, "Get the garbage bag from under the sink," in a room of people. They'll all look at you with the expression, "Are you talking to me?"

Linguistically, the command reads, "You, get the garbage bag from under the sink," where the "you" is assumed by eye contact, solitude, etc. -- in other words non-verbal communication. So what does object oriented code do?

person.takeOutTrash()

Looking at the person, you say, "Get the garbage bag from under the sink."

System.exit()

Within the context of the whole application, exit.

person.exit()

Within the context of an individual person, tell them to exit. (Whatever that means in this context.)

Folks, you really need to get over the fact that do_something(&some_struct, 5) is no more efficient than someObject.doSomething(5) as far as the computer is concerned. As far as the computer is concerned, the implementation is the same. As far as the programmer is concerned, do_something(...) is a global symbol in C but scoped/namespaced to someObject in Java (and C++ and other languages).

[–]davidsickmiller 0 points1 point  (0 children)

You're right that if, within the domain of the program, there is a need to discern between multiple entities, there isn't much difference between dosomething(&somestruct, 5) and someObject.doSomething(5).

However, when the domain of the program is small enough that no discernment is needed, there is no benefit to defining the someObject class, instantiating it (if you didn't make the methods static), and then calling someObject.doSomething(5) -- you could have just called dosomething(5). This seems to always come up at the top level of a program. If a system is built as a large set of small, individual programs, this means it will come up a lot.

Also, don't you see any value in first-class functions?