51 karma · joined November 10, 2011
'Category error' does not mean a quantitative or scale difference at all.
"user in mind" and "have a real problem" and "get things done" and "responsive design" and "designed for Humans" and "make it happen" and "never compromise the API" are vague platitudes which don't even provide interpretable advice, let alone specific usable information.
It can be slightly obnoxious when a battle-hardened grayhair begins to hold forth on vague general principles in this way - it can still be productive to listen insofar as knowledge is being shared. What information is being shared here, and what experience or reasoning is there to ground it as knowledge?
(And MVC, for that matter).
I think this is part of why objects blew up in the 80s
If the same task can be done with a function/sub or with an object, objects typically add two problems:
1. Added boilerplate: before I do work I typically instantiate an object, etc. In many cases it is really obvious that this is just adding pointless lines of code and pointless plumbing. It doesn't help that the big OO languages have accreted so many bad, verbose coders and cargo-cult methodologies, enhancing the extra-boilerplate effect.
2. Unlike locals inside a function, objects' mutable state is accessible in multiple places at multiple times (and merely using getters and setters does not fundamentally change this - and add even more ridiculous boilerplate of the sort which causes people to have gigantic IDEs writing highly repetitive code for them)
Here's what you are missing: objects are just a kind of mini-program, with a more flexible interface and execution model than subprocesses. It's a generalization of the subroutine and largely equivalent to a coroutine.
Even if that doesn't work for you, they are still handy as 'bundles': e.g. a point in 3-space with x, y, z components AND an attached set of methods for doing normal things like dot products, all passed around together. This isn't necessary, but it can make things neater just like bundling certain wires together into a cable.
Evaluate them like 'here is this thing, what can it be used for?' You might decide you like objects, or perhaps just that they have their place.
Given that one wishes to use Windows/.NET, I feel the decision follows pretty naturally from an analysis of costs - no vague argument about culture necessary
(I like Unity too, but it needs work on things like multiple monitor support)
edit: and same for if you run your own server or rent a server, obviously