the meaning of “object” in computer languages.
xah's rumination extempore, №201311271937 

object! you hear it about in every lang, every lang's docs. Though, their nature is quite different.

Java, is a tight pant. The whole language is encased in class/object model. In fact, except some primitive types, everything in the lang is a class. In fact, the entire lang, what Sun Micro scum called API/Platform, is a giant class tree. In Java, the class/object thing has a rather definite meaning. A Class is kinda like a factory, from which spring objects. To do things in Java, first you create a factory to spawn the object things. Class/Object in Java, we might say is the classic.

Now, python, is also OOP. However, the nature of class/object in the lang is rather different from Java. Class in python is still a factory, from which spawn objects. But, you don't have to write a class to do things. in java, {class, object, language data type} are distinct concept. But in python, {object, language data type} means about the same thing. So, in python, most values, is a “object”. A string is object. A list is object. Hash table is object. And they all have methods. In general, python is more flexible and dynamic than java. Although almost every value in python is object, but you don't really have to do OOP. And you don't have to define any class if you don't want to to write any program, however large or comple. For example, you can translate the entirety of existing shell scripts to python, without oop in sight. In fact python is often used for sys admin, as perl. Though, python the lang is heavily “object” tied, and you have to buy it in order to live well among its community. its doc, its data types, all talk and revolve about objects. God forbid you don't think of objects.

in lisp, you also have object. Though, here, the “object” isn't any object of OOP. Basically, any source code, any expression, is considered a object when it is run. In lisp, “object” basically means the internal representation of your lisp expression. So, when you type (list x y), and when you eval it, it's said to be lisp object. Of course, some lisp has OO systems as add on, and object have different meaning there.

in JavaScript, almost everything is also a object. However, js object is nothing like Java/python, nor as lisp's internal entity. JS object is pretty much just a hash table. So, in sharp contrast to java, js in fact do not have any class at all. But also, in sharp contrast to python, even though almost every js entity is object, yet js has almost nothing to do with oop. What oop it has, is mostly created by people, as libraries.

JavaScript Tutorial by Example
http://xahlee.info/js/javascript_basics.html

Xah Emacs Lisp Tutorial
http://ergoemacs.org/emacs/elisp.html

Xah's Java Tutorial
http://xahlee.info/java-a-day/java.html

Xah's {Python, Perl, Ruby} Tutorial
http://xahlee.info/perl-python/index.html
Shared publiclyView activity