1. 34
  1. 9

    Really missing a cursed tag for the end of this post.

    1. 3

      I take it as a sign from the universe that Rust and VBScript were made to work together.

      Yep, 100% cursed.

      1. 6

        Or the revelation of a Great Truth, greater than we mortals can understand.

        1. 3

          Sometimes when you stare into the void, the void stares into you.

    2. 4

      Macros, at the simplest level, are just things that do other things quicker (for the user) than by manually doing said things.

      I think of a macro as a function whose result is source code that gets re-evaluated. If you think of keystrokes as source code, then it applies even to humble key macros.

      There have been languages entirely based on macros, like TRAC [1964], a really fun little language you can write an interpreter for in a day; it was the first programming language I ever implemented, in high school, after reading about it in Ted Nelson’s classic Computer Lib.

      And I feel compelled to point out that Nim has macros too, a quite powerful form (at least as powerful as Rust’s.) In fact Nim’s async/await syntax is implemented as macros.

      1. 3

        I really think we’re at a tipping point with how much raw code typical programmers are expected to write on a daily basis. This could be solved by “better tools,” but I honestly feel like our tools are all great in isolation, it just takes way too much effort to wire them all together for simple user-facing behavior.

        And I also really think macros are the answer. Macros, or compilers - anything that can generate code. Programmers were resistant to moving away from writing assembly, but it eventually happened. What if the current level of application development became an intermediate representation for a compiler / macro system?

        1. 2

          The most common were JScript and VBScript, because they were installed by default on Windows, but you could add support for Perl, REXX or even Haskell. Haskell! Think about it. This means that on a computer with the Haskell provider installed, this bit of code would be valid and would kinda work in Internet Explorer: