Live data from Hacker News

Brad Cox has died

legacy.com

81–90 of 197 posts

Re: Brad Cox has died

#81

I met him once in the late 1990s, when his travels took him to Zurich and he asked me whether I could book a talk for him at ETH Zurich, where I was a grad student. I did not quite share his confidence in my abilities in that area, but to my relief, Jürg Gutknecht agreed to sponsor the talk, and I got to spend lunch with Brad Cox, Niklaus Wirth, and Jürg Gutknecht. Given their highly divergent aesthetics in language…

The book to go with is "Superdistribution: Objects as Property on the Electronic Frontier" which is a fun read.

Objective-C is still my favorite language and I loved his writing when first learning it in 94.

Re: Brad Cox has died

#82

There is no doubting the legacy of Objective-C (especially given the high likelihood you are reading this post on a mobile device, using app written in Objective-C), but to truly appreciate Brad's legacy, am curious about the appeal of using Objective-C. Having developed only one small iOS app with Objective-C code, I was mostly turned off by its overall verbosity in the context of NS prefixes. Hence, I ask the quest…

> Having developed only one small iOS app with Objective-C code, I was mostly turned off by its overall verbosity in the context of NS prefixes. This is actually a blessing because NS-/name prefixes are a simple approach to naming that keeps you humble. If you let programmers have namespacing they will invent enterprise software frameworks where every class is six layers deep in a namespace of random tech buzzwords t…

> It implements message-based programming, which is "real" OOP

No, it's message-based programming, which is a very powerful and useful tool. It's not the one true inheritor of the fundamental OOP concept.

OOP wasn't defined by "you send messages to objects", it was defined by the idea that objects had their own semantics which in turn constrained/defined the things you could do with them. Some OOP languages implemented "doing something to an object" as "send it a message"; some didn't.

ObjC is in the former group; C++ is in the latter.

Re: Brad Cox has died

#83

There is no doubting the legacy of Objective-C (especially given the high likelihood you are reading this post on a mobile device, using app written in Objective-C), but to truly appreciate Brad's legacy, am curious about the appeal of using Objective-C. Having developed only one small iOS app with Objective-C code, I was mostly turned off by its overall verbosity in the context of NS prefixes. Hence, I ask the quest…

Objective-C is a very simple, clean language–very much unlike its other "object-oriented-C competitor" C++. Unlike C++ it's a 100% superset of C, and it takes its cues from Smalltalk where objects send messages to each other rather than statically call each other's procedures. To support this, there is a very rich runtime that allows all sorts of reflection and metaprogamming atypical in a compiled language.

I don't see how you can call ObjC any more of a superset of C than C++.

Object-related syntax in ObjC is completely alien to C. Object-related syntax in C++ (mostly) extends C structure syntax.

Yes, ObjC takes its cues from Smalltalk. C++ does not. And so... ?

[EDIT: ok, so people want to interpret "superset" as meaning "every valid C program is a valid Objective C program too. This is, with very few exceptions, true of C++ as well ]

Re: Brad Cox has died

#84
post #73
post #58

Earlier quoted context omitted.

> ObjC is a "child" of the 1980's when verbosity was considered a merit and a norm in programming. It's still considered a merit by some.

I agree with this. Verbose code is code you can come back to an understand years down the road. The easiest projects for me to pick back up are the ones I wrote in Objective-C, hands down.

>Verbose code is code you can come back to an understand years down the road.

For ObjC, "verbose code" means "code you can come back to years down the road and hope there's still a manual to translate those message argument names into whatever current programming terminology uses".

Re: Brad Cox has died

#85
post #31

I am giving a talk in work soon around method swizzling in iOS and was delving into the history of Objective-C a bit and came across Alan Kay's talk about the power of simplicity and how we've all screwed up OOP. In the talk, Alan talks about the ant who lives his life on a single plane of existence, the "Gulley World" or "Reality". The ant goes to work, he finds stuff to eat, he lives his life in this Gulley World,…

"I think Alan's idea of OOP was something more fluid, more organic than this." I've heard a good deal about Alan Kay's dissent of the state of OOP, but I've never seen a concise summary of his vision or the principles that Kay's 'ideal' realization of OOP would adhere to. Does such a resource exist, written by Kay himself or otherwise? Or do I just need to go play around with Obj C or Smalltalk to really "get it?"

He did an AMA here once:

https://news.ycombinator.com/item?id=11939851

Re: Brad Cox has died

#87

Earlier quoted context omitted.

Objective-C is a very simple, clean language–very much unlike its other "object-oriented-C competitor" C++. Unlike C++ it's a 100% superset of C, and it takes its cues from Smalltalk where objects send messages to each other rather than statically call each other's procedures. To support this, there is a very rich runtime that allows all sorts of reflection and metaprogamming atypical in a compiled language.

I don't see how you can call ObjC any more of a superset of C than C++. Object-related syntax in ObjC is completely alien to C. Object-related syntax in C++ (mostly) extends C structure syntax. Yes, ObjC takes its cues from Smalltalk. C++ does not. And so... ? [EDIT: ok, so people want to interpret "superset" as meaning "every valid C program is a valid Objective C program too. This is, with very few exceptions, true…

ObjC doesn't change any existing C syntax, it only adds messages. C++ is an entirely different language with a different spec that merely looks like C.

Re: Brad Cox has died

#88
post #31

I am giving a talk in work soon around method swizzling in iOS and was delving into the history of Objective-C a bit and came across Alan Kay's talk about the power of simplicity and how we've all screwed up OOP. In the talk, Alan talks about the ant who lives his life on a single plane of existence, the "Gulley World" or "Reality". The ant goes to work, he finds stuff to eat, he lives his life in this Gulley World,…

"I think Alan's idea of OOP was something more fluid, more organic than this." I've heard a good deal about Alan Kay's dissent of the state of OOP, but I've never seen a concise summary of his vision or the principles that Kay's 'ideal' realization of OOP would adhere to. Does such a resource exist, written by Kay himself or otherwise? Or do I just need to go play around with Obj C or Smalltalk to really "get it?"

But, yes, you really need to play around with one to 'get it'. Or at least, get why the other languages fail to really uphold the goal.

Per the original anecdote, being told "it's all blue!" isn't that impressive when you've seen the spots of blue and shrugged them off as just normal little detours amongst the pink, and can't imagine everything being blue. You have to see it for yourself.

Re: Brad Cox has died

#89

Earlier quoted context omitted.

Objective-C is a very simple, clean language–very much unlike its other "object-oriented-C competitor" C++. Unlike C++ it's a 100% superset of C, and it takes its cues from Smalltalk where objects send messages to each other rather than statically call each other's procedures. To support this, there is a very rich runtime that allows all sorts of reflection and metaprogamming atypical in a compiled language.

I don't see how you can call ObjC any more of a superset of C than C++. Object-related syntax in ObjC is completely alien to C. Object-related syntax in C++ (mostly) extends C structure syntax. Yes, ObjC takes its cues from Smalltalk. C++ does not. And so... ? [EDIT: ok, so people want to interpret "superset" as meaning "every valid C program is a valid Objective C program too. This is, with very few exceptions, true…

Because ObjC is a strict superset of C in the technical sense. That is: every valid C program is also a valid Objective-C program.

Of course idiomatic ObjC is heavily tilted toward the non-C parts of the language (OOP features), but that doesn’t mean it’s not a true superset of C.

Re: Brad Cox has died

#90

Very sad. I had the privilege of taking a class from him at George Mason University, and he was (unsurprisingly) very knowledgeable. He worked hard to enable software reuse. No one was interested in his idea of trying to monitor component use during runtime to pay developers. That was an unworkable approach, and I told him that then. But the general world of making it easy to reuse components is a reality today, via…

> He worked hard to enable software reuse. No one was interested in his idea of trying to monitor component use during runtime to pay developers.

This is a nice idea although I never thought it could've worked; it seems like it took forever for people to stop trying though. The app-and-library organization of software is more natural than document-and-component organization because of Conway's law, which is surprisingly hard to escape.

Post reply on HN