3 ms·
What is the difference between this and creating a GUI the good old fashioned way and having a textfield subclass that knows how to two-way bind its value to a
by alexashka 4y ago
What is the difference between this and creating a GUI the good old fashioned way and having a textfield subclass that knows how to two-way bind its value to a remote value?
In other words, if we ignore syntax, what is the fundamentally new capability?
- Rodeoclash 4y agoDeveloper productivity by the looks of it
- mpweiher 4y ago> what is the fundamentally new capability? There hasn't been any fundamentally new capability since (pick your favourite): 1. the Turing Machine 2. the Lambda Calculus 3. the stored program computer 4. the NAND gate No high level language has ever added any fundamentally new capability, everything it can do can be done in machine language. See also: compilers and interpreters. High level languages are purely for human convenience, they exist in order to allow us to express what we want to accomplish in a straightforward manner. When the two don't match, we have an impedance mismatch, one of the most famous ones was using goto for control structures (https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.p...), solved by the introduction of structured programming. Today we also have such an impedance mismatch, because most of what we do is no longer procedural in nature, but our means for expressing this are essentially procedural. My last long-form attempt at explaining this was here: https://2020.programming-conference.org/details/salon-2020-papers/5/Can-Programmers-Escape-the-Gentle-Tyranny-of-call-return- https://2020.programming-conference.org/details/salon-2020-p... For the domain of GUIs (one area where the mismatch is particularly painful and obvious), Stéphane Chatty did a much better job of explaining the problem than I did: https://dl.ifip.org/db/conf/ehci/ehci2007/Chatty07.pdf https://dl.ifip.org/db/conf/ehci/ehci2007/Chatty07.pdf So the "new capability" in Objective-S is having linguistic support for architectural abstractions, so you can directly express components and connectors and their connections. Rather than just implementing them with procedures. And GUI bindings are a good example (which I also talk about in my "Tyranny" paper): we can implement in current programming languages, but we generally cannot express them in the language.