5 ms·
The Early History of Smalltalk: http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html If yo
by recuter 11y ago
The Early History of Smalltalk:
http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html
If you have an extra hour, there's a beautifully written People's History sort of thing by Alan Kay. SmallTalk was born out of necessity and was basically an operating system implemented in a very elegant and academic manner.
Alan had an idealistic vision of the masses not using computers as end users do now, but as programmers. SmallTalk had a very strong educational slant. They even tried to teach Xerox executives how to code.
I'd say it lives on in languages like Python and Ruby which are much more pragmatic when it comes to OOP and getting stuff done. I'd also say a lot of its charm and elegance is gone from the world. But the good ideas from it are with us.
- EliRivers 11y agoSmalltalk lives on in Objective-C :) I learned the syntax of Objective-C from a tiny reference guide. I learned how to program in Objective-C by reading Chamond Liu's "Smalltalk, Objects, and Design".
- masklinn 11y ago> Smalltalk lives on in Objective-C :) Not in any way, shape or form. Some of smalltalk's syntax lives in objective-c, but that's it. None of smalltalk's intentions or goals do.
- randomsearch 11y ago> Not in any way, shape or form. Some of smalltalk's syntax lives in objective-c, but that's it. None of smalltalk's intentions or goals do. So, in some way, shape, or form, then. No need to be so extreme.
- EliRivers 11y agoFor me, the most Smalltalk-like aspect of it was that I could send any message to any object. This was radically unlike, for example, C++, where I could only call functions on objects when those functions actually existed. What I'm really saying here is that I disagree with you, and I believe you are incorrect in stating that none of Smalltalk's objectives live on in Objective-C "in any way, shape or form", and that's an example of something from Smalltalk that lives on in Objective-C.
- segmondy 11y agoYou can do the same in ruby, or with lisp. Objective-C doesn't provide a REPL for constant feedback, you find that in ruby, lisp and python. It lives more in those languages than in ObjC.
- david-given 11y agoI don't know Ruby or Lisp, but Python, at least, doesn't like it if you call methods on nil. Smalltalk and Objective C both let you do that (they do nothing and return nil).
- dragonwriter 11y agoIn Ruby, nil is the singleton object of NilClass, and you can call method on it like any object -- heck a key way of distinguishing it from False is that they respond differently to .nil?
- masklinn 11y ago> I don't know Ruby or Lisp, but Python, at least, doesn't like it if you call methods on nil. That's false. Python likes it every bit as much as if you call methods on any other object: it works fine if you wall a method which exists on the object, raises an AttributeError if you try to access an attribute which does not exist and raises a TypeError if you try to call an attribute which isn't callable. >>> None.__hash__() -9223372036578437293 > Smalltalk let you do that (they do nothing and return nil). That is also false. While UndefinedObject responds to a fair number of messages (compared to NoneType anyway), sending an "unknown" message to `nil` will signal an exception as it would just about anywhere else (because it'll defer to the standard Object implementation of #doesNotUnderstand). You can redefine `UndefinedObject doesNotUnderstand` so that it does something (or does nothing and return `nil`), but that definitely isn't the default behaviour, and it isn't generally considered a good idea.
- david-given 11y ago>> Smalltalk let you do that (they do nothing and return nil). > That is also false. Oops, you're absolutely right --- I was thinking of Objective C: http://stackoverflow.com/questions/156395/sending-a-message-to-nil http://stackoverflow.com/questions/156395/sending-a-message-...
- EliRivers 11y agoI knew I'd read something on the subject. Brad Cox, in his book "Object Oriented programming", discusses the influence Smalltalk-80 had on how he designed Objective-C, when he was creating it. From the opening of chapter four, "Objective-C implements the dynamically bound style of object-oriented programming used in Smalltalk-80 as a set of extensions to a conventional base language, C." Smalltalk-80 gets a lot more discussion, and there is a lot more about the influence of Smalltalk-80. My copy was printed in 1986, when the programming world looked very different, but from his own words it's pretty clear that something of Smalltalk is very much in Objective-C.
- yoz-y 11y agoHowever I'd argue that Objective-C is slowly dying. I do not think that there will be much changes done to it in the future except for those making Swift interface better. Of course I could be completely wrong and maybe Apple will support both forever and use Objective-C to make the said frameworks and promote Swift as an interface to it.
- veidr 11y agoYou aren't wrong. Objective-C is dying. The huge machine that nursed the frail, nearly-forgotten language back to health -- and then pumped it full of steroids and made it a monster -- has been disconnected, and hooked up to Swift, instead. Apple's bet on Objective-C was the only thing that made it broadly relevant -- but now they have moved on, and Apple is generally the type of company that does the opposite of "support both forever". I agree that it is dying very slowly, however. You will probably still be able to write OS X apps in Objective-C in 2020, albeit with various caveats.