Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I thought Objective-C was basically smalltalk, but maybe I'm mistaken


My comparison was more with the developer experience. In Smalltalk you live inside your program, doing edits as you go along and with dynamic introspection. In Objective-C you would edit your program from the outside, and then build it after doing changes, maybe introspect it from the outside.

Pharo is a nice implementation of Smalltalk and they have a nice page that describes the top features of the language. Take a look and see if it's different from the developer experience you had with Objective-C: https://archive.is/uAWX5 (linking to a archive via archive.is as some images couldn't load)


On the surface yes, however in order to keep the "-C" side Objective-C lost all of smalltalks dynamic REPL development experience in exchange for the traditional compile/run/repeat cycle.


Objective-C adopted some syntactic "quirks" from smalltalk, but they are not similar at a semantic level.


What are the key differences? My understanding was that both languages are heavily built around message passing between objects and dynamic dispatch.


In particular, similarly to Smalltalk and differently for example from C++, Objective-C does method dispatching from empty interfaces and has does-not-understand functionality.

Everything Is An Object in Smalltalk, and of course this can't be true in Objective-C due to its mixed heritage.


in smalltalk you are always running inside of a live system, so if you made a mistake its immediate that it happened right then and there, but in obj-c its a code-build-run environment so the place you changed and the state you have to progress to to exercise that change are far away and you might not catch it until runtime / in the field.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: