Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. If you program, you should read this piece.

If you program, you should read this piece.

Scheduled Pinned Locked Moved Uncategorized
29 Posts 22 Posters 3 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • bsdphk@fosstodon.orgB bsdphk@fosstodon.org

    If you program, you should read this piece.

    "Ada's successes — the aircraft that have not crashed, the railway signalling systems that have not failed, the missile guidance software that has not misguided — are invisible precisely because they are successes. The languages that failed visibly, in buffer overflows and null pointer exceptions and data races and security vulnerabilities, generated the discourse. [Ada did not]"

    The Quiet Colossus — On Ada, Its Design, and the Language That Modern Software Keeps Rediscovering

    favicon

    (www.iqiipi.com)

    swannodette@mas.toS This user is from outside of this forum
    swannodette@mas.toS This user is from outside of this forum
    swannodette@mas.to
    wrote last edited by
    #21

    @bsdphk this reads like pure AI slop BTW. Too much hand waving and inaccuracies. Looking at the top level just confirms the sloppiness https://www.iqiipi.com

    1 Reply Last reply
    0
    • chris@mastodon.mihalis.netC chris@mastodon.mihalis.net

      @Flux @goblin @bsdphk a GPL Ada compiler became available around 1994

      flux@wandering.shopF This user is from outside of this forum
      flux@wandering.shopF This user is from outside of this forum
      flux@wandering.shop
      wrote last edited by
      #22

      @chris Yes, absolutely, and I even wrote some toy programs with it. But the US milspec aspect made it easy to put it aside. @goblin @bsdphk

      1 Reply Last reply
      0
      • deschips@mamot.frD deschips@mamot.fr

        @pfriedma @bsdphk @whyrl and Ariane 5 proceeded to be one of the most reliable launcher in history. And Ariane 6, still built on Ada, is following the same path.

        T This user is from outside of this forum
        T This user is from outside of this forum
        trademark@fosstodon.org
        wrote last edited by
        #23

        @DesChips @pfriedma @bsdphk @whyrl Most launchers have had zero *software* failures though. Guidance of a space-launcher is not actually a hard problem, it can be fully simulated beforehand without much trouble. I believe some rockets, e.g. Japan's Lambda flew without any computer at all, using purely a timer to steer the thing.

        1 Reply Last reply
        0
        • bsdphk@fosstodon.orgB bsdphk@fosstodon.org

          If you program, you should read this piece.

          "Ada's successes — the aircraft that have not crashed, the railway signalling systems that have not failed, the missile guidance software that has not misguided — are invisible precisely because they are successes. The languages that failed visibly, in buffer overflows and null pointer exceptions and data races and security vulnerabilities, generated the discourse. [Ada did not]"

          The Quiet Colossus — On Ada, Its Design, and the Language That Modern Software Keeps Rediscovering

          favicon

          (www.iqiipi.com)

          robpike@hachyderm.ioR This user is from outside of this forum
          robpike@hachyderm.ioR This user is from outside of this forum
          robpike@hachyderm.io
          wrote last edited by
          #24

          @bsdphk There's a lot of, to put it politely, inaccuracy in that piece. Also it's clearly generated with or by AI. But this is the world we're in now, so get used to it. History being rewritten by the machines.

          1 Reply Last reply
          0
          • bsdphk@fosstodon.orgB bsdphk@fosstodon.org

            If you program, you should read this piece.

            "Ada's successes — the aircraft that have not crashed, the railway signalling systems that have not failed, the missile guidance software that has not misguided — are invisible precisely because they are successes. The languages that failed visibly, in buffer overflows and null pointer exceptions and data races and security vulnerabilities, generated the discourse. [Ada did not]"

            The Quiet Colossus — On Ada, Its Design, and the Language That Modern Software Keeps Rediscovering

            favicon

            (www.iqiipi.com)

            goss@c.imG This user is from outside of this forum
            goss@c.imG This user is from outside of this forum
            goss@c.im
            wrote last edited by
            #25

            @bsdphk
            When I was in the biz I constantly chafed at the hacker culture of celebrating indiciplined indecipherable code. Even the in the comments here I see the sneering attitude permeating. I have always disliked this intensely.

            Thanks for sharing this essay.

            1 Reply Last reply
            0
            • J This user is from outside of this forum
              J This user is from outside of this forum
              jameswidman@mastodon.social
              wrote last edited by
              #26

              @pfriedma @bsdphk @whyrl
              I was thinking it might be nice to use a language with Ada's checking features, but i don't know if i can stomach the C++-like exception semantics.

              The problem has always been that it completely destroys everyone's ability to reason about control flow. It's kinda glaring for a language that otherwise emphasizes the importance of provable correctness.

              (Contrast with modern languages like Swift, where you're forced to annotate call sites that can possibly throw.)

              J 1 Reply Last reply
              0
              • J jameswidman@mastodon.social

                @pfriedma @bsdphk @whyrl
                I was thinking it might be nice to use a language with Ada's checking features, but i don't know if i can stomach the C++-like exception semantics.

                The problem has always been that it completely destroys everyone's ability to reason about control flow. It's kinda glaring for a language that otherwise emphasizes the importance of provable correctness.

                (Contrast with modern languages like Swift, where you're forced to annotate call sites that can possibly throw.)

                J This user is from outside of this forum
                J This user is from outside of this forum
                jameswidman@mastodon.social
                wrote last edited by
                #27

                @pfriedma @bsdphk @whyrl
                ...and then on top of that, it's going to unwind the stack, and thereby destroy evidence that would be useful in locating the root cause of a bug, in the event of programming mistakes like null dereferences!?
                https://learn.adacore.com/courses/intro-to-ada/chapters/exceptions.html

                I really hope there's a way to disable or alter this behavior and make it trap instead, so that the stack is preserved for debugging...?

                (C++ unwinds the stack too, but (1) generally not on UB, and (2) we have sanitizers for UB.)

                J 1 Reply Last reply
                0
                • J jameswidman@mastodon.social

                  @pfriedma @bsdphk @whyrl
                  ...and then on top of that, it's going to unwind the stack, and thereby destroy evidence that would be useful in locating the root cause of a bug, in the event of programming mistakes like null dereferences!?
                  https://learn.adacore.com/courses/intro-to-ada/chapters/exceptions.html

                  I really hope there's a way to disable or alter this behavior and make it trap instead, so that the stack is preserved for debugging...?

                  (C++ unwinds the stack too, but (1) generally not on UB, and (2) we have sanitizers for UB.)

                  J This user is from outside of this forum
                  J This user is from outside of this forum
                  jameswidman@mastodon.social
                  wrote last edited by
                  #28

                  @pfriedma @bsdphk @whyrl
                  in modern times, we would probably want to use an effect system (like the effect types & handlers in Koka) in use cases where previous generations used exceptions.

                  J 1 Reply Last reply
                  0
                  • J jameswidman@mastodon.social

                    @pfriedma @bsdphk @whyrl
                    in modern times, we would probably want to use an effect system (like the effect types & handlers in Koka) in use cases where previous generations used exceptions.

                    J This user is from outside of this forum
                    J This user is from outside of this forum
                    jameswidman@mastodon.social
                    wrote last edited by
                    #29

                    @pfriedma @bsdphk @whyrl that said, the fact that they at least tried to spell out their requirements before even soliciting any design attempts is pretty cool. I would like to see more of that.

                    1 Reply Last reply
                    0
                    • R relay@relay.infosec.exchange shared this topic
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    • Login

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • World
                    • Users
                    • Groups