4 ms·
> 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 oc
by bartmika 6y ago
> 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". "Hi, I am Brad Cox", was the response and the introduction.
Wonderful story. I wish his family all the best.
I love Objective-C and consider it a beautiful language. Back in the day I re-discovered my love for programming when I started to learn this language. This was when I was still in the Java world.
As a side project I tried to build a drone (unmanned navel vehicle) powered by objective-c. I have abandoned the effort but posted the code on GitHub - it was a joy to work with the language and the funnest side project I’ve worked with.
These days I work with python and golang for job/hobby but I always am grateful to have spent time with objective-c. Reflecting back if I haven’t spent time with this language, today I would of not been a programmer.
Thank you Brad Cox for your work and positive influence.
- deleted 6y ago[deleted]
- bitexploder 6y agoObjective-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, but I enjoyed your work.
- userbinator 6y agoCoincidentally, 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 something like checkLicenseSignature, I almost thought it was misdirection. The second thing that I found astonishing was that these strings were actually being used by the runtime to determine what to call, i.e. something that in basically every other native language I've seen would be a direct or indirect call to an address or vtable offset. All this in an application that has no exported functions. I can definitely see how it would make RE extremely straightforward! Efficiency, on the other hand...
- saagarjha 6y agoObjective-C, at least these days, is plenty fast, with a the cost of a message send being comparable to a virtual function call. The fast path of objc_msgSend is just over a dozen instructions.
- nielsbot 6y agoPlus for critical sections you can obtain method pointers which are just C functions.
- why_only_15 6y agoas i recall, `libobjc` is ~25% of app launch time. `objc_msgSend` is quite expensive when you're making hundreds of thousands to millions of calls per second.
- pjmlp 6y agoAlthough Swift has the spotlight, Objective-C keeps being improved. "Advancements in the Objective-C runtime" https://developer.apple.com/videos/play/wwdc2020/10163/ https://developer.apple.com/videos/play/wwdc2020/10163/
- jcfields 6y agoSwift uses the Objective-C runtime.
- microtherion 6y agoSwift is tiptoeing between static and dynamic typing, preferring the former when feasible, but often needing some of the latter when dealing with the UI.
- pjmlp 6y agoSwift can uses the Objective-C runtime for interoperability with Objective-C code, just like .NET uses COM on Windows. They need to interoperate with the rest of the platform.
- thunderbong 6y agoNot to sidetrack the conversation, but I found your typo of calling a drone an unmanned navel vehicle quite apt!
- m463 6y agoI wonder what objective-c would look like with the square brackets turned into parenthesis...
- wgjordan 6y agoWould probably look a little less sharp...C-flat?
- pjmlp 6y agoJava 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 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 https://en.wikipedia.org/wiki/Distributed_Objects_Everywhere
- cromwellian 6y agoI think it's fair to say it owes some to Obj-C, but both Obj-C and Java owe a lot more to Smalltalk.
- pjmlp 6y agoAlso true.
- omarforgotpwd 6y agounmanned belly button vehicles are the best. much better than the manned ones