Live data from Hacker News

Brad Cox has died

legacy.com

121–130 of 197 posts

Re: Brad Cox has died

#121

Earlier quoted context omitted.

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.

"Yes! C++ is nearly exactly a superset of Standard C95 (C90 and the 1995 Amendment 1). With very few exceptions, every valid C95 program is also a valid C++ program with the same meaning." https://isocpp.org/wiki/faq/c

We are on C17 nowadays.

Re: Brad Cox has died

#122

Earlier quoted context omitted.

"Yes! C++ is nearly exactly a superset of Standard C95 (C90 and the 1995 Amendment 1). With very few exceptions, every valid C95 program is also a valid C++ program with the same meaning." https://isocpp.org/wiki/faq/c

The implicit casting rules are different, it doesn't allow VLAs, you can implicitly create static constructors instead of having your program rejected for non-constants at the top level, more keywords are unavailable as variable names…

VLAs are optional since ISO C11, clang and gcc are probably the only C compilers that care to support them.

C17 also has its share of keywords and C2X plans to replace some of the _Keyword with they keyword version, as enough time has passed since their introduction.

Re: Brad Cox has died

#123

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…

I think the vision of Software ICs was delivered most fully by VBX custom controls for Visual Basic and Delphi. Superseded by OCX.

There were hundreds of them you could download for free or paid, doing all kinds of GUI and non-GUI tasks.

Doesn’t seem so popular now.

Re: Brad Cox has died

#124

Earlier quoted context omitted.

Coincidentally, I've been doing RE for many years, starting in the days of DOS and then moving into Windows, but it was only very recently --- less than a week ago --- that I had my first look at an app written in ObjC, and the first thing I noticed was the amount of information in the binary that seemed to almost give away most of its source: method, field, and class names everywhere. When I saw a method named somet…

> these strings were actually being used by the runtime to determine what to call Fortunately it doesn't do a full string comparison - it just compares the value of the string pointers, I understand.

Yes: selectors are interned.

Re: Brad Cox has died

#125
post #122

Earlier quoted context omitted.

The implicit casting rules are different, it doesn't allow VLAs, you can implicitly create static constructors instead of having your program rejected for non-constants at the top level, more keywords are unavailable as variable names…

VLAs are optional since ISO C11, clang and gcc are probably the only C compilers that care to support them. C17 also has its share of keywords and C2X plans to replace some of the _Keyword with they keyword version, as enough time has passed since their introduction.

Clang and GCC being the two largest implementations.

Re: Brad Cox has died

#126
post #116

> On one scuba diving excursion while in the compound having lunch, Brad engaged a couple from Germany in conversation. Brad asked about the fellow travelers occupation and discovered he was a computer programmer. Lifewise, Brad was asked about his life's work and stated I am also a computer programmer. "What do you do?" Brad was asked. I wrote Objective-C. Astonished, the gentlerman said, "No, Brad Cox wrote that".…

Java also owns it to Objective-C, while it copied C++ syntax, protocols, reflection and dynamic loading come from Objective-C. https://cs.gmu.edu/~sean/stuff/java-objc.html And what many J2EE/JEE haters aren't aware of, it started as an Objective-C framework during the OpenSTEP days, and the OS was called Spring. https://en.wikipedia.org/wiki/Distributed_Objects_Everywhere

I think it's fair to say it owes some to Obj-C, but both Obj-C and Java owe a lot more to Smalltalk.

Re: Brad Cox has died

#127

What an amazing career. I was curious about this: >"The late Steve Jobs', NeXT, licensed the Objective-C language for it's new operating system, NEXTSTEP. NeXT eventually acquired Objective-C from Stepstone." Does anyone what NeXT paid to acquire the Objective-C license?

They were both privately held companies, so it might never have been disclosed. Part of the acquisition was that NeXT would license Objective-C back to Stepstone for their own products, so it was more than an outright purchase anyway.

Tom Love mentioned it in a talk once (sorry, I’m not in a position to search for the reference right now). They were offered a choice between a fixed fee of some tens of thousands of dollars, or fifty cents per device. They picked the fixed fee, and felt it was the correct choice right up to the 2000s.

Re: Brad Cox has died

#128
post #122

Earlier quoted context omitted.

VLAs are optional since ISO C11, clang and gcc are probably the only C compilers that care to support them. C17 also has its share of keywords and C2X plans to replace some of the _Keyword with they keyword version, as enough time has passed since their introduction.

Clang and GCC being the two largest implementations.

True, but not the only ones, so good luck making that VLA code work outside BSD/Linux clones or the few OEM vendors that have forked them.

Also Google has sponsored the work to clean Linux kernel from VLAs.

Re: Brad Cox has died

#129
post #116

Earlier quoted context omitted.

Java also owns it to Objective-C, while it copied C++ syntax, protocols, reflection and dynamic loading come from Objective-C. https://cs.gmu.edu/~sean/stuff/java-objc.html And what many J2EE/JEE haters aren't aware of, it started as an Objective-C framework during the OpenSTEP days, and the OS was called Spring. https://en.wikipedia.org/wiki/Distributed_Objects_Everywhere

I think it's fair to say it owes some to Obj-C, but both Obj-C and Java owe a lot more to Smalltalk.

Also true.

Re: Brad Cox has died

#130

Earlier quoted context omitted.

Objective-C is a real object oriented programming language. Everything is messages. Reverse engineering ObjC as a security engineer over the years has been a treat. The runtime is a breeze to work with and the language itself made substantial usability improvements over C. It’s phased out over Swift now, but I really have no complaints over my time with the language, a rare thing in tech. I didn’t know you, Mr. Cox,…

Coincidentally, I've been doing RE for many years, starting in the days of DOS and then moving into Windows, but it was only very recently --- less than a week ago --- that I had my first look at an app written in ObjC, and the first thing I noticed was the amount of information in the binary that seemed to almost give away most of its source: method, field, and class names everywhere. When I saw a method named somet…

> All this in an application that has no exported functions

This is not strictly true: On macOS/iOS the OS/frameworks/plug-ins may call your methods, likewise with support for services, input managers, distributed objects, etc.

The responder chain is a good example of this dynamism: The input manager (responsible for interpreting key strokes) translate the user’s input into a message, e.g. “copy” or “insert A” and then finds the first object in the chain of objects that responds to this message.

This chain of objects may consist of standard framework objects (like a text view) or it may be your custom objects (like a view controller subclass).

In most other environments, you would have to create special interfaces for stuff you want to make public, this means only that stuff suffers the performance overhead, but you generally pay the cost in code complexity, see e.g. Window’s Component Object Model.

Post reply on HN