[HN Gopher] Wisdom from computing's past
       ___________________________________________________________________
        
       Wisdom from computing's past
        
       Author : LAC-Tech
       Score  : 34 points
       Date   : 2023-11-12 02:15 UTC (20 hours ago)
        
 (HTM) web link (lewiscampbell.tech)
 (TXT) w3m dump (lewiscampbell.tech)
        
       | k1ns wrote:
       | I am curious to learn what concepts we may have lost and not just
       | abstracted away. Is the knowledge lost or niche? Is it necessary
       | for programming in general or a subset of the practice?
       | 
       | I read the article but didn't see exactly _what_ has been lost.
        
         | Swizec wrote:
         | To give an obvious example, it seems every generation re-
         | discovers the concepts of encapsulation and abstraction every 5
         | years or so. Each generation thinks we're so smart for having
         | figured this out and how much easier software development
         | becomes when your code has a clear purpose and interface.
        
         | LAC-Tech wrote:
         | I maybe could have done a better job of what so captivated me
         | watching the 'The Computer Programme' and why that feeling's so
         | different today. The idea of ordinary people buying a computer
         | and programming it to do useful things was one. Personal
         | address books was covered in an episode - that's gone. There
         | was the implicit assumption that your machine and your data was
         | your own.
         | 
         | As for specific technologies, here's my rough list of what
         | we're either starting to forget, had to re-remember recently,
         | or have completely forgotten:
         | 
         | - low latency, simple, native UIs that don't require a designer
         | 
         | - operating on data locally first, and not over a network
         | 
         | - information highway instead of doom-scrolling
         | 
         | - message passing (constantly re-discovered, and then forgotten
         | because people complain it's not RPC)
         | 
         | - relational and logic programming - I firmly believe this will
         | come back one day, but it will be called something else and
         | look new.
         | 
         | - static memory allocation. turns out it's still incredibly
         | fast to do this.
         | 
         | - software design
        
           | 0xDEAFBEAD wrote:
           | >- information highway instead of doom-scrolling
           | 
           | It's really interesting to read about the vision that drove
           | Douglas Englebart (inventor of the computer mouse, did the
           | "Mother of All Demos" where he introduced a bunch of modern
           | computing tech for the first time). Englebart was a hippie
           | who envisioned a future where researchers used the tools he
           | was creating to collaborate remotely and work to solve
           | complex problems. His tagline was "Boosting Our Collective
           | IQ"
        
           | User23 wrote:
           | > I firmly believe this will come back one day, but it will
           | be called something else and look new.
           | 
           | It's called SQL, and it's pretty big and you can get paid a
           | lot for being good at it.
        
             | LAC-Tech wrote:
             | I meant relational programming in the sense that William E.
             | Byrd uses it, as something like a close cousin or a
             | different way of looking at logical programming
             | 
             |  _miniKanren is being used for research in "relational"
             | programming. That is, in writing programs that behave as
             | mathematical relations rather than mathematical functions.
             | For example, in Scheme the append function can append two
             | lists, returning a new list: the function call (append '(a
             | b c) '(d e)) returns the list (a b c d e). We can, however,
             | also treat append as a three-place relation rather than as
             | a two-argument function. The call (appendo '(a b c) '(d e)
             | Z) would then associate the logic variable Z with the list
             | (a b c d e). Of course things get more interesting when we
             | place logic variables in other positions. The call (appendo
             | X '(d e) '(a b c d e)) associates X with (a b c), while the
             | call (appendo X Y '(a b c d e)) associates X and Y with
             | pairs of lists that, when appended, are equal to (a b c d
             | e). For example X = (a b) and Y = (c d e) are one such pair
             | of values. We can also write (appendo X Y Z), which will
             | produce infinitely many triples of lists X, Y, and Z such
             | that appending X to Y produces Z._
             | 
             | https://stackoverflow.com/a/28556223
        
           | dartos wrote:
           | > low latency, simple, native UIs that don't require a
           | designer
           | 
           | This is very much alive for internal tools, but the
           | importance of design from a product perspective has proven
           | important, which is why you don't see much in products
           | anymore.
           | 
           | > information Highway instead of doom-scrolling
           | 
           | Those are just buzzwords, what exactly do you mean by this?
           | 
           | > relational and logic programming
           | 
           | SQL is alive and well, granted newer programmers don't learn
           | it as early as they should
           | 
           | > static memory allocation
           | 
           | I'd like to hear more of your thoughts on this as well. We've
           | found that this kind of memory allocation is error prone
           | especially in multithreaded workloads, which is why it's not
           | as popular
           | 
           | > software design
           | 
           | Another buzz term. Software is constantly designed and the
           | design of software is constantly discussed. What exactly do
           | you mean by this? Who forgot what?
        
         | fungiblecog wrote:
         | The idea that the user's time is more valuable than the
         | developer's
         | 
         | The idea that the user is not an idiot
        
           | Cacti wrote:
           | Both of these are manifestations of the same underlying
           | cause: arrogance combined with ignorance.
        
         | TacticalCoder wrote:
         | > I read the article but didn't see exactly what has been lost.
         | 
         | TFA contains this: _" The graphical display is the servant of
         | information, not the master of it."_ and _" the computer being
         | a tool we use to better our lives"_.
         | 
         | I think what has been lost is that instead of a slave (not my
         | terminology, it's the one in TFA btw) at your service, the
         | computer has become a master and you're the slave. At the mercy
         | of a few gigantic corps and states spying your every move and
         | turning you into a consumer, instead of a producer.
         | 
         | It's made painfully obvious with the ultimate consumption
         | device: the smartphone. Which are mostly used to consume
         | pointless, debilitating, content and not to produce anything of
         | value.
         | 
         | The computer as a tool still exists though: architects, 3D
         | artists, accountants even (yup, they're needed), engineers,
         | music creators... These professionals use actual computers,
         | typically with gigantic screens, as a tool to help them.
         | 
         | It used to be _only_ that way, for everybody, and that 's
         | what's been lost. The masses are mindlessly consuming content
         | of exactly zero value on what they believe is a computer ("My
         | smartphone is a more powerful computer than the computer of the
         | 70s/80/s/90s!").
         | 
         | That's how I interpret it and I take I'm not very far from what
         | TFA means.
        
           | LAC-Tech wrote:
           | _I think what has been lost is that instead of a slave (not
           | my terminology, it 's the one in TFA btw)_
           | 
           | Actually, it is your terminology! I used the word 'servant'
           | not 'slave'.
           | 
           | It was a deliberate choice. My commentary was more about how
           | our visual presentation now takes centre stage, often at the
           | expense of displaying information clearly or usefully. This
           | is a mindset shift and not really a technical issue. So
           | master/slave didn't fit, as that has more precise technical
           | definitions; database replication, disk arrangements, etc.
        
         | Cacti wrote:
         | UI frameworks, OO, and databases/SQL get reinvented every 5
         | years or so, usually by younger programmers who seem
         | particularly ignorant of the lessons learned from decades of
         | research and development in these areas.
        
         | linguae wrote:
         | There's a documentary that's in post-production named "Message
         | Not Understood: Profit and Loss in the Age of Computing" that
         | chronicles Xerox PARC's research on graphical user interfaces
         | and personal computing and how modern personal computing and
         | the Web have deviated from the visions of Xerox PARC
         | researchers. I'm highly interested in watching it once it is
         | released.
         | 
         | In my opinion, what we've lost from the early days of personal
         | computing is a sense of empowering users by giving them tools
         | that not only they can use, but they can extend and even
         | modify. Sure, today's hardware and software are more capable
         | than ever, and these extra capabilities do empower users in the
         | sense that their tasks are made easier. But what about the
         | ability to shape their environment? All too often software
         | these days is locked behind walled gardens and binary code.
         | Users generally have to accept their software packages as is.
         | If Slack or Zoom or Photoshop changed its interface, too bad;
         | you gotta just cope. Even FOSS can be an impenetrable mass of
         | hundreds of thousands of lines of C and C++ code that even a
         | seasoned software engineer would have to spend a week or two
         | studying the codebase before making modifications, a far cry
         | from the much simpler AT&T Unix from the late 1970s or the Lisp
         | machines of the 1980s.
         | 
         | Even more frustrating than the complexity of modern software is
         | the increased commercialization of personal computing. Ads,
         | subscriptions, and tracking is everywhere. Data is increasingly
         | locked in cloud services that often don't respect users'
         | privacy. In short, personal computing back in the 1970s and
         | 1980s was about taking power away from mainframes and giving it
         | to the people, but it seems that the past two decades have been
         | efforts to bring the power back to large corporations who
         | dictate the terms of our computing experience.
         | 
         | What can be done about this? I think the FOSS movement has been
         | a wonderful start, but there has to be an effort made to make a
         | simpler software stack that makes it easier for users to extend
         | and modify their tools. I'm also very interested in idea of
         | community-driven, non-profit cloud services as alternatives to
         | Big Tech. Computing is too important for society to be
         | controlled by a tiny handful of corporations.
        
       ___________________________________________________________________
       (page generated 2023-11-12 23:00 UTC)