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. as a toolmaker, there's an inherent tradeoff that I encountered years ago when I just started working at ChipFlow; what I was asked was essentially to develop Amaranth further as a way to de-skill the hardware design (RTL) field.

as a toolmaker, there's an inherent tradeoff that I encountered years ago when I just started working at ChipFlow; what I was asked was essentially to develop Amaranth further as a way to de-skill the hardware design (RTL) field.

Scheduled Pinned Locked Moved Uncategorized
46 Posts 13 Posters 0 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.
  • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

    @coral oh, without overtly violating my NDA, I'll just say that flashy demos were absolutely involved

    coral@empty.cafeC This user is from outside of this forum
    coral@empty.cafeC This user is from outside of this forum
    coral@empty.cafe
    wrote last edited by
    #34

    @whitequark Ah, I'd missed the platform config demo. They are trying!

    Re the degradation of the "open-guild" position of the RTL designer; I also don't know how to feel. Removing footguns is marginally deskilling, but it's such a social good that I can't object to it.

    Other industries have unions to smooth the social consequences in changing labor values. Govs and LLMs are both tools that seek to bypass that, it's not unreasonable to form guild-like closed systems of practice in response.

    whitequark@social.treehouse.systemsW 1 Reply Last reply
    0
    • coral@empty.cafeC coral@empty.cafe

      @whitequark Ah, I'd missed the platform config demo. They are trying!

      Re the degradation of the "open-guild" position of the RTL designer; I also don't know how to feel. Removing footguns is marginally deskilling, but it's such a social good that I can't object to it.

      Other industries have unions to smooth the social consequences in changing labor values. Govs and LLMs are both tools that seek to bypass that, it's not unreasonable to form guild-like closed systems of practice in response.

      whitequark@social.treehouse.systemsW This user is from outside of this forum
      whitequark@social.treehouse.systemsW This user is from outside of this forum
      whitequark@social.treehouse.systems
      wrote last edited by
      #35

      @coral I fully expect the formation of closed-guild systems (and am already a part of some amount of them); but I also don't know what the future holds & this is definitely a potent way of sawing off the branch on which one sits, so I only admit those as a last resort (and a hedge against the failure of other responses), not the first response

      1 Reply Last reply
      0
      • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

        @whitequark

        This is very close to where I parted ways with the FSF. There's always a tension between enabling people to create the desirable thing and enabling people to make the undesirable. Their view is that it should be very hard to make the undesirable thing, and slightly easier to make the desirable thing. My view is that you should make it so easy to make the desirable thing that people always have a choice and then, once the desirable thing exists, you can apply other pressures to get rid of the undesirable thing.

        I don't think deskilling is the right framing for a lot of these things, it's about where you focus cognitive load. There's a line from the Stantec ZEBRA's manual (1956) that says that the 150-instruction limit is not a real problem because no one could possibly write a working program that complex. Small children write programs more complex than that now. That's not a loss to the world, the fact that you don't have to think about certain things means you can think about other things, such as good algorithm and data structure design.

        There was research 20ish years ago comparing C and Java programs and found that the Java programs tended to be more efficient for the same amount of developer effort, because Java programmers would spend more time refining data structure and algorithmic choices and improve entire complexity classes, whereas C programmers spend the time tracking down annoying bug classes that are impossible in Java and doing microoptimisations. Of course, under time pressure, Java developers will simply ship the first thing that works and move onto new features rather than doing that optimisation. C programmers would take longer to get to the MVP level and their poorly optimised code was often faster than poorly optimised Java.

        I see LLMs as very different because they don't provide consistent abstractions. A programmer in a high-level language has a set of well-defined constraints on how their language is lowered to the target hardware and can reason about things, while allowing their run-time environment to make choices within those constraints. Vibe coding does not do this, it delegates thinking to a machine, which then generates code that is not working within a well-defined specification. This really is deskilling because it's not giving you a more abstract reasoning framework, it's removing your ability to reason.

        Letting people accomplish more with less effort, in an environment where their requirements are finite, ends up shifting power to individuals, because it reduces the value of economies of scale.

        dramforever@mastodon.socialD This user is from outside of this forum
        dramforever@mastodon.socialD This user is from outside of this forum
        dramforever@mastodon.social
        wrote last edited by
        #36

        @david_chisnall @whitequark "[...] the purpose of abstracting is not to be vague, but to create a new semantic level in which one can be absolutely precise." - Edsger W. Dijkstra, 1972, "The Humble Programmer" https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html

        dramforever@mastodon.socialD 1 Reply Last reply
        0
        • dramforever@mastodon.socialD dramforever@mastodon.social

          @david_chisnall @whitequark "[...] the purpose of abstracting is not to be vague, but to create a new semantic level in which one can be absolutely precise." - Edsger W. Dijkstra, 1972, "The Humble Programmer" https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html

          dramforever@mastodon.socialD This user is from outside of this forum
          dramforever@mastodon.socialD This user is from outside of this forum
          dramforever@mastodon.social
          wrote last edited by
          #37

          @david_chisnall @whitequark i think to me this is the key part. a (digital) hdl provides a model that you can think about bits and gates in. a better hdl provides you with the better model.

          llms on the other hand promise to let you avoid all the thinking. if i may philosophizd a bit - llms promise to let you avoid expressing yourself in terms of mental labor. maybe some like this, but i know i don't. [cont'd]

          dramforever@mastodon.socialD 1 Reply Last reply
          0
          • dramforever@mastodon.socialD dramforever@mastodon.social

            @david_chisnall @whitequark i think to me this is the key part. a (digital) hdl provides a model that you can think about bits and gates in. a better hdl provides you with the better model.

            llms on the other hand promise to let you avoid all the thinking. if i may philosophizd a bit - llms promise to let you avoid expressing yourself in terms of mental labor. maybe some like this, but i know i don't. [cont'd]

            dramforever@mastodon.socialD This user is from outside of this forum
            dramforever@mastodon.socialD This user is from outside of this forum
            dramforever@mastodon.social
            wrote last edited by
            #38

            @david_chisnall @whitequark one analogy i think is that it would be preposterous to think that learning and using modern algebra and category theory is deskilling to a mathematician.

            maybe it's not a perfect match, but i don't think writing in a higher level language is a "deskilled" way to draw gates or write instruction bits. it produces a different *kind* of product, that is itself amenable to various different processes, some manual and some automatic. it's not just "bits with extra steps".

            whitequark@social.treehouse.systemsW 1 Reply Last reply
            0
            • dramforever@mastodon.socialD dramforever@mastodon.social

              @david_chisnall @whitequark one analogy i think is that it would be preposterous to think that learning and using modern algebra and category theory is deskilling to a mathematician.

              maybe it's not a perfect match, but i don't think writing in a higher level language is a "deskilled" way to draw gates or write instruction bits. it produces a different *kind* of product, that is itself amenable to various different processes, some manual and some automatic. it's not just "bits with extra steps".

              whitequark@social.treehouse.systemsW This user is from outside of this forum
              whitequark@social.treehouse.systemsW This user is from outside of this forum
              whitequark@social.treehouse.systems
              wrote last edited by
              #39

              @dramforever @david_chisnall but Amaranth and SystemVerilog are more-or-less the same kind of product (Amaranth is slightly lower-level but that's not important here). it's just that using Amaranth takes, trivially, less skill than using SystemVerilog, for the same quality of result

              dramforever@mastodon.socialD 1 Reply Last reply
              0
              • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                @dramforever @david_chisnall but Amaranth and SystemVerilog are more-or-less the same kind of product (Amaranth is slightly lower-level but that's not important here). it's just that using Amaranth takes, trivially, less skill than using SystemVerilog, for the same quality of result

                dramforever@mastodon.socialD This user is from outside of this forum
                dramforever@mastodon.socialD This user is from outside of this forum
                dramforever@mastodon.social
                wrote last edited by
                #40

                @whitequark @david_chisnall i think i get what you mean. put to the extreme, the situation is: by making $thing and publishing it out for the public, you allow those without the skill to make $thing to still have a $thing.

                i ... honestly i don't know. i don't have an answer. if anything, the past month i have been devastated by vibe code that satisfies "functioning" and nothing else like "understandable" (by *anyone*) or collaboration (instead it has thousands of loc to paper over problems)

                whitequark@social.treehouse.systemsW 1 Reply Last reply
                0
                • dramforever@mastodon.socialD dramforever@mastodon.social

                  @whitequark @david_chisnall i think i get what you mean. put to the extreme, the situation is: by making $thing and publishing it out for the public, you allow those without the skill to make $thing to still have a $thing.

                  i ... honestly i don't know. i don't have an answer. if anything, the past month i have been devastated by vibe code that satisfies "functioning" and nothing else like "understandable" (by *anyone*) or collaboration (instead it has thousands of loc to paper over problems)

                  whitequark@social.treehouse.systemsW This user is from outside of this forum
                  whitequark@social.treehouse.systemsW This user is from outside of this forum
                  whitequark@social.treehouse.systems
                  wrote last edited by
                  #41

                  @dramforever @david_chisnall well, sort of? it's more like this: to make $thing you need skill X plus skill Y. by making Amaranth I made it so that you no longer need skill Y. on the face of it I think this can be called "deskilling", the fact that I think skill Y is unnecesssary being not relevant to the classification

                  dramforever@mastodon.socialD david_chisnall@infosec.exchangeD 2 Replies Last reply
                  0
                  • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                    @dramforever @david_chisnall well, sort of? it's more like this: to make $thing you need skill X plus skill Y. by making Amaranth I made it so that you no longer need skill Y. on the face of it I think this can be called "deskilling", the fact that I think skill Y is unnecesssary being not relevant to the classification

                    dramforever@mastodon.socialD This user is from outside of this forum
                    dramforever@mastodon.socialD This user is from outside of this forum
                    dramforever@mastodon.social
                    wrote last edited by
                    #42

                    @whitequark @david_chisnall i don't have a strong argument for this, but i still think there is a big and maybe fundamental difference between the audience that wants to do things, and the audience that wants to avoid doing things.

                    i guess i need to think about it more as well...

                    1 Reply Last reply
                    0
                    • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

                      @whitequark

                      This is very close to where I parted ways with the FSF. There's always a tension between enabling people to create the desirable thing and enabling people to make the undesirable. Their view is that it should be very hard to make the undesirable thing, and slightly easier to make the desirable thing. My view is that you should make it so easy to make the desirable thing that people always have a choice and then, once the desirable thing exists, you can apply other pressures to get rid of the undesirable thing.

                      I don't think deskilling is the right framing for a lot of these things, it's about where you focus cognitive load. There's a line from the Stantec ZEBRA's manual (1956) that says that the 150-instruction limit is not a real problem because no one could possibly write a working program that complex. Small children write programs more complex than that now. That's not a loss to the world, the fact that you don't have to think about certain things means you can think about other things, such as good algorithm and data structure design.

                      There was research 20ish years ago comparing C and Java programs and found that the Java programs tended to be more efficient for the same amount of developer effort, because Java programmers would spend more time refining data structure and algorithmic choices and improve entire complexity classes, whereas C programmers spend the time tracking down annoying bug classes that are impossible in Java and doing microoptimisations. Of course, under time pressure, Java developers will simply ship the first thing that works and move onto new features rather than doing that optimisation. C programmers would take longer to get to the MVP level and their poorly optimised code was often faster than poorly optimised Java.

                      I see LLMs as very different because they don't provide consistent abstractions. A programmer in a high-level language has a set of well-defined constraints on how their language is lowered to the target hardware and can reason about things, while allowing their run-time environment to make choices within those constraints. Vibe coding does not do this, it delegates thinking to a machine, which then generates code that is not working within a well-defined specification. This really is deskilling because it's not giving you a more abstract reasoning framework, it's removing your ability to reason.

                      Letting people accomplish more with less effort, in an environment where their requirements are finite, ends up shifting power to individuals, because it reduces the value of economies of scale.

                      snowfox@tech.lgbtS This user is from outside of this forum
                      snowfox@tech.lgbtS This user is from outside of this forum
                      snowfox@tech.lgbt
                      wrote last edited by
                      #43

                      @david_chisnall @whitequark
                      "Deskilling" feels like a labour term that I'm not sufficiently versed on, but perhaps "does it help companies treat workers as replaceable?" is a good litmus test, in which case Java may count (AIUI that was an explicit goal, and you can see it in the lack of goto/operator overloading, and in practice via all the consultancies). I'm not sure how to weigh that against "do workers prefer the new thing?".

                      I haven't used Amaranth or SysemVerilog, but my (little) experience of HDLs is that most of the skill is in your head (and transferable to other HDLs), not in the characters you type. Making it easier to learn the former without the latter seems closer to accessibility than de-skilling.

                      Similarly, I wouldn't count BASIC as de-skilling even though it demonstrably made it easier to write programs (but I'm not sure how much it was used commercially; maybe some companies used QBasic specifically so they could treat workers as replaceable).

                      1 Reply Last reply
                      0
                      • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                        @dramforever @david_chisnall well, sort of? it's more like this: to make $thing you need skill X plus skill Y. by making Amaranth I made it so that you no longer need skill Y. on the face of it I think this can be called "deskilling", the fact that I think skill Y is unnecesssary being not relevant to the classification

                        david_chisnall@infosec.exchangeD This user is from outside of this forum
                        david_chisnall@infosec.exchangeD This user is from outside of this forum
                        david_chisnall@infosec.exchange
                        wrote last edited by
                        #44

                        @whitequark @dramforever

                        There’s another aspect to this (which is why I get a bit obsessed by end-user programming as a concept): to build a thing today you need skills X, Y, and Z, but no one has the time to learn all three, so if Y can be factored out you can teach X to people who know Z and enable entirely new things that they actually care about.

                        whitequark@social.treehouse.systemsW 1 Reply Last reply
                        0
                        • whitequark@social.treehouse.systemsW whitequark@social.treehouse.systems

                          as a toolmaker, there's an inherent tradeoff that I encountered years ago when I just started working at ChipFlow; what I was asked was essentially to develop Amaranth further as a way to de-skill the hardware design (RTL) field. I agreed because I don't really value the skill of knowing every one of the five hundred different ways in which SystemVerilog is out to fuck you over; I think we'd be better off with tooling that doesn't require you to spend years developing this skill, and that would be a lot more friendly to new RTL developers, and people for whom RTL isn't the primary area of work.

                          I also knew that ChipFlow was on the lookout for opportunities to shoehorn AI somewhere into the process. (at first this was limited to "test case generation"—frankly ill conceived idea but one I could hold my nose at and accept—nowadays they've laid off everyone and went all-Claude.) however, it was clear pretty early on that making hardware development more accessible to new people inherently means making it more accessible to new wielders of the wrong machine. benefiting everyone (who isn't a committed SystemVerilog developer) means benefitting everyone, right?

                          you can trace this trend in adjacent communities as well. Rust and TypeScript have rich type systems that generally help you write correct code—or bullshit your way towards something that looks more or less correct. I'm pretty sure it's a part of the reason Microsoft spent so much money on TypeScript.

                          so today I find myself between a rock and a hard place: every incremental improvement in tooling that I build that makes the field more accessible to new people also means there's less of a barrier to people who just want to extract value from it, squeezing it like Juicero (quite poorly but with an aggressively insulting amount of money behind it). so what do I do now?..

                          dalias@hachyderm.ioD This user is from outside of this forum
                          dalias@hachyderm.ioD This user is from outside of this forum
                          dalias@hachyderm.io
                          wrote last edited by
                          #45

                          @whitequark I'm not sure if you'll agree with me on this, but I think the ability to extract value out of doing bad things with bad software is largely a consequence of complete regulatory breakdown.

                          If they hadn't bamboozled and captured the regulatory systems that are supposed to govern data protection, vehicles-for-hire, product safety, directories of personal information, etc. into letting them do whatever they want as long as "with computers" is tacked on, there would have been a lot less value to extract and the main applications of software/computing would be making legitimate business processes run more smoothly without needing to outsource control to predatory service providers (by having stuff be so easy your on-staff folks can do it, ala excel), not disrupting society.

                          1 Reply Last reply
                          1
                          0
                          • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

                            @whitequark @dramforever

                            There’s another aspect to this (which is why I get a bit obsessed by end-user programming as a concept): to build a thing today you need skills X, Y, and Z, but no one has the time to learn all three, so if Y can be factored out you can teach X to people who know Z and enable entirely new things that they actually care about.

                            whitequark@social.treehouse.systemsW This user is from outside of this forum
                            whitequark@social.treehouse.systemsW This user is from outside of this forum
                            whitequark@social.treehouse.systems
                            wrote last edited by
                            #46

                            @david_chisnall @dramforever Amaranth enabled a chemical engineer to build an electron microscope DAQ from scratch in 6mo.

                            1 Reply Last reply
                            1
                            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