this post was submitted on 05 Jul 2024
863 points (97.9% liked)

Programmer Humor

37133 readers
48 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] manucode@infosec.pub 120 points 1 year ago (13 children)

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@lemmy.world 61 points 1 year ago

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

[–] VitaminF@feddit.org 46 points 1 year ago (2 children)
<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>
[–] manucode@infosec.pub 13 points 1 year ago (2 children)

How did you come up with such a ****ingly stupid syntax?!

[–] hedgehog@ttrpg.network 19 points 1 year ago (1 children)

They probably have experience with Spring

[–] VitaminF@feddit.org 10 points 1 year ago (1 children)

I imagined what an Elasticsearch query style Python XML syntax would look like.You must share my pain.

[–] luciferofastora@lemmy.zip 7 points 1 year ago

That's grotesque and you have my condolences

[–] pingveno@lemmy.ml 5 points 1 year ago* (last edited 1 year ago) (1 children)

Welcome to the world of abusing the shit out of Ant. My first full time job was developing Ant in unholy ways. Tens of thousands of lines of Ant at least, doing significant logic. If-then-else, for loops, math, procedures, date-time math. I stuck it out for a year. It was a year too long.

[–] deathmetal27@lemmy.world 1 points 1 year ago

Thankfully we have Gradle now.

[–] _stranger_@lemmy.world 30 points 1 year ago (2 children)

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

[–] TheRealJefe@lemmy.world 10 points 1 year ago

Calm down, Satan

[–] kewko@sh.itjust.works 8 points 1 year ago (1 children)

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

[–] reinei@lemmy.world 2 points 1 year ago

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

[–] notabot@lemm.ee 19 points 1 year 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.

[–] Pilon23@feddit.dk 19 points 1 year 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@programming.dev 10 points 1 year ago (1 children)

Make sure to make ample use of mixed content elements.

<statement><var>bar</var> = <int>0</int></statement>
[–] aphlamingphoenix@lemm.ee 5 points 1 year ago (1 children)
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
[–] JackbyDev@programming.dev 2 points 1 year ago (1 children)
[–] aphlamingphoenix@lemm.ee 2 points 1 year ago (1 children)
[–] JackbyDev@programming.dev 3 points 1 year ago

Don't apologize, it's beautiful in its horribleness

[–] anonymoose@lemmy.ca 7 points 1 year ago
[–] breakcore@discuss.tchncs.de 5 points 1 year ago

Oh my, I feel woozy …

[–] EffortlessEffluvium@lemm.ee 4 points 1 year ago

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

[–] lone_faerie@lemmy.blahaj.zone 2 points 1 year 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

[–] A_Very_Big_Fan@lemmy.world 2 points 1 year ago (1 children)

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.

[–] fibojoly@sh.itjust.works 4 points 1 year ago

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

[–] ZILtoid1991@lemmy.world 2 points 1 year 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.