The document discusses object-oriented programming and homoiconic programming languages. It argues that Ruby's implementation of OOP differs from Alan Kay's original conception, focusing more on messaging between objects rather than treating them as data structures. Homoiconic languages like Lisp are also discussed, where the code is represented as regular data in the language, enabling powerful metaprogramming capabilities. Examples are given showing how macros and declarative programming are enabled through homoiconicity.
33. "OOP to me means only messaging,
local retention and protection and hiding
of state-process, and extreme late-binding
of all things."
Alan Kay
34. "OOP to me means only messaging,
local retention and protection and hiding
of state-process, and extreme late-binding
of all things."
Alan Kay
35. "A conforming processor may omit an
invocation of a method of a built-in class or
module for optimization purpose, and do the
same calculation as the method instead.
In this case, even if a program redefines the
method, the behavior of the program might not
change because the redefined method might not
actually be invoked."
Ruby Standard (JIS X 3017)
49. "In computer programming, homoiconicity is a property of
some programming languages, in which the primary
representation of programs is also a data structure in a
primitive type of the language itself, from the Greek words
homo meaning the same and icon meaning representation.
This makes metaprogramming easier than in a language
without this property."
Wikipedia
50. "In computer programming, homoiconicity is a property of
some programming languages, in which the primary
representation of programs is also a data structure in a
primitive type of the language itself, from the Greek words
homo meaning the same and icon meaning representation.
This makes metaprogramming easier than in a language
without this property."
Wikipedia
51. "In computer programming, homoiconicity is a property of
some programming languages, in which the primary
representation of programs is also a data structure in a
primitive type of the language itself, from the Greek words
homo meaning the same and icon meaning representation.
This makes metaprogramming easier than in a language
without this property."
Wikipedia
52. "In computer programming, homoiconicity is a property of
some programming languages, in which the primary
representation of programs is also a data structure in a
primitive type of the language itself, from the Greek words
homo meaning the same and icon meaning representation.
This makes metaprogramming easier than in a language
without this property."
Wikipedia