Shared publicly  - 
 
just made a new discovery about the object oriented programing fiasco.

in node.js, the "object" is no longer a data, rather, it's more used as a namespace. For example,

var pp = require('path');
pp.extname('index.html')        // .html

this is actually fantastic. Screw the OOP.

What are OOP's Jargons & Complexities (OOP as Functional Programing)
http://xahlee.info/comp/oop.html

On the Idiocy of Dot Notation of Object Oriented Programing Languages
http://xahlee.info/comp/oop_dot_notation.html

Meaning of Object in Computer Languages
http://xahlee.info/comp/meaning_of_object_in_computer_languages.html

Confusing Terminology in JavaScript/DOM: tag, element, node, object, attribute, property, method
http://xahlee.info/js/javascript_DOM_confusing_terminology.html
What are OOP's Jargons & Complexities (OOP as Functional Programing). Xah Lee. , 2005-01-30 , …, 2011-04-30. Tweet. This article explains the jargons & complexities of the Object Oriented Programing (OOP) paradigm, in terms of basic concept of functions, using Java as example.
1
1
Xah Lee's profile photoRob Shinn's profile photoYuri Khan's profile photoRama Adhitia's profile photo
7 comments
 
The Python example is due to the fact that Python has no built-in support for regular expressions, unlike, say, Perl.  The re module in Python is actually an external library, which, while part of the Python distribution, isn't really part of the language, but is rather a bolt-on.  A better example would be point out the idiocy of  the string split vs. join methods.
 
I like JavaScript's way of doing namespaces and OO. The biggest warts I've seen are those crazy unexpected overloads of +.
 
$( "#progressbar" ).progressbar({value: 10});

Yeah.  No warts there.
 
Javascript is not an OO language at its core. It is actually a dynamic-typed functional language like Lisp, but with a native dictionary data type. Turns out that is almost sufficient to implement OO.

Dictionaries + function variables ⇒ encapsulation of code and data.
Dictionaries + function variables + magic .prototype name lookup ⇒ inheritance, sort-of.
Dynamic typing in the language + duck typing in the program ⇒ polymorphism. You can call any function on any values, then it’s up to you to see that the actual value supports all properties needed for the function. (Lack of operator overloading is not considered an obstacle.)
Encapsulation + inheritance + polymorphism ⇒ OO.
Xah Lee
 
+Yuri Khan “Javascript is not an OO language at its core.”
that depends on your point of view.
“I invented the term object oriented, and I can tell you that C++ wasn't what I had in mind.” —Alan Kay.
☺
 
By +Yuri Khan's definition, Smalltalk doesn't qualify as an OOP language either +Xah Lee 

Except that it was the original OOP language. :)
 
+Rob Shinn Smalltalk has encapsulation (objects have state and behavior which are tied together), inheritance (subclassing) and polymorphism (you can send the same messages to different classes of objects). So it is OO.
Add a comment...