A recent introduction to Smalltalk has enlightened me on the application and benefits of a 'pure' object oriented style. I'd previously seen the benefits of this in Ruby, though the presence of non object oriented if
, unless
etc. constructs seemed like it didn't carry things all the way through.
By pure here, I'm talking about things like 'everything is an object' (including functions via blocks or something similar) and no procedural-style flow control, instead using flow control methods on booleans & collections.
Yet, even in a language like Smalltalk some things stand out as not being object oriented. For example it doesn't seem possible to do variable assignment without using special syntax (:= instead of an 'is:' or similar method) and returning values from a function seems to require the ^ operator which doesn't seem to 'belong' to any object.
Are there any languages that carry this style even further?
As a long time Smalltalker I (compared to lots of other answers here) understand what you are after - and the "self" language does go a bit further, at least when it comes to assignments. Not having programmed in self I can't comment it further than that. Another newer language similar to self is Slate, also prototypical and also uses message sends for assignments.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With