• @Ziglin
      link
      513 months ago

      Also each line starts with a semicolon and you have to escape spaces in strings using a double forward slash

      • TurboWafflz
        link
        473 months ago

        I realized a while ago that there’s nothing stopping me from writing rust like this

        ;println!("This is great")
        ;println!("I think everyone should write rust like this")
        ;println!("Probably works in most languages that use semicolons")
        ;
        
        • @Ziglin
          link
          33 months ago

          Nasm programmers probably think that is old code that you commented out.

        • @[email protected]
          link
          fedilink
          English
          33 months ago

          hope you don’t forget the semicolon on a line by itself at the end (except in functions where you want to return the value of the last expression)

  • manucode
    link
    fedilink
    1183 months ago

    It uses XML-like syntax:

    <fun>
      <name>sum</name>
      <in>
        <int>foo</int>
        <int>bar=0</int>
      </in>
      <out><int>foo+bar</int></out>
    </fun>
    
    • @kameecoding
      link
      593 months ago

      This deserves to be added to the list of human rights violations

    • @[email protected]
      link
      fedilink
      453 months ago
      <fun>
        <name>sum</name>
        <in>
          <int>
            <name>foo</name>
          </int>
          <int>
            <name>bar</name>
            <default_value>
              <int>0</int>
            </default_value>
          </int>
        </in>
        <out>
          <int>
            <calculation>
              <numerical_operation>
                <operator_plus>
                  <operand>
                    <var>foo</var>
                  </operand>
                  <operand>
                    <var>bar</var>
                  </operand>
                </operator_plus>
              </numerical_operation>
            </calculation>
          </int>
        </out>
      </fun>
      
    • @_stranger_
      link
      293 months ago

      The whitespace is not only required, but it must be tabs and spaces.

      • @[email protected]
        link
        fedilink
        83 months ago

        Compiler rolls the dice if your only required indentation is accepted as space or tab. Per line.

        • @reinei
          link
          23 months ago

          But stores this information as a metadata file, which gets invalidated when a new file is added/removed from the program muhahaha!

    • @[email protected]
      link
      fedilink
      193 months ago

      I like it, this is clearly very enterprisey and solution focused, but I would like to suggest a couple of amendments if I may?

      • Namespaces We should make full use of namespaces. Make the structural tags be in a language specific namespace (to be referenced in every function spec, obviously) but change the in an out params to use the parameter name as the tag, namespaced to the function they’re for, with a type attribute.

      • In memory message queues Have all function invocations be marshaled as xml documents posted to an in memory message queue. Said documents should use a schema that validates the structure and a function specific schema to validate the types of arguments being passed. Namespace everything.

      I reckon we could power a medium sided country if we could generate energy from the programmers despair.

    • @[email protected]
      link
      fedilink
      193 months ago

      Can you please link to a medium article on how this will help utilize AI blockchain so i can show it to management on Monday?

    • JackbyDev
      link
      fedilink
      English
      93 months ago

      Make sure to make ample use of mixed content elements.

      <statement><var>bar</var> = <int>0</int></statement>
      
      • A Phlaming Phoenix
        link
        fedilink
        43 months ago
        statement: 
          comparison:
            - kind: libcompare.EQUALS
              comparators:
                - foo
                - bar
              whentrue:
                statement: 
                  streaming: 
                    - kind: libstreams.PRINT
                       content: foo equals bar
              whenfalse:
                statement: 
                  streaming: 
                    - kind: libstreams.PRINT
                       content: foo does not equal bar
        
    • @[email protected]
      link
      fedilink
      43 months ago

      The tag indentation is a required part of the syntax and don’t forget colons at the end of the tag

    • @A_Very_Big_Fan
      link
      English
      23 months ago

      I took every coding class my highschool offered, and the only thing that drove me more crazy than this syntax was trying to use CSS.

      • @[email protected]
        link
        fedilink
        43 months ago

        That’s because you didn’t try our lord and savior SASS. Vanilla CSS should be illegal at this stage.

    • @ZILtoid1991
      link
      23 months ago

      I almost did similar with SDLang as I was very desperate for a scripting language, but now I have a wasmtime API for D.

    • @[email protected]
      link
      fedilink
      English
      23 months ago

      That’s basically how the Android app Tasker works. You do the programming through its UI, but when you export/share your tasks, they’re saved as xml

    • lurch (he/him)
      link
      fedilink
      693 months ago

      …but intended for web, but you can also misuse it for apps and system services

    • qaz
      link
      133 months ago

      …to an intermediate set of instructions for a virtual machine…

      …called the brainfuck interpreter

  • @MIDItheKID
    link
    453 months ago

    Confusion like this got me my current job. They were looking for somebody with experience in “Microsoft Endpoint Configuration Manager”, and I look that up and I’m like “Oh, that’s SCCM, I do that”. Go through the interview process they keep asking me if I know Endpoint Configuration Manager and I’m like “yeah, for sure”. I get the job. Day one, the other systems engineer is like “here is the link to our Endpoint Manager Tenant”, and I’m like “oh… Shit I have never ever used this”

    Well… Ends up Endpoint Configuration Manager and Endpoint Manager are two different things. Fortunately for me they are pretty similar in function and rely on knowledge of Windows and Powershell, which I know.

    So my first 2 weeks of work was taking a shitload of courses in Endpoint Manager and watching a lot of videos and learning it inside and out.

    2 years later and I’m an Endpoint Manager/Intune pro.

    • @BambiDiego
      link
      543 months ago

      90% of IT and software jobs are “I have common sense, know how to look up information, and my boss is intimidated by my work so they don’t question it.”

    • @AdamEatsAss
      link
      123 months ago

      I think white space should be used to represent basic functions too. For example 3 spaces can be used to sum two values while 4 spaces can be used to subtract.

      • @[email protected]
        link
        fedilink
        23 months ago

        Yes, however indentation still defines block and the operator (white space in same cases) has to come right after the white space for the indent

  • Sunoc
    link
    fedilink
    233 months ago

    Make it purely functional, lisp based with reversed Polish notation and APL symboles, I dare you mf

    • Akatsuki Levi
      link
      English
      223 months ago

      Make it completely ignore indentation

  • Australis13
    link
    fedilink
    183 months ago

    Make sure it’s not whitespace sensitive and requires explicit typing, just to mess with everyone.

  • Dandroid
    link
    fedilink
    14
    edit-2
    3 months ago

    Make it so the capitalization affects the scope.

    Oh wait.

    (Sorry, I recently had to switch to golang for work, and I’m just not used to it yet, and I’m getting annoyed by some of these design decisions)

  • @umbraroze
    link
    133 months ago

    Just today I heard someone whining about how in LinkedIn and other recruitment sites there’s like five bazillion profile tag options for RDMBSes and various dialects of SQL… when in actuality the recruiters are probably only concerned if the developer can do a bloody SELECT and stuff.

    • Akatsuki Levi
      link
      English
      23 months ago

      Oh boy, make Pythonscript a dialect of SQL but for frontend

  • @Zangoose
    link
    12
    edit-2
    3 months ago

    Screw it. Let’s actually make python script an ISA that gets run on physical hardware with no higher level tooling. Then we can have the python virtual environment which runs this for fools who don’t have the right hardware. Finally, when people start complaining about naming we make Python Script 2.1, which is a JIT language built on top of IL that looks nothing like either of them but can emulate both python and python script with the performance cost of being a quarter as fast as both.

    • @[email protected]
      link
      fedilink
      English
      13 months ago

      Honestly if someone irons out the edge cases, python probably could JIT compile to machine code via cython. It would take a fair bit of memory and probably a bit slow on low powered systems but it would be so much faster if cached.

      • @Zangoose
        link
        13 months ago

        Technically I think python already has an intermediate step that it uses before it starts running a script that compiles it into a lower-ish language (at least the cpython interpreter does this, it probably isn’t a part of the language specification though)

        The actual line between JIT languages and interpreted languages is pretty thin since I think most interpreted languages do something similar to minimize the amount that needs to be done at runtime

        • @[email protected]
          link
          fedilink
          English
          2
          edit-2
          3 months ago

          I think at this point in time it JIT compiles into byte code and cached which is more efficiently interpreted the next time that function is called.