3 ms·
Dutch directness has a side effect of coming across as arrogant, its merely a difference in culture[0]. For example, if you are Dutch and your friends are Dutc
by emirozer 11y ago
Dutch directness has a side effect of coming across as arrogant, its merely a difference in culture[0].
For example, if you are Dutch and your friends are Dutch, you don't go on and ask "how are you?" to the people that aren't close to you.
The question "how are you?" is actually there for you to show genuine interest in someone else's life at that moment. The polar opposite of it is the US version i guess, where a "how are you?" results almost always with a "fine and you?".
On another note, i think the main reason(i might be very wrong here) that they had this clash is Alan Kay being a pioneer in object oriented programming. And Dijkstra's counter-discourses against it and sometimes those discourses were harsh[1]. (Although we can agree oop is garbage :D, that is certainly not the best way to put it.)
[0]: Although i have met some Dutch people that were being rude and trying to cover it with "Directness"
http://www.iamexpat.nl/read-and-discuss/expat-page/articles/perks-of-dutch-directness http://www.iamexpat.nl/read-and-discuss/expat-page/articles/...
[1]: http://harmful.cat-v.org/software/OO_programming/ http://harmful.cat-v.org/software/OO_programming/
- nnq 11y ago> Although we can agree oop is garbage :D Can we? The stuff that Alan Kay put forward in Smalltalk, with message-passing, polymorphism, late binding etc.... was definitely NOT garbage imho! What C++ an Java and all the all the languages that tried to copy them, and also Javascript with its prototypal inheritance ended up with... it stinks indeed. But where Scala on one side, and Go and Rust on the other are going... that will be interesting at least :) Maybe Odersky is on to something with his whole "functional and oo are orthogonal" thing... though the way macros are implemented in Scala on top of and USING the oo core instead of separate and serving as the foundation for oo (CL style) makes me wanna puke when reading the resulting code...
- vezzy-fnord 11y agoIndeed, OO hatred is usually a sign of an inexperienced functional programmer.
- Lawtonfogle 11y agoHatred of most any language or set thereof is often a sign of inexperience. The only exceptions I can think of are production use of most joke/esoteric languages and Oracle Forms.
- MichaelGG 11y agoDoesn't this mean that anything in production is beyond "hatred"?
- haxeny1 11y agoSmalltalk was a great start, though, that should not have been the benchmark for implementing object oriented languages. There are some valid concerns about oo that were imo missing in mainstream languages such as Java/C++: uniform access principle (scala provides for that, but scala is a different type system) pre-conditions/postconditions as part of core language rather than annotated comments. weaker/stronger pre-conditions/postconditions in derived classes : this makes the use of methods quite obvious and what features are being inherited from the parent class. selective exports of features (this is a less known feature but can save a developer many a times). Repeated inheritance/multiple inheritance implemented right (so diamond hierarchies should be handled without having to resort to any ambiguities). Genericity (templates that understood hierarchy: this was missed in C++ at least in 2001. I havent programmed in C++ since then) Covariance (this was a direct side effect of method inheritance and I found it to be useful). Without these features and many other features (I borrow this list from Bertrand Meyer's OOSC, 2nd edition), language compilers tend to shift the burden from the compiler to the programmer to manage types etc. It is probably too late to go back to Eiffel, though, I still think that it even today is far ahead of most oo languages, so if folks feel strongly against oo, I can understand that to some extent. I recall a small exercise,where I was modeling Matrix using integers to do some basic addition and multiplication in Eiffel. It worked the code compiled, tested, assertions validated etc. All good. But how about determinants (I forgot the exact computation that needed that). I was still programming in java at my work and had that sinking feeling of change code at few places to make things Float and (read them as objects instead of primitives etc..you know the drill). It turned out, that the Number hierarchy in Eiffel was quite refined, I changed the declaration at one place and everything worked as expected. This was a small exercise, though it clearly outlined the power of the language. As an aside, there was another feature that ensured that floating point numbers weren't being allocated on a heap: it was a keyword : Expanded: implying no references are created for the expanded objects. This feature alone can save a ton when decoding objects from a network etc, without me, the developer, having to worry about boxing/unboxing and the subsequent performance implications. So, yes, OO was/is a great paradigm, though it is the details of implementation that matter. When I used to attend job interviews and was faced with one of the canned questions: which is better Java or C++, I started to take the "fifth" because I could not in all honesty compare truly bad implementations of the oo paradigm. The only reason I started to briefly look up scala was because Martin Odersky used Eiffel as one of his references : Uniform Access Principle to implementing the Scala type system. But that is as far as I could go, because, after looking at OCAML, it hit me that oo and functional can't safely mix.
- jimmaswell 11y agoOOP is anything but garbage. It's extremely productive for GUIs, gamedev, lots of things. Don't be ridiculous. It's a shame it's "hip" to pretend it's awful around here.