An Object-Oriented Language for the '20s
It seems to me that you could do almost everything you want (except for the immutable thing) in Free Pascal.<p>Pascal doesn&#x27;t have the kingdom of nouns problem. It supports good old fashioned procedures and functions.<p>Pascal can deal with nulls in strings, because we always know how long they are.<p>Or perhaps you meant null pointers. Pascal avoids unnecessary pointers, but supports them in a sane manner when you need them.<p>Pascal can deal with multiple inheritance in a sane manner, by composition. Objects can have other objects as properties, and it just works... no weird restructuring of everything horror stories I&#x27;ve heard about in C++, etc.<p>Free Pascal has generics there are libraries that let you do dictionaries and lists and trees of your type &lt;T&gt;.<p>I disagree about exceptions... proper handling of exceptions is a good thing. A function should always return the type you expect, not some weird value you have to test for.<p>As far as &quot;pattern matching&quot; I assumed you were talking about regex (which can be addressed in a library)... but you&#x27;re talking about RTTI, or &quot;reflection&quot; where you can get type information at runtime, which is a thing in Pascal and many other languages.<p>I don&#x27;t understand the obsession with immutable variables.<p>[Edit: I think I understand... in Pascal, parameters are passed by value as the default, but <i>can</i> be passed by reference, it depends on how you declare the function or procedure. It has nothing to do with variables that you can&#x27;t assign new values to, if I&#x27;m correct]<p>Did I miss anything?