--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
+1 :-)
1) Yes, but both FP and OO suck. Most everything sucks, one way or another. But some things suck less in some ways. So FR, FRP, RDP, FBP, etc. are all other interesting paradigms. There's more languages, Horatio.
2) Yes, mostly everybody is mostly procedural, I live through what you mean daily. :-( Half the time it is due to being lame. The other quarter of the time it is due to having seen some badness of OO.
2) Yes, mostly everybody is mostly procedural, I live through what you mean daily. :-( Half the time it is due to being lame. The other quarter of the time it is due to having seen some badness of OO.
--
Keith Braithwaite blogged: http://cumulative-hypotheses.org/2015/11/03/mocks/
But programmers tend to suffer from very bad target fixation when a tool becomes difficult to use and they put their head down and power through, when they should really stop and take a step back and think about what the hell they’re doing.
What can we do?
On 5 Nov 2015 5:25 pm, "cdegroot" <cas...@gmail.com> wrote:
>
> [1] OO. Worst term ever. I use it for lack of something better - with OO, people seem to mean programming by smearing your logic around in classes, but if you read up on how Smalltalk came to be, there was so much inspiration from e.g. Lisp that the distinction is largely blurry if you use the original OO language (you're using higher order functions in pretty much every method). So, frankly, I don't really know what OO means. And I'm afraid to stress the message sending and encapsulation aspects of it, because then the Akka people will run away with it.
I am feeling reckless today, so I think I will stress the message sending and encapsulation aspects by quoting from the Smalltalk-80 book:
[Smalltalk is built on the model of communicating objects. Large applications are viewed in the same way as the fundamental units from which the system is built. The interaction between the most primitive objects is viewed in the same way as the highest-level interaction between the computer and the user. Objects support modularity--the functioning of any object does not depend on the internal details of other objects. The complexity of the system is reduced by this minimization of interdependencies of system components. ]
[The message does not specify how the [operation] will be performed. The receiver determines how to accomplish the [operation]. Computing is viewed as an intrinsic capability of objects that can be uniformly invoked by sending messages. The set of messages to which an object can respond is called its interface with the rest of the system. The only way to interact with an object is through its interface. A crucial property of an object is that its private memory can be manipulated only by its own operations. A crucial property of messages is that they are the only way to invoke an object's operations. These properties insure that the implementation of one object cannot depend on the internal details of other objects, only on the messages to which they respond.
Messages insure the modularity of the system because they specify the type of operation desired, but not how that operation should be accomplished. For example, there are several representations of numerical values in the Smalltalk-80 system. Fractions, small integers, large integers, and floating point numbers are represented in different ways. They all understand the same message requesting the computation of their sum with another number, but each representation implies a different way to compute that sum. To interact with a number or any object, one need only know what messages it responds to, not how it is represented.]
[An important part of designing Smalltalk-80 programs is determining which kinds of objects should be described and which message names provide a useful vocabulary of interaction among these objects. A language is designed whenever the programmer specifies the messages that can be sent to an object. Appropriate choice of objects depends, of course, on the purposes to which the object will be put and the granularity of information to be manipulated.]
[In designing a Smalltalk-80 application, then, choice of objects is the first key step. There really is nothing definitive to say about the "right way" to choose objects. As in any design process, this is an acquired skill. Different choices provide different bases for extending an application or for using the objects for other purposes. The skilled Smalltalk-80 programmer is mindful that the objects created for an application might prove more useful for other applications if a semantically complete set of functions for an object is specified.]
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriented-software+unsubscribe@googlegroups.com.
>> To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriented-software+unsubscribe@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriented-software+unsubscribe@googlegroups.com.