• Meh, those are just the programmers that are remembered.

    They did lots of dumb shit too. Mario 64 was a super-innovative game at the time with its free 3D platforming. There’s also tons of weird code in there, and the developers also fucked up by shipping a debug build of the game, costing a not insignificant amount of performance.

  • folaht@lemmy.ml
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    12 hours ago

    In the past I’d be forever stuck without Stackoverflow to help me.
    I couldn’t get out of vim without a miracle.
    Pointers were so confusing, I’d go without them.

  • admin@sh.itjust.works
    link
    fedilink
    arrow-up
    30
    ·
    1 day ago

    Programmers of the past didn’t have to work 2 jobs to be able to buy a house and live comfortably, less alone spend most of their paycheck on inflated prices for gas, food, services, etc. But hey we got AI and Amazon Prime now.

    • madame_gaymes@programming.dev
      link
      fedilink
      English
      arrow-up
      21
      ·
      1 day ago

      Not to mention the sense of pioneering something. Like I imagine calculating the Moon landing is something you’re happy to spend 80+ hours a week on, especially when basic needs are taken care of.

      • admin@sh.itjust.works
        link
        fedilink
        arrow-up
        14
        ·
        1 day ago

        Not to mention the sense of pioneering something.

        something you’re happy to spend 80+ hours a week on, especially when basic needs are taken care of.

        Vs writing the same thing that already exists with a different front end, a bunch of times with different examples, because somebody who has more resources (not just more cash, but also time) decides visuals are more important than real functionality.

        Part of the reason I don’t like ‘coding’ or developing software its because is so dreadful and feels overly stupid when an open source alternative works better than what you’d be able to make before the deadline.

        I just rather be a CTO / SysAdmin and live happier.

      • Simon 𐕣he 🪨 Johnson@lemmy.ml
        link
        fedilink
        arrow-up
        7
        ·
        edit-2
        1 day ago

        Margaret Hamilton’s first job out of undergrad was working for Lorenz. She was incredibly accomplished with several stints in top labs, by the time of Apollo. It’s not like opportunities for trail blazing software fell out of the sky on shlubs who barely passed undergrad data structures and algorithms courses.

        • admin@sh.itjust.works
          link
          fedilink
          arrow-up
          9
          ·
          1 day ago

          shlubs who barely passed undergrad data structures and algorithms courses.

          And that’s the problem with most people getting into IT nowadays, they expect to go to an algorithms course or a development bootcamp and come out knowing everything to make a 6 figure salary, but don’t even try to learn what a software dependency is or how to fix their dev environment and expect GPT to shlub it up, when in reality many of these old school software programmers were self learning nerds who were just trying to solve (a) problem, and spent hours doing so.

          • Simon 𐕣he 🪨 Johnson@lemmy.ml
            link
            fedilink
            arrow-up
            8
            ·
            edit-2
            22 hours ago

            don’t even try to learn what a software dependency

            Everyone at my company keeps using the term “dependency hell” when referring to literally dependency management and order of operations with a modern package manager like NPM that tracks versions and dependencies.

            They’ve literally never experienced working with dynamically linked libraries and they think it’s so hard because they have to understand a tree that exists in data form (e.g. package-lock.json) and can be easily visualized vs a tangled file system and LD_LIBRARY_PATH or Windows standard search order / HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs.

            It’s pathetic.

            • admin@sh.itjust.works
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              21 hours ago

              These guys are living in the glory. I bet they don’t even know all the info they need is just in a fucking config file, in a damn manual somewhere or in the stupid docs that people doesn’t seem to bother reading anymore, or writing some decent ones.

  • HiddenLayer555@lemmy.ml
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    3
    ·
    edit-2
    1 day ago

    I get what this is saying but on the other hand…

    Programmers now:

    💪 Can spin up a minimum viable product in a day

    💪 Writes web applications that handle millions or even billions of requests per second

    💪 Remote code execution and memory related vulnerabilities are rarer than ever now

    💪 Can send data across the world with sub 1 second latency

    💪 The same PCIe interface is now 32x faster (16x PICe 1 was 8GB/s, while PCIe 6 is 256GB/s)

    💪 The same wireless bands now have more throughput due to better radio protocols and signal processing

    💪 Writes applications that scale across the over 100 cores of modern top of the line processors

    💪 JIT and garbage collection techniques have improved to the point where they have a nearly imperceptible performance impact in the majority of use cases

    💪 Most bugs are caught by static analysis and testing frameworks before release

    💪 Codebases are worked on by thousands of people at the same time

    💪 Functional programming, which is arguably far less bug prone, is rapidly gaining traction as a paradigm

    💪 Far more emphasis on immutability to the point where many languages have it as the default

    💪 Virtual machines can be seamlessly transferred from one computer to another while they’re running

    💪 Modern applications can be used by people anywhere in the world regardless of language, even things that were very difficult to do in the past like mirroring the entire interface to allow an application that was written for left to right languages to support right to left

    💪 Accessibility features allow people who are blind, paralyzed, or have other disabilities to use computers just as well as anyone else

    Just wanted to provide come counter examples because I’m not a huge fan of the “programmers are worse than they were back in the 80s” rethoric. While programmers today are more reliant on automated tools, I really disagree that programmers are less capable in general than they were in the past.

    • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
      link
      fedilink
      arrow-up
      15
      ·
      1 day ago

      For sure, it’s a lot easier to do a lot of stuff today than before, but the way we build software has become incredibly wasteful as well. Also worth noting that some of the workflows that were available in languages like CL or Smalltalk back in the 80s are superior to what most languages offer today. It hasn’t been strictly progress in every regard.

      I’d say the issue isn’t that programmers are worse today, but that the trends in the industry select for things that work just well enough, and that’s how we end up with stuff like Electron.

      • HiddenLayer555@lemmy.ml
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 day ago

        Also worth noting that some of the workflows that were available in languages like CL or Smalltalk back in the 80s are superior to what most languages offer today.

        In what ways? I don’t have any experience with those so I’m curious.

        • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
          link
          fedilink
          arrow-up
          9
          ·
          1 day ago

          Common Lisp and Smalltalk provided live development environment where you could run any code as you write it in the context of your application. Even the whole Lisp OS was modifiable at runtime, you could just open code for any running application or even the OS itself, make changes on the fly, and see them reflected. A fun run through Symbolics Lisp Machine here https://www.youtube.com/watch?v=o4-YnLpLgtk

          Here are some highlights.

          The system was fully introspective and self-documenting. The entire OS and development environment was written in Lisp, allowing deep runtime inspection and modification. Every function, variable, or object could be inspected, traced, or redefined at runtime without restarting. Modern IDEs provide some introspection (e.g., via debuggers or REPLs), but not at the same pervasive level.

          You had dynamic code editing & debugging. Functions could be redefined while running, even in the middle of execution (e.g., fixing a bug in a running server). You had the ability to attach “before,” “after,” or “around” hooks to any function dynamically.

          The condition system in CL provided advanced error handling with restarts allowed interactive recovery from errors (far beyond modern exception handling).

          Dynamic Window System UI elements were live Lisp objects that could be inspected and modified interactively. Objects could be inspected and edited in structured ways (e.g., modifying a list or hash table directly in the inspector). Modern IDEs lack this level of direct interactivity with live objects.

          You had persistent image-based development where the entire system state (including running programs, open files, and debug sessions) could be saved to an image and resumed later. This is similar to Smalltalk images, but unlike modern IDEs where state is usually lost on restart.

          You had knowledge-level documentation with Document Examiner (DOCX) which was hypertext-like documentation system where every function, variable, or concept was richly cross-linked. The system could also generate documentation from source code and comments dynamically. Modern tools such as Doxygen are less integrated and interactive.

          CL had ephemeral GC that provided real-time garbage collection with minimal pauses. Weak references and finalizers are more sophisticated than most modern GC implementations. Modern languages (e.g., Java, Go, C#) have good GC but lack the fine-grained control of Lisp Machines.

          Transparent Remote Procedure Calls (RPC) allowed Objects to seamlessly interact across machines as if they were local. Meanwhile NFS-like but Lisp-native file system allowed files to be accessed and edited remotely with versioning.

          Finally, compilers like Zeta-C) could compile Lisp to efficient machine code with deep optimizations.

          • Natanox@discuss.tchncs.de
            link
            fedilink
            English
            arrow-up
            6
            ·
            23 hours ago

            No wonder there are some older developers who defend Lisp so passionately. Sounds like a dream to work with once you got the hang of it.

            • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
              link
              fedilink
              arrow-up
              2
              ·
              21 hours ago

              It’s really impressive to think what was achieved with such limited hardware compared to today’s standards. While languages like Clojure are rediscovering these concepts, it feels like we took a significant detour along the way.

              I suspect this has historical roots. In the 1980s, Lisp was primarily used in universities and a small number of companies due to the then-high hardware demands for features like garbage collection, which we now consider commonplace. Meanwhile, people who could afford personal computers were constrained by very basic hardware, making languages such as C or Fortran a practical choice. Consequently, the vast majority of developers lacked exposure to alternative paradigms. As these devs entered industry and academia, they naturally taught programming based on their own experiences. Hence why the syntax and semantics of most mainstream languages can be traced back to C.

          • davel@lemmy.ml
            link
            fedilink
            English
            arrow-up
            3
            ·
            22 hours ago

            I had access to a Symbolics machine back in the day, but I was too young & dumb to understand or appreciate what I had my hands on. Wasted opportunity 😔

          • Simon 𐕣he 🪨 Johnson@lemmy.ml
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            22 hours ago

            I love Lisp, that’s why I like doing industry work in JS, because it’s very lisp like.

            However if you gave an average industry programmer Lisp today they’d fuck up so much worse than the garbage enterprise grade language code that exists today. I switch jobs probably every 4 years and on average I teach 3 people a year what a closure is.

            Lisp has a lot of great solutions for a lot of real problems, but these people quite literally fix one bug and create 3. I had a 10+ YOE Tech Lead tell me the other day that they kinda just ignore the error output of the TS compiler and it made me want to tear my eyes out.

            • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
              link
              fedilink
              arrow-up
              1
              ·
              21 hours ago

              I guess I’ve been lucky, I’ve been working with Clojure professionally for over a decade now, and every team I’ve worked on was very competent. Could be that there’s a selection bias at play with teams that use a language like Clojure though since it tends to appeal to experienced developers.

              • Simon 𐕣he 🪨 Johnson@lemmy.ml
                link
                fedilink
                arrow-up
                1
                ·
                11 hours ago

                I’ve found it hard to find jobs with Clojure/Haskell/Rust. I typically look for interesting projects and industries that don’t make me feel icky even though they end up doing so because everything is fucking enterprise sales. My career has kinda been Bar Rescue for idiot companies who have blundered into an extremely hard problem and need someone to actually figure it out before the software stack implodes on itself.

                • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  11 hours ago

                  Clojure jobs are definitely around, I got involved in the community early and wrote a few libraries that ended up getting some use. I also joined local Clojure meetup, and ended up making some connections with companies using it. I’ve also worked in a team lead position in a few places where I got to pick the tech stack and introduced Clojure. I didn’t find it was that hard to hire for it at all. While most people didn’t know Clojure up front, most people who applied were curious about programming in general and wanted to try new things.

          • petey@aussie.zone
            link
            fedilink
            arrow-up
            1
            ·
            20 hours ago

            Unfortunately, the lisp machine didn’t gain traction because the start-up times were so long and I believe this is due to it doing lots of internal checks which was awesome but unfortunately things like the Sun SPARCstation won because it was crazy fast although buggy

    • CarrotsHaveEars@lemmy.ml
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      22 hours ago

      💪 Writes web applications that handle millions or even billions of requests per second

      This has nothing to do with SO or AI.

  • IngeniousRocks (They/She) @lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    4
    arrow-down
    7
    ·
    1 day ago

    As a beginning programmer, this is extremely discouraging and makes me want to do something else with my time.

    Instead of punching down at those who are clearly undertrained, you should elevate those around you. Being a dick about it doesn’t seem like a good use of your time.

    • folaht@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      12 hours ago

      This looks more like a joke.

      I used to get stuck forever without Stackoverflow, avoided pointers altogether, got stuck in vim for hours figuring out how to exit the program and did not use it again for another five years.
      Assembly is painfully slow to write anything in.

    • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
      link
      fedilink
      arrow-up
      11
      ·
      1 day ago

      What does this have to do with being a beginner programmer and punching down? The meme is about how we do programming in general today vs the way it was done before.

      • IngeniousRocks (They/She) @lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        3
        arrow-down
        5
        ·
        1 day ago

        The meme reads as “if you can’t do these things you’re dumb” the things you’ve typed as examples of how coding is done nowadays are similar to things that any beginner would be typing into a search engine as well.

        Your meme doesn’t compare between coding practices, it compares between the results of early programmers doing the absolute most with the hardware that was purpose built for their needs to people who literally don’t know how to program looking up information and progressing their knowledge.

        • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
          link
          fedilink
          arrow-up
          10
          ·
          1 day ago

          Again, the meme says absolutely nothing about beginners. It’s the coding practices of experienced developers today. And if those look indistinguishable from beginner practices to you, then perhaps you see the problem.

          • Natanox@discuss.tchncs.de
            link
            fedilink
            English
            arrow-up
            4
            ·
            23 hours ago

            Parts of me want to argue that “experienced devs” can’t seriously still ask ChatGPT for syntax correction. Like, I do that with Codestral as I’m learning Python (despite the occasional errors it’s still so much better than abstract docs…), but that should just be a learning thing… or is it because nowadays a single codebase often consists of 5+ languages and devs are expected to constantly learn all the new “hot shit” which obviously won’t make anyone experts in one specific one like back when the there just weren’t as many?

            • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
              link
              fedilink
              arrow-up
              3
              ·
              21 hours ago

              I think it’s more of the latter. There are a lot of languages and each one has its own quirks, libraries, and patterns. Even as an experienced dev, you might know what you want to do conceptually, but you might not be sure what the best way to do that in a particular language is. LLMs can be used in a similar way to StackOverflow to look up these sort of things.