you are viewing a single comment's thread
view the rest of the comments
[–] 120 points 2 years ago (29 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>
  • source
  • hideshow 29 child comments
  • [–] 46 points 2 years ago (8 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>
    
  • source
  • parent
  • hideshow 8 child comments
  • [–] 13 points 2 years ago (5 children)

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

  • source
  • parent
  • hideshow 5 child comments
  • [–] 19 points 2 years ago (2 children)

    They probably have experience with Spring

  • source
  • parent
  • hideshow 2 child comments
  • [–] 5 points 2 years ago* (1 child)

    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.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 30 points 2 years ago (3 children)

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

  • source
  • parent
  • hideshow 3 child comments
  • [–] 19 points 2 years 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.

  • source
  • parent
  • [–] 10 points 2 years ago (4 children)

    Make sure to make ample use of mixed content elements.

    <statement><var>bar</var> = <int>0</int></statement>
    
  • source
  • parent
  • hideshow 4 child comments
  • [–] 5 points 2 years ago (3 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
    
  • source
  • parent
  • hideshow 3 child comments