<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki.apidesign.org/skins/common/feed.css?116"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>RootClass - Revision history</title>
		<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.12.0rc1</generator>
		<lastBuildDate>Wed, 08 Apr 2026 20:18:18 GMT</lastBuildDate>
		<item>
			<title>JaroslavTulach at 05:56, 10 September 2025</title>
			<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;diff=10810&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 05:56, 10 September 2025&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As a result, if you want to understand a [[Smalltalk]] program/system, you should look at the added '''isSomething''' methods in the '''Object'''. Some might argue, that this is the way [[OOP]] should be done. On the other hand, such kind of programming creates not pure [[OOP|object oriented systems]], but different flavors (in the above case a ''person oriented system''), where capabilities of each object are driven by the variety of '''isSomething''' methods on &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;root class&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As a result, if you want to understand a [[Smalltalk]] program/system, you should look at the added '''isSomething''' methods in the '''Object'''. Some might argue, that this is the way [[OOP]] should be done. On the other hand, such kind of programming creates not pure [[OOP|object oriented systems]], but different flavors (in the above case a ''person oriented system''), where capabilities of each object are driven by the variety of '''isSomething''' methods on &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;its [[RootClass]]&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;I don't like that each [[Smalltalk]] system ends up being completely unique. Merging two such systems together may create a lot of accidental conflicts preventing merge of systems developed independently, as far as I can tell.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;I don't like that each [[Smalltalk]] system ends up being completely unique. Merging two such systems together may create a lot of accidental conflicts preventing merge of systems developed independently, as far as I can tell.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 10 Sep 2025 05:56:40 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>			<comments>http://wiki.apidesign.org/wiki/Talk:RootClass</comments>		</item>
		<item>
			<title>JaroslavTulach at 05:55, 10 September 2025</title>
			<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;diff=10809&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 05:55, 10 September 2025&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[OOP]] languages tend to have a [[RootClass]] - a super type of every object in the system. [[Java]] has {{JDK|java/lang|Object}}. [[Scala]] has '''Any'''. Etc. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[OOP]] languages tend to have a [[RootClass]] - a super type of every object in the system. [[Java]] has {{JDK|java/lang|Object}}. [[Scala]] has '''Any'''. Etc. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Lovers of meta-programming may be excited by that, but on and on, this is not a system that could work in a [[distributed development]] easily. &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Listen&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Lovers of meta-programming may be excited by that, but on and on, this is not a system that could work in a [[distributed development]] &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;environment &lt;/ins&gt;easily. &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Imagine&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The classical [[Smalltalk]] style to implement '''instanceof''' (e.g. to find out if an object is instance of a certain type) is based on a bunch of '''isSomething''' methods:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The classical [[Smalltalk]] style to implement '''instanceof''' (e.g. to find out if an object is instance of a certain type) is based on a bunch of '''isSomething''' methods:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 10 Sep 2025 05:55:02 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>			<comments>http://wiki.apidesign.org/wiki/Talk:RootClass</comments>		</item>
		<item>
			<title>JaroslavTulach at 05:54, 10 September 2025</title>
			<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;diff=10808&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 05:54, 10 September 2025&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[OOP]] languages tend to have a [[RootClass]] - a super type of every object in the system. [[Java]] has {{JDK|java/lang|Object}}. [[Scala]] has '''Any'''. Etc. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[OOP]] languages tend to have a [[RootClass]] - a super type of every object in the system. [[Java]] has {{JDK|java/lang|Object}}. [[Scala]] has '''Any'''. Etc. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Sure, lovers &lt;/del&gt;of meta-programming may be &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;happy with &lt;/del&gt;that, but on and on, this is not a system that could work in a [[distributed development]] easily.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Lovers &lt;/ins&gt;of meta-programming may be &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;excited by &lt;/ins&gt;that, but on and on, this is not a system that could work in a [[distributed development]] easily. &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Listen:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The classical [[Smalltalk]] style to implement '''instanceof''' (e.g. to find out if an object is instance of a certain type) is based on a bunch of '''isSomething''' methods:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The classical [[Smalltalk]] style to implement '''instanceof''' (e.g. to find out if an object is instance of a certain type) is based on a bunch of '''isSomething''' methods:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 10 Sep 2025 05:54:32 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>			<comments>http://wiki.apidesign.org/wiki/Talk:RootClass</comments>		</item>
		<item>
			<title>JaroslavTulach at 05:30, 10 September 2025</title>
			<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;diff=10807&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 05:30, 10 September 2025&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[OOP]] languages tend to have a [[RootClass]] - &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;an &lt;/del&gt;super type of every object in the system. [[Java]] has {{JDK|java/lang|Object}}. [[Scala]] has '''Any'''. Etc. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[OOP]] languages tend to have a [[RootClass]] - &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;a &lt;/ins&gt;super type of every object in the system. [[Java]] has {{JDK|java/lang|Object}}. [[Scala]] has '''Any'''. Etc. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Sure, lovers of meta-programming may be happy with that, but on and on, this is not a system that could work in a [[distributed development]] easily.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Sure, lovers of meta-programming may be happy with that, but on and on, this is not a system that could work in a [[distributed development]] easily.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 10 Sep 2025 05:30:05 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>			<comments>http://wiki.apidesign.org/wiki/Talk:RootClass</comments>		</item>
		<item>
			<title>JaroslavTulach at 05:29, 10 September 2025</title>
			<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;diff=10806&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 05:29, 10 September 2025&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;But enough about [[Smalltalk]] and let's look at [[Java]]'s root class {{JDK|java/lang|Object}}. Can you guess what kind of ''oriented system'' [[Java]] is?&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;But enough about [[Smalltalk]] and let's look at [[Java]]'s root class {{JDK|java/lang|Object}}. Can you guess what kind of ''oriented system'' [[Java]] is?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;I think the answer is clear. [[Java]] is a '''hash oriented language''' and also '''lock oriented language'''&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Image:JavaLangObject.png]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;I think the answer is clear. [[Java]] is a '''hash oriented language''' and also '''lock oriented language'''&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;!&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 10 Sep 2025 05:29:48 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>			<comments>http://wiki.apidesign.org/wiki/Talk:RootClass</comments>		</item>
		<item>
			<title>JaroslavTulach at 04:59, 10 September 2025</title>
			<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;diff=10804&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:59, 10 September 2025&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[OOP]] languages tend to have a [[RootClass]] - an super type of every object in the system. [[Java]] has {{JDK|java/lang|Object}}. [[Scala]] has '''Any'''. Etc. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Sure, lovers of meta-programming may be happy with that, but on and on, this is not a system that could work in a [[distributed development]] easily.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Sure, lovers of meta-programming may be happy with that, but on and on, this is not a system that could work in a [[distributed development]] easily.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 10 Sep 2025 04:59:10 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>			<comments>http://wiki.apidesign.org/wiki/Talk:RootClass</comments>		</item>
		<item>
			<title>JaroslavTulach at 04:56, 10 September 2025</title>
			<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;diff=10802&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:56, 10 September 2025&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;== Extending [[RootClass|Root Hierarchy Class]] ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Sure, lovers of meta-programming may be happy with that, but on and on, this is not a system that could work in a [[distributed development]] easily.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Sure, lovers of meta-programming may be happy with that, but on and on, this is not a system that could work in a [[distributed development]] easily.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 10 Sep 2025 04:56:46 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>			<comments>http://wiki.apidesign.org/wiki/Talk:RootClass</comments>		</item>
		<item>
			<title>JaroslavTulach: New page: == Extending Root Hierarchy Class ==  Smalltalk systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). ...</title>
			<link>http://wiki.apidesign.org/index.php?title=RootClass&amp;diff=10801&amp;oldid=prev</link>
			<description>&lt;p&gt;New page: == Extending &lt;a href=&quot;/wiki/RootClass&quot; title=&quot;RootClass&quot;&gt;Root Hierarchy Class&lt;/a&gt; ==  &lt;a href=&quot;/wiki/Smalltalk&quot; title=&quot;Smalltalk&quot;&gt;Smalltalk&lt;/a&gt; systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Extending [[RootClass|Root Hierarchy Class]] ==&lt;br /&gt;
&lt;br /&gt;
[[Smalltalk]] systems come with a bunch of predefined classes which everyone can use and modify (in the form of serialized heap, btw.). Of course, the nature of [[OOP]] system is to be extensible. Thus one can create new subclasses (OK, that is the same as in [[Java]]), but one can also add new methods to existing classes. Sure, lovers of meta-programming may be happy with that, but on and on, this is not a system that could work in a [[distributed development]] easily.&lt;br /&gt;
&lt;br /&gt;
The classical [[Smalltalk]] style to implement '''instanceof''' (e.g. to find out if an object is instance of a certain type) is based on a bunch of '''isSomething''' methods:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; 1 isNumber&lt;br /&gt;
true&lt;br /&gt;
&amp;gt; 'text' isNumber&lt;br /&gt;
false&lt;br /&gt;
&amp;gt; 'text' isString&lt;br /&gt;
true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What can developers do when they define new types like '''Person''' and want to recognize their instances? They add '''isPerson''' method to '''Object''' to return '''false''' and override it in '''Person''' class to return '''true''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; Object subclass: #Person&lt;br /&gt;
&amp;gt; !Object methodsFor: 'Checking Person'! isPerson  ^false !!&lt;br /&gt;
&amp;gt; !Person methodsFor: 'Checking Person'! isPerson  ^true !!&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One can then easily check on any object if it is a person or not:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;smalltalk&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; 1 isPerson&lt;br /&gt;
false&lt;br /&gt;
&amp;gt; Person new isPerson&lt;br /&gt;
true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a result, if you want to understand a [[Smalltalk]] program/system, you should look at the added '''isSomething''' methods in the '''Object'''. Some might argue, that this is the way [[OOP]] should be done. On the other hand, such kind of programming creates not pure [[OOP|object oriented systems]], but different flavors (in the above case a ''person oriented system''), where capabilities of each object are driven by the variety of '''isSomething''' methods on root class.&lt;br /&gt;
&lt;br /&gt;
I don't like that each [[Smalltalk]] system ends up being completely unique. Merging two such systems together may create a lot of accidental conflicts preventing merge of systems developed independently, as far as I can tell.&lt;br /&gt;
&lt;br /&gt;
== Is [[Java]] an [[OOP]] system? ==&lt;br /&gt;
&lt;br /&gt;
But enough about [[Smalltalk]] and let's look at [[Java]]'s root class {{JDK|java/lang|Object}}. Can you guess what kind of ''oriented system'' [[Java]] is?&lt;br /&gt;
&lt;br /&gt;
I think the answer is clear. [[Java]] is a '''hash oriented language''' and also '''lock oriented language'''.&lt;/div&gt;</description>
			<pubDate>Wed, 10 Sep 2025 04:56:20 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>			<comments>http://wiki.apidesign.org/wiki/Talk:RootClass</comments>		</item>
	</channel>
</rss>