4 ms·
> But with C++ and Java, the dynamic thinking fostered by object-oriented languages was nearly fatally assaulted by the theology of static thinking inherited fr
by mariodiana 4y ago
> But with C++ and Java, the dynamic thinking fostered by object-oriented languages was nearly fatally assaulted by the theology of static thinking inherited from our mathematical heritage and the assumptions built into our views of computing by Charles Babbage whose factory-building worldview was dominated by omniscience and omnipotence.
>
> And as a result we find that object-oriented languages have succumbed to static thinkers who worship perfect planning over runtime adaptability, early decisions over late ones, and the wisdom of compilers over the cleverness of failure detection and repair.
And, there you have it. This is a big part of the reason that I never migrated from Objective-C to Swift. When I was programming in Objective-C, I always felt challenged by the idea that I had something to learn by embracing dynamic programming, and that it would be difficult, because the rest of the "OOP" world had forgotten all about it. What's left now is only a choice of straitjackets.
"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme LateBinding of all things." – Alan Kay
I wish OOP had explicitly forked, all those years ago, and the C++/Java stuff could have been called something else. That would have at least cleared things up, conceptually.
- ladyattis 4y ago>"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme LateBinding of all things." – Alan Kay This is probably why I love programming in Cuis, Pharo, and Squeak. The ability to just write my code in small chunk as I need it. Heck, the fact that block closures exist in the language spec makes it easier to even be kind of FP-like with the code as needed by just passing along function blocks where it fits best and then reverting to the OOP messaging where it's better suited.
- mobiledev2014 4y agoNot to sound dismissive, but I'm curious how that's working for you? Are you still in the industry? Seems the vast majority of jobs that pay well and expect obj-c experience are in the context of "single digit percentage of our codebase is still in that and we just don't touch it."
- mariodiana 4y agoI think what I wrote was misleading. When I wrote that I never migrated to Swift, what I meant was that I never bothered learning it. It broke my heart to have to work on iOS and throw away my Objective-C knowledge and trade (the UI stuff of ) UIKit for SwiftUI, especially as all that remained a moving target for a long time. I just went and got a new job. I'm doing web front-end work with React and TypeScript. I'm not crazy about that, believe me. I don't even bother with iOS stuff right now as a hobby, because I can't really stomach it. I really think Apple went the wrong way. On a side note, I can't stand "reactive" UI's (though that's what I work with now). You know, key-value coding and notifications on iOS can be used to make a reactive UI (of sorts), instead of updating the UI imperatively. But all the books I've ever read from iOS people who knew what they were talking about always warned strongly about overusing KVC or notifications: specifically, because it makes reasoning about how code works more difficult. So, what the hell then is the idea of a reactive UI. It's taking the kind of architecture or pattern programmers have always been warned not to use, and then turning the entire UI into that! I am really just down on the whole thing. I think it's a mistake.
- mobiledev2014 4y agoOh man, hard agree! I love being told that's all just a tooling problem. Okay, so when is that tooling coming then? I'm going along with the crowd but it is a struggle and I wish I could stay in UIKit land until I retire. Maybe things will come full-circle by then (or I'll just be telling SiriGPT what I want to show up on the screen)